# Verification checks (P4) — 2026-10-30 | # | check | outcome | |---|---|---| | 1 | Delete out/results.json, re-run analysis.py, byte-compare with previous output (cmp) | PASS (identical) | | 2 | Input SHA-256 unchanged after runs (data/ not modified) | PASS | | 3 | All ids E1–E5 present | PASS | | 4 | n_harmonised (4) = number of non-null values | PASS | | 5 | n_not_harmonisable (1) = number with harmonisable=false | PASS | | 6 | n_harmonised + n_not_harmonisable = n_analysed = 5 = n_raw − 0 excluded (exclusions.csv) | PASS | | 7 | harmonisable=false ⇔ value=null ⇔ missing_quantity non-null | PASS | | 8 | E1 = -35.0141% rounds to author-printed Table 6 "% change" -35.0% | PASS | | 9 | E1 sign/magnitude: negative and smaller in magnitude than 100·|b| = 43.1 (exp transform) | PASS | | 10 | E2 = 100·1.47/75.0 = 1.96% | PASS | | 11 | E3 = -1.8236% is within (-2.5, -1.5), consistent with abstract "2% employment decline" | PASS | | 12 | E5 = -9.62 pp; -9.62/26.1 = -0.3686 ≈ printed % Change -0.3685 (rounding) | PASS | | 13 | n_input_rows equals `wc -l` / JSON item counts | PASS | | 14 | random_seed null; task_id; feasibility "complete" with null reason | PASS | | 15 | E4: regex search for a printed level of the rate per 100,000 in the Armendariz extract returns 0 hits; manual reading confirms none printed | PASS (supports harmonisable=false) | | 16 | A19 anchor bug found during development (search anchored on header line 7 instead of the table) — fixed, re-run | FIXED | No standard errors/CIs are produced, so SE-positivity / CI-containment checks are not applicable.