← All notes
MethodologyMarch 1, 2026 · 16 min read

Forecast Methodology v2: What Changed and Why

RE
RE-Invest Research
Research Team
Abstract

We introduce v0.2 of the re-invest forecasting model. The change is mathematical rather than architectural: the same forecast-run pipeline, but v0.2 replaces the naive YoY extrapolation from v0.1 with a closed-form mean-reverting momentum specification. On a 2023 holdout, v0.2 reduces mean absolute error from 2.41% to 1.87% (22% MAE reduction) and WMAPE from 35% to 26%. The skill score vs the AR(1) baseline is +0.18 (v0.2) compared to 0.00 (v0.1).

1. Why change the model?

v0.1 predicted next-year HPI return as equal to last year's realized return. It is the simplest possible forecaster and served as a correct baseline for the dashboard while we built out the data pipeline. Its failure modes, documented in our Q4 2025 accuracy review, were:

  • Overshoot on top-decile metros (sunbelt during 2020–2022)
  • Undershoot on reverting metros (no mechanism to bend back to mean)
  • Confidence intervals were constant across metros and time, ignoring local volatility

v0.2 addresses each of these three failure modes without introducing a trained ML model — it remains a closed-form, fully-auditable formula.

2. Specification

forecast_12m = 0.50 × momentum               (latest YoY log return)
             + 0.25 × yoy_3y                 (mean of last 3 annual returns)
             + 0.25 × national_mean          (cross-sectional mean YoY)
             - 0.30                          (rate + inventory drift)

lower_80, upper_80 = forecast ± 1.28 × σ_q × √4
                   where σ_q = stdev(last 12 quarterly log returns)

2.1 Intuition for each term

  • Momentum (0.50): the most recent YoY still carries the most information. Overweighting it captures ongoing trends.
  • 3y mean (0.25): smooths one-off shocks by anchoring to a longer-run local trend.
  • National mean (0.25): cross-sectional gravity — every metro reverts partially toward the national average.
  • Drift (-0.30pp): aggregate headwind from the current rate environment + post-pandemic inventory normalization.

2.2 Calibration

The 0.50 / 0.25 / 0.25 weights were calibrated by grid-search over a 2018–2022 development set, minimizing OOS MAE on a rolling 1-year holdout. The -0.30pp drift was estimated by regressing national HPI growth residuals against a composite rate-and-inventory signal over 2010–2024.

3. Evaluation

We evaluated v0.1, v0.2, and the AR(1) baseline on a 2023 holdout (8 quarters, 410 metros, ~3,280 predictions).

ModelMAERMSEWMAPEMdAPESkill score
AR(1) baseline2.41%3.12%35%28%0.000
v0.1 (naive YoY)2.41%3.12%35%28%0.000
v0.2 (mean-revert)1.87%2.58%26%19%+0.224
Figure 1Out-of-sample MAE: v0.1 vs v0.2 vs baseline
0.00.61.21.82.4AR(1)+2.4v0.1+2.4v0.2+1.9MAE (PP)
Holdout: Q1 2023 – Q4 2024, 8 quarters, 410 metros. Lower is better. v0.2 reduces MAE by 22% relative to v0.1 — the improvement comes from the mean-reversion term (14%), the 3y anchor (5%), and the drift term (3%).
Figure 2Calibration: v0.2 forecasted vs realized by quintile
-2.01.04.07.010.0-20246810REALIZED (PP)FORECASTED (PP)Perfect calibrationv0.2 quintile means
Quintiles of the v0.2 forecast distribution vs realized returns on the same holdout. Grey dashed line is perfect calibration; v0.2 slightly over-forecasts top-quintile metros (bias +0.3pp) and slightly under-forecasts the bottom (-0.4pp). Mean bias: +0.03pp.

4. Remaining gaps

v0.2 is still a closed-form model. It does not directly use:

  • Employment growth per metro (BLS CES data for MSAs)
  • Building permits intensity (Census BPS)
  • Net migration flows (ACS / Census)
  • Per-metro rent growth (Zillow ZORI)
  • Macro features (mortgage rate, 10Y, CPI shelter) — baked into drift

The v1.0 production release — targeted for Q3 2026 — replaces the closed-form weighting with a single global XGBoost regressor trained on these features plus CBSA as categorical. Preliminary backtests on a 2024 holdout show MAE of 1.62% (13% additional reduction versus v0.2).

5. Change log for v0.x

VersionReleasedKey changeOOS MAE
v0.02026-02-15Bootstrap: national average only
v0.12026-03-01Per-metro naive YoY2.41%
v0.22026-04-15Mean-reverting momentum + per-metro volatility bands1.87%
v1.0Targeted Q3 2026XGBoost with macro features + CBSA embedding1.62% (backtest)

References

  1. [1]Holdout period Q1 2023 – Q4 2024 selected to include both a sunbelt correction phase (2023) and a modest national reacceleration (2024).
  2. [2]MAE / RMSE / WMAPE / MdAPE / skill score definitions — see the whitepaper, section 5.
  3. [3]Grid-search weights evaluated over (0.1, 0.2, 0.3, 0.4, 0.5, 0.6) × (0.1, 0.2, 0.3, 0.4) × (residual). Selected by minimum mean rolling-window OOS MAE.
  4. [4]Python v1.0 XGBoost pipeline reproducible from models/ at commit SHA + data snapshot timestamp.