Metro heating and cooling degree days, weekly
Weekly heating and cooling degree days (base 65F) for 20 North-American metros (15 US + 5 CA), 2016-2025, computed from NOAA NCEI Global Summary of the Day daily station observations at each metro's primary international airport. Ships ML-ready derived features: weekly HDD/CDD sums, heating/cooling season flags, year-on-year changes vs the same ISO week, anomalies vs the trailing 10-year same-week mean, and heat-wave / cold-snap flags at the metro's 90th percentile. Station (USAF, WBAN) identifiers from the NCEI ISD-history roster, verified 2026-09-29.
- Rows
- 10,046
- Columns
- 22
- Source cadence
- Yearly
- Last refreshed
- Sep 29, 2026
- Theme
- economics
| Column | Type | Description |
|---|---|---|
| week_start | date | Monday starting the observation week. (unit: date) |
| metro | string | Metropolitan area name. |
| state_province | string | US state or Canadian province of the metro. |
| country | string | Country name (United States or Canada). |
| country_code | string | ISO 3166-1 alpha-3 country code (USA or CAN). |
| icao | string | ICAO code of the metro's primary international airport, where the GSOD station sits. |
| latitude | float | Station latitude, decimal degrees. (unit: decimal degrees) |
| longitude | float | Station longitude, decimal degrees. (unit: decimal degrees) |
| temp_avg_f | float | Weekly mean of daily mean temperatures in Fahrenheit. Daily mean = (MAX + MIN) / 2 when both present, else the GSOD TEMP mean; GSOD missing values are never imputed. (unit: degrees Fahrenheit) |
| days_valid | integer | Number of days in the week with a valid mean temperature (0-7). Weeks with fewer than 6 are dropped, never padded. (unit: days) |
| hdd_weekly | float | Derived: sum of daily heating degree days over the week, where daily HDD = max(0, 65 - daily mean temp F). Connector-defined transformation. (unit: Fahrenheit degree-days) |
| cdd_weekly | float | Derived: sum of daily cooling degree days over the week, where daily CDD = max(0, daily mean temp F - 65). Connector-defined transformation. (unit: Fahrenheit degree-days) |
| total_dd_weekly | float | Derived: hdd_weekly + cdd_weekly, the total weekly temperature-driven energy/demand load. (unit: Fahrenheit degree-days) |
| heating_season_flag | boolean | Derived: true when the ISO week is 40-52 or 1-13 (heating season). |
| cooling_season_flag | boolean | Derived: true when the ISO week is 22-38 (cooling season). |
| hdd_yoy_change | float | Derived: hdd_weekly minus the same metro's hdd_weekly for the same ISO week one year earlier. Null when the prior-year week is unavailable. (unit: Fahrenheit degree-days) |
| cdd_yoy_change | float | Derived: cdd_weekly minus the same metro's cdd_weekly for the same ISO week one year earlier. Null when the prior-year week is unavailable. (unit: Fahrenheit degree-days) |
| hdd_anomaly_vs_10y | float | Derived: hdd_weekly minus the trailing 10-year mean of the same ISO week for the same metro (min 5 prior years). Null when fewer than 5 prior years exist. (unit: Fahrenheit degree-days) |
| cdd_anomaly_vs_10y | float | Derived: cdd_weekly minus the trailing 10-year mean of the same ISO week for the same metro (min 5 prior years). Null when fewer than 5 prior years exist. (unit: Fahrenheit degree-days) |
| heat_wave_week | boolean | Derived: true when cdd_weekly is at or above the metro's own 90th percentile of weekly CDD over the full panel. |
| cold_snap_week | boolean | Derived: true when hdd_weekly is at or above the metro's own 90th percentile of weekly HDD over the full panel. |
| row_hash | string | Deterministic md5 of 'MDD|<metro>|<week_start>'; identical inputs hash identically. |
First 10 sample rows — a preview, not the complete dataset.
| week_start | metro | state_province | country | country_code | icao | latitude | longitude | temp_avg_f | days_valid | hdd_weekly | cdd_weekly | total_dd_weekly | heating_season_flag | cooling_season_flag | hdd_yoy_change | cdd_yoy_change | hdd_anomaly_vs_10y | cdd_anomaly_vs_10y | heat_wave_week | cold_snap_week | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2016-01-04T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 43.229 | 7 | 152.4 | 0 | 152.4 | true | false | — | — | — | — | false | true | 89f59f610bece0766f9c1a4a43eb753d |
| 2016-01-11T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 43.386 | 7 | 151.3 | 0 | 151.3 | true | false | — | — | — | — | false | true | 27f872c2731a5f90f8425163117e1655 |
| 2016-01-18T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 36.707 | 7 | 198.05 | 0 | 198.05 | true | false | — | — | — | — | false | true | bc02e14641dac674768ceb79d0b5701c |
| 2016-01-25T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 47.336 | 7 | 123.65 | 0 | 123.65 | true | false | — | — | — | — | false | true | 8a18f6b8d5282d787a8027f78d8a7c5f |
| 2016-02-01T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 52.121 | 7 | 90.15 | 0 | 90.15 | true | false | — | — | — | — | false | false | 34881d77343ad9c556e4a3d144cde656 |
| 2016-02-08T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 39.957 | 7 | 175.3 | 0 | 175.3 | true | false | — | — | — | — | false | true | b6d8f6d6e5b6be6483e19231949b7d82 |
| 2016-02-15T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 49.264 | 7 | 110.15 | 0 | 110.15 | true | false | — | — | — | — | false | false | 1dee24b066649b7c4edbe877e380f6c5 |
| 2016-02-22T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 52.514 | 7 | 87.4 | 0 | 87.4 | true | false | — | — | — | — | false | false | 622731b10fd629394f80dfc521a96b3d |
| 2016-02-29T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 51.521 | 7 | 94.35 | 0 | 94.35 | true | false | — | — | — | — | false | false | fa3fb383b57f02f78d74376514a91334 |
| 2016-03-07T00:00:00 | Atlanta | Georgia | United States | USA | KATL | 33.63 | -84.442 | 64.15 | 7 | 20 | 14.05 | 34.05 | true | false | — | — | — | — | false | false | c40c62c1033d143c4acaa2f2980af774 |
- Current
20260929T041824Z-4ad6e770f29a · sha256 4ad6e770f29a…
10,046 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_degree_days/metro_degree_days_weekly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/metro_degree_days/metro_degree_days_weekly").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_degree_days/metro_degree_days_weekly
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 20260929T041824Z-4ad6e770f29a and its content hash, so readers get exactly the data you used.
Metro heating/cooling degree days, weekly (derived). (2026). Metro heating and cooling degree days, weekly [Data set, snapshot 20260929T041824Z-4ad6e770f29a, sha256 4ad6e770f29a]. Datazimuts. Retrieved 2026-09-30, from https://datazimuts.com/en/datasets/metro_degree_days/metro_degree_days_weekly?snapshot=20260929T041824Z-4ad6e770f29a
@misc{dz_metro_degree_days_metro_degree_days_week_4ad6e770,
title = {{Metro heating and cooling degree days, weekly}},
author = {{Metro heating/cooling degree days, weekly (derived)}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/metro_degree_days/metro_degree_days_weekly?snapshot=20260929T041824Z-4ad6e770f29a}},
note = {Snapshot 20260929T041824Z-4ad6e770f29a, sha256 4ad6e770f29a5f6fe8d6fa856192afa19086737d47cac432ea7ba06bd65f3892; 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_degree_days%2Fmetro_degree_days_weekly&lang=en&theme=auto&snapshot=20260929T041824Z-4ad6e770f29a&x=week_start&y=latitude&agg=avg" title="Metro heating and cooling degree days, weekly" 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.