Heating & Cooling Degree Days Calculator

Calculate heating degree days (HDD) and cooling degree days (CDD) from any location worldwide. Get 30-year climate averages for energy analysis.

Calculate Heating and Cooling Degree Days for any location worldwide. Enter a city name to automatically fetch historical weather data and compute average annual HDD/CDD based on 30-year climate normals or custom date ranges.
Typical base temperature: 65°F (18°C) for heating/cooling in US. Energy estimates are approximations - actual consumption depends on building efficiency, HVAC system, and occupant behavior.

What are Heating & Cooling Degree Days?

Degree days are a measure of how much (and for how long) outdoor temperature deviates from a comfortable base temperature. Heating Degree Days (HDD) accumulate when temperatures fall below the base, indicating heating is needed. Cooling Degree Days (CDD) accumulate when temperatures rise above the base, indicating cooling is needed. Degree days correlate strongly with energy consumption and are used for: energy benchmarking, predicting utility bills, comparing buildings across climates, and sizing HVAC equipment. The standard base temperature is 65°F (18°C) in the US, assuming buildings don't need heating/cooling when outdoor temps are near 65°F.

Degree Day Formulas

Heating Degree Days (HDD)

HDD = max(0, Tbase - Tavg)

Example: Base 65°F, Avg 45°F → HDD = 65 - 45 = 20 HDD

Cooling Degree Days (CDD)

CDD = max(0, Tavg - Tbase)

Example: Base 65°F, Avg 80°F → CDD = 80 - 65 = 15 CDD

Practical Tips

  • Use the 30-year average for 'typical year' energy analysis and HVAC sizing
  • 65°F/18°C base works for most buildings, but adjust for high internal gains
  • HDD/CDD correlate best with gas heating and electric AC consumption
  • For energy prediction: Energy ≈ HDD × Heat Loss Factor (Btu/HDD)
  • Historical 30-year average is the industry standard for climate normals
  • Combine with building square footage to calculate Energy Use Intensity (EUI)

Where does the temperature data come from? Can I cross-reference it with a NOAA station?

Temperatures are fetched from the Open-Meteo Historical Weather API, which serves the ECMWF ERA5 reanalysis dataset — a gridded model output at roughly 9 km horizontal resolution, not raw observations from a single weather station.

That means a tool answer like "Montgomery AL, 2017 annual HDD = 2,100" comes from the ERA5 grid cell that contains the city, blended with surrounding cells via the API's interpolation. A NOAA GHCND station like USW00013895 (Montgomery Regional Airport) gives you point measurements from one anemometer/thermistor; the two will track closely most of the time but never match exactly. Typical gap is 1-3% on annual HDD/CDD totals in flat inland areas, larger (5-10%) near coasts, near elevation changes, and during extreme events like heatwaves or polar vortex incursions where local microclimate diverges from the grid cell average.

If you need exact NOAA-station numbers — for utility-bill regression, energy benchmarking against ASHRAE 90.1 climate normals, or LEED documentation — pull the raw GHCND data directly from NOAA (https://www.ncei.noaa.gov/access/services/data/v1) and compute HDD/CDD yourself. This tool is built for quick comparative and design-stage estimates, not as a substitute for station-of-record data.

Why do my tool results differ from another HDD/CDD source for the same year?

Multiple sources of small differences add up: (1) Dataset — ERA5 reanalysis vs NOAA GHCND vs NWS climate division averages vs MERRA-2 all use different methods to estimate the same temperature. (2) Base temperature — 65°F (US default) vs 18°C (which is ~64.4°F, not exactly 65°F) vs 15.5°C/60°F (UK default) produce noticeably different totals. (3) Averaging method — Mean(High,Low) is the standard "simple average" but some HDD methodologies use an hourly integration which is 5-10% lower because the temperature curve is non-linear. (4) Timezone — local time vs UTC for day boundaries can shift heatwaves between days. This tool uses Mean(High,Low) on local calendar days, 65°F default base, ERA5 reanalysis. If you are reconciling against another source, line up these four assumptions first.

What does the "climate zone" output actually represent?

The five-bucket climate zone label (Very Cold, Cold, Mixed, Warm, Hot) is a simplified mapping of the IECC/ASHRAE 169 climate zones, which use both HDD and CDD to classify a location for building-code purposes. The full IECC classification has 8 numbered zones plus moisture suffixes (A=humid, B=dry, C=marine), and dictates things like minimum wall R-value, mandatory air sealing, and HVAC equipment efficiency under ASHRAE 90.1. We simplify to five buckets for quick visual interpretation; for actual code compliance, find your county's specific zone in the IECC table (the US Department of Energy maintains a county-level map). Mountain or coastal counties often span two zones at different elevations.

Why does the tool use Mean(High,Low) and not hourly data?

Two reasons. First, daily High and Low are universal — every weather station and reanalysis dataset records them, while hourly data is patchier and not all GHCND stations report it. That makes the Mean(High,Low) method portable across any geography you might query. Second, the simplification has a known bias: for symmetric daily temperature curves the two methods agree, but for asymmetric days (slow morning warmup, fast afternoon cooling) the simple mean overestimates HDD and underestimates CDD by 5-10%. For most engineering and energy work this is acceptable — building thermal mass smooths the daily curve anyway. If you need the hourly-integrated version for very tight regression work (utility bill calibration, ECM measurement and verification), pull hourly data directly from NOAA's LCD or ERA5 hourly products and integrate yourself.

Why 30 years and not 50 or 100 for the historical average?

Thirty years is the WMO (World Meteorological Organization) standard climate-normal period, currently 1991-2020. The reasoning is two-fold: shorter periods (10-20 years) are too noisy for individual extreme years, but longer periods (50-100 years) start to include climate trends from earlier eras that are no longer representative of the current decade. With anthropogenic warming, a 1961-1990 average is now noticeably colder than a 1991-2020 average — 0.5 to 1.5°C difference depending on region — and using the older window will systematically overestimate HDD and underestimate CDD for any building being designed today. ASHRAE 90.1 climate normals are updated on the WMO 30-year cycle for the same reason.

What base temperature should I use for my building?

65°F (18.3°C) is the universal US default and works for most residential and small commercial buildings. The reasoning is that with normal internal gains (people, lights, appliances) and typical insulation, a building stays comfortable at 70°F indoor when outdoor is 65°F — meaning heating starts kicking in below that point. Adjust downward (55-60°F base) for buildings with high internal gains: data centers, busy restaurants, gyms, manufacturing with hot processes; their internal load means the building heats itself until outdoor temps drop quite low. Adjust upward (70-72°F base) for cold-climate buildings with elderly occupants or operating rooms where comfort setpoint is higher. For CDD specifically, 65°F is the standard US base but some sources use 75°F for residential air conditioning analysis since AC typically does not activate at 65°F outdoor. For ASHRAE energy modeling, always use 65°F unless your standard explicitly says otherwise.

Can I use these results for utility-bill prediction?

Yes for first-cut estimates, no for precision billing. The standard approach is regression: gather your historical monthly utility bills, fetch the same months' HDD and CDD from this tool, then fit Bill = a + b × HDD + c × CDD. The slope b (Btu per HDD) is your building's heat loss coefficient; the slope c is its cooling coefficient. R² values above 0.85 mean degree days explain most of your bill variance and you can predict future bills reasonably well from forecast HDD/CDD. Lower R² (0.6-0.8) means your bills are driven by other factors — occupancy schedules, plug loads, weekend use — and HDD/CDD alone will not be enough. For precise billing (utility company rate analysis, escrow estimates), use the actual monthly heating-degree-day data published by your utility or the National Weather Service Climate Prediction Center.

Why might the same location show different HDD/CDD between two runs?

Three reasons. First, you may have selected slightly different geographic points — the Open-Meteo geocoder returns multiple results for ambiguous city names; "Springfield" alone returns over 30 candidates. Always confirm the latitude/longitude shown after selecting from the dropdown. Second, ERA5 historical data is occasionally revised — ECMWF re-runs reanalysis when sensor data is recovered or assimilation methods improve. Differences between runs are usually under 0.5°C but accumulate over a full year. Third, the "last 30 years" range slides forward by one year each January, so running the tool in 2025 covers 1996-2025 while running in 2026 covers 1997-2026, which can shift the average by a few percent if 1996 was unusually cold or warm compared to 2026.

Heating & Cooling Degree Days Calculator — Calculate heating degree days (HDD) and cooling degree days (CDD) from any location worldwide. Get 30-year climate avera
Heating & Cooling Degree Days Calculator