| Clean re-run (deleted outputs, ran twice): results.json byte-identical, analytic.csv/exclusions.csv md5 identical |
PASS |
| analytic.csv rows == n_analysed (345) and no duplicate (iso3, year) and no missing values |
PASS |
| every balanced country has 23 distinct years; set equals balanced_countries |
PASS |
| exclusion ledger: n_before − n_removed = n_after on each row; chaining; first n_before = 439; last n_after = 345 |
PASS |
| change = mean_2022 − mean_2000 |
PASS |
| n_balanced + n_incomplete = n_total (15+5=20) |
PASS |
| Magnitudes: means 78–82 years are plausible. The 2022 baseline (78.69) is below the balanced mean (81.55) because the baseline includes 4 lower-life-expectancy countries |
PASS |
| Duplicates for TUR have identical values (script raises an error on conflict) |
PASS |