Verification checks (P4)
- [PASS] clean re-run: deleted outputs, ran analysis.py twice, SHA-256 of results.json and table1.csv identical
- [PASS] n_sub1+n_sub2==n_analysed==240
- [PASS] n_sub1==96, n_sub2==144
- [PASS] sample_start=1960-01-01, sample_end=2019-10-01
- [PASS] exclusion ledger: 319 - removed = 240
- [PASS] effect_se>0 and subperiod SEs>0
- [PASS] CI contains estimate
- [PASS] CI = beta +/- 1.96*se
- [PASS] model_metric < baseline_metric
- [PASS] R2 identity 1-(model/baseline)^2 == r_squared
- [PASS] SSR_pooled >= SSR1+SSR2
- [PASS] Chow F recomputed from SSRs with df (2,236)
- [PASS] stability_conclusion consistent with p
- [PASS] conclusion consistent with CI
- [PASS] table1 full row matches results
- [PASS] table1 has 3 rows and required columns
- [PASS] magnitude plausible: beta in [-0.6,-0.1] (literature ~ -0.3 to -0.5 in levels-of-gap form; difference form typically -0.2 to -0.4)
- [PASS] hac_lags=floor(4*(240/100)^(2/9))=4