# Verification checks (2026-10-30) | # | check | outcome | |---|---|---| | 1 | Input SHA-256 match README/bundle.json | PASS | | 2 | Quarterly series recomputed from monthly file (max abs dev < 1e-5; asserted in script) | PASS (≤5e-7) | | 3 | Clean re-run (deleted results.json, forecasts.csv) gives byte-identical files | PASS | | 4 | forecasts.csv has 240 rows, 40 per (model, horizon) | PASS | | 5 | target_date = origin_date + h quarters for all rows | PASS | | 6 | actual equals infl_annualised of target quarter | PASS | | 7 | snaive forecast equals value of quarter t+h−4 (≤ origin) | PASS | | 8 | Look-ahead test: adding +5 to all inflation values after 2020Q1 leaves model forecasts at origins ≤ 2020Q1 unchanged and changes later ones | PASS | | 9 | RMSE ≥ MAE for every model/horizon | PASS | | 10 | loss_diff_se_h4 > 0; dm_stat = mean/se | PASS | | 11 | d̄ recomputed independently from forecasts.csv (2.81795) equals loss_diff_mean_h4 | PASS | | 12 | hac_lags_h4 = 4 ≥ h−1 = 3 | PASS | | 13 | n_raw (127) − removed (1) = 126 usable quarters; last estimation sample = 122 obs to 2025Q3 − p(=1) lags = 121 = n_analysed | PASS | | 14 | Magnitudes vs baseline: model RMSEs (2.19–2.46) below snaive (2.85–2.88), same order of magnitude as series sd (2.39) | PASS (plausible) | Note: sample autocorrelations of d_t at lags 1–4: 0.21, −0.05, −0.29, −0.41. Negative autocorrelation at lags 3–4 makes the SE sensitive to the lag/kernel choice (see sensitivity_h4).