Verification checks (P4)
- Clean re-run of out/analysis.py: results.json byte-identical (cmp) -> PASS
- n_analysed == rows analytic.csv -> PASS
- n_analysed == n_balanced*23 -> PASS
- balanced+incomplete==total -> PASS
- unique (iso3,year) in analytic -> PASS
- no NaN in analytic -> PASS
- ledger chain -> PASS
- ledger start=n_input_rows, end=n_analysed -> PASS
- change == m2022-m2000 -> PASS
- recompute means from analytic -> PASS
- baseline recompute 2022 (20 countries, TUR once) -> PASS
- magnitudes 40-90 years -> PASS
- balanced_countries sorted -> PASS
Note: baseline (78.692, all 20 countries) is lower than balanced 2022 mean (81.553) because it includes the 4 low-LE countries (BGD, ETH, IND, NGA) excluded from the balanced set; direction expected.