Verification checks (P4)
- [PASS] clean re-run: deleted results.json/table1.csv/figure1.png, re-ran analysis.py, results.json byte-identical (cmp)
- [PASS] n_sub1+n_sub2==n_analysed==240
- [PASS] n_sub1==96, n_sub2==144
- [PASS] exclusions: 319 - sum(removed) == 240
- [PASS] exclusions chained (n_after==next n_before; n_before-n_after==n_removed)
- [PASS] effect_se>0
- [PASS] CI contains estimate and symmetric ±1.96 SE
- [PASS] sample_start<sample_end, sample_end<=2019-10-01
- [PASS] model_metric < baseline_metric
- [PASS] R2 identity 1-(model/baseline)^2 == r_squared
- [PASS] ssr_pooled >= ssr_sub1+ssr_sub2
- [PASS] Chow F recomputed from SSRs
- [PASS] stability_conclusion consistent with p
- [PASS] conclusion consistent with CI
- [PASS] table1 rows match results
- [PASS] magnitude plausible: beta in [-0.6,-0.1] (literature ~ -0.3 to -0.5 for annualised/levels variants; q/q non-annualised ~ -0.25..-0.35)
- [PASS] HAC SE >= iid SE (positive serial correlation expected)