Verification checks
- Reproducibility: analysis.py re-run from clean out/results.json -> identical (see below).
- Counts: n_raw 1000 − removed 0 = n_analysed 1000; 40 schools × 25 = 1000; treated schools 20. PASS
- SEs positive: se_iid 0.282, se_cluster 0.729. PASS
- CI [-0.513, 2.436] contains tau_hat 0.961; CI symmetric with t(39) quantile. PASS
- Decision consistency: p=0.195 >0.05 and CI contains 0 -> effect_significant_5pct=false. PASS
- Magnitude vs baseline: se_cluster/se_iid = 2.58 ≈ sqrt(design effect 1+24*0.240=6.77)=2.60. PASS
- Cross-check: school-means OLS SE 0.738, p 0.201 — same conclusion. PASS
- tau_hat equals mean_treated − mean_control (51.282−50.321=0.961). PASS