# Verification checks (P4) - Clean re-run (deleted results.json, table1.csv, figure1.png, exclusions.csv; re-ran analysis.py): results.json byte-identical — PASS. (A first attempt compared against a copy in shared /tmp that had been overwritten by an unrelated process; repeated with a workspace-local copy — PASS.) - n_sub1 + n_sub2 = n_analysed = 240 — PASS - Exclusion ledger: 319 − (5+2+72) = 240; n_before − n_after = n_removed each row — PASS - effect_se > 0 — PASS - CI contains estimate; half-width = 1.959964·SE — PASS - model_metric < baseline_metric; R² = 1 − (model/baseline)² — PASS - ssr_pooled = 240·model_metric² — PASS - Chow F and p recomputed independently from SSRs, df (2,236) — PASS - ssr_unrestricted ≤ ssr_pooled — PASS - stability_conclusion consistent with p<0.05 — PASS - conclusion code = negative_effect and CI upper < 0 — PASS - table1 slopes and n match results.json — PASS - sample_start/end = 1960-01-01/2019-10-01; code asserts index == 240 consecutive quarters (no post-2019 data) — PASS - hac_lags = floor(4(240/100)^(2/9)) = 4 — PASS - Magnitude vs baseline: residual RMSE 0.250 vs 0.325 pp; β ≈ −0.26 in line with conventional Okun estimates (~ −0.3 to −0.5 for annualised quarterly diff form scaled). Sensible.