# Verification checks (P4) | # | check | outcome | |---|---|---| | 1 | Clean re-run (deleted results.json, table1.csv, figure1.png; re-ran analysis.py) reproduces byte-identical results.json and table1.csv | PASS | | 2 | Figure-only edit (minor ticks) re-run: results.json byte-identical | PASS | | 3 | table1.csv has 27 rows; rel_bias_var empty for all wcb rows | PASS | | 4 | coverage & mc_se_coverage have 27 keys; rel_bias_var 18 keys | PASS | | 5 | all MC SE > 0; all coverages in [0,1]; all mean half-widths > 0 | PASS | | 6 | n_failure_cells == len(failure_cells); failure_cells == {coverage<0.90} recomputed | PASS | | 7 | n_analysed == n_cells × R = 18000; exclusions ledger 18000 − 0 = 18000 | PASS | | 8 | Exact E[V̂_CR0]/Var(ȳ) (closed-form trace computation, state/verify_exact.py) vs MC estimate: z-scores −0.70…+1.40 in 8 cells, +2.46 in G5_icc0.2 (one of 9 beyond 2 MC SE; V̂ is right-skewed at G=5 so the normal MC approximation is rough; no implementation error indicated since the other 8 agree and CR1/CR0 ratio = G/(G−1) exactly) | PASS (with note) | | 9 | MC Var(ȳ)/exact Var(ȳ) in [0.93, 1.06] in all cells (check_mc_var_ybar_over_exact), consistent with sampling error of a variance from R=2000 (SE≈0.032); mean ȳ ≈ 0 | PASS | | 10 | Vectorised WCB t* equals brute-force explicit y* construction (state/verify_wcb.py): max abs diff 7e-15 | PASS | | 11 | Baseline (naive i.i.d. z-interval) behaves as expected: ≈0.95 at ICC=0, 0.29–0.49 with ICC>0 — magnitudes coherent with cluster methods improving on baseline when ICC>0 | PASS | | 12 | No degenerate bootstrap draws (n_degenerate_bootstrap_draws = 0) | PASS | | 13 | Runtime ≈ 2 s (< 600 s limit) | PASS |