{
  "task_id": "F3-conf-01",
  "model_name": "ardl_direct_emp",
  "model_description": "Direct h-step OLS of gdp_yoy(t+h) on a constant, gdp_yoy(t-2) and emp_yoy(t-1), re-estimated at each origin on an expanding window of all pseudo-origins since 1998 whose target month is <= t-2, excluding rows touching 2020-03..2021-06 (COVID).",
  "n_origins": 48,
  "first_origin": "2022-05-01",
  "last_origin": "2026-04-01",
  "last_target_date_available": "2026-02-01",
  "last_predictor_date_available": "2026-03-01",
  "rmse_naive_h1": 0.813620914876824,
  "mae_naive_h1": 0.6421395833333333,
  "rmse_model_h1": 0.7412348321521008,
  "mae_model_h1": 0.6030099341924074,
  "rmse_naive_h3": 1.1399827160604965,
  "mae_naive_h3": 0.8715583333333333,
  "rmse_model_h3": 0.9466797756455972,
  "mae_model_h3": 0.795736324367131,
  "rel_improvement_rmse_h1": 0.08896782445136853,
  "rel_improvement_rmse_h3": 0.16956655367803053,
  "feasibility": "complete",
  "feasibility_reason": null,
  "data_issues": [
    {
      "issue": "yoy columns are rounded to 4 decimals; recomputation from levels (where 12-month lags exist in file) differs by at most 4.99e-05 (GDP) / 4.97e-05 (employment) pp",
      "handling": "used the provided gdp_yoy/emp_yoy columns as given"
    },
    {
      "issue": "gdp_level/gdp_yoy missing for 2026-08 and 2026-09 (not yet published)",
      "handling": "not needed: last target month used is 2026-07 (origin 2026-04, h=3); availability rule applied anyway"
    },
    {
      "issue": "COVID-19 outliers: gdp_yoy ranges from -16.2% (2020-04) to +18.5% (2021-04), emp_yoy similarly",
      "handling": "training rows whose target or predictor month lies in 2020-03..2021-06 are excluded from model estimation (pre-specified); naive forecasts unaffected; no evaluation target falls in that window"
    },
    {
      "issue": "file is the current (revised) vintage, not real-time first releases",
      "handling": "publication timing simulated only; no real-time validity claimed"
    }
  ],
  "n_input_rows": {
    "canada_gdp_employment.csv": 345
  },
  "n_analysed": 316,
  "random_seed": null,
  "n_analysed_h3_last_origin": 312,
  "dm_mean_lossdiff_h1": -0.1125499167294469,
  "dm_stat_h1": -1.3308871495753598,
  "dm_pvalue_h1": 0.18964676910318015,
  "mean_error_naive_h1": 0.29750625,
  "mean_error_model_h1": 0.3368100200474337,
  "dm_mean_lossdiff_h3": -0.40335799530026833,
  "dm_stat_h3": -1.2563330656283165,
  "dm_pvalue_h3": 0.21520408518487916,
  "mean_error_naive_h3": 0.46090833333333325,
  "mean_error_model_h3": 0.5288116902517451
}