# Verification checks (P4) - Clean re-run (outputs deleted, analysis.py re-run): results.json and forecasts.csv byte-identical: PASS - Leakage test: all values after 2024-12-01 set to 9.9 in a temp copy; forecasts for origins <= 2024-12-01 identical, later ones change: PASS - 144 ledger rows: PASS - unique (origin,h,model): PASS - target=origin+h months: PASS - actuals match data: PASS - n_eval = non-missing actuals: PASS - naive = last obs <= origin: PASS - rmse/mae naive h1 recomputed from ledger: PASS - rmse/mae model h1 recomputed from ledger: PASS - rel_improvement h1 identity: PASS - rmse/mae naive h3 recomputed from ledger: PASS - rmse/mae model h3 recomputed from ledger: PASS - rel_improvement h3 identity: PASS - RMSE>=MAE>0: PASS - exclusion ledger: 945-1-3=941=n_analysed: PASS - first_origin h1 (plausible magnitude): PASS - Descriptive: UNRATE min 3.5 / max 4.5 over 2023-07..2026-09 (non-missing): computed, cited in report Uncertainty.