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)
Heating degree days by month, Des Moines
| Month | Normal low (F) | Normal high (F) | Heating degree days | Nights below 0 F |
|---|---|---|---|---|
| January | 13.8 | 30.9 | 1,322 | 5.3 |
| February | 18 | 35.7 | 1,068 | 2.6 |
| March | 29.6 | 49.2 | 796 | 0.5 |
| April | 40.6 | 62 | 421 | 0 |
| May | 52.3 | 72.4 | 153 | 0 |
| June | 62.4 | 81.9 | 15 | 0 |
| July | 66.4 | 85.6 | 1 | 0 |
| August | 64.2 | 83.6 | 4 | 0 |
| September | 55.4 | 76.9 | 86 | 0 |
| October | 42.9 | 63.4 | 383 | 0 |
| November | 30.2 | 48.3 | 773 | 0.1 |
| December | 19.5 | 35.9 | 1,156 | 2 |
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.
| ZIP | Area | Housing units | Median year built | Built before 1960 | Built before 1980 | Built 2000 or later | Owner occupied | Median home value |
|---|---|---|---|---|---|---|---|---|
| 50266 | West Des Moines (Jordan Creek) | 18,568 | 2002 | 5% | 16% | 56% | 50% | $345,600 |
| 50023 | Ankeny (west) | 18,560 | 2008 | 6% | 20% | 67% | 72% | $345,100 |
| 50315 | South Side (Southridge) | 16,421 | 1963 | 46% | 74% | 11% | 62% | $173,200 |
| 50265 | West Des Moines (Valley Junction) | 15,433 | 1984 | 22% | 43% | 17% | 66% | $281,800 |
| 50317 | East Side (Fairground) | 15,077 | 1963 | 46% | 73% | 17% | 73% | $177,600 |
| 50310 | Beaverdale / Merle Hay | 14,288 | 1956 | 60% | 85% | 6% | 70% | $222,700 |
| 50322 | Urbandale (east) | 13,646 | 1979 | 18% | 53% | 10% | 73% | $276,200 |
| 50021 | Ankeny (east) | 12,846 | 2002 | 5% | 20% | 54% | 75% | $317,200 |
| 50263 | Waukee | 12,442 | 2011 | 4% | 10% | 79% | 67% | $352,800 |
| 50131 | Johnston | 9,822 | 2004 | 3% | 8% | 63% | 71% | $369,400 |
| 50009 | Altoona | 9,394 | 1997 | 8% | 29% | 46% | 71% | $278,300 |
| 50320 | South Side (SE 14th) | 9,369 | 1995 | 9% | 28% | 40% | 74% | $216,900 |
| 50312 | Waterbury / Greenwood Park | 8,203 | 1945 | 66% | 85% | 6% | 64% | $291,900 |
| 50309 | Downtown / East Village | 8,069 | 1992 | 28% | 43% | 47% | 11% | $292,500 |
| 50313 | Highland Park / Oak Park | 7,417 | 1953 | 64% | 80% | 10% | 77% | $175,100 |
| 50325 | Clive | 7,363 | 1995 | 7% | 28% | 34% | 75% | $401,100 |
| 50311 | Drake / Sherman Hill | 6,867 | 1938 | 74% | 87% | 9% | 48% | $226,500 |
| 50211 | Norwalk | 6,812 | 2000 | 10% | 29% | 51% | 84% | $316,100 |
| 50111 | Grimes | 6,399 | 2008 | 6% | 16% | 66% | 72% | $308,800 |
| 50316 | East Side (Union Park) | 6,221 | 1952 | 61% | 82% | 5% | 67% | $154,300 |
| 50323 | Urbandale (north) | 6,145 | 2009 | 1% | 3% | 94% | 87% | $486,800 |
| 50327 | Pleasant Hill | 5,348 | 2000 | 4% | 28% | 51% | 81% | $314,400 |
| 50314 | River Bend / King-Irving | 4,940 | 1938 | 62% | 73% | 23% | 48% | $147,900 |
| 50321 | South Side (Airport) | 3,768 | 1982 | 13% | 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.
| City | Median year built | Built before 1980 | Built 2000 or later | Hail days nearby | Days 1 in+ | Largest nearby |
|---|---|---|---|---|---|---|
| Des Moines | 1961 | 70% | 17% | 79 | 50 | 3.25 in, July 2021 |
| West Des Moines | 1994 | 28% | 39% | 64 | 37 | 3 in, August 2022 |
| Ankeny | 2006 | 19% | 63% | 49 | 31 | 3 in, July 2009 |
| Urbandale | 1992 | 34% | 38% | 80 | 51 | 3.25 in, July 2021 |
| Johnston | 2004 | 7% | 63% | 72 | 47 | 3.25 in, July 2021 |
| Waukee | 2011 | 10% | 80% | 49 | 33 | 2.75 in, June 2017 |
| Clive | 1995 | 28% | 34% | 78 | 49 | 3 in, August 2022 |
| Altoona | 1998 | 28% | 47% | 31 | 22 | 2.5 in, March 2022 |
| Grimes | 2009 | 16% | 66% | 65 | 41 | 3 in, August 2022 |
| Pleasant Hill | 2002 | 25% | 55% | 47 | 32 | 2.5 in, March 2022 |
| Norwalk | 2002 | 27% | 53% | 51 | 32 | 2.5 in, October 2019 |
Hail in Polk County
Days with hail reported in Polk County, by year
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).
Average days with hail per year, by month, Polk County
By year
| Year | Hail reports | Hail days | Days 1 in+ | Largest stone |
|---|---|---|---|---|
| 2025 | 9 | 2 | 2 | 1 in |
| 2024 | 13 | 5 | 4 | 1.25 in |
| 2023 | 8 | 2 | 2 | 1 in |
| 2022 | 24 | 5 | 4 | 3 in |
| 2021 | 38 | 3 | 3 | 3.25 in |
| 2020 | 6 | 3 | 1 | 2 in |
| 2019 | 21 | 4 | 3 | 2.75 in |
| 2018 | 21 | 8 | 4 | 2 in |
| 2017 | 15 | 3 | 3 | 1.75 in |
| 2016 | 7 | 3 | 1 | 1.5 in |
| 2015 | 9 | 2 | 1 | 1.25 in |
| 2014 | 24 | 5 | 4 | 2.75 in |
| 2013 | 14 | 8 | 6 | 1.75 in |
| 2012 | 14 | 7 | 3 | 1 in |
| 2011 | 53 | 10 | 6 | 1.75 in |
| 2010 | 10 | 4 | 3 | 1 in |
| 2009 | 26 | 5 | 4 | 3 in |
| 2008 | 46 | 10 | 7 | 1.75 in |
| 2007 | 13 | 4 | 3 | 1 in |
| 2006 | 26 | 9 | 2 | 2 in |
| 2005 | 27 | 7 | 5 | 1.75 in |
| 2004 | 31 | 7 | 3 | 1.75 in |
| 2003 | 36 | 5 | 3 | 2 in |
| 2002 | 20 | 5 | 4 | 1.75 in |
| 2001 | 34 | 8 | 2 | 2.75 in |
| 2000 | 15 | 4 | 4 | 1.75 in |
| 1999 | 0 | 0 | 0 | none |
| 1998 | 19 | 5 | 4 | 2.5 in |
| 1997 | 3 | 3 | 1 | 1 in |
| 1996 | 1 | 1 | 0 | 0.8 in |
FEMA declarations for Polk County since 1996
| Declaration | Declared | Title | Incident type |
|---|---|---|---|
| DR-4942-IA | September 1, 2026 | Severe storms and flooding | Severe Storm |
| DR-4784-IA | May 24, 2024 | Severe storms, tornadoes, and flooding | Severe Storm |
| DR-4779-IA | May 14, 2024 | Severe storms and tornadoes | Tornado |
| DR-4557-IA | August 17, 2020 | Severe storms | Severe Storm |
| DR-4483-IA | March 23, 2020 | Covid-19 pandemic | Biological |
| EM-3480-IA | March 13, 2020 | Covid-19 | Biological |
| DR-4421-IA | March 23, 2019 | Severe storms and flooding | Flood |
| DR-4386-IA | August 20, 2018 | Severe storms, tornadoes, straight-line winds, and flooding | Severe Storm |
| DR-1930-IA | July 29, 2010 | Severe storms, flooding, and tornadoes | Severe Storm |
| DR-1763-IA | May 27, 2008 | Severe storms, tornadoes, and flooding | Severe Storm |
| DR-1688-IA | March 14, 2007 | Severe winter storms | Severe Storm |
| EM-3239-IA | September 10, 2005 | Hurricane katrina evacuation | Hurricane |
| DR-1518-IA | May 25, 2004 | Severe storms, tornadoes, and flooding | Severe Storm |
| DR-1230-IA | July 2, 1998 | Severe storms, tornadoes and flooding | Flood |
| DR-1191-IA | November 20, 1997 | Severe snowstorms | Snowstorm |
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.
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.