Verification checks (P4)
Reproducibility: deleted out/results.json, table1.csv, figure1.png, exclusions.csv; re-ran out/analysis.py; results.json byte-identical (cmp) and table1.csv identical md5 → PASS.
Independent recomputation (plain numpy lstsq, reshaping monthly into quarters): β = −0.25576773, α = 0.18438835, Chow F = 6.0903330 — identical to script → PASS.
Internal consistency (all PASS):
- n_sub1+n_sub2 = n_analysed = 240; n_sub1 = 96, n_sub2 = 144
- effect_se > 0; CI contains estimate; CI width = 2·1.95996·SE
- model_metric ≤ baseline_metric; R² = 1 − (model/baseline)² identity holds
- sample_start < sample_end; dates 1960-01-01 / 2019-10-01 (no post-2019Q4 quarter)
- Chow F > 0, p in (0,1), df (2, 236); stability_conclusion consistent with p < 0.05
- conclusion = negative_effect consistent with CI upper bound < 0
- OLS identity α + β·mean(g) = mean(Δu)
- table1.csv slopes equal results keys; 3 rows
- exclusion ledger: 241 − 1 = 240 = n_analysed
- n_input_rows match README row counts (319, 945)
- magnitude: β ≈ −0.26 per 1% q/q growth, within conventional Okun range; HAC SE stable across lags 2–12 (0.034–0.037)
- figure inspected visually: two subperiod lines, labelled axes.