# Verification checks (P4) — all executed 2026-10-30 | check | outcome | |---|---| | Clean re-run (deleted outputs, re-ran analysis.py): SHA-256 of results.json, analytic.csv, exclusions.csv identical | PASS | | analytic.csv rows (308) == n_analysed == n_months_growth | PASS | | n_months_growth + n_months_missing_growth == 309 window months | PASS | | Exclusion ledger: n_before − n_removed = n_after each row; chaining; last n_after == analytic rows | PASS | | mean_growth_12m recomputed from analytic.csv | PASS | | 156/308·mean_2001_2013 + 152/308·mean_2014_2026 == overall mean | PASS | | min ≤ mean ≤ max | PASS | | Independent hand computation from raw vintage files of g for 2022-06, 2014-06 (mixed vintages), 2016-07 | PASS | | vintage_used = 2026-10-28 exactly for months ≥ 2014-01 | PASS | | analytic dates within 2001-01..2026-09, monotone; no row for 2025-10 | PASS | | Magnitude plausibility: peak 8.98% in 2022-06, trough −1.96% in 2009-07, consistent with known CPI history; baseline 2001–2013 mean 2.36% | PASS | | SEs/CIs: none produced (descriptive estimands computed from published levels; no sampling model) | N/A |