Verification checks (P4)
- Clean re-run (deleted results.json, table1.csv, figure1.png; re-ran analysis.py): results.json byte-identical — PASS
- Exclusion ledger: 319 − 79 removed = 240 = n_analysed — PASS
- n_sub1 + n_sub2 = 96 + 144 = 240 — PASS
- sample_start 1960-01-01 < sample_end 2019-10-01; no post-2019Q4 quarter in sample (assert in script) — PASS
- effect_se > 0; CI [-0.326, -0.186] contains -0.256 — PASS
- model_metric (0.250) < baseline_metric (0.325), consistent with R² ≈ 0.41 — PASS
- table1 full row equals results.json effect_estimate/intercept/effect_se — PASS
- Magnitude sanity: β ≈ −0.26 pp per 1% quarterly (non-annualised) growth; negative sign and sub-unit magnitude are economically plausible; intercept 0.18 pp ⇒ implied growth for stable unemployment −α/β ≈ 0.72% q/q — plausible (no external reference number used)
- Chow df = (2, 236) — PASS
- Gate runs: see phases.json