Verification checks (P4), 2026-10-30
- Clean re-run (deleted outputs, re-ran analysis.py): results.json and analytic.csv byte-identical: PASS
- analytic rows == n_analysed (308): PASS
- n_growth + n_missing == 309 window months: PASS
- sub-period counts 156 + 152 == 308: PASS
- exclusion ledger n_before-n_removed=n_after, chained, ends at n_analysed: PASS
- overall mean equals count-weighted sub-period means: PASS
- growth_12m recomputes from cpi/cpi_lag12 in analytic.csv: PASS
- min <= mean <= max: PASS
- vintage_used = 2026-10-28 for months >= 2014-01, 2016-07-15 before: PASS
- 2025-10 absent from analytic.csv (no imputation): PASS
- magnitudes plausible (all g in (-3, 10) %): PASS
- hand check growth_2022_06 = 100*(294.957/270.654-1), growth_2014_06 = 100*(237.231/232.357-1), min 2009-07 = 100*(214.726/219.016-1) from raw files: PASS
- Baseline comparison: mean_growth_12m_2001_2013 (baseline, 2.36) vs 2014-2026 (2.79); overall 2.57 lies between: PASS