# 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 from `first_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 in `ar1_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).