{
  "task_id": "F3-dev-01",
  "model_name": "AR2_diff",
  "model_description": "AR(2) with intercept on monthly first differences of UNRATE, estimated by OLS on an expanding window starting 1948-01 (regression rows touching missing values dropped), re-estimated at every origin; level forecasts by iterating the difference recursion.",
  "n_origins": 36,
  "first_origin": "2023-07-01",
  "last_origin": "2026-06-01",
  "n_evaluated_h1": 35,
  "rmse_naive_h1": 0.11710800875382403,
  "mae_naive_h1": 0.09142857142857148,
  "rmse_model_h1": 0.11985758089022913,
  "mae_model_h1": 0.09565582574189531,
  "n_evaluated_h3": 35,
  "rmse_naive_h3": 0.15856499343441843,
  "mae_naive_h3": 0.12000000000000005,
  "rmse_model_h3": 0.15977032355322282,
  "mae_model_h3": 0.12128483318799818,
  "rel_improvement_rmse_h1": -0.023478941924331087,
  "rel_improvement_rmse_h3": -0.007601489412623064,
  "dm_stat_h1": 2.5036162781392184,
  "dm_pvalue_h1": 0.017257584632766314,
  "mean_loss_diff_h1": 0.000651553982572098,
  "dm_stat_h3": 1.3581793864758895,
  "dm_pvalue_h3": 0.18335155056438499,
  "mean_loss_diff_h3": 0.0003836991454443411,
  "feasibility": "complete",
  "feasibility_reason": null,
  "data_issues": [
    {
      "issue": "Missing UNRATE value(s) at 2025-10-01 (empty field).",
      "handling": "Origin 2025-10-01: naive uses 2025-09 value; AR forecasts iterated from last observed month (2025-09). Pairs with missing target (origin 2025-09 h1, origin 2025-07 h3) kept in ledger with empty actual and excluded from error statistics. In later training windows, regression rows touching the missing month are dropped; the forecasting state uses linear interpolation between observations dated <= origin."
    },
    {
      "issue": "Final (revised) vintage, not real-time data.",
      "handling": "Errors measure forecastability of the revised series; no real-time validity claimed."
    },
    {
      "issue": "COVID-19 spike 2020-03..2020-05 (4.4 -> 14.8 -> 13.2) inside every training window.",
      "handling": "Kept as genuine data; no outlier treatment (specification fixed a priori, not tuned on test errors)."
    }
  ],
  "n_input_rows": {
    "UNRATE.csv": 945
  },
  "n_analysed": 941,
  "n_regression_rows_last_window": 935,
  "random_seed": null
}