# Verification checks (P4) — 2026-10-30 | # | check | outcome | |---|---|---| | 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| = 1.1565 (`check_dcr_hiv_5km_abs_z`) < 1.645, consistent with no star → significant_10pct = false | PASS | | 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 |