diff --git a/README.md b/README.md
index 9a05e26..223f272 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Learning Retention Analytics 🇬🇧 [🇮🇹](it/README.md)
+# Learning Retention Analytics
[](https://github.com/aleattene/learning-retention-analytics/actions/workflows/test.yml)
[](https://github.com/aleattene/learning-retention-analytics/actions/workflows/code_quality.yml)
@@ -257,6 +257,12 @@ and implementation cost.*
---
+## Author
+
+[Alessandro Attene](https://www.linkedin.com/in/aleattene)
+
+---
+
## License
This project is licensed under the [MIT License](LICENSE).
diff --git a/it/README.md b/it/README.md
index 088d62b..0fe2dfe 100644
--- a/it/README.md
+++ b/it/README.md
@@ -1,4 +1,4 @@
-# Analisi della Retention nell'Apprendimento 🇮🇹 [🇬🇧](../README.md)
+# Analisi della Retention nell'Apprendimento
[](https://github.com/aleattene/learning-retention-analytics/actions/workflows/test.yml)
[](https://github.com/aleattene/learning-retention-analytics/actions/workflows/code_quality.yml)
@@ -258,6 +258,12 @@ e costo di implementazione.*
---
+## Autore
+
+[Alessandro Attene](https://www.linkedin.com/in/aleattene)
+
+---
+
## Licenza
Questo progetto è distribuito con [Licenza MIT](../LICENSE).
diff --git a/reports/REPORT.md b/reports/REPORT.md
index f30cad2..05fee89 100644
--- a/reports/REPORT.md
+++ b/reports/REPORT.md
@@ -1,8 +1,44 @@
-# Student Retention Analysis: Executive Report
+# Student Retention Analysis: Executive Report
-> Open University Learning Analytics Dataset (OULAD) | 32,593 enrollments | 7 courses
->
-> Audience: Head of Product | Observational analysis (associations, not causal claims) | No ML
+> **Data-driven analysis of student retention and drop-out in online education**
+
+> **Data**: Open University Learning Analytics Dataset (OULAD), 32,593 enrollments,
+> 7 courses. Historical dataset (2013–2014 cohorts), stable: no updates expected.
+
+> **Author**: [Alessandro Attene](https://www.linkedin.com/in/aleattene)
+
+> **Analysis started**: April 2026
+
+> **Last revised**: September 2026
+
+> **Audience**: Head of Product | Observational analysis (associations, not causal
+> claims), no machine learning models
+
+---
+
+## Executive Summary
+
+Roughly one in three enrollments ends in explicit withdrawal, and dropout is not
+random: it clusters around course milestones. Behavioral signals from the first
+28 days predict the outcome far more strongly than any demographic variable, and
+they make it possible to identify at-risk students early with interventions that
+require no demographic profiling.
+
+### The Five Key Numbers
+
+| Metric | Value |
+|--------|-------|
+| Enrollments analyzed | 32,593, across 7 courses (22 presentations) |
+| Overall withdrawal rate | ~31%, ranging from 11.8% to 44.2% by module |
+| Strongest predictor | Engagement decile in the first 28 days (Cohen's d\* = 0.97) |
+| Behavior vs demographics gap | Best demographic predictor: education, Cramer's V\* = 0.15, outperformed by every major behavioral signal |
+| Highest-risk segment | Ghost students: 5,555 enrollments (17.0%), 92.3% non-completion |
+
+\* Both effect size measures (Cohen's d and Cramer's V) are explained, with scale
+and a worked example, in the [Methodology](#methodology) section.
+
+**Recommended actions** (details in BQ5): ghost-student activation by day 3, a
+checkpoint before the first assessment deadline, and week-3 re-engagement.
---
@@ -13,9 +49,13 @@ OULAD dataset: 32,593 student-course enrollments across 7 modules, with complete
behavioral clickstream from the university's Virtual Learning Environment (VLE),
assessment records, and demographic profiles.
-**Outcome definition:** Each enrollment is classified as *Completed* (Pass or Distinction)
-or *Not completed* (Fail or Withdrawn). This binary split is consistent with the OULAD
-literature and enables clean retention analysis.
+**Outcome definition:** Each enrollment is classified into one of two classes:
+
+- **Completed**: final result Pass or Distinction
+- **Not completed**: final result Fail or Withdrawn
+
+This binary split is consistent with the OULAD literature and enables clean
+retention analysis.
**Statistical toolkit:**
@@ -24,13 +64,44 @@ literature and enables clean retention analysis.
| Welch's t-test | Continuous signals vs. outcome | t-statistic, p-value, Cohen's d |
| Chi-square test | Categorical demographics vs. outcome | chi-square, p-value, Cramer's V |
| Bonferroni + Benjamini-Hochberg | Multiple comparison correction | Adjusted p-values |
-| Bootstrap CI | Extreme-rate groups (e.g., ghost students) | 95% confidence intervals |
+| Bootstrap CI\* | Extreme-rate groups (e.g., ghost students) | 95% confidence intervals |
+
+\* CI = Confidence Interval: the range of values within which, with 95% confidence,
+the true value lies. Here it is estimated via bootstrap, that is by resampling the
+observed data many times.
All tests use a significance threshold of alpha = 0.05. Effect size, not p-value, is the
primary criterion for ranking predictors, because with ~32K observations even trivial
differences reach statistical significance. No machine learning models are used. All
findings are observational associations.
+### How to Read the Numbers
+
+**p-value**: how unlikely it would be to observe a difference at least this large
+if, in reality, there were no difference at all. Below the alpha = 0.05 threshold
+the difference is called statistically significant.
+
+**Cohen's d** (for numeric variables): measures the distance between two groups in
+units of typical variability (standard deviations). Reference scale:
+
+- d ≈ 0.2: small effect
+- d ≈ 0.5: medium effect
+- d ≥ 0.8: large effect
+
+*Worked example with the project's real data:* in the first 28 days, students who
+eventually complete the course are active on average 12.8 days; those who do not,
+6.5. The difference (6.33 days), divided by the pooled standard deviation of the
+two groups (about 7.05 days), gives d = 6.33 / 7.05 ≈ 0.90: a large effect.
+
+**Cramer's V** (for categorical variables): measures the strength of association
+between two variables on a scale from 0 (no association) to 1 (perfect
+association). With a binary outcome, values around 0.1 indicate a weak
+association, around 0.3 medium, 0.5 and above strong.
+
+*Worked example with the project's real data:* for education level the chi-square
+test yields 737.2 on 32,593 enrollments; with a binary outcome the formula reduces
+to V = square root of (737.2 / 32,593) ≈ 0.15: a weak association.
+
---
## BQ1: Where and When Do Students Drop Out?
@@ -222,7 +293,7 @@ not demographics. All definitions use first-28-day behavioral data.
| Segment | Definition | Size | Non-completion rate |
|---------|-----------|------|---------------------|
-| **Ghost students** | ≤1 active day AND <10 clicks | **5,555** (17.0%) | **92.3%** |
+| **Ghost students** | ≤1 active day and <10 clicks | **5,555** (17.0%) | **92.3%** |
| **Assessment non-submitters** | No assessment submitted in first 28 days | **11,494** (35.3%) | **71.8%** |
| **Early disengagers** | Activity in days 0–14, zero in days 15–28 | **2,213** (6.8%) | **77.8%** |
@@ -234,12 +305,15 @@ Ghost students complete at just 7.7%, against a platform average of 47.2%.
| | Ghost Activation | Assessment Checkpoint | Week 3 Re-engagement |
|---|---|---|---|
| **Priority** | 1: Quick win | 2: Build next | 3: Invest when ready |
-| **Trigger** | Zero VLE activity by day 3 | 3 days before first deadline, not submitted | 3+ consecutive inactive days after initial activity |
+| **Trigger** | Zero VLE\* activity by day 3 | 3 days before first deadline, not submitted | 3+ consecutive inactive days after initial activity |
| **Action** | Email sequence: day-3 welcome + day-7 follow-up with first-step link | Reminder with assessment preview and time estimate | "We miss you" email with progress summary and peer comparison |
| **Cost** | **Low** (email automation only) | **Medium** (deadline-aware triggers + course calendar) | **Medium-High** (real-time activity tracking + personalization) |
| **Evidence** | BQ2: early engagement is strongest predictor; BQ3: behavior > demographics | BQ2: assessment submission is a key binary signal; BQ1: cliffs at deadlines | BQ1: mid-course dropout cliffs at weeks 3–4; BQ2: last-active-day predictor |
| **Impact estimate** | Largest: widest gap between segment and platform rate | Medium: substantial submitter vs non-submitter gap | Medium: targets distinct failure mode from ghosts |
+\* VLE = Virtual Learning Environment, the online platform where the course
+content lives.
+
**Impact estimation approach:** For each intervention, we model conservative conversion
scenarios (10–25% of targeted students change behavior). Converted ghost students are
assumed to achieve the platform-average completion rate, not the active-student rate.
@@ -282,3 +356,24 @@ The ghost–non-submitter overlap is substantial.*
qualitative. Actual engineering effort depends on existing platform infrastructure.
- **Ethical note.** All interventions target behavior, not demographics. Automated
outreach should include opt-out mechanisms to respect student autonomy.
+
+---
+
+## Chart Provenance
+
+All figures in this report are generated by the 7 analysis notebooks in
+[`notebooks/`](../notebooks/): the numeric prefix of each image file matches the
+notebook that produces it (for example `03_dropout_curves_overlaid.png` comes from
+`03_bq1_dropout_timing.ipynb`). The notebooks read the CSV files exported by the
+pipeline into `data/analysis/` (local folder, not versioned) and save the charts
+into `reports/figures/`.
+
+To regenerate the figures from a repository clone:
+
+1. run the pipeline: `python -m run_pipeline`
+2. run the notebooks in order (01 through 07): each notebook re-exports its own figures
+
+Full setup instructions are in the [README](../README.md), Quick Start section.
+The numbers quoted in the text are verified against the same pipeline-exported
+CSVs, in particular the statistical exports (`stats_*.csv`) for effect sizes and
+confidence intervals.
diff --git a/reports/it/REPORT.md b/reports/it/REPORT.md
index 3ca9032..556be68 100644
--- a/reports/it/REPORT.md
+++ b/reports/it/REPORT.md
@@ -1,8 +1,45 @@
-# Analisi della Retention Studentesca: Report Esecutivo
+# Analisi della Retention Studentesca: Report Esecutivo
-> Open University Learning Analytics Dataset (OULAD) | 32.593 iscrizioni | 7 corsi
->
-> Destinatario: Head of Product | Analisi osservazionale (associazioni, non relazioni causali) | No ML
+> **Analisi data-driven della retention e dell'abbandono degli studenti nella formazione online**
+
+> **Dati**: Open University Learning Analytics Dataset (OULAD), 32.593 iscrizioni,
+> 7 corsi. Dataset storico (coorti 2013–2014), stabile: nessun aggiornamento previsto.
+
+> **Autore**: [Alessandro Attene](https://www.linkedin.com/in/aleattene)
+
+> **Avvio dell'analisi**: aprile 2026
+
+> **Ultima revisione**: settembre 2026
+
+> **Destinatario**: Head of Product | Analisi osservazionale (associazioni, non
+> relazioni causali), nessun modello di machine learning
+
+---
+
+## Sintesi esecutiva
+
+Circa un'iscrizione su tre termina con il ritiro esplicito, e l'abbandono non è
+casuale: si concentra intorno alle tappe del corso. I segnali comportamentali dei
+primi 28 giorni predicono l'esito molto più fortemente di qualsiasi variabile
+demografica, e permettono di individuare presto gli studenti a rischio con
+interventi che non richiedono alcuna profilazione demografica.
+
+### I cinque numeri chiave
+
+| Metrica | Valore |
+|---------|--------|
+| Iscrizioni analizzate | 32.593, su 7 corsi (22 presentazioni) |
+| Tasso di ritiro complessivo | ~31%, dall'11,8% al 44,2% a seconda del modulo |
+| Predittore più forte | Decile di engagement nei primi 28 giorni (d di Cohen\* = 0,97) |
+| Divario comportamento vs demografia | Miglior predittore demografico: istruzione, V di Cramér\* = 0,15, superato da tutti i principali segnali comportamentali |
+| Segmento più a rischio | Studenti ghost: 5.555 iscrizioni (17,0%), non completamento al 92,3% |
+
+\* Le due misure di effect size (d di Cohen e V di Cramér) sono spiegate, con scala
+ed esempio svolto, nella sezione [Metodologia](#metodologia).
+
+**Azioni raccomandate** (dettagli in BQ5): attivazione degli studenti ghost entro il
+giorno 3, checkpoint prima della prima scadenza di valutazione, re-engagement alla
+settimana 3.
---
@@ -13,9 +50,13 @@ dataset OULAD: 32.593 iscrizioni studente-corso distribuite su 7 moduli, con cli
comportamentale completo dal Virtual Learning Environment (VLE) dell'università , record
delle valutazioni e profili demografici.
-**Definizione dell'outcome:** Ogni iscrizione è classificata come *Completato* (Pass o
-Distinction) o *Non completato* (Fail o Withdrawn). Questa suddivisione binaria è
-coerente con la letteratura OULAD e consente un'analisi di retention pulita.
+**Definizione dell'outcome:** Ogni iscrizione è classificata in una di due classi:
+
+- **Completato**: esito finale Pass o Distinction
+- **Non completato**: esito finale Fail o Withdrawn
+
+Questa suddivisione binaria è coerente con la letteratura OULAD e consente
+un'analisi di retention pulita.
**Toolkit statistico:**
@@ -24,13 +65,44 @@ coerente con la letteratura OULAD e consente un'analisi di retention pulita.
| Welch's t-test | Segnali continui vs. outcome | t-statistic, p-value, d di Cohen |
| Test chi-quadrato | Variabili demografiche categoriche vs. outcome | chi-quadrato, p-value, V di Cramér |
| Bonferroni + Benjamini-Hochberg | Correzione per confronti multipli | p-value corretti |
-| Bootstrap CI | Gruppi con tassi estremi (es. studenti ghost) | Intervalli di confidenza al 95% |
+| Bootstrap CI\* | Gruppi con tassi estremi (es. studenti ghost) | Intervalli di confidenza al 95% |
+
+\* CI = Confidence Interval (intervallo di confidenza): la forbice di valori entro
+cui, con il 95% di confidenza, cade il valore vero. Qui è stimata via bootstrap,
+cioè ricampionando molte volte i dati osservati.
Tutti i test utilizzano una soglia di significatività alfa = 0,05. L'effect size, non il
p-value, è il criterio primario per classificare i predittori, perché con ~32K osservazioni
anche differenze banali raggiungono la significatività statistica. Non vengono utilizzati
modelli di machine learning. Tutti i risultati sono associazioni osservazionali.
+### Come leggere i numeri
+
+**p-value**: indica quanto sarebbe improbabile osservare una differenza almeno così
+grande se, nella realtà , non ci fosse alcuna differenza. Sotto la soglia alfa = 0,05
+la differenza si dice statisticamente significativa.
+
+**d di Cohen** (per variabili numeriche): misura la distanza tra due gruppi in unitÃ
+di variabilità tipica (deviazioni standard). Scala di riferimento:
+
+- d ≈ 0,2: effetto piccolo
+- d ≈ 0,5: effetto medio
+- d ≥ 0,8: effetto grande
+
+*Esempio svolto con i dati reali del progetto:* nei primi 28 giorni, chi poi completa
+il corso è attivo in media 12,8 giorni; chi non completa, 6,5. La differenza (6,33
+giorni), rapportata alla deviazione standard aggregata dei due gruppi (circa 7,05
+giorni), dà d = 6,33 / 7,05 ≈ 0,90: un effetto grande.
+
+**V di Cramér** (per variabili categoriche): misura la forza dell'associazione tra
+due variabili su una scala che va da 0 (nessuna associazione) a 1 (associazione
+perfetta). Con un outcome binario, valori intorno a 0,1 indicano un'associazione
+debole, intorno a 0,3 media, da 0,5 in su forte.
+
+*Esempio svolto con i dati reali del progetto:* per il livello di istruzione il test
+chi-quadrato vale 737,2 su 32.593 iscrizioni; con outcome binario la formula si
+riduce a V = radice quadrata di (737,2 / 32.593) ≈ 0,15: un'associazione debole.
+
---
## BQ1: Dove e quando gli studenti abbandonano?
@@ -235,7 +307,7 @@ primi 28 giorni.
| Segmento | Definizione | Dimensione | Tasso di non completamento |
|----------|------------|------------|---------------------------|
-| **Studenti ghost** | ≤1 giorno attivo AND <10 click | **5.555** (17,0%) | **92,3%** |
+| **Studenti ghost** | ≤1 giorno attivo e <10 click | **5.555** (17,0%) | **92,3%** |
| **Non-submitter** | Nessuna valutazione consegnata nei primi 28 giorni | **11.494** (35,3%) | **71,8%** |
| **Early disengager** | Attività nei giorni 0–14, zero nei giorni 15–28 | **2.213** (6,8%) | **77,8%** |
@@ -248,12 +320,15 @@ una media di piattaforma del 47,2%.
| | Attivazione Ghost | Checkpoint Valutazioni | Re-engagement Settimana 3 |
|---|---|---|---|
| **Priorità ** | 1: Quick win | 2: Costruire dopo | 3: Investire quando pronti |
-| **Trigger** | Zero attività VLE entro il giorno 3 | 3 giorni prima della prima scadenza, non consegnato | 3+ giorni consecutivi di inattività dopo attività iniziale |
+| **Trigger** | Zero attività VLE\* entro il giorno 3 | 3 giorni prima della prima scadenza, non consegnato | 3+ giorni consecutivi di inattività dopo attività iniziale |
| **Azione** | Sequenza email: benvenuto giorno 3 + follow-up giorno 7 con link al primo step | Promemoria con anteprima della valutazione e stima del tempo | Email "Ci manchi" con riepilogo progressi e confronto con i pari |
| **Costo** | **Basso** (solo automazione email) | **Medio** (trigger consapevoli delle scadenze + calendario del corso) | **Medio-Alto** (tracciamento attività in tempo reale + personalizzazione) |
| **Evidenza** | BQ2: l'engagement precoce è il predittore più forte; BQ3: comportamento > demografia | BQ2: la submission è un segnale binario chiave; BQ1: cliff alle scadenze | BQ1: cliff di abbandono a metà corso alle settimane 3–4; BQ2: predittore ultimo-giorno-attivo |
| **Stima impatto** | Maggiore: divario più ampio tra segmento e tasso della piattaforma | Medio: divario sostanziale submitter vs non-submitter | Medio: targetizza un failure mode distinto dai ghost |
+\* VLE = Virtual Learning Environment, la piattaforma online dove vivono i
+contenuti del corso.
+
**Approccio alla stima dell'impatto:** Per ogni intervento, modelliamo scenari di
conversione conservativi (10–25% degli studenti targetizzati cambiano comportamento).
Gli studenti ghost convertiti si assumono raggiungere il tasso medio di completamento
@@ -303,3 +378,24 @@ appartenenti a più segmenti. La sovrapposizione ghost–non-submitter è sostan
- **Nota etica.** Tutti gli interventi targetizzano il comportamento, non la
demografia. L'outreach automatizzato dovrebbe includere meccanismi di opt-out
per rispettare l'autonomia degli studenti.
+
+---
+
+## Provenienza dei grafici
+
+Tutte le figure di questo report sono generate dai 7 notebook di analisi in
+[`notebooks/`](../../notebooks/): il prefisso numerico del file immagine corrisponde
+al notebook che lo produce (per esempio `03_dropout_curves_overlaid.png` nasce da
+`03_bq1_dropout_timing.ipynb`). I notebook leggono i CSV esportati dalla pipeline in
+`data/analysis/` (cartella locale, non versionata) e salvano i grafici in
+`reports/figures/`.
+
+Per rigenerare le figure da un clone del repository:
+
+1. eseguire la pipeline: `python -m run_pipeline`
+2. eseguire i notebook in ordine (da 01 a 07): ogni notebook riesporta le proprie figure
+
+Le istruzioni complete di setup sono nel [README](../../it/README.md), sezione
+Avvio Rapido. I numeri citati nel testo sono verificati sugli stessi CSV esportati
+dalla pipeline, in particolare sugli export statistici (`stats_*.csv`) per effect
+size e intervalli di confidenza.