Verification checks (P4)
- [PASS] Clean re-run (deleted results.json/analytic.csv/exclusions.csv, re-ran) → results.json byte-identical.
- [PASS] analytic rows == n_analysed (308)
- [PASS] n_growth + n_missing == 309 window months
- [PASS] ledger n_before − n_removed == n_after on each row
- [PASS] ledger chained; starts at 834+153=987 stacked rows, ends at n_analysed
- [PASS] growth_12m recomputed from cpi/cpi_lag12 columns
- [PASS] vintage_used = 2016-07-15 before 2014-01, 2026-10-28 from 2014-01
- [PASS] overall mean equals count-weighted mean of sub-period means (156, 152 months)
- [PASS] max equals analytic max and equals growth_2022_06
- [PASS] no 2025-10 row; analytic dates within 2001-01..2026-09
- [PASS] magnitudes plausible (|g| < 15%); window mean 2.57% vs baseline 2001–13 mean 2.36% (same order)
- No CIs/SEs: estimands are deterministic transforms of published data (no sampling uncertainty).