US metro observed-weather demand panel (daily)
Daily observed-weather demand panel for 15 US metros from NOAA NCEI GHCN-Daily, fetched keyless two ways: the trailing 365 days of observed TMAX/TMIN, precipitation, snowfall, snow depth and wind at the metro airport station via the NCEI Data Access Service (daily-summaries), and the 10-year (2016-2025) day-of-year climatology baseline from the per-station bulk files. Per (date, metro): daily mean temperature, HDD18/CDD18 degree-days, temperature and precipitation anomaly z-scores versus a 10-year (2016-2025) day-of-year climatology, heat-wave / cold-snap / heavy-rain / snow-day / high-wind flags, a pleasant-day flag, and a documented 0-100 weather-demand score with per-day cross-metro rank — high means pleasant foot-traffic/shopping weather. Same 15 metro keys (ICAO) as metro_degree_days / metro_daylight_intel for 1:1 joins; the 5 Canadian metros are excluded because GHCN-Daily's Canadian airport stations are stale in NCEI's feed. GHCN-Daily is U.S. federal public domain (commercial reuse allowed); source: NOAA National Centers for Environmental Information.
- Rows
- 5,475
- Columns
- 32
- Source cadence
- Daily
- Last refreshed
- Sep 29, 2026
- Theme
- environment
| Column | Type | Description |
|---|---|---|
| date | string | Calendar date of the observation day (station local day), ISO date. Primary join key with icao. (unit: ISO date) |
| metro | string | Metro name, shared with the metro_degree_days / metro_daylight_intel / metro_thermal_demand_intel family for 1:1 joins. (unit: name) |
| state_prov | string | US state containing the metro (airport station). (unit: name) |
| country_code | string | ISO alpha-3 country code (USA for every row). (unit: ISO 3166-1 alpha-3) |
| icao | string | Metro airport ICAO code (KJFK, KLAX, ...): the stable metro key shared with the sibling metro weather datasets. Primary join key with date. (unit: code) |
| lat | float | Airport station latitude, decimal degrees. (unit: decimal degrees) |
| lon | float | Airport station longitude, decimal degrees. (unit: decimal degrees) |
| tz_name | string | IANA timezone of the metro. (unit: IANA name) |
| tmax_c | float | Observed daily maximum temperature (GHCN-Daily TMAX, tenths of degC -> degC). Null where the station did not report; never zero-filled. (unit: degC) |
| tmin_c | float | Observed daily minimum temperature (GHCN-Daily TMIN). Null where the station did not report. (unit: degC) |
| tmean_c | float | Daily mean temperature as (TMAX+TMIN)/2. Null when either is null. (unit: degC) |
| prcp_mm | float | Observed daily precipitation (GHCN-Daily PRCP, tenths of mm -> mm). Null where the station did not report. (unit: mm) |
| snow_mm | float | Observed daily snowfall (GHCN-Daily SNOW, tenths of mm -> mm). Null where not reported. (unit: mm) |
| snow_depth_mm | float | Observed snow depth (GHCN-Daily SNWD, mm). Null where not reported. (unit: mm) |
| awnd_ms | float | Observed daily average wind speed (GHCN-Daily AWND, tenths of m/s -> m/s). Null where not reported. (unit: m/s) |
| hdd18_c | float | Heating degree-days, base 18 degC: max(0, 18 - tmean_c). Null when tmean_c is null. Base matches the city_climate_stress_signals HDD18 convention. (unit: degree-days (degC)) |
| cdd18_c | float | Cooling degree-days, base 18 degC: max(0, tmean_c - 18). Null when tmean_c is null. (unit: degree-days (degC)) |
| tmax_anom_z | float | TMAX anomaly z-score versus the station's 10-year (2016-2025) day-of-year climatology: (tmax - clim_mean)/max(clim_std, 0.5). Null when the climatology cell has < 7 baseline years or tmax is null. (unit: z-score) |
| tmin_anom_z | float | TMIN anomaly z-score versus the 10-year day-of-year climatology (std floor 0.5 degC). Null when the climatology cell has < 7 baseline years or tmin is null. (unit: z-score) |
| tavg_anom_z | float | TAVG=(TMAX+TMIN)/2 anomaly z-score versus the 10-year day-of-year climatology (std floor 0.5 degC). (unit: z-score) |
| prcp_anom_z | float | Precipitation anomaly z-score versus the 10-year day-of-year climatology: (prcp - clim_mean)/max(clim_std, 2.0 mm). (unit: z-score) |
| heat_wave_flag | integer | 1 on days inside a run of >= 3 consecutive calendar days with tmax_c >= 35.0, else 0. Runs are computed on the station's full fetched history so window edges cannot split a run. (unit: 0/1 flag) |
| cold_snap_flag | integer | 1 on days inside a run of >= 2 consecutive calendar days with tmin_c <= -12.0, else 0. (unit: 0/1 flag) |
| heavy_rain_flag | float | 1 when prcp_mm >= 25.0, else 0 (null when prcp null). (unit: 0/1 flag) |
| snow_day_flag | float | 1 when snow_mm >= 25.0 (one inch), else 0 (null when snow null). (unit: 0/1 flag) |
| high_wind_flag | float | 1 when awnd_ms >= 12.0, else 0 (null when awnd null). (unit: 0/1 flag) |
| pleasant_day_flag | float | 1 when 15 <= tmean_c <= 26 and prcp_mm < 1.0 and tmax_c < 32.0 and tmin_c > 5.0, else 0 (null when any input null). (unit: 0/1 flag) |
| weather_demand_score | float | Documented 0-100 pleasant-weather proxy: 100 minus min(45, 2.2*|tmean_c - 21|) for temperature distance from the 21 degC ideal, minus min(30, 1.2*prcp_mm) for rain, minus 15/15/10/10/8 for heat-wave / cold-snap / heavy-rain / snow-day / high-wind days (floored at 0). High = pleasant foot-traffic/shopping weather. Null when tmean_c is null. (unit: 0-100 score) |
| weather_demand_rank | integer | Per-date dense rank of weather_demand_score across the 15 metros, 1 = best weather that day. Null when the score is null. (unit: dense rank) |
| as_of | string | Latest observation date in the fetched panel (ISO date): the latest date on which >= 13 stations reported. Identical on every row and across runs on the same vintage, so a re-fetch of unchanged data produces a byte-identical panel and the ingest is a no-op. (unit: ISO date) |
| source_station | string | GHCN-Daily station identifier behind the row's observations. (unit: code) |
| row_hash | string | Deterministic 16-hex id: sha256('WXDEMAND|<icao>|<date>'). (unit: hex) |
First 10 sample rows — a preview, not the complete dataset.
| date | metro | state_prov | country_code | icao | lat | lon | tz_name | tmax_c | tmin_c | tmean_c | prcp_mm | snow_mm | snow_depth_mm | awnd_ms | hdd18_c | cdd18_c | tmax_anom_z | tmin_anom_z | tavg_anom_z | prcp_anom_z | heat_wave_flag | cold_snap_flag | heavy_rain_flag | snow_day_flag | high_wind_flag | pleasant_day_flag | weather_demand_score | weather_demand_rank | as_of | source_station | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-09-23 | Atlanta | Georgia | USA | KATL | 33.63 | -84.442 | America/New_York | 32.2 | 20 | 26.1 | 0 | 0 | 0 | 2.3 | 0 | 8.1 | 0.58 | 0.53 | 0.57 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 88.78 | 10 | 2026-09-22 | USW00013874 | d3fd0c48de57cffc |
| 2025-09-23 | Boston | Massachusetts | USA | KBOS | 42.361 | -71.01 | America/New_York | 26.7 | 15.6 | 21.1 | 0 | 0 | — | 4 | 0 | 3.1 | 0.56 | 0.29 | 0.49 | -0.63 | 0 | 0 | 0 | 0 | 0 | 1 | 99.67 | 1 | 2026-09-22 | USW00014739 | bfe310c8c7e2fd4a |
| 2025-09-23 | Denver | Colorado | USA | KDEN | 39.847 | -104.656 | America/Denver | 11.7 | 9.4 | 10.6 | 32.5 | 0 | 0 | 5.7 | 7.4 | 0 | -1.98 | -0.12 | -1.65 | 2.46 | 0 | 0 | 1 | 0 | 0 | 0 | 37.01 | 15 | 2026-09-22 | USW00003017 | 18066542e636a48c |
| 2025-09-23 | Dallas | Texas | USA | KDFW | 32.897 | -97.022 | America/Chicago | 36.1 | 25.6 | 30.9 | 0 | 0 | 0 | 5.3 | 0 | 12.9 | 0.78 | 0.96 | 0.91 | -0.34 | 1 | 0 | 0 | 0 | 0 | 0 | 63.33 | 13 | 2026-09-22 | USW00003927 | ec14ed898804b17b |
| 2025-09-23 | Detroit | Michigan | USA | KDTW | 42.231 | -83.331 | America/Detroit | 20.6 | 14.4 | 17.5 | 0.5 | 0 | 0 | 2.1 | 0.5 | 0 | 0.1 | 1.06 | 0.53 | -0.34 | 0 | 0 | 0 | 0 | 0 | 1 | 91.7 | 8 | 2026-09-22 | USW00014847 | 65c5a7f397c9d675 |
| 2025-09-23 | Houston | Texas | USA | KIAH | 29.984 | -95.361 | America/Chicago | 33.9 | 23.9 | 28.9 | 5.3 | 0 | 0 | 3.4 | 0 | 10.9 | 0.54 | 0.66 | 0.67 | 0.19 | 0 | 0 | 0 | 0 | 0 | 0 | 76.26 | 11 | 2026-09-22 | USW00012960 | bd7c86c58aa1ebb9 |
| 2025-09-23 | New York | New York | USA | KJFK | 40.639 | -73.764 | America/New_York | 25.6 | 18.3 | 22 | 0 | 0 | 0 | 4.8 | 0 | 4 | 0.27 | 0.7 | 0.49 | -0.51 | 0 | 0 | 0 | 0 | 0 | 1 | 97.91 | 2 | 2026-09-22 | USW00094789 | ced60789573d70fd |
| 2025-09-23 | Los Angeles | California | USA | KLAX | 33.938 | -118.387 | America/Los_Angeles | 27.2 | 18.9 | 23 | 0 | — | — | 3.4 | 0 | 5 | 1.51 | 1.2 | 1.52 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 95.49 | 4 | 2026-09-22 | USW00023174 | 1665ef785ea8a9bd |
| 2025-09-23 | Miami | Florida | USA | KMIA | 25.788 | -80.317 | America/New_York | 31.1 | 23.3 | 27.2 | 15 | 0 | 0 | 1.5 | 0 | 9.2 | -0.62 | -1.67 | -1.25 | 0.37 | 0 | 0 | 0 | 0 | 0 | 0 | 68.36 | 12 | 2026-09-22 | USW00012839 | 15df47b2b97e2d6b |
| 2025-09-23 | Minneapolis | Minnesota | USA | KMSP | 44.885 | -93.231 | America/Chicago | 23.9 | 14.4 | 19.1 | 0 | 0 | 0 | 2.7 | 0 | 1.1 | 0.02 | 0.14 | 0.08 | -0.49 | 0 | 0 | 0 | 0 | 0 | 1 | 95.93 | 3 | 2026-09-22 | USW00014922 | a630c9eb93c4b30a |
- Current
20260929T184025Z-92c84da78f3f · sha256 92c84da78f3f…
5,475 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/metro_weather_demand_intel/us_metro_weather_demand_daily" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/metro_weather_demand_intel/us_metro_weather_demand_daily").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/metro_weather_demand_intel/us_metro_weather_demand_daily
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 20260929T184025Z-92c84da78f3f and its content hash, so readers get exactly the data you used.
NOAA National Centers for Environmental Information. (2026). US metro observed-weather demand panel (daily) [Data set, snapshot 20260929T184025Z-92c84da78f3f, sha256 92c84da78f3f]. Datazimuts. Retrieved 2026-09-30, from https://datazimuts.com/en/datasets/metro_weather_demand_intel/us_metro_weather_demand_daily?snapshot=20260929T184025Z-92c84da78f3f
@misc{dz_metro_weather_demand_intel_us_metro_weat_92c84da7,
title = {{US metro observed-weather demand panel (daily)}},
author = {{NOAA National Centers for Environmental Information}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/metro_weather_demand_intel/us_metro_weather_demand_daily?snapshot=20260929T184025Z-92c84da78f3f}},
note = {Snapshot 20260929T184025Z-92c84da78f3f, sha256 92c84da78f3f6926277b73d5fb8249e37d0635e29155590df74559667d51035c; accessed 2026-09-30}
}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=metro_weather_demand_intel%2Fus_metro_weather_demand_daily&lang=en&theme=auto&snapshot=20260929T184025Z-92c84da78f3f&x=date&y=lat&agg=avg" title="US metro observed-weather demand panel (daily)" 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.