Public & licensed inputs, plus a live texture layer.
The forecast model runs on public and licensed data downloaded as published research files and public APIs. A separate Bright Data layer adds a current-state concession read where no clean public API exists. The model forecasts rent growth from the inputs; the live layer is texture, not a model input.
- Rent (target): Zillow Observed Rent Index (ZORI), monthly.
- Labor: BLS metro employment and state JOLTS quits/hires (via FRED/BLS).
- Job postings: Indeed Hiring Lab postings index (via FRED).
- Housing flow: Zillow Research for-sale inventory, new listings, and median days-to-pending — downloaded published CSVs, RegionID-matched, ~2018+. Used as internal model inputs, not redistributed.
A live concession read from public rental-listing data, collected via Bright Data Web Unlocker and structured into a per-metro concession share. The share is page-depth de-biased (deeper organic pages pull it toward the true market rate, correcting first-page promotional inflation). This is current-state texture, not a forecast input or a skill number. As of 2026-06-04.
Every snapshot the site and the agent read.
| Forecast-skill harness output | Pre-registered rent-growth forecast vs fitted-AR + drift; dual-OOS, DM-HAC, BH-FDR, bootstrap CIs | 58 KB |
| Housing-flow inputs | Zillow Research CSVs (for-sale inventory · new listings · days-to-pending), downloaded, RegionID-matched | 3.6 MB |
| Job-postings index | Indeed Hiring Lab postings index via FRED, monthly | 904 KB |
| Employment | BLS metro employment via FRED, monthly | 1.6 MB |
| JOLTS (quits/hires) | State JOLTS via BLS, fanned to metros, monthly | 10.8 MB |
| Rent (ZORI) | Zillow Observed Rent Index, monthly (forecast target) | 1.9 MB |
| Live concession layer | Bright Data Web Unlocker → structured extraction; page-depth de-biased concession share | 4.0 MB |
Universe: 108 metros with full input coverage. All forecast numbers are reproducible from the committed harness output.