{
  "task_id": "T1-forecast",
  "model_name": "base-effect drift (BED)",
  "model_description": "Forecast of the log level of RSAFS at T = last(V)+h from the RSAFS vintage dated V only: ln L_hat_T = ln L_last + h*mu, where mu = (ln L_last - ln L_{last-12})/12 is the trailing-12-month mean monthly log change in the same vintage (i.e. the latest YoY growth spread evenly over months). The YoY forecast is g_hat_T = 100*(ln L_hat_T - ln L_{T-12}), where L_{T-12} (always <= last(V) since h<=3) is the base-period level as published in vintage V. Equivalently: naive forecast plus the known base effect (drop-out of the monthly log changes of months last-11..last-12+h) plus h months of drift. No parameters are estimated on the evaluation sample; the specification was fixed before computing any out-of-sample error and no variant was compared. PAYEMS and UMCSENT are not used; RSAFS_current and first_release.csv never enter any forecast.",
  "n_origins": 10,
  "first_origin": "2025-10-31",
  "last_origin": "2026-07-31",
  "rmse_naive_h1": 0.9968743518549719,
  "mae_naive_h1": 0.8487221879899998,
  "rmse_naive_h3": 1.420040373740657,
  "mae_naive_h3": 1.2004486337699998,
  "rmse_snaive_h1": 1.6745428991300964,
  "mae_snaive_h1": 1.30666987625,
  "rmse_snaive_h3": 1.3160788989366212,
  "mae_snaive_h3": 1.06586869147,
  "rmse_ar1_h1": 0.9405244111134986,
  "mae_ar1_h1": 0.7976510573200001,
  "rmse_ar1_h3": 1.1871178147503472,
  "mae_ar1_h3": 0.9526895961500002,
  "rmse_model_h1": 0.5502977033465031,
  "mae_model_h1": 0.4863319392900001,
  "rmse_model_h3": 1.1422197516160006,
  "mae_model_h3": 0.9339774440799996,
  "rel_improvement_rmse_h1": 0.4479768665704803,
  "dm_stat_h1": 2.4289778515163323,
  "dm_pvalue_h1": 0.015141457285868354,
  "conclusion_code_h1": "model_better_significant",
  "rel_improvement_rmse_h3": 0.19564276288344107,
  "dm_stat_h3": 1.5465768014563988,
  "dm_pvalue_h3": 0.12196532729131726,
  "conclusion_code_h3": "model_better_not_significant",
  "mean_abs_revision_h1_targets": 0.5482198028389015,
  "feasibility": "complete",
  "feasibility_reason": null,
  "data_issues": [
    {
      "issue": "Irregular RSAFS publication timing: vintages 2025-10-31 to 2026-03-31 end two months before the vintage date; the 2026-04-30 vintage adds 2026-02 and 2026-03 at once.",
      "handling": "Targets defined as last(V)+h from the last month actually present in each vintage, as TASK.md prescribes; target months are therefore unevenly spaced (h=1 skips 2026-03, h=3 skips 2026-05)."
    },
    {
      "issue": "Recent months are revised from vintage to vintage (e.g. 2026-05 level 763705 in the 2026-06-30 vintage, 766876 in 2026-07-31).",
      "handling": "Each forecast uses the values as published in its own vintage; actuals are first releases from first_release.csv."
    },
    {
      "issue": "Large downward level revision (about 3.5-4%) between the 2026-08-31 and 2026-09-30 vintages, visible in first_release.csv (2026-08 base-year level 700218 vs 731700 in shipped vintages) and in RSAFS_current.",
      "handling": "YoY growth is always computed within a single vintage so the level shift mostly cancels; not corrected. It affects the h=3 actuals of the last two origins (2026-08, 2026-09) and estimand (d)."
    },
    {
      "issue": "PAYEMS publication also delayed (2025-10-31 vintage ends 2025-08; 2025-12-31 adds two months).",
      "handling": "PAYEMS not used by the model; recorded only."
    },
    {
      "issue": "UMCSENT has 210 empty fields, all before 1978 (quarterly survey era); file is current vintage.",
      "handling": "UMCSENT not used by the model; recorded only."
    },
    {
      "issue": "RSAFS_current.csv and first_release.csv contain post-origin information.",
      "handling": "RSAFS_current used only for estimand (d); first_release only as evaluation actual."
    }
  ],
  "n_input_rows": {
    "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,
    "RSAFS_current.csv": 417,
    "UMCSENT.csv": 887,
    "first_release.csv": 28
  },
  "n_analysed": 20,
  "random_seed": 20261030,
  "dm_mean_loss_diff_h1": 0.6909309110778346,
  "dm_lrv_h1": 0.8091371397979005,
  "boot_rmse_diff_lo_h1": -0.6487094313166794,
  "boot_rmse_diff_hi_h1": -0.2787995997807278,
  "boot_share_model_better_h1": 1.0,
  "n_model_wins_h1": 8,
  "dm_mean_loss_diff_h3": 0.7118487020717866,
  "dm_lrv_h3": 2.1185192375008524,
  "boot_rmse_diff_lo_h3": -0.6877226202234573,
  "boot_rmse_diff_hi_h3": 0.08193647367241552,
  "boot_share_model_better_h3": 0.9314931493149315,
  "n_model_wins_h3": 6,
  "mean_signed_revision_h1_targets": -0.5482198028389015,
  "max_abs_revision_h1_targets": 0.9756759757612712,
  "block_bootstrap": {
    "B": 9999,
    "block_length": 3,
    "type": "circular moving-block, paired errors"
  },
  "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"
  },
  "ar1_coef_by_origin": {
    "2025-10-31": {
      "const": 0.7245195130966369,
      "phi": 0.8398849523075356
    },
    "2025-11-30": {
      "const": 0.7230146850375044,
      "phi": 0.8398593258796581
    },
    "2025-12-31": {
      "const": 0.7207145937397748,
      "phi": 0.8398988453218994
    },
    "2026-01-31": {
      "const": 0.7197147078017161,
      "phi": 0.839929613490428
    },
    "2026-02-28": {
      "const": 0.7161329757524207,
      "phi": 0.840103885059219
    },
    "2026-03-31": {
      "const": 0.7173993115367638,
      "phi": 0.8400215083855623
    },
    "2026-04-30": {
      "const": 0.7192001736723118,
      "phi": 0.8399036982121751
    },
    "2026-05-31": {
      "const": 0.7216117313802095,
      "phi": 0.8398320190588064
    },
    "2026-06-30": {
      "const": 0.7265261438714329,
      "phi": 0.8398016339053244
    },
    "2026-07-31": {
      "const": 0.7268024118912031,
      "phi": 0.839871473088339
    }
  },
  "abs_revision_by_h1_target": {
    "2025-09": 0.5502167925401169,
    "2025-10": 0.6641763167215546,
    "2025-11": 0.43891998227811113,
    "2025-12": 0.32862681655441595,
    "2026-01": 0.9756759757612712,
    "2026-02": 0.4099556308938235,
    "2026-04": 0.7481728291013168,
    "2026-05": 0.16533992600872516,
    "2026-06": 0.7440888135517616,
    "2026-07": 0.4570249449779187
  }
}