Verification checks (P4)
- Clean re-run of out/analysis.py: results.json byte-identical: PASS
- CI contains ATT: PASS
- CI half-width = 1.96*SE: PASS
- wage CI contains ATE: PASS
- weeks CI contains ATE & low<high: PASS
- SEs positive: PASS
- wage p=0.022 consistent with derived SE (z=1153/503.83): PASS
- HIV 5km no star & |t|<1.645: PASS
- 5km ATT ** consistent: 1.96<|t|<2.576: PASS
- narcotics 3km *** consistent |t|>2.576: PASS
- fatal 1km *** consistent: PASS
- %change -35.0% = exp(-0.431)-1: PASS
- n_analysed = 25 and exclusions add up: PASS
- all locators present: PASS
- Note: JSON cannot store trailing zeros; 0.210 is stored as 0.21, -0.340 as -0.34 (numerically identical to the printed values; printed strings appear in the script's stdout).