1# Verification checks (P4)2| check | outcome |3|---|---|4| Clean re-run (deleted outputs, ran twice): results.json byte-identical, analytic.csv/exclusions.csv md5 identical | PASS |5| analytic.csv rows == n_analysed (345) and no duplicate (iso3, year) and no missing values | PASS |6| every balanced country has 23 distinct years; set equals balanced_countries | PASS |7| exclusion ledger: n_before − n_removed = n_after on each row; chaining; first n_before = 439; last n_after = 345 | PASS |8| change = mean_2022 − mean_2000 | PASS |9| n_balanced + n_incomplete = n_total (15+5=20) | PASS |10| 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 |11| Duplicates for TUR have identical values (script raises an error on conflict) | PASS |12