# Verification checks (P4) Reproducibility: out/ deliverables deleted, analysis.py run twice from workspace root; results.json, table1.csv and stdout byte-identical (cmp) -> PASS. (Note: an early comparison using /tmp was contaminated by another process writing to /tmp; redone inside out/state/scratch.) | check | outcome | detail | |---|---|---| | FE recomputed independently | PASS | -0.188143 vs -0.188143 | | Q recomputed | PASS | 0.323686 | | tau2=0 since Q RE==FE | PASS | Q=0.3237<1 | | I2 rule | PASS | I2=0.0 | | SEs positive | PASS | 0.1063,0.1063 | | CIs contain estimates | PASS | [-0.3964,0.0201] | | CI width = 2*1.96*SE | PASS | | | significance flag consistent | PASS | False | | pct change | PASS | -17.150% | | counts | PASS | 5,4,2 | | poolable implies SE non-null; not harmonisable implies null theta | PASS | | | reason_if_not present iff not poolable | PASS | | | S1 SE vs CI | PASS | 0.1378 vs 0.14 | | S1 p consistent with b/SE | PASS | 0.0865 vs 0.086 | | S4 approx SE reproduces p | PASS | | | S3 printed % vs ratio of means | PASS | -0.2981 vs -0.2979 (rounding) | | S4 printed % vs ratio of means | PASS | 0.1125 vs 0.111 (small discrepancy, reported) | | FE within range of pooled inputs | PASS | -0.240..-0.118 | | magnitude vs baseline unweighted mean of pooled | PASS | -0.1881 vs -0.1788 | | exclusion ledger chain | PASS | 5->5->4->2 | | table1 has 5 rows and 12 cols | PASS | | No failed checks. Two small source-internal discrepancies (S3, S4 printed % vs ratio of printed means) are recorded as data_issues; sensitivity keys show negligible effect on FE (sensitivity_s4_ratio_of_means, sensitivity_s1_se_from_ci).