Call(515) 827-7864

Original analysis of NOAA and Census data

Des Moines window data: cold winters, old houses, hail

Three things decide most window jobs here: a long, hard winter, a housing stock where 43% of homes predate 1980, and hail that NOAA logged at 1 inch or larger in Polk County on 92 days from 1996 to 2025. Here are the numbers by month and by ZIP code.

6,178

heating degree days a year at Des Moines International Airport.

10.4

nights a year below 0 F, and 128 below freezing.

105,051

homes in our 24 ZIP codes built before 1980, about 43% of the total.

3.25 in

the largest hailstone logged in Polk County since 1996, on July 9, 2021.

Winter, month by month

Average low and high by month, Des Moines (degrees F)

January: average low 13.8 F, average high 30.9 F1431JanFebruary: average low 18 F, average high 35.7 F1836FebMarch: average low 29.6 F, average high 49.2 F3049MarApril: average low 40.6 F, average high 62 F4162AprMay: average low 52.3 F, average high 72.4 F5272MayJune: average low 62.4 F, average high 81.9 F6282JunJuly: average low 66.4 F, average high 85.6 F6686JulAugust: average low 64.2 F, average high 83.6 F6484AugSeptember: average low 55.4 F, average high 76.9 F5577SepOctober: average low 42.9 F, average high 63.4 F4363OctNovember: average low 30.2 F, average high 48.3 F3048NovDecember: average low 19.5 F, average high 35.9 F2036Dec32 F
Each bar runs from the normal low (number below) to the normal high (number above). Darker blue months have lows under 20 F. Source: NOAA NCEI U.S. Climate Normals 1991 to 2020, Des Moines International Airport (USW00014933).

Heating degree days by month, Des Moines

Jan: 1,322 heating degree days1,322JanFeb: 1,068 heating degree daysFebMar: 796 heating degree daysMarApr: 421 heating degree daysAprMay: 153 heating degree daysMayJun: 15 heating degree daysJunJul: 1 heating degree daysJulAug: 4 heating degree daysAugSep: 86 heating degree daysSepOct: 383 heating degree daysOctNov: 773 heating degree daysNovDec: 1,156 heating degree daysDec
Heating degree days add up how far each day's average temperature falls below 65 F. Des Moines totals about 6,178 a year. Source: NOAA NCEI U.S. Climate Normals 1991 to 2020.
MonthNormal low (F)Normal high (F)Heating degree daysNights below 0 F
January13.830.91,3225.3
February1835.71,0682.6
March29.649.27960.5
April40.6624210
May52.372.41530
June62.481.9150
July66.485.610
August64.283.640
September55.476.9860
October42.963.43830
November30.248.37730.1
December19.535.91,1562

NOAA NCEI U.S. Climate Normals 1991 to 2020, Des Moines International Airport (USW00014933). Annual normals: average temperature 50.9 F, 36.5 inches of snow, 36.55 inches of precipitation, 22 days above 90 F.

What we found

  • Winter dominates. The three winter months average 26 F and account for about 57% of the year's heating degree days. January alone averages 5.3 nights below zero.
  • The housing is old in the middle, new at the edges. The oldest ZIP code by median year built is 50311 (Drake / Sherman Hill, 1938); the newest is 50263 (Waukee, 2011). In central Des Moines ZIP codes, more than 80% of homes predate 1980. In Johnston it is 7%, and in Waukee and Ankeny it is under 20%.
  • Old houses mean lead-safe work. Iowa's lead-safe renovation rules apply to housing built before 1978, and the EPA says window replacement is always covered. About 25% of homes in our ZIP codes were built before 1960.
  • Hail is a regular visitor. 28 of the 30 years from 1996 to 2025 had at least one day of hail 1 inch or larger in Polk County. 61% of hail days fell in the April through June stretch, and 30 days brought stones of 1.75 inches (golf ball) or larger.
  • Federal disasters: FEMA lists 15 disaster or emergency declarations that included Polk County since 1996, most recently DR-4942-IA (severe storms and flooding), declared September 1, 2026.

Homes by ZIP code

Housing age is a rough guide to window history. A house from before 1960 may still have original wood sashes or its first replacements; a house from the 1990s or 2000s is often on its original vinyl windows, now old enough for failed seals.

ZIPAreaHousing unitsMedian year builtBuilt before 1960Built before 1980Built 2000 or laterOwner occupiedMedian home value
50266West Des Moines (Jordan Creek)18,56820025%16%56%50%$345,600
50023Ankeny (west)18,56020086%20%67%72%$345,100
50315South Side (Southridge)16,421196346%74%11%62%$173,200
50265West Des Moines (Valley Junction)15,433198422%43%17%66%$281,800
50317East Side (Fairground)15,077196346%73%17%73%$177,600
50310Beaverdale / Merle Hay14,288195660%85%6%70%$222,700
50322Urbandale (east)13,646197918%53%10%73%$276,200
50021Ankeny (east)12,84620025%20%54%75%$317,200
50263Waukee12,44220114%10%79%67%$352,800
50131Johnston9,82220043%8%63%71%$369,400
50009Altoona9,39419978%29%46%71%$278,300
50320South Side (SE 14th)9,36919959%28%40%74%$216,900
50312Waterbury / Greenwood Park8,203194566%85%6%64%$291,900
50309Downtown / East Village8,069199228%43%47%11%$292,500
50313Highland Park / Oak Park7,417195364%80%10%77%$175,100
50325Clive7,36319957%28%34%75%$401,100
50311Drake / Sherman Hill6,867193874%87%9%48%$226,500
50211Norwalk6,812200010%29%51%84%$316,100
50111Grimes6,39920086%16%66%72%$308,800
50316East Side (Union Park)6,221195261%82%5%67%$154,300
50323Urbandale (north)6,14520091%3%94%87%$486,800
50327Pleasant Hill5,34820004%28%51%81%$314,400
50314River Bend / King-Irving4,940193862%73%23%48%$147,900
50321South Side (Airport)3,768198213%48%19%60%$320,500

Area names are our shorthand for the main neighborhood or town in each ZIP. Census ACS 2020-2024 5-year estimates (tables B25034, B25035, B25003, B25077). Click a column to sort.

By city

Census place estimates, with hail reports within 6 miles of each city's Census center point, 1996 to 2025.

CityMedian year builtBuilt before 1980Built 2000 or laterHail days nearbyDays 1 in+Largest nearby
Des Moines196170%17%79503.25 in, July 2021
West Des Moines199428%39%64373 in, August 2022
Ankeny200619%63%49313 in, July 2009
Urbandale199234%38%80513.25 in, July 2021
Johnston20047%63%72473.25 in, July 2021
Waukee201110%80%49332.75 in, June 2017
Clive199528%34%78493 in, August 2022
Altoona199828%47%31222.5 in, March 2022
Grimes200916%66%65413 in, August 2022
Pleasant Hill200225%55%47322.5 in, March 2022
Norwalk200227%53%51322.5 in, October 2019

Hail in Polk County

March 1996: no hail reportsApril 1996: no hail reportsMay 1996: hail on 1 day, largest 0.8 inJune 1996: no hail reportsJuly 1996: no hail reportsAugust 1996: no hail reportsSeptember 1996: no hail reportsOctober 1996: no hail reportsMarch 1997: no hail reportsApril 1997: no hail reportsMay 1997: hail on 1 day, largest 0.75 inJune 1997: no hail reportsJuly 1997: hail on 1 day, largest 1 inAugust 1997: hail on 1 day, largest 0.75 inSeptember 1997: no hail reportsOctober 1997: no hail reportsMarch 1998: hail on 1 day, largest 1 inApril 1998: no hail reportsMay 1998: hail on 1 day, largest 1.75 inJune 1998: hail on 1 day, largest 2.5 inJuly 1998: hail on 1 day, largest 1 inAugust 1998: hail on 1 day, largest 0.75 inSeptember 1998: no hail reportsOctober 1998: no hail reportsMarch 1999: no hail reportsApril 1999: no hail reportsMay 1999: no hail reportsJune 1999: no hail reportsJuly 1999: no hail reportsAugust 1999: no hail reportsSeptember 1999: no hail reportsOctober 1999: no hail reportsMarch 2000: no hail reportsApril 2000: no hail reportsMay 2000: hail on 3 days, largest 1.75 inJune 2000: hail on 1 day, largest 1 inJuly 2000: no hail reportsAugust 2000: no hail reportsSeptember 2000: no hail reportsOctober 2000: no hail reportsMarch 2001: no hail reportsApril 2001: hail on 3 days, largest 1.75 inMay 2001: hail on 1 day, largest 0.88 inJune 2001: hail on 3 days, largest 2.75 inJuly 2001: hail on 1 day, largest 0.88 inAugust 2001: no hail reportsSeptember 2001: no hail reportsOctober 2001: no hail reportsMarch 2002: no hail reportsApril 2002: hail on 1 day, largest 1.75 inMay 2002: no hail reportsJune 2002: hail on 2 days, largest 1.75 inJuly 2002: hail on 1 day, largest 1 inAugust 2002: no hail reportsSeptember 2002: hail on 1 day, largest 0.88 inOctober 2002: no hail reportsMarch 2003: no hail reportsApril 2003: hail on 2 days, largest 1.75 inMay 2003: hail on 2 days, largest 1 inJune 2003: no hail reportsJuly 2003: hail on 1 day, largest 2 inAugust 2003: no hail reportsSeptember 2003: no hail reportsOctober 2003: no hail reportsMarch 2004: no hail reportsApril 2004: hail on 2 days, largest 1 inMay 2004: hail on 3 days, largest 1.75 inJune 2004: hail on 1 day, largest 0.75 inJuly 2004: no hail reportsAugust 2004: hail on 1 day, largest 0.88 inSeptember 2004: no hail reportsOctober 2004: no hail reportsMarch 2005: hail on 2 days, largest 1 inApril 2005: no hail reportsMay 2005: hail on 2 days, largest 1 inJune 2005: hail on 1 day, largest 1.5 inJuly 2005: no hail reportsAugust 2005: no hail reportsSeptember 2005: hail on 1 day, largest 1.75 inOctober 2005: no hail reportsMarch 2006: hail on 3 days, largest 2 inApril 2006: hail on 3 days, largest 0.88 inMay 2006: no hail reportsJune 2006: hail on 1 day, largest 0.75 inJuly 2006: hail on 1 day, largest 0.52 inAugust 2006: no hail reportsSeptember 2006: no hail reportsOctober 2006: no hail reportsMarch 2007: hail on 1 day, largest 1 inApril 2007: hail on 1 day, largest 0.88 inMay 2007: no hail reportsJune 2007: hail on 1 day, largest 1 inJuly 2007: no hail reportsAugust 2007: hail on 1 day, largest 1 inSeptember 2007: no hail reportsOctober 2007: no hail reportsMarch 2008: no hail reportsApril 2008: hail on 2 days, largest 0.88 inMay 2008: hail on 1 day, largest 1.75 inJune 2008: hail on 2 days, largest 1.75 inJuly 2008: hail on 4 days, largest 1.75 inAugust 2008: hail on 1 day, largest 1 inSeptember 2008: no hail reportsOctober 2008: no hail reportsMarch 2009: no hail reportsApril 2009: no hail reportsMay 2009: no hail reportsJune 2009: hail on 3 days, largest 1.75 inJuly 2009: hail on 1 day, largest 3 inAugust 2009: no hail reportsSeptember 2009: no hail reportsOctober 2009: no hail reportsMarch 2010: no hail reportsApril 2010: hail on 1 day, largest 1 inMay 2010: hail on 2 days, largest 1 inJune 2010: no hail reportsJuly 2010: no hail reportsAugust 2010: no hail reportsSeptember 2010: hail on 1 day, largest 1 inOctober 2010: no hail reportsMarch 2011: hail on 2 days, largest 1 inApril 2011: hail on 2 days, largest 0.75 inMay 2011: hail on 1 day, largest 1 inJune 2011: hail on 5 days, largest 1.75 inJuly 2011: no hail reportsAugust 2011: no hail reportsSeptember 2011: no hail reportsOctober 2011: no hail reportsMarch 2012: hail on 1 day, largest 1 inApril 2012: hail on 1 day, largest 1 inMay 2012: hail on 2 days, largest 0.88 inJune 2012: no hail reportsJuly 2012: hail on 1 day, largest 0.75 inAugust 2012: hail on 1 day, largest 1 inSeptember 2012: hail on 1 day, largest 0.75 inOctober 2012: no hail reportsMarch 2013: no hail reportsApril 2013: no hail reportsMay 2013: hail on 4 days, largest 1.75 inJune 2013: no hail reportsJuly 2013: hail on 2 days, largest 1 inAugust 2013: no hail reportsSeptember 2013: hail on 1 day, largest 1 inOctober 2013: hail on 1 day, largest 1 inMarch 2014: no hail reportsApril 2014: no hail reportsMay 2014: hail on 2 days, largest 2.75 inJune 2014: hail on 1 day, largest 1 inJuly 2014: hail on 1 day, largest 0.88 inAugust 2014: hail on 1 day, largest 1 inSeptember 2014: no hail reportsOctober 2014: no hail reportsMarch 2015: no hail reportsApril 2015: hail on 1 day, largest 1.25 inMay 2015: no hail reportsJune 2015: no hail reportsJuly 2015: hail on 1 day, largest 0.75 inAugust 2015: no hail reportsSeptember 2015: no hail reportsOctober 2015: no hail reportsMarch 2016: hail on 1 day, largest 1.5 inApril 2016: hail on 1 day, largest 0.75 inMay 2016: no hail reportsJune 2016: no hail reportsJuly 2016: no hail reportsAugust 2016: hail on 1 day, largest 0.75 inSeptember 2016: no hail reportsOctober 2016: no hail reportsMarch 2017: no hail reportsApril 2017: no hail reportsMay 2017: hail on 1 day, largest 1 inJune 2017: hail on 2 days, largest 1.75 inJuly 2017: no hail reportsAugust 2017: no hail reportsSeptember 2017: no hail reportsOctober 2017: no hail reportsMarch 2018: no hail reportsApril 2018: no hail reportsMay 2018: hail on 3 days, largest 1 inJune 2018: hail on 2 days, largest 1 inJuly 2018: no hail reportsAugust 2018: hail on 1 day, largest 0.75 inSeptember 2018: hail on 2 days, largest 2 inOctober 2018: no hail reportsMarch 2019: no hail reportsApril 2019: hail on 1 day, largest 1 inMay 2019: hail on 1 day, largest 1.5 inJune 2019: no hail reportsJuly 2019: hail on 1 day, largest 0.75 inAugust 2019: no hail reportsSeptember 2019: no hail reportsOctober 2019: hail on 1 day, largest 2.75 inMarch 2020: no hail reportsApril 2020: no hail reportsMay 2020: no hail reportsJune 2020: hail on 1 day, largest 0.88 inJuly 2020: hail on 2 days, largest 2 inAugust 2020: no hail reportsSeptember 2020: no hail reportsOctober 2020: no hail reportsMarch 2021: no hail reportsApril 2021: no hail reportsMay 2021: hail on 1 day, largest 1.25 inJune 2021: hail on 1 day, largest 1.5 inJuly 2021: hail on 1 day, largest 3.25 inAugust 2021: no hail reportsSeptember 2021: no hail reportsOctober 2021: no hail reportsMarch 2022: hail on 1 day, largest 2.5 inApril 2022: hail on 1 day, largest 0.88 inMay 2022: no hail reportsJune 2022: hail on 1 day, largest 1 inJuly 2022: no hail reportsAugust 2022: hail on 1 day, largest 3 inSeptember 2022: hail on 1 day, largest 1 inOctober 2022: no hail reportsMarch 2023: no hail reportsApril 2023: hail on 2 days, largest 1 inMay 2023: no hail reportsJune 2023: no hail reportsJuly 2023: no hail reportsAugust 2023: no hail reportsSeptember 2023: no hail reportsOctober 2023: no hail reportsMarch 2024: no hail reportsApril 2024: no hail reportsMay 2024: hail on 2 days, largest 1 inJune 2024: hail on 1 day, largest 1 inJuly 2024: hail on 2 days, largest 1.25 inAugust 2024: no hail reportsSeptember 2024: no hail reportsOctober 2024: no hail reportsMarch 2025: hail on 1 day, largest 1 inApril 2025: no hail reportsMay 2025: hail on 1 day, largest 1 inJune 2025: no hail reportsJuly 2025: no hail reportsAugust 2025: no hail reportsSeptember 2025: no hail reportsOctober 2025: no hail reports
Every month from March to October, 1996 to 2025. A filled square means NOAA logged hail somewhere in Polk County that month; the color is the largest stone.noneunder 1 in1 to 1.5 in1.75 to 2.5 in2.75 in +NOAA NCEI Storm Events Database.

Days with hail reported in Polk County, by year

1996: 1 days19961997: 3 days1998: 5 days1999: 0 days2000: 4 days2001: 8 days20012002: 5 days2003: 5 days2004: 7 days2005: 7 days2006: 9 days20062007: 4 days2008: 10 days2009: 5 days2010: 4 days2011: 10 days1020112012: 7 days2013: 8 days2014: 5 days2015: 2 days2016: 3 days20162017: 3 days2018: 8 days2019: 4 days2020: 3 days2021: 3 days20212022: 5 days2023: 2 days2024: 5 days2025: 2 days20251996 to 2025 average: 4.9
Darker bars had more days with hail of 1 inch or larger. Source: NOAA NCEI Storm Events Database, Polk County, 1996 to 2025.

Hail sizes, and how big it has been here

  • 0.75 inPenny
  • 1 inQuarter
  • 1.5 inPing pong ball
  • 1.75 inGolf ball
  • 2.5 inTennis ball
  • 2.75 inBaseball
  • 4 inGrapefruit

Largest stones logged in Polk County, 1996 to 2025: 3.25 in near Lovington (July 9, 2021); 3 in near Clover Hills (August 19, 2022); 3 in near Johnston (July 14, 2009); 2.75 in near Des Moines (October 1, 2019).

Common size names used by the National Weather Service. Reports: NOAA NCEI Storm Events Database.

Average days with hail per year, by month, Polk County

Jan: 0 daysJanFeb: 0.1 daysFebMar: 0.4 daysMarApr: 0.8 daysAprMay: 1.2 days1.2MayJun: 1 daysJunJul: 0.7 daysJulAug: 0.3 daysAugSep: 0.3 daysSepOct: 0.1 daysOctNov: 0 daysNovDec: 0 daysDec
Source: NOAA NCEI Storm Events Database, 1996 to 2025 average.

By year

YearHail reportsHail daysDays 1 in+Largest stone
20259221 in
202413541.25 in
20238221 in
202224543 in
202138333.25 in
20206312 in
201921432.75 in
201821842 in
201715331.75 in
20167311.5 in
20159211.25 in
201424542.75 in
201314861.75 in
201214731 in
2011531061.75 in
201010431 in
200926543 in
2008461071.75 in
200713431 in
200626922 in
200527751.75 in
200431731.75 in
200336532 in
200220541.75 in
200134822.75 in
200015441.75 in
1999000none
199819542.5 in
19973311 in
19961100.8 in

FEMA declarations for Polk County since 1996

DeclarationDeclaredTitleIncident type
DR-4942-IASeptember 1, 2026Severe storms and floodingSevere Storm
DR-4784-IAMay 24, 2024Severe storms, tornadoes, and floodingSevere Storm
DR-4779-IAMay 14, 2024Severe storms and tornadoesTornado
DR-4557-IAAugust 17, 2020Severe stormsSevere Storm
DR-4483-IAMarch 23, 2020Covid-19 pandemicBiological
EM-3480-IAMarch 13, 2020Covid-19Biological
DR-4421-IAMarch 23, 2019Severe storms and floodingFlood
DR-4386-IAAugust 20, 2018Severe storms, tornadoes, straight-line winds, and floodingSevere Storm
DR-1930-IAJuly 29, 2010Severe storms, flooding, and tornadoesSevere Storm
DR-1763-IAMay 27, 2008Severe storms, tornadoes, and floodingSevere Storm
DR-1688-IAMarch 14, 2007Severe winter stormsSevere Storm
EM-3239-IASeptember 10, 2005Hurricane katrina evacuationHurricane
DR-1518-IAMay 25, 2004Severe storms, tornadoes, and floodingSevere Storm
DR-1230-IAJuly 2, 1998Severe storms, tornadoes and floodingFlood
DR-1191-IANovember 20, 1997Severe snowstormsSnowstorm

OpenFEMA Disaster Declarations Summaries (v2), pulled October 29, 2026.

Windows giving up?

The records say how cold it gets and how old the houses are. Only a look at your windows says what they need. Tell us your ZIP and what you are seeing, and a local installer registered with the state calls you back.

Ask the pro whether the estimate is free.

Get a window quote

What do you need? Pick any

Free to you. One state-registered installer calls, not five.

How we built this

Climate. NOAA NCEI U.S. Climate Normals 1991 to 2020 (annual and monthly products) for Des Moines International Airport (USW00014933), pulled through the NCEI Access Data Service. Heating degree days use a 65 F base.

Homes. US Census American Community Survey 2020-2024 5-year estimates by ZIP Code Tabulation Area and by place, via Census Reporter. "Built before 1980" combines the ACS year-built bands for 1979 and earlier; Iowa's lead rules use 1978, which ACS does not separate. City center points from the Census 2024 Gazetteer.

Hail. NOAA NCEI Storm Events Database bulk detail files, 1996 to 2025, filtered to Iowa county zones for Polk County (plus six neighboring counties for the city table). We count hail reports, distinct dates with at least one report, and the largest reported size. The latest report in the file we used is from September 2025; NOAA publishes with a lag.

Disasters. OpenFEMA Disaster Declarations Summaries filtered to Polk County, one row per declaration.

Limits. Airport normals describe the metro, not your street, and storm reports depend on who was there to measure. Use this to understand the area, not to decide what your windows need.

Using this data. Feel free to quote or republish this data under CC BY 4.0, with a link to this page.