Verification checks (P4)
- Clean re-run: deleted results.json/figure1/table1/exclusions, re-ran analysis.py, results.json byte-identical (cmp) — PASS.
- CI contains estimate: 4.854 < 5.267 < 5.680 — PASS.
- effect_se > 0 (0.2107), baseline_metric > 0, model_metric > 0 — PASS.
- r_squared == pearson_r^2 (|diff|<1e-12) — PASS.
- model_metric^2 == (1-R²)·baseline_metric^2 (OLS identity) — PASS; model RMSE 3.59 < baseline 7.08.
- n_analysed (197) + n_excluded_missing (20) == 217 countries in 2023 — PASS.
- Exclusion ledger: 2349 − (396+1736+20) = 197 = n_analysed — PASS.
- table1 n_countries sum = 197 — PASS; 4 income levels.
- Analysis year rule: 2023 has 197 ≥150 complete countries and is the latest year — PASS.
- Magnitude: slope ~5.3 years per log point is in line with the known Preston-curve magnitude; robust to HC0–HC3 (SE 0.207–0.211), classical SE 0.222, leave-one-out β range [5.21, 5.33], dropping CAF/PSE β=5.23 — PASS.
- Figure inspected visually: scatter + OLS line, labelled axes — PASS.