Verification checks (P4)
- Clean re-run: deleted out/results.json and re-ran analysis.py. The output is byte-identical (cmp). PASS
- unverifiable_references equals the set of ids failing at least one check. PASS
- n_verified (4) + number unverifiable (1) = n_analysed (5) = number of references (5); exclusions ledger 5 - 0 = 5. PASS
- n_input_rows matches
wc -lfor every text file; reference_list.json has 5 top-level items. PASS - Every locator starts with the source id. PASS
- Year rule: admissible years are taken from the Bibliographic record (v1 year and the year of the reproduced version). R4 (2025) is admissible via v1 (2025), even though the reproduced v3 is from 2026. PASS
- Arithmetic cross-checks: R1 exp(-0.431)-1 = -35.01%, consistent with the printed -35.0%. R4 -0.268/0.366 = -0.7322 → -0.732, and -0.268*0.068/0.047 = -0.3877 → -0.388. R5 -0.0962/0.261 = -0.3686 vs printed -0.3685 (rounding of unrounded inputs; text states 36.85). PASS
- Baseline comparison: the header-only screen flags [R3], and so does the full analysis. The finding check adds no further flags, and R3 fails the finding check as well. PASS
- arXiv id in each entry equals the id in the extract header (assert in script). PASS
- Source-internal inconsistencies (R1 SE 0.210 vs 0.218; R4 own-wage SE) were detected and reported in data_issues rather than ignored. NOTED