ZIP home-value forecast
Where does each covered ZIP's home-value index go in 12 months?
A 12-month forecast of each covered ZIP's ZHVI home-value
index — the index for the ZIP, not any individual home — published
before the fact and graded publicly against the realized index at month+12.
These forecasts: issued as of 2026-05, graded after
2027-05.
The model gate — and its verdict
GATE REFUSED: damped-blend did NOT beat both naive baselines on pooled OOS MAE; the best naive model (naive-momentum) ships instead. Measured refusal — not tuned.
| Model | Pooled OOS MAE (12-mo log-change) | Median AE | n |
|---|
| naive-flat | 0.08015 | 0.062386 | 43,448 |
| naive-momentum (ships) | 0.056295 | 0.032902 | 43,448 |
| cagr-5yr-unclamped | 0.066717 | 0.05182 | 43,448 |
| cagr-5yr-clamped | 0.058085 | 0.041115 | 43,448 |
| damped-blend | 0.05639 | 0.033475 | 43,448 |
BANDS: per-county empirical p10/p90 of the shipped model's residuals, fit ONLY on band-fit origins 2015-01..2020-01; served band = point + residual quantiles (log space, served as pct change). Band coverage is measured OUT-OF-SAMPLE on origins 2021-01..2025-05, whose outcomes are disjoint from the band-fit residuals (origins 2020-02..2020-12 are excluded from both sides so no outcome window straddles the split): measured p10-p90 coverage 35.8% pooled (n=18488) — BAND_COVERAGE_OOS. The in-sample figure (80.0%) is ~80% TRUE BY CONSTRUCTION (quantiles fit on those same residuals) and is kept only as the BAND_COVERAGE_INSAMPLE sanity row.
Band: per-county empirical p10-p90 of the shipped model's backtest residuals — measured out-of-sample coverage 35.8% pooled (n=18,488, held out from the band fit).
Omaha metro (Douglas, NE)31 ZIPs · backtest MAE 0.0332 · band coverage 58%
| ZIP | 12-mo | p10 … p90 |
|---|
| 68007 | +0.4% | -2.6% … +5.0% |
| 68022 | +1.3% | -1.7% … +5.9% |
| 68064 | +4.7% | +1.6% … +9.5% |
| 68069 | +4.4% | +1.3% … +9.2% |
| 68102 | +2.0% | -1.1% … +6.6% |
| 68104 | -0.3% | -3.3% … +4.3% |
| 68105 | +1.5% | -1.6% … +6.1% |
| 68106 | +1.7% | -1.3% … +6.3% |
| 68107 | +1.8% | -1.3% … +6.4% |
| 68108 | -0.8% | -3.8% … +3.7% |
| 68110 | -2.5% | -5.5% … +1.9% |
| 68111 | +0.9% | -2.1% … +5.5% |
| 68112 | -0.5% | -3.5% … +4.0% |
| 68114 | +0.0% | -3.0% … +4.6% |
| 68116 | +1.4% | -1.7% … +6.0% |
| 68117 | +2.7% | -0.4% … +7.3% |
| 68118 | +1.6% | -1.5% … +6.2% |
| 68122 | +0.5% | -2.5% … +5.1% |
| 68124 | +2.7% | -0.4% … +7.4% |
| 68127 | +2.4% | -0.7% … +7.1% |
| 68130 | +1.2% | -1.9% … +5.8% |
| 68131 | +3.6% | +0.5% … +8.4% |
| 68132 | +2.4% | -0.7% … +7.0% |
| 68134 | +0.4% | -2.6% … +5.0% |
| 68135 | +1.3% | -1.7% … +5.9% |
| 68137 | +1.8% | -1.3% … +6.4% |
| 68142 | +0.2% | -2.8% … +4.8% |
| 68144 | +2.3% | -0.8% … +6.9% |
| 68152 | +2.1% | -0.9% … +6.8% |
| 68154 | +0.7% | -2.3% … +5.3% |
| 68164 | +0.1% | -2.9% … +4.6% |
Grand Island metro (Hall, NE)6 ZIPs · backtest MAE 0.0315 · band coverage 51%
| ZIP | 12-mo | p10 … p90 |
|---|
| 68801 | +1.3% | -1.4% … +5.0% |
| 68803 | +1.6% | -1.2% … +5.2% |
| 68810 | +3.7% | +0.9% … +7.5% |
| 68824 | +3.1% | +0.4% … +6.9% |
| 68832 | +5.1% | +2.3% … +8.9% |
| 68883 | +1.2% | -1.5% … +4.9% |
Tampa metro (Hillsborough, FL)50 ZIPs · backtest MAE 0.058 · band coverage 32%
| ZIP | 12-mo | p10 … p90 |
|---|
| 33510 | -0.8% | -4.3% … +3.2% |
| 33511 | -2.1% | -5.5% … +1.8% |
| 33527 | -1.4% | -4.9% … +2.6% |
| 33534 | -4.8% | -8.1% … -0.9% |
| 33547 | -3.4% | -6.7% … +0.5% |
| 33548 | +0.9% | -2.6% … +5.0% |
| 33549 | -2.0% | -5.4% … +2.0% |
| 33556 | -1.9% | -5.3% … +2.1% |
| 33558 | -3.0% | -6.3% … +1.0% |
| 33559 | -2.3% | -5.7% … +1.7% |
| 33563 | -3.3% | -6.6% … +0.7% |
| 33565 | -1.6% | -5.0% … +2.5% |
| 33566 | -2.5% | -5.9% … +1.4% |
| 33567 | -1.1% | -4.5% … +3.0% |
| 33569 | -2.8% | -6.2% … +1.1% |
| 33570 | -5.2% | -8.5% … -1.3% |
| 33572 | -4.5% | -7.9% … -0.7% |
| 33573 | -7.3% | -10.5% … -3.5% |
| 33578 | -4.3% | -7.6% … -0.4% |
| 33579 | -4.1% | -7.4% … -0.2% |
| 33584 | -1.1% | -4.6% … +2.9% |
| 33592 | -3.0% | -6.4% … +0.9% |
| 33594 | -3.0% | -6.4% … +0.9% |
| 33596 | -3.5% | -6.8% … +0.4% |
| 33598 | -5.8% | -9.0% … -1.9% |
| 33602 | -6.7% | -10.0% … -2.9% |
| 33603 | -1.8% | -5.2% … +2.2% |
| 33604 | -2.2% | -5.6% … +1.8% |
| 33605 | -4.2% | -7.6% … -0.4% |
| 33606 | -4.5% | -7.8% … -0.6% |
| 33607 | -2.3% | -5.7% … +1.7% |
| 33609 | -3.5% | -6.8% … +0.4% |
| 33610 | -2.6% | -6.0% … +1.3% |
| 33611 | -4.7% | -8.0% … -0.8% |
| 33612 | -1.8% | -5.2% … +2.2% |
| 33613 | -4.1% | -7.4% … -0.2% |
| 33614 | -0.3% | -3.8% … +3.8% |
| 33615 | -0.3% | -3.8% … +3.7% |
| 33616 | -5.4% | -8.7% … -1.6% |
| 33617 | -1.8% | -5.2% … +2.2% |
| 33618 | -0.4% | -3.8% … +3.7% |
| 33619 | -1.7% | -5.1% … +2.3% |
| 33624 | -0.6% | -4.1% … +3.4% |
| 33625 | -1.1% | -4.6% … +2.9% |
| 33626 | -2.2% | -5.6% … +1.8% |
| 33629 | -3.1% | -6.5% … +0.9% |
| 33634 | -0.6% | -4.1% … +3.4% |
| 33635 | -3.9% | -7.2% … +0.0% |
| 33637 | -2.9% | -6.3% … +1.0% |
| 33647 | -3.9% | -7.2% … +0.0% |
Lincoln metro (Lancaster, NE)33 ZIPs · backtest MAE 0.0308 · band coverage 63%
| ZIP | 12-mo | p10 … p90 |
|---|
| 68317 | +4.6% | +1.6% … +8.6% |
| 68336 | +8.4% | +5.3% … +12.5% |
| 68339 | +5.6% | +2.6% … +9.6% |
| 68358 | +6.6% | +3.5% … +10.6% |
| 68368 | +4.8% | +1.8% … +8.8% |
| 68372 | +4.8% | +1.8% … +8.8% |
| 68402 | +6.1% | +3.1% … +10.2% |
| 68404 | +7.5% | +4.4% … +11.5% |
| 68419 | +6.1% | +3.0% … +10.1% |
| 68428 | +7.0% | +3.9% … +11.1% |
| 68430 | +4.9% | +1.8% … +8.8% |
| 68461 | +6.7% | +3.6% … +10.7% |
| 68462 | +4.3% | +1.3% … +8.2% |
| 68502 | +4.0% | +0.9% … +7.9% |
| 68503 | +4.2% | +1.2% … +8.1% |
| 68504 | +2.2% | -0.7% … +6.1% |
| 68505 | +3.0% | +0.0% … +6.9% |
| 68506 | +3.9% | +0.9% … +7.8% |
| 68507 | +2.7% | -0.2% … +6.6% |
| 68508 | +3.9% | +0.9% … +7.8% |
| 68510 | +3.3% | +0.3% … +7.2% |
| 68512 | +3.4% | +0.4% … +7.3% |
| 68516 | +3.5% | +0.5% … +7.4% |
| 68517 | +7.9% | +4.8% … +12.0% |
| 68520 | +4.8% | +1.8% … +8.7% |
| 68521 | +4.4% | +1.4% … +8.3% |
| 68522 | +4.3% | +1.3% … +8.2% |
| 68523 | +3.9% | +0.9% … +7.9% |
| 68524 | +3.0% | +0.0% … +6.9% |
| 68526 | +3.5% | +0.5% … +7.4% |
| 68527 | +3.8% | +0.8% … +7.7% |
| 68528 | +4.5% | +1.5% … +8.5% |
| 68532 | +7.7% | +4.5% … +11.7% |
Phoenix metro (Maricopa, AZ)126 ZIPs · backtest MAE 0.0694 · band coverage 29%
| ZIP | 12-mo | p10 … p90 |
|---|
| 85003 | +1.4% | -2.0% … +7.9% |
| 85004 | -3.3% | -6.5% … +3.0% |
| 85006 | -3.1% | -6.3% … +3.2% |
| 85007 | -4.5% | -7.6% … +1.7% |
| 85008 | -1.2% | -4.4% … +5.2% |
| 85009 | -7.7% | -10.7% … -1.7% |
| 85012 | +1.1% | -2.2% … +7.6% |
| 85013 | -2.1% | -5.3% … +4.2% |
| 85014 | -2.1% | -5.3% … +4.2% |
| 85015 | -3.5% | -6.7% … +2.7% |
| 85016 | +0.4% | -2.9% … +6.9% |
| 85017 | -4.8% | -7.9% … +1.4% |
| 85018 | +4.1% | +0.7% … +10.8% |
| 85019 | -3.1% | -6.3% … +3.2% |
| 85020 | -1.3% | -4.5% … +5.1% |
| 85021 | -1.0% | -4.3% … +5.4% |
| 85022 | -1.0% | -4.3% … +5.4% |
| 85023 | -2.0% | -5.2% … +4.4% |
| 85024 | -1.4% | -4.7% … +5.0% |
| 85027 | -2.7% | -5.9% … +3.6% |
| 85028 | +2.2% | -1.1% … +8.8% |
| 85029 | -3.3% | -6.4% … +3.0% |
| 85031 | -3.9% | -7.1% … +2.3% |
| 85032 | -0.3% | -3.6% … +6.1% |
| 85033 | -3.1% | -6.3% … +3.1% |
| 85034 | +4.5% | +1.1% … +11.3% |
| 85035 | -3.2% | -6.4% … +3.0% |
| 85037 | -2.5% | -5.7% … +3.8% |
| 85040 | -3.6% | -6.8% … +2.6% |
| 85041 | -2.6% | -5.8% … +3.7% |
| 85042 | -3.2% | -6.4% … +3.1% |
| 85043 | -2.2% | -5.5% … +4.1% |
| 85044 | -1.0% | -4.2% … +5.5% |
| 85045 | -0.1% | -3.4% … +6.3% |
| 85048 | -0.4% | -3.7% … +6.0% |
| 85050 | +0.1% | -3.2% … +6.5% |
| 85051 | -2.3% | -5.5% … +4.0% |
| 85053 | -2.6% | -5.8% … +3.7% |
| 85054 | +0.7% | -2.6% … +7.2% |
| 85083 | -0.7% | -4.0% … +5.7% |
| 85085 | -1.4% | -4.6% … +5.0% |
| 85086 | -1.3% | -4.6% … +5.1% |
| 85087 | +0.4% | -2.9% … +6.9% |
| 85142 | -0.7% | -4.0% … +5.7% |
| 85201 | -2.8% | -6.0% … +3.5% |
| 85202 | -2.4% | -5.6% … +3.9% |
| 85203 | -1.1% | -4.4% … +5.3% |
| 85204 | -1.6% | -4.8% … +4.8% |
| 85205 | -0.3% | -3.5% … +6.2% |
| 85206 | -0.4% | -3.7% … +6.0% |
| 85207 | -1.0% | -4.3% … +5.4% |
| 85208 | -2.4% | -5.6% … +3.9% |
| 85209 | -1.2% | -4.4% … +5.2% |
| 85210 | -3.0% | -6.1% … +3.3% |
| 85212 | -1.1% | -4.4% … +5.3% |
| 85213 | -0.3% | -3.6% … +6.1% |
| 85215 | -1.5% | -4.7% … +4.9% |
| 85224 | -2.0% | -5.2% … +4.3% |
| 85225 | -2.7% | -5.9% … +3.6% |
| 85226 | -1.7% | -4.9% … +4.7% |
| 85233 | -0.7% | -4.0% … +5.7% |
| 85234 | +0.7% | -2.6% … +7.2% |
| 85248 | -1.8% | -5.0% … +4.5% |
| 85249 | -0.2% | -3.5% … +6.3% |
| 85250 | +1.6% | -1.7% … +8.2% |
| 85251 | -2.0% | -5.2% … +4.3% |
| 85253 | +12.0% | +8.4% … +19.3% |
| 85254 | +3.9% | +0.4% … +10.6% |
| 85255 | +1.9% | -1.5% … +8.5% |
| 85257 | -1.4% | -4.7% … +5.0% |
| 85258 | +2.8% | -0.5% … +9.5% |
| 85259 | +2.5% | -0.9% … +9.1% |
| 85260 | +0.9% | -2.5% … +7.4% |
| 85262 | +2.1% | -1.3% … +8.7% |
| 85263 | +1.8% | -1.6% … +8.4% |
| 85266 | +2.3% | -1.1% … +8.9% |
| 85268 | +0.9% | -2.4% … +7.5% |
| 85281 | -2.9% | -6.1% … +3.4% |
| 85282 | -1.2% | -4.4% … +5.2% |
| 85283 | -1.0% | -4.3% … +5.4% |
| 85284 | +1.2% | -2.1% … +7.8% |
| 85286 | -1.5% | -4.8% … +4.9% |
| 85295 | -1.6% | -4.8% … +4.8% |
| 85296 | -1.4% | -4.6% … +5.0% |
| 85297 | -1.3% | -4.5% … +5.1% |
| 85298 | -0.9% | -4.1% … +5.5% |
| 85301 | -2.9% | -6.1% … +3.4% |
| 85302 | -2.5% | -5.7% … +3.8% |
| 85303 | -0.8% | -4.1% … +5.6% |
| 85304 | -2.3% | -5.5% … +4.0% |
| 85305 | -1.3% | -4.5% … +5.1% |
| 85306 | -2.9% | -6.1% … +3.4% |
| 85307 | -1.2% | -4.5% … +5.2% |
| 85308 | -2.0% | -5.2% … +4.4% |
| 85310 | -0.5% | -3.7% … +6.0% |
| 85323 | -2.1% | -5.3% … +4.2% |
| 85326 | -1.3% | -4.6% … +5.1% |
| 85331 | +0.9% | -2.4% … +7.5% |
| 85335 | -2.1% | -5.3% … +4.3% |
| 85337 | +2.9% | -0.4% … +9.6% |
| 85338 | -1.4% | -4.6% … +5.0% |
| 85339 | -1.8% | -5.0% … +4.5% |
| 85340 | -0.2% | -3.4% … +6.3% |
| 85342 | +0.5% | -2.8% … +7.0% |
| 85345 | -2.3% | -5.5% … +4.0% |
| 85351 | -3.9% | -7.1% … +2.3% |
| 85353 | -2.0% | -5.2% … +4.4% |
| 85354 | +2.4% | -0.9% … +9.0% |
| 85355 | -0.8% | -4.0% … +5.7% |
| 85361 | +3.0% | -0.4% … +9.7% |
| 85363 | -3.4% | -6.5% … +2.9% |
| 85373 | -2.7% | -5.9% … +3.6% |
| 85374 | -2.9% | -6.0% … +3.4% |
| 85375 | -2.6% | -5.8% … +3.7% |
| 85377 | +2.2% | -1.1% … +8.8% |
| 85378 | -1.3% | -4.5% … +5.1% |
| 85379 | -2.1% | -5.3% … +4.3% |
| 85381 | -1.2% | -4.4% … +5.2% |
| 85382 | -1.5% | -4.7% … +4.9% |
| 85383 | -0.5% | -3.8% … +5.9% |
| 85387 | -1.7% | -4.9% … +4.7% |
| 85388 | -2.0% | -5.2% … +4.4% |
| 85390 | -0.9% | -4.2% … +5.5% |
| 85392 | -1.9% | -5.1% … +4.5% |
| 85395 | +0.2% | -3.1% … +6.7% |
| 85396 | -0.8% | -4.1% … +5.6% |
Tucson metro (Pima, AZ)39 ZIPs · backtest MAE 0.0526 · band coverage 35%
| ZIP | 12-mo | p10 … p90 |
|---|
| 85321 | +2.4% | -0.9% … +7.4% |
| 85614 | -3.2% | -6.4% … +1.5% |
| 85619 | +2.3% | -1.1% … +7.3% |
| 85622 | -2.3% | -5.5% … +2.5% |
| 85629 | -2.4% | -5.6% … +2.4% |
| 85637 | +1.6% | -1.7% … +6.6% |
| 85641 | -2.1% | -5.3% … +2.7% |
| 85645 | +1.2% | -2.1% … +6.1% |
| 85653 | -0.8% | -4.1% … +4.0% |
| 85658 | -1.7% | -4.9% … +3.1% |
| 85701 | -1.2% | -4.4% … +3.6% |
| 85704 | -0.4% | -3.7% … +4.5% |
| 85705 | -3.8% | -7.0% … +0.9% |
| 85706 | -3.1% | -6.2% … +1.6% |
| 85710 | -1.7% | -4.9% … +3.1% |
| 85711 | -3.3% | -6.5% … +1.4% |
| 85712 | -2.8% | -6.0% … +1.9% |
| 85713 | -4.1% | -7.2% … +0.6% |
| 85714 | -3.8% | -7.0% … +0.9% |
| 85715 | -2.6% | -5.8% … +2.1% |
| 85716 | -2.3% | -5.5% … +2.5% |
| 85718 | -1.0% | -4.2% … +3.8% |
| 85719 | -1.5% | -4.8% … +3.2% |
| 85730 | -2.0% | -5.2% … +2.8% |
| 85735 | -0.6% | -3.9% … +4.2% |
| 85736 | +2.0% | -1.4% … +7.0% |
| 85737 | -1.4% | -4.6% … +3.4% |
| 85741 | -2.7% | -5.9% … +2.0% |
| 85742 | -1.9% | -5.1% … +2.9% |
| 85743 | -2.7% | -5.9% … +2.0% |
| 85745 | -1.8% | -5.1% … +2.9% |
| 85746 | -3.8% | -7.0% … +0.8% |
| 85747 | -1.7% | -5.0% … +3.0% |
| 85748 | -2.5% | -5.7% … +2.2% |
| 85749 | -1.2% | -4.5% … +3.5% |
| 85750 | +0.2% | -3.1% … +5.0% |
| 85755 | -1.8% | -5.0% … +2.9% |
| 85756 | -1.1% | -4.4% … +3.7% |
| 85757 | -1.7% | -5.0% … +3.0% |
Phoenix exurbs (Pinal, AZ)21 ZIPs · backtest MAE 0.084 · band coverage 36%
| ZIP | 12-mo | p10 … p90 |
|---|
| 85118 | -1.6% | -6.5% … +5.6% |
| 85119 | -0.3% | -5.3% … +7.0% |
| 85120 | -2.4% | -7.3% … +4.8% |
| 85122 | -2.2% | -7.1% … +4.9% |
| 85123 | -3.2% | -8.0% … +3.9% |
| 85128 | -1.1% | -6.1% … +6.1% |
| 85131 | -1.9% | -6.9% … +5.2% |
| 85132 | -2.2% | -7.1% … +5.0% |
| 85137 | -4.0% | -8.8% … +3.0% |
| 85138 | -3.8% | -8.6% … +3.2% |
| 85139 | -4.1% | -8.9% … +2.9% |
| 85140 | -2.1% | -7.0% … +5.0% |
| 85143 | -3.1% | -7.9% … +4.0% |
| 85145 | -2.5% | -7.4% … +4.6% |
| 85173 | -3.1% | -8.0% … +3.9% |
| 85192 | -8.6% | -13.1% … -1.9% |
| 85193 | +2.9% | -2.3% … +10.3% |
| 85194 | +0.5% | -4.5% … +7.9% |
| 85623 | +1.3% | -3.8% … +8.7% |
| 85631 | +0.7% | -4.4% … +8.0% |
| 85739 | -1.9% | -6.8% … +5.2% |
Omaha metro (Sarpy, NE)11 ZIPs · backtest MAE 0.022 · band coverage 36%
| ZIP | 12-mo | p10 … p90 |
|---|
| 68005 | +2.1% | +0.9% … +4.5% |
| 68028 | +0.8% | -0.3% … +3.3% |
| 68046 | +1.4% | +0.2% … +3.8% |
| 68059 | +3.5% | +2.4% … +6.1% |
| 68123 | +2.6% | +1.4% … +5.1% |
| 68128 | +2.8% | +1.7% … +5.3% |
| 68133 | +1.8% | +0.7% … +4.3% |
| 68136 | +0.1% | -1.0% … +2.5% |
| 68138 | +2.6% | +1.5% … +5.1% |
| 68147 | +2.9% | +1.8% … +5.4% |
| 68157 | +2.1% | +1.0% … +4.6% |
Raleigh metro (Wake, NC)32 ZIPs · backtest MAE 0.0534 · band coverage 17%
| ZIP | 12-mo | p10 … p90 |
|---|
| 27502 | -2.2% | -4.2% … +0.3% |
| 27511 | -2.4% | -4.3% … +0.1% |
| 27513 | -1.3% | -3.3% … +1.2% |
| 27518 | +0.4% | -1.7% … +2.9% |
| 27519 | -2.6% | -4.6% … -0.1% |
| 27523 | -2.8% | -4.8% … -0.3% |
| 27526 | -2.7% | -4.7% … -0.2% |
| 27529 | -2.0% | -4.0% … +0.5% |
| 27539 | -1.4% | -3.4% … +1.1% |
| 27540 | -1.2% | -3.2% … +1.4% |
| 27545 | -2.6% | -4.6% … -0.1% |
| 27560 | -4.9% | -6.8% … -2.5% |
| 27562 | -1.8% | -3.8% … +0.7% |
| 27571 | -2.4% | -4.3% … +0.1% |
| 27587 | -1.5% | -3.5% … +1.0% |
| 27591 | -1.2% | -3.2% … +1.3% |
| 27597 | -0.8% | -2.8% … +1.8% |
| 27601 | -1.5% | -3.5% … +1.1% |
| 27603 | -2.6% | -4.5% … -0.1% |
| 27604 | -3.5% | -5.5% … -1.0% |
| 27605 | -3.3% | -5.3% … -0.8% |
| 27606 | -1.9% | -3.9% … +0.6% |
| 27607 | -0.0% | -2.1% … +2.5% |
| 27608 | +0.9% | -1.1% … +3.5% |
| 27609 | +1.1% | -1.0% … +3.6% |
| 27610 | -3.0% | -4.9% … -0.5% |
| 27612 | +0.8% | -1.2% … +3.4% |
| 27613 | -0.1% | -2.1% … +2.5% |
| 27614 | +0.1% | -1.9% … +2.7% |
| 27615 | +0.1% | -1.9% … +2.7% |
| 27616 | -4.1% | -6.0% … -1.6% |
| 27617 | -3.2% | -5.1% … -0.7% |
See what the engine says about a specific property
Method: METHOD: forecast the 12-month log-change of the ZIP's ZHVI. Candidate model "damped-blend" = beta x ZIP trailing-12m log-change + (1-beta) x county-mean trailing-12m log-change, beta = 0.3252 fit by least squares on backtest origins 2005-01..2014-01 ONLY (n=36420); all models evaluated out-of-sample on origins 2015-01..2025-05. The fit is trimmed so every fit outcome window ends by 2015-01: origins 2014-02..2014-12 are excluded from the fit, so fit and eval are disjoint in OUTCOMES, not just origins. Naive baselines: naive-flat (0%) and naive-momentum (trailing-12m carried forward). cagr-5yr-clamped is the CURRENT PRODUCT's 5-yr appreciation input — trailing 5-yr CAGR clamped to [0%, 5%] exactly as zip_appreciation.py serves it — measured at this 12-mo horizon; cagr-5yr-unclamped is the same CAGR without the clamp (reference only). Neither ships here. The gate margins (damped-blend pooled MAE minus each naive baseline's; negative = blend wins) are published unrounded-to-6dp in MODEL["blend_minus_naive"] so the verdict is reproducible from this file. GATE REFUSED: damped-blend did NOT beat both naive baselines on pooled OOS MAE; the best naive model (naive-momentum) ships instead. Measured refusal — not tuned.
Honest limitation: HONEST LIMITATION: ZHVI is a smoothed, seasonally-adjusted repeat-sales-style INDEX — this forecasts the index for the ZIP, NOT any individual home, and only at the 12-month horizon. It is deliberately separate from the buy-hold 5-yr appreciation input (zip_appreciation.py): mixing horizons would be dishonest. Every live forecast is logged to data/product/zip_forecast_ledger.jsonl and graded against realized ZHVI after 2027-05 — the ledger is committed to the repo and append-only (a changed re-run supersedes, never deletes).
Reproducible: python scripts/build_zip_forecast.py · ledger: 349 live forecasts logged, 349 pending, 0 graded, plus 349 superseded rows preserved (append-only — a re-run supersedes, never deletes) (grading cannot begin before 2027-05) · public append-only ledger (NDJSON) → · machine-readable JSON → · CSV →