# Verification checks (P4) | # | check | outcome | |---|---|---| | 1 | Clean re-run (results.json deleted, script re-run) byte-identical to previous output (`cmp`) | PASS | | 2 | SHA-256 of all inputs match data/README.md / bundle.json | PASS | | 3 | n_harmonised (4) + n_not_harmonisable (1) = n_analysed (5) = items in effects.json; exclusions: 5 − 0 = 5 | PASS | | 4 | Every non-null value has harmonisable=true and missing_quantity=null; the null value (E4) has harmonisable=false and a named missing quantity | PASS | | 5 | E1 -35.01% rounds to the printed Table 6 '% change' -35.0% (internal_checks.E1_matches_printed_pct_change_row) | PASS | | 6 | E5: -0.0962/0.261 = -0.3686 ≈ printed % Change -0.3685 (within 1e-4); -9.62 pp consistent | PASS | | 7 | E4: extract contains no printed outcome mean/level (regex search for mean/baseline/dep. var. returns nothing) | PASS | | 8 | Signs: E1, E3, E5 negative; E2 positive — match printed signs | PASS | | 9 | Magnitudes vs source text: E2 1.96% vs abstract 1.5 pp on ~75% base (≈2%); E3 -1.82% vs abstract "2% employment decline" | PASS (plausible) | | 10 | No uncertainty intervals produced, so no CI-contains-estimate checks apply; random_seed null (no randomness) | N/A |