{
  "task_id": "F3-conf-03",
  "n_origins": 60,
  "first_origin": "2021-09-01",
  "last_origin": "2026-08-01",
  "lambda": 50.0,
  "normalisation_window": "expanding",
  "n_features": 8,
  "rmse_naive": 0.8830699166753823,
  "mae_naive": 0.6989594000000001,
  "rmse_mean": 0.5439355781141625,
  "mae_mean": 0.42929777256194207,
  "rmse_ridge": 0.5607989303521244,
  "mae_ridge": 0.45141289074453916,
  "rel_improvement_vs_naive": 0.3649439078805412,
  "rel_improvement_vs_mean": -0.031002480654837017,
  "feasibility": "complete",
  "feasibility_reason": null,
  "data_issues": [
    {
      "issue": "README states the first month (1992-01) of each change series is empty, but ['ip_growth', 'oil_chg', 'permit_chg'] are populated for 1992-01.",
      "handling": "Values used as given. Only ip_growth 1992-01 enters (as the lag-2 feature of the 1992-03 training row); the task spec explicitly starts training rows at 1992-03, implying this is intended."
    },
    {
      "issue": "Missing values: {'neworder_chg': 2} (neworder_chg 1992-01/02, documented in README).",
      "handling": "Not used: training rows start at 1992-03 per spec, so no imputation needed."
    },
    {
      "issue": "Extreme ip_growth values (|x|>4; 2008-09 hurricanes/financial crisis, 2020 COVID-19) (2008-09: -4.50, 2020-04: -14.14, 2020-06: 6.35).",
      "handling": "Genuine observations; kept, no winsorising (spec fixes the model). They lie in every training window and influence standardisation and coefficients."
    },
    {
      "issue": "Current-vintage (revised) data; publication lags ignored.",
      "handling": "Results interpreted as pseudo-out-of-sample on revised data only, not real-time."
    }
  ],
  "n_input_rows": {
    "ip_predictors.csv": 417
  },
  "n_analysed": 413,
  "random_seed": 0
}