{
 "task_id": "T1-forecast",
 "model_name": "base-effect drift (BED)",
 "model_description": "Univariate real-time model using only the RSAFS vintage dated V. The h-step-ahead log level is 100*ln L_{last(V)} + h*mu, where the monthly drift mu = mean of the last 12 monthly log changes in vintage V (= g_{last(V)}/12); the forecast of YoY growth for T = last(V)+h is that log level minus 100*ln L_{T-12}, with L_{T-12} taken from vintage V (already published). It therefore keeps the recent trend but accounts for the known base effects (the monthly changes that drop out of the 12-month window). No parameters are estimated (estimation window: the 13 most recent levels of vintage V); PAYEMS and UMCSENT are not used. Specified before looking at evaluation errors; no tuning on the 10 origins.",
 "n_origins": 10,
 "first_origin": "2025-10-31",
 "last_origin": "2026-07-31",
 "rmse_naive_h1": 0.996874,
 "mae_naive_h1": 0.848722,
 "rmse_naive_h3": 1.42004,
 "mae_naive_h3": 1.200449,
 "rmse_snaive_h1": 1.674543,
 "mae_snaive_h1": 1.30667,
 "rmse_snaive_h3": 1.316079,
 "mae_snaive_h3": 1.065869,
 "rmse_ar1_h1": 0.940524,
 "mae_ar1_h1": 0.797651,
 "rmse_ar1_h3": 1.187118,
 "mae_ar1_h3": 0.952689,
 "rmse_model_h1": 0.550298,
 "mae_model_h1": 0.486332,
 "rmse_model_h3": 1.14222,
 "mae_model_h3": 0.933977,
 "rel_improvement_rmse_h1": 0.447977,
 "rel_improvement_rmse_h3": 0.195643,
 "dm_stat_h1": 2.428978,
 "dm_pvalue_h1": 0.015141,
 "dm_stat_h3": 1.546577,
 "dm_pvalue_h3": 0.121965,
 "conclusion_code_h1": "model_better_significant",
 "conclusion_code_h3": "model_better_not_significant",
 "mean_abs_revision_h1_targets": 0.54822,
 "feasibility": "complete",
 "feasibility_reason": null,
 "data_issues": [
  {
   "issue": "Irregular RSAFS publication timing: vintages 2025-10-31 and 2026-03-31 end two months before the origin; vintage 2026-04-30 adds two months (2026-02, 2026-03) at once.",
   "handling": "Targets defined as last(V)+h from the vintage itself, per task rule; 2026-03 is never an h=1 target, h=1 target of 2025-10-31 is 2025-09."
  },
  {
   "issue": "PAYEMS vintage 2025-12-31 adds 2025-10 and 2025-11 at once (delayed release) and vintage 2026-02-28 contains a benchmark level shift (~-1 million).",
   "handling": "Documented; PAYEMS is not used by any forecast."
  },
  {
   "issue": "UMCSENT has 210 empty fields (pre-1978 non-survey months).",
   "handling": "Documented; UMCSENT is not used by any forecast."
  },
  {
   "issue": "Large annual benchmark revision of RSAFS between the last origin vintage and the current vintage (138 months changed back to 2015, up to 4.6% in level).",
   "handling": "Affects only estimand (d), which by design uses the current vintage; forecasts use vintage V only and are evaluated against first release."
  },
  {
   "issue": "first_release.csv dates first release at month-end granularity; 2026-02 and 2026-03 share the first-release vintage 2026-04-30.",
   "handling": "Used as given; yoy recomputed from levels (max abs diff < 5e-7) and levels verified against the shipped vintages."
  }
 ],
 "n_input_rows": {
  "RSAFS_current.csv": 417,
  "UMCSENT.csv": 887,
  "first_release.csv": 28,
  "vintages/PAYEMS_vintage_2025-10-31.csv": 1040,
  "vintages/PAYEMS_vintage_2025-11-30.csv": 1041,
  "vintages/PAYEMS_vintage_2025-12-31.csv": 1043,
  "vintages/PAYEMS_vintage_2026-01-31.csv": 1044,
  "vintages/PAYEMS_vintage_2026-02-28.csv": 1045,
  "vintages/PAYEMS_vintage_2026-03-31.csv": 1046,
  "vintages/PAYEMS_vintage_2026-04-30.csv": 1047,
  "vintages/PAYEMS_vintage_2026-05-31.csv": 1048,
  "vintages/PAYEMS_vintage_2026-06-30.csv": 1049,
  "vintages/PAYEMS_vintage_2026-07-31.csv": 1050,
  "vintages/RSAFS_vintage_2025-10-31.csv": 404,
  "vintages/RSAFS_vintage_2025-11-30.csv": 405,
  "vintages/RSAFS_vintage_2025-12-31.csv": 406,
  "vintages/RSAFS_vintage_2026-01-31.csv": 407,
  "vintages/RSAFS_vintage_2026-02-28.csv": 408,
  "vintages/RSAFS_vintage_2026-03-31.csv": 409,
  "vintages/RSAFS_vintage_2026-04-30.csv": 411,
  "vintages/RSAFS_vintage_2026-05-31.csv": 412,
  "vintages/RSAFS_vintage_2026-06-30.csv": 413,
  "vintages/RSAFS_vintage_2026-07-31.csv": 414
 },
 "n_analysed": 20,
 "random_seed": 20261030,
 "last_month_by_origin": {
  "2025-10-31": "2025-08",
  "2025-11-30": "2025-09",
  "2025-12-31": "2025-10",
  "2026-01-31": "2025-11",
  "2026-02-28": "2025-12",
  "2026-03-31": "2026-01",
  "2026-04-30": "2026-03",
  "2026-05-31": "2026-04",
  "2026-06-30": "2026-05",
  "2026-07-31": "2026-06"
 },
 "dm_lrv_h1": 0.809137,
 "sens_dm_hln_stat_h1": 2.304331,
 "sens_dm_hln_pvalue_t_h1": 0.046667,
 "dm_mean_loss_diff_h1": 0.690931,
 "boot_rmse_diff_model_minus_naive_h1": -0.446577,
 "boot_ci95_lo_h1": -0.696991,
 "boot_ci95_hi_h1": -0.208832,
 "boot_share_model_better_h1": 0.9998,
 "dm_lrv_h3": 2.118518,
 "sens_dm_hln_stat_h3": 1.157352,
 "sens_dm_hln_pvalue_t_h3": 0.27692,
 "dm_mean_loss_diff_h3": 0.711849,
 "boot_rmse_diff_model_minus_naive_h3": -0.277821,
 "boot_ci95_lo_h3": -0.688736,
 "boot_ci95_hi_h3": 0.080764,
 "boot_share_model_better_h3": 0.934,
 "mean_revision_h1_targets_current_minus_first": -0.54822,
 "revisions_h1_targets": {
  "2025-09": -0.550217,
  "2025-10": -0.664176,
  "2025-11": -0.43892,
  "2025-12": -0.328627,
  "2026-01": -0.975676,
  "2026-02": -0.409956,
  "2026-04": -0.748173,
  "2026-05": -0.16534,
  "2026-06": -0.744089,
  "2026-07": -0.457025
 }
}