System map / Offline pipelines / Climate · TMYx

Offline pipeline · climate

How cold, how hot: from ZIP code to degree-days

Heating and hot water are the biggest energy loads in a California home, and both depend on the weather. This pipeline answers one question for the engine: for each month, how much does this home need to heat, cool, and warm up its water?

Source
OneBuilding TMYx 2011–2025 weather files
Coverage
16 CEC climate zones · CA ZIPs
Resolution
Monthly HDD · CDD · water-main °F
Built
2026-06-16 · checksummed raw snapshots

The pipeline

Two halves. The offline half runs once, when the data is built, and turns raw weather files into a small table of 16 climate zones. The runtime half runs every time you enter a ZIP code: a lookup, with no weather processing.

data flowsetting (optional)(12,) = one value per month

What's a degree-day?

A heating degree-day (HDD) counts how far the day's average temperature fell below 65°F. A 50°F day adds 15 HDD; a 70°F day adds none. Add them up over a month and you get how much heating that month needs. Cooling degree-days (CDD) are the same count above 65°F. Heating energy is proportional to HDD, which is why one number per month is enough for the engine.

Heating degree-days / yr
base 65°F
Cooling degree-days / yr
base 65°F
Water-main temperature
coldest → warmest month
Average monthly temperature vs the 65°F base. Shaded gap below = heating need, above = cooling need.
The 12 + 12 numbers the engine actually receives.

California's 16 climate zones

The California Energy Commission divides the state into 16 building climate zones. WhyWatt maps each of California ZIP codes to one zone, and each zone to the typical-year weather file of its reference station.

ZoneReference stationHDDCDD

What it feeds

HVAC · heating & cooling

Monthly HDD drives furnace or heat-pump heating; CDD drives cooling. Energy is proportional to degree-days × the home's heat-loss factor.

HVAC page →

Water heater

The water-main temperature sets how far each gallon must be heated to reach 120°F. Winter water is colder, so winter hot water costs more.

Water heater page · soon

The same climate zone also picks your NREL load profiles and, where no ZIP-level run exists, your solar yield station.

Optional: a warming climate

By default every year of the simulation uses the same typical year. You can instead let degree-days drift year by year along a climate projection. The drift rates were fitted to the Cal-Adapt 32-model ensemble at each station.

SettingHDD per yearCDD per year

For the selected zone. Fewer heating degree-days and more cooling degree-days each year.

What's modeled, what's simplified

  • Recent weather: typical-year files built from 2011–2025 observations, not the older 1991–2005 TMY3 set.
  • Monthly resolution: captures the seasonal swing that drives heating bills.
  • Reproducible: the source weather files are snapshotted with checksums; rebuilding gives the same table.
  • One station per zone: every ZIP in a zone shares its reference station, so microclimates (coast vs valley within a zone) aren't separated.
  • Fixed 65°F base: doesn't vary with your thermostat setting.
  • Typical, not extreme: a typical year smooths out cold snaps and heat waves.

Sources

OneBuilding TMYx 2011–2025 (climate.onebuilding.org) CEC Building Climate Zones Burch & Christensen 2007 · water-main temperature Cal-Adapt LOCA 32-model ensemble · RCP 4.5 / 8.5
Code
scripts/build_climate_db.py data/climate/sources/ (sha256 snapshots) data/climate/tmy3_zones.json data/climate/zip_to_zone.json src/climate_loader.py src/model.py · climate.advance_to(year)