# Verification checks (P4) | check | outcome | |---|---| | Rerun analysis.py from clean state; results.json byte-identical | PASS (cmp identical) | | Independent recomputation with csv module (no pandas): balanced set, means 2000/2022, baseline | PASS (all agree to <1e-6) | | n_countries_balanced + n_countries_incomplete = n_countries_total (15+5=20) | PASS | | n_analysed = 15 × 23 = 345 = rows of analytic.csv; no duplicate iso3-year; no NaN; 23 rows per country | PASS | | Exclusion ledger chains 439→416→415→345; n_before − n_removed = n_after each row; 439 − 94 = 345 | PASS | | change = mean_2022 − mean_2000 (81.553067 − 78.060267 = 3.4928) | PASS | | Magnitudes: means within data range 51.5–84.6; baseline 78.692 < balanced 2022 mean 81.553 explained by inclusion of low-LE BGD/ETH/IND/NGA in baseline | PASS (plausible) | | Duplicate TUR rows have identical values (no conflict) — asserted in script | PASS | | data/ unchanged (SHA-256 matches bundle.json) | PASS (note: a stray data/out/ dir was briefly created by a cwd error and removed immediately; files untouched) | | No CI/SE: the estimand is a descriptive census mean over fixed countries; none reported | n/a |