| 1 |
Deleted out/results.json, re-ran analysis.py, byte-compared with previous output (cmp) |
PASS (identical) |
| 2 |
All printed SEs (Table 6/7) and derived wage SE > 0 |
PASS |
| 3 |
Derived DCR 95% CI [-0.8426, -0.0194] contains the estimate -0.431 |
PASS |
| 4 |
Derived DCR CI excludes 0 and implied normal p = 0.0401 (check_dcr_att_5km_p_implied_normal) lies in (0.01, 0.05), consistent with the printed ** |
PASS |
| 5 |
HIV 5 km |
z |
| 6 |
Wage CI [166, 2141] contains 1153; midpoint 1153.5 (check_ri_wage_ci_midpoint) ⇒ interval symmetric up to rounding |
PASS |
| 7 |
p implied by derived SE 503.8265 is 0.0221 (check_ri_wage_p_implied_by_derived_se), matching printed p = 0.022 ⇒ 1.96 normal convention is consistent with the source |
PASS |
| 8 |
Weeks-on-UI CI ordered: -2.24 < -1.99 < -1.75 |
PASS |
| 9 |
Table 3 "Difference in means" wage cell identical to Table 2 ATE cell (check_table3_wage_identical_to_table2) |
PASS |
| 10 |
Locators present for every non-boolean value key; p-value null with "not reported" locator |
PASS |
| 11 |
Counts: n_analysed = 25 = exclusions n_after (25 − 0) |
PASS |
| 12 |
Printed literals asserted (in analysis.py) to equal parsed numeric values; JSON keeps trailing zeros (0.210, -0.340) |
PASS |
| 13 |
Cross-check Table 6 vs Table A19 SE for same estimate: 0.210 vs 0.218 |
DISCREPANCY IN SOURCE — reported in data_issues; Table 6 used as key requires |
| 14 |
Observations vs regions: 17,250 = 25 × (50 + 640), not consistent with 608 controls |
DISCREPANCY IN SOURCE — reported in data_issues; value reported as printed |
| 15 |
Narrative 3.5% wage increase = 1153/33043 |
PASS |