Verification checks (P4)
- Clean re-run (deleted results.json/analytic.csv/exclusions.csv, re-ran): results.json byte-identical — PASS
- analytic.csv rows = n_analysed = 345 = 15 × 23; no duplicate (iso3, year); every country 23 years; iso3 set = balanced_countries — PASS
- Exclusion ledger: n_before − n_removed = n_after each row; chained; starts at 439 (n_input_rows), ends at 345 (n_analysed) — PASS
- change = mean_2022 − mean_2000 (tol 1e-9); balanced + incomplete = total (15+5=20) — PASS
- 2022 baseline uses 20 distinct iso3 (no duplicate TUR) — PASS (assert in script)
- Magnitudes: balanced means 78.06 → 81.55 yrs; baseline 2022 (78.69) lower than balanced 2022 because it includes NGA/ETH/IND/BGD — plausible
- data/ unchanged (SHA-256 identical to audit) — PASS. Note: a stray data/out/ dir was briefly created by mistake (wrong cwd) and removed; original files untouched (hashes verified).
- No random numbers used; random_seed = null.