SPB Git

spb/wp29_uqo

Public

# Verification checks (P4, 2026-10-30)

Reproducibility: deleted out/results.json, table1.csv, figure1.png, exclusions.csv; re-ran ~/wp29/venv/bin/python out/analysis.py; byte-identical results.json (cmp) and identical table1.csv/figure1.png md5 on first run; repeated after adding sensitivity keys: results.json byte-identical (cmp). Script verifies SHA-256 of every source against data/README.md and asserts every printed number it uses against the source line (printed to stdout).

Independent recomputation and consistency (all PASS):

  • FE estimate recomputed independently from (θ, SE) of S1, S4: matches fe_estimate.
  • Q recomputed (0.3237 < df=1) → τ²=0, I²=0, RE = FE: consistent.
  • All SEs positive; FE and RE CIs contain their estimates; CI width = 3.92·SE.
  • pooled_significant_5pct consistent with RE CI (−0.396, 0.020 → includes 0 → false).
  • pooled_pct_change_re = 100(exp(re)−1).
  • k_extracted=5, k_harmonised=4 (non-null θ), k_pooled=2 (poolable flags) consistent.
  • poolable ⇒ SE non-null; not harmonisable ⇒ θ null; reason_if_not non-null iff not poolable.
  • Pooled θ lies within the range of poolable θ; |RE − baseline unweighted mean| < 0.05.
  • Signs: S1, S3, S4 θ<0 (faster with AI), S2 θ>0 (slower) — match the printed directions.
  • Exclusion ledger: 5 − (0+1+2) = 2 = k_pooled.
  • table1.csv: 5 rows × 12 columns.
  • Heterogeneity label follows the I² rule.
  • Sensitivities (in results.json): S1 SE from CI → FE −0.1891 [−0.3954, 0.0172]; S4 θ from time ratio → FE −0.1897 [−0.3992, 0.0198]; conclusion unchanged.
  • Information rules: no number outside the extracts used; S2 CI (figure-only) and S3 SE (stars only) set to null.
Files · main
Menu

Theme