US metro home-value momentum (monthly, Zillow ZHVI)
Monthly US metro home-value momentum intelligence from Zillow Research's Zillow Home Value Index (ZHVI), metro grain (keyless public CSV, 894 US metros + national reference, 2000-01 -> present, smoothed seasonally-adjusted typical home values in $). Per (month, metro): home-value level, month-over-month, 12-month and 3-month-annualized momentum, acceleration in percentage points, deviation from the national home value, per-month cross-sectional dense rank / percentile / z-score of appreciation, a documented 0-100 home-value heat score (fast vs peers + expensive vs nation + accelerating) with heat tiers, and hot/cold/cooling/36-month-record flags. Upstream coverage gaps stay null, never imputed. The owner's wealth complement to the ZORI rent-pressure panel: appreciating metros expand household balance sheets (Shopify demand), cooling prints flag churn/pause risk (Stripe subscriptions), and the ranks heat-map sales territories (HubSpot) — joinable on ISO month + metro. Zillow aggregate data reused under the Zillow Terms of Use (non-personal market-analysis use of aggregate data with "Data Provided by Zillow Group" attribution); source: Zillow Research.
- Source
- Zillow Research
- Rows
- 237,134
- Columns
- 24
- Source cadence
- Monthly
- Last refreshed
- Oct 1, 2026
- Theme
- housing
| Column | Type | Description |
|---|---|---|
| month | string | Reference month: the month-end date of the ZHVI monthly column as published by Zillow (e.g. 2026-08-31). ISO date. (unit: ISO date (month-end)) |
| country_code | string | ISO alpha-3 country code (USA for every row). (unit: ISO 3166-1 alpha-3) |
| metro_key | string | Stable metro join key: slug of the Zillow RegionName (e.g. 'new-york-ny' for 'New York, NY'). Primary join key with month. (unit: code) |
| metro_name | string | Zillow RegionName for the metro (e.g. 'New York, NY'); 'United States' on the national reference row. (unit: name) |
| state_code | string | Two-letter US state/territory code from Zillow's StateName (empty on the national row). (unit: code) |
| entity_type | string | Entity kind: 'metro' (894 metropolitan statistical areas) or 'national' (the United States reference row used for deviation arithmetic). (unit: categorical) |
| zhvi_usd | float | Zillow Home Value Index: smoothed, seasonally adjusted typical home value for the middle market tier (single-family + condo), dollars. (unit: USD) |
| yoy_pct | float | 12-month percent change of zhvi_usd; null for the first 12 months of each metro (warm-up) and across upstream coverage gaps. (unit: percent) |
| mom_pct | float | Month-over-month percent change of zhvi_usd. (unit: percent) |
| momentum_3m_ann_pct | float | 3-month change of zhvi_usd, annualized: 100*((zhvi/zhvi_lag3)^4 - 1). (unit: percent) |
| acceleration_pp | float | Change in the monthly pace: mom_pct minus mom_pct lagged 3 months, in percentage points. (unit: percentage points) |
| vs_national_pct | float | The metro's zhvi_usd minus the national zhvi_usd for the same month, as a percent of the national value (0.0 on the national row). (unit: percent) |
| yoy_pct_rank | integer | Per-month dense rank of yoy_pct across metros with non-null yoy, descending (1 = fastest appreciation). (unit: rank) |
| yoy_pct_percentile | float | Per-month percentile of yoy_pct: 1 - (rank-1)/n (1.0 = fastest appreciation that month). (unit: 0-1) |
| z_yoy | float | Per-month cross-sectional z-score of yoy_pct across metros (null when the month has < 10 metros or zero dispersion). (unit: z-score) |
| homevalue_heat_score | float | Documented 0-100 composite: 100*(0.5*minmax(clip(z_yoy,-3,3)) + 0.3*minmax(clip(vs_national_pct,-100,100)) + 0.2*minmax(clip(acceleration_pp,-3,3))). High = appreciating fast vs peers AND expensive vs the nation AND accelerating. Null on the national row. (unit: 0-100) |
| heat_tier | string | Bucket of homevalue_heat_score: very_high >= 80, high >= 65, moderate >= 45, low >= 30, very_low < 30. (unit: categorical) |
| hot_flag | integer | 1 when yoy_pct_percentile >= 0.90 (top-decile appreciation that month). (unit: 0/1) |
| cold_flag | integer | 1 when yoy_pct_percentile <= 0.10 (bottom-decile appreciation that month). (unit: 0/1) |
| cooling_flag | integer | 1 when yoy_pct < 0 (nominal home values falling year over year). (unit: 0/1) |
| record_36m_flag | integer | 1 when zhvi_usd equals the maximum over the trailing 36 non-null monthly observations (inclusive); null until 12 observations exist. (unit: 0/1) |
| as_of | string | Latest month in the fetched panel (YYYY-MM-DD), identical across rows and across runs on the same vintage (ingest idempotency anchor). (unit: ISO date) |
| source_file | string | Upstream filename the row was parsed from. (unit: filename) |
| row_hash | string | Deterministic 16-hex row id: sha256('ZILLOWVALUE|<metro_key>|<month>'). (unit: hash) |
First 10 sample rows — a preview, not the complete dataset.
| month | country_code | metro_key | metro_name | state_code | entity_type | zhvi_usd | yoy_pct | mom_pct | momentum_3m_ann_pct | acceleration_pp | vs_national_pct | yoy_pct_rank | yoy_pct_percentile | z_yoy | homevalue_heat_score | heat_tier | hot_flag | cold_flag | cooling_flag | record_36m_flag | as_of | source_file | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009-02-28 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 130,512.411 | — | — | — | — | -29.118 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | c60fb846cddc9188 |
| 2009-03-31 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 130,525.69 | — | 0.01 | — | — | -28.574 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | a9e0ab612f3474a2 |
| 2009-04-30 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 130,327.016 | — | -0.152 | — | — | -28.171 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | 897e423791f0e387 |
| 2009-05-31 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 130,214.536 | — | -0.086 | -0.91 | — | -27.708 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | dafa57dbe6f50fa2 |
| 2009-06-30 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 130,018.411 | — | -0.151 | -1.546 | -0.161 | -27.316 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | f311b5f5984d2c28 |
| 2009-07-31 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 129,879.859 | — | -0.107 | -1.365 | 0.046 | -26.934 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | dc4ed932a9a54f64 |
| 2009-08-31 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 129,661.596 | — | -0.168 | -1.688 | -0.082 | -26.627 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | 59dad59c1639caf1 |
| 2009-09-30 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 129,441.766 | — | -0.17 | -1.762 | -0.019 | -26.354 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | 795e09a182274cad |
| 2009-10-31 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 129,346.677 | — | -0.073 | -1.632 | 0.033 | -26.079 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | 63518143b2f1f368 |
| 2009-11-30 | USA | aberdeen-sd | Aberdeen, SD | SD | metro | 129,288.991 | — | -0.045 | -1.145 | 0.123 | -25.926 | — | — | — | — | — | — | — | — | — | 2026-08-31 | Metro_zhvi_uc_sfrcondo_tier_0.33_0.67_sm_sa_month.csv | 9edfadde48bf0c6d |
Profiled Oct 1, 2026 from snapshot 20261001T001126Z-453fe1a433ad
Measured- Completeness
- 97.9%
- Rows
- 237,134
- Columns
- 24
- Columns with gaps
- 13
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| monthvarchar | 0% | 344 | — |
|
| country_codevarchar | 0% | 1 | — |
|
| metro_keyvarchar | 0% | 855 | — |
|
| metro_namevarchar | 0% | 1,103 | — |
|
| state_codevarchar | 0% | 57 | — |
|
| entity_typevarchar | 0% | 2 | — |
|
| zhvi_usddouble | 0% | 226,110 | 48,084 → 1,601,701median 156,331 | 4,744 outside 1st–99th percentile |
| yoy_pctdouble | 4.7% | 268,286 | -45.99 → 59.9median 3.82 | 4,520 outside 1st–99th percentile |
| mom_pctdouble | 0.46% | 217,935 | -8.21 → 7.29median 0.2977 | 4,722 outside 1st–99th percentile |
| momentum_3m_ann_pctdouble | 1.3% | 281,204 | -61.61 → 127.57median 3.68 | 4,682 outside 1st–99th percentile |
| acceleration_ppdouble | 1.8% | 277,166 | -9.83 → 7.03median 0.0035 | 4,658 outside 1st–99th percentile |
| vs_national_pctdouble | 0% | 320,191 | -86.38 → 402.04median -28.82 | 4,744 outside 1st–99th percentile |
| yoy_pct_rankbigint | 4.8% | 1,051 | 1 → 894median 367 | 4,381 outside 1st–99th percentile |
| yoy_pct_percentiledouble | 4.8% | 79,351 | 0.0011 → 1median 0.5006 | 4,513 outside 1st–99th percentile |
| z_yoydouble | 4.8% | 337,711 | -9.45 → 13.14median -0.0258 | 4,514 outside 1st–99th percentile |
| homevalue_heat_scoredouble | 5.1% | 988 | 2.6 → 98.8median 46.5 | 4,452 outside 1st–99th percentile |
| heat_tiervarchar | 5.1% | 4 | — |
|
| hot_flagbigint | 4.8% | 2 | 0 → 1median 0 | |
| cold_flagbigint | 4.8% | 2 | 0 → 1median 0 | |
| cooling_flagbigint | 4.7% | 2 | 0 → 1median 0 | |
| record_36m_flagbigint | 4.2% | 2 | 0 → 1median 1 | |
| as_ofvarchar | 0% | 1 | — |
|
| source_filevarchar | 0% | 1 | — |
|
| row_hashvarchar | 0% | 253,927 | — |
|
- Current
20261001T001126Z-453fe1a433ad · sha256 453fe1a433ad…
237,134 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/zillow_metro_homevalue_intel/us_metro_homevalue_momentum_monthly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/zillow_metro_homevalue_intel/us_metro_homevalue_momentum_monthly").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/zillow_metro_homevalue_intel/us_metro_homevalue_momentum_monthly
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20261001T001126Z-453fe1a433ad and its content hash, so readers get exactly the data you used.
Zillow Research. (2026). US metro home-value momentum (monthly, Zillow ZHVI) [Data set, snapshot 20261001T001126Z-453fe1a433ad, sha256 453fe1a433ad]. Datazimuts. Retrieved 2026-10-01, from https://datazimuts.com/en/datasets/zillow_metro_homevalue_intel/us_metro_homevalue_momentum_monthly?snapshot=20261001T001126Z-453fe1a433ad
@misc{dz_zillow_metro_homevalue_intel_us_metro_ho_453fe1a4,
title = {{US metro home-value momentum (monthly, Zillow ZHVI)}},
author = {{Zillow Research}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/zillow_metro_homevalue_intel/us_metro_homevalue_momentum_monthly?snapshot=20261001T001126Z-453fe1a433ad}},
note = {Snapshot 20261001T001126Z-453fe1a433ad, sha256 453fe1a433adf22ce71cb5728b44b7cb2be3aa6b2db77466e3616d9b7311e952; accessed 2026-10-01}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=zillow_metro_homevalue_intel%2Fus_metro_homevalue_momentum_monthly&lang=en&theme=auto&snapshot=20261001T001126Z-453fe1a433ad&x=month&y=zhvi_usd&agg=avg" title="US metro home-value momentum (monthly, Zillow ZHVI)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.