# Verification checks (P4) — 2026-10-30 Reproducibility: deleted results.json/table1.csv/figure1.png/exclusions.csv, ran `out/analysis.py` twice; results.json byte-identical (cmp), table1.csv and figure1.png identical SHA-1. PASS. Internal consistency (all executed by a separate script, all PASS): - n_sub1 (96) + n_sub2 (144) = n_analysed = 240. - Exclusion ledger: 314 merged quarters − 26 (post-2019Q4) − 48 (pre-1960Q1) = 240; chain n_after→n_before consistent. (The merged panel of 314 already excludes 2025Q4, which has only 2 non-missing months; GDPC1 1947Q1–Q4 has no UNRATE overlap.) - 1960Q1 values recomputed by hand from raw CSV: Δu = −0.4667 pp, g = 2.2237 % — match pipeline. - Independent numpy lstsq OLS reproduces α, β to 1e-12. - SEs positive; 95% CI contains β; conclusion `negative_effect` ⇔ CI upper < 0; `unstable` ⇔ Chow p < 0.05. - R² = 1 − (model_metric/baseline_metric)² holds; model_metric < baseline_metric. - table1.csv matches results.json; n column = 240/96/144. - Last quarter used is 2019Q4 (information rule); sample_start/end strings correct. - Magnitude: β = −0.256 within the usual quarterly Okun range (roughly −0.2 to −0.4); classical OLS SE 0.020 < HAC SE 0.036 (positive autocorrelation, as expected); HAC SE stable across lags 2–12 (0.034–0.037). No failed checks.