Verification checks (P4)
- Clean re-run: deleted results.json/table1.csv/figure1.png, ran analysis.py twice; SHA-256 of results.json and table1.csv identical — PASS.
- n_train + n_test = n_analysed (2500 + 2501 = 5001) — PASS.
- n_input_rows − n_missing_rows − 1 = n_analysed (5217 − 215 − 1 = 5001); exclusions.csv adds up — PASS.
- table1 n sums to 5001; all se_bp > 0 — PASS.
- ANOVA cross-check with statsmodels OLS anova_lm: F = 0.26347, p = 0.90151, df (4, 4996) — identical — PASS.
- Monday contrast cross-check: OLS on Monday dummy with HC1 SE gives 0.0502 bp, CI [−0.319, 0.419], ≈ Welch CI [−0.319, 0.420] — PASS.
- CI contains estimate; conclusion code consistent with ANOVA p = 0.90 ≥ 0.05 → no_detectable_effect — PASS.
- Date ordering: max train date 2009-12-31 < min test date 2010-01-04; weekday means use train only — PASS.
- Magnitudes: weekday means (|mean| < 0.25 bp) tiny relative to daily SD (~5.5 bp); model RMSE 4.884 vs baseline 4.876 bp, consistent with no signal — PASS.
- Figure inspected visually: 5 points with 95% bars, all overlapping zero — PASS.