F3-conf-02 — Real-time forecasts of US real GDP growth
Question
At 8 real-time origins (first_origin = 2024-01-31 to last_origin = 2025-12-31, n_origins = 8), how accurately could US real GDP growth (q/q % SAAR, A191RL1Q225SBEA) be forecast 1 and 2 quarters beyond the last published quarter? Accuracy is measured against the first release of each target quarter. The question also asks whether a simple AR model beats the naive (last value) forecast.
Data and exclusions
- At each origin d, the only input is the ALFRED vintage file dated d (307–314 rows, 1947Q2 to the last published quarter;
n_input_rows). Actuals come fromfirst_release.csv(13 rows).current_vintage.csv(318 rows) is used only for the revision statistic. - The SHA-256 of every file matches data/README.md. No file has missing values, duplicate dates or gaps (out/state/data_audit.md).
- Exclusions apply to the AR estimation sample only, and are logged for the last origin in out/exclusions.csv: 314 vintage rows → keep 1985Q1 onward (−151) → first quarter used only as a lag (−1) → drop dependent quarters 2020Q2–2020Q4, the COVID outliers (−3) → 159 regression observations (
n_analysed). The naive forecast uses only the last vintage value. - Data issues are listed in
data_issues. Because the 2025 shutdown delayed the 2025Q3 advance estimate, origin 8 is 2025-12-31, so the origins are not equally spaced.
Method
- Naive: for both horizons, the forecast is the last value in the origin vintage.
- Model (
model_name= ar1): AR(1) with intercept, fitted by OLS on the origin vintage over 1985Q1 to the last quarter, with the COVID quarters excluded as above. The 2-step forecast iterates the 1-step forecast (model_description). I fixed this specification before computing any out-of-sample error, and did not try other specifications. Estimated coefficients are inar1_coefficients_by_origin: c ≈ 1.73–1.77 and phi ≈ 0.335–0.343, stable across origins. The method is deterministic, so no seed is needed (random_seed= null). - Errors: forecast − first release. RMSE and MAE are taken over the 8 origins for each horizon. Per-origin forecasts are in out/forecasts.csv.
Results
| RMSE h=1 | MAE h=1 | RMSE h=2 | MAE h=2 | |
|---|---|---|---|---|
| naive | 2.010 (rmse_naive_h1) |
1.688 (mae_naive_h1) |
2.265 (rmse_naive_h2) |
1.813 (mae_naive_h2) |
| ar1 | 1.484 (rmse_model_h1) |
1.233 (mae_model_h1) |
1.398 (rmse_model_h2) |
1.030 (mae_model_h2) |
- Relative RMSE improvement of AR(1) over naive: 26.2% at h=1 (
rel_improvement_rmse_h1= 0.262) and 38.3% at h=2 (rel_improvement_rmse_h2= 0.383). - AR(1) had a smaller absolute error than naive at 5 of 8 origins for h=1 (
n_origins_model_abs_error_lower_h1) and at 8 of 8 for h=2 (n_origins_model_abs_error_lower_h2). - Mean absolute revision between the first release and the current (2026-10-30) value over the 8 h=1 target quarters: 0.56 pp (
mean_abs_revision_h1_targets= 0.5625). This is about a third of the forecast RMSEs, so the choice of actuals (first release vs latest) matters but would not dominate the errors.
Uncertainty
- Only 8 forecasts per horizon, and the h=2 errors overlap with the h=1 errors of the next origin. I computed no confidence intervals or Diebold–Mariano tests: with n=8 they would be unreliable, and the task does not ask for them. The RMSE gains are point estimates.
- Much of the naive loss comes from one episode, the 2025Q1 contraction (−0.3) followed by a rebound. The AR(1) forecast shrinks toward the implied mean c/(1−phi), computed from
ar1_coefficients_by_origin, and so suffers less from such swings. In a calmer or more persistent period the ranking could differ.
Limitations and open issues
- The sample is small. There is one model, and its specification was chosen a priori (1985 start, COVID exclusion) rather than validated.
- The vintage-specific estimation fully respects the real-time rule, but the 1985 start date and the COVID exclusion use the analyst's present-day knowledge that these periods are special. The 2020 outliers were, however, known at every origin.
- Actuals are advance estimates as of month-end vintages. The 2025Q4 actual comes from the 2026-02-28 vintage (delayed release).
- Every task requirement was completed (
feasibility= complete).