Multi-year rate prediction does not work — we proved that and stopped pretending. This is a short-horizon model: it forecasts the 30-year mortgage rate ~1 and ~3 months ahead from the rate's lagged catch-up to Treasury moves that already happened. Every prediction below was made walk-forward — fit only on data available at the time — and the chart overlays each prediction on what actually happened so you can see it track reality. Where the model does not beat “rate stays flat,” we say so.
Every row is a full walk-forward backtest: at each week the model is fit
only on data available at the time, predicts ahead, and is
scored against what actually happened. naive = “rate
stays flat.” momentum = “recent trend
continues.” A real short-horizon model should beat naive; if it does
not, the cell is plain, not green.
| Horizon / model | MAE (pp) | RMSE (pp) | Directional hit-rate | vs naive MAE |
|---|
The 30-yr mortgage rate is the Freddie Mac PMMS weekly survey average — a smoothed series that trails the Treasury market by a few weeks. So mortgage ≈ Treasury + spread, and when the 10-yr Treasury has already moved, the survey-based mortgage rate has a predictable near-term drift to catch up. The model is an ordinary least-squares regression on three lag-catch-up features:
DGS10 1-week momentum — the most recent Treasury move not yet absorbed.DGS10 4-week momentum — the longer recent Treasury move.spread deviation — the mortgage-minus-Treasury spread relative to its own 52-week rolling mean (the mean-reversion term).mortgage_forecast(h) = mortgage_now + OLS(features). We tested
the textbook decomposition that also forecasts the 10-yr Treasury
— it added noise, because rate changes are near-unforecastable
even at a week. So the model holds the Treasury level fixed and predicts
only the part that is real: the catch-up. We also ran this model at
monthly frequency — it does not beat naive
monthly. The edge is a weekly phenomenon; monthly sampling
washes it out. That is why the model runs weekly.
Live coefficients (fit on all history): …