SPB Git

spb/wp29_uqo

Public

# Contract (P0) — T1-forecast

Question. In real time (only data published at each of 10 month-end origins 2025-10-31 … 2026-07-31), how accurately can US retail & food services sales (RSAFS) year-over-year log growth g_m = 100·ln(L_m/L_{m-12}) be forecast at h = 1 and h = 3 months beyond the last published month last(V), and does my own model beat the naive (no-change) forecast, judged against the first-release YoY of each target month?

Estimands (per h ∈ {1,3}, n = 10 origins): (a) RMSE, MAE of naive, seasonal naive, AR(1), and my model vs yoy_first_release; (b) 1 − RMSE_model/RMSE_naive; (c) DM statistic model vs naive, squared loss, d_t = e²_naive − e²_model, Bartlett LRV with truncation lag h−1 (no HLN correction), two-sided normal p-value; (d) mean over the 10 h=1 target months of |g_current − yoy_first_release|. Meaningful under: the first-release file correctly identifies the first published value; forecasts strictly use vintage-V information; n=10 means DM asymptotics are only indicative.

Outputs. out/forecasts.csv (80 rows; origin_date,target_date,horizon,forecast,actual_first_release,model,vintage_used), out/results.json (keys as in TASK.md table), out/table1.csv (model,horizon,rmse,mae,n), out/figure1.png, out/report.md (Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues), out/analysis.py, out/claims.json; plus protocol files out/state/*, out/exclusions.csv.

Information rules. At origin V: only RSAFS vintage V, PAYEMS vintage V, UMCSENT months ≤ month(V). Target = last(V)+h where last(V) is last row of RSAFS vintage V. RSAFS_current only for estimand (d). first_release.csv only as evaluation actuals. vintage_used ≤ origin_date < target_date.

Invalidity / impossibility. Missing first-release actual for any target; using current/future data in forecasts; tuning the model on the evaluation actuals (look-ahead model selection); non-positive LRV making DM undefined (would be reported).

Files · main
Menu

Theme