| 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 |