| 1 |
Delete outputs, re-run analysis.py, byte-compare results.json and forecasts.csv |
PASS (identical) |
| 2 |
All required results.json keys present |
PASS |
| 3 |
forecasts.csv has 240 rows, 40 per (model, horizon) |
PASS |
| 4 |
target_date − origin_date = h quarters for all rows |
PASS |
| 5 |
actual equals infl_annualised of target quarter |
PASS |
| 6 |
snaive forecast equals infl of target − 4 quarters (≤ origin, asserted in code) |
PASS |
| 7 |
Leakage test: adding +50 to all quarters after origin 100 leaves forecasts unchanged; code asserts sample max date ≤ origin |
PASS |
| 8 |
RMSE ≥ MAE for every model/horizon; rel_improvement = 1 − ratio |
PASS |
| 9 |
loss_diff_mean_h4 recomputed from forecasts.csv; equals rmse_snaive_h4² − rmse_model_h4² |
PASS |
| 10 |
HAC SE > 0, lag 3 ≥ h−1, rectangular LRV positive (no fallback needed), dm = mean/se |
PASS |
| 11 |
n_analysed = 121 = 122 quarters (1995Q2–2025Q3) − 1 lag (p=1 at last origin); exclusions: 127 − 1 = 126 |
PASS |
| 12 |
Magnitudes vs baseline: model RMSE 2.19–2.46 vs snaive 2.85–2.88 pp, same order of magnitude; plausible |
PASS |
| 13 |
Influence: d_t summed by origin year shows large contributions from 2019–2022 origins (+20.6, +40.7, −45.7, +66.7); mean excluding 2021–22 origins = 2.87 (similar to full 2.82) |
NOTE (reported) |
| 14 |
Sample ACF of d_t lags 1–6: 0.21, −0.05, −0.29, −0.41, −0.16, −0.11 (negative at 3–4 → Bartlett/longer lags change SE; sensitivity reported) |
NOTE (reported) |