Climate Comfort Score
63/100
Good
Average temperature, precipitation, and a comfort score, drawn from NOAA NCEI 1991–2020 normals →
30-year climate normals from 2 weather stations (1991-2020).
The climate verdict for Des Moines
Des Moines, Iowa averages 51°F a year and scores 63/100 on the comfort index - good, milder than 47% of U.S. cities.
Based on NOAA U.S. Climate Normals (1991–2020) - 30-year averages describing the typical year, not a forecast.
Avg Temperature
51°F (11°C)
Avg High
61°F
Avg Low
41°F
Annual Precip
36.5"
Annual Snow
36.5"
Comfort Score
63/100
Good
Climate Comfort Score
63/100
Good
Avg Annual Temperature
51°F
30-year mean (NOAA NCEI)
Annual Precipitation
36.5"
Plus 36.5" of snow
PlainClimate composite, temperature mildness, humidity, precipitation, extreme-weather frequency. Good for the Des Moines area.
Des Moines's comfort score vs. all U.S. cities
PlainClimate composite comfort index (1–100), NOAA 1991–2020 normals
63 Top 53% higher than 47% of 6,915 US cities
Each bar is a band; taller bars hold more US cities. The dashed line + filled bar mark this entry. Hover or tap any bar for its full count, share, and where it sits relative to this entry.
Source NOAA U.S. Climate Normals, PlainClimate comfort index · 1991–2020
Zooming out from Des Moines's own normal, the chart below shows how the U.S. land temperature anomaly has tracked the global mean since 1900 - the most recent decade sits warmer than the 30-year mean shown here.
Average daily high and low temperatures by month
| Month | Avg High | Avg Low | Mean | Precip | Snow | Freeze Days | 90°F+ Days |
|---|---|---|---|---|---|---|---|
| January | 31°F (-1°C) | 14°F (-10°C) | 22°F (-5°C) | 1.1" | 9.4" | 29.5 | 0.0 |
| February | 36°F (2°C) | 18°F (-8°C) | 27°F (-3°C) | 1.3" | 10.2" | 24.9 | 0.0 |
| March | 49°F (10°C) | 30°F (-1°C) | 39°F (4°C) | 2.2" | 4.4" | 19.0 | 0.0 |
| April | 62°F (17°C) | 41°F (5°C) | 51°F (11°C) | 4.0" | 1.2" | 5.7 | 0.1 |
| May | 72°F (22°C) | 52°F (11°C) | 62°F (17°C) | 5.2" | 0.2" | 0.2 | 0.7 |
| June | 82°F (28°C) | 62°F (17°C) | 72°F (22°C) | 5.3" | 0.0" | 0.0 | 4.4 |
| July | 86°F (30°C) | 66°F (19°C) | 76°F (24°C) | 3.8" | 0.0" | 0.0 | 8.7 |
| August | 84°F (29°C) | 64°F (18°C) | 74°F (23°C) | 4.2" | 0.0" | 0.0 | 5.8 |
| September | 77°F (25°C) | 55°F (13°C) | 66°F (19°C) | 3.2" | 0.0" | 0.0 | 2.3 |
| October | 63°F (17°C) | 43°F (6°C) | 53°F (12°C) | 2.8" | 0.5" | 4.1 | 0.0 |
| November | 48°F (9°C) | 30°F (-1°C) | 39°F (4°C) | 1.9" | 2.7" | 17.0 | 0.0 |
| December | 36°F (2°C) | 20°F (-7°C) | 28°F (-2°C) | 1.6" | 7.9" | 27.4 | 0.0 |
Average monthly rainfall and snowfall
Snow: 9.4"
8.2 days with precipitation
Snow: 10.2"
8.4 days with precipitation
Snow: 4.4"
9.5 days with precipitation
Snow: 1.2"
11.5 days with precipitation
Snow: 0.2"
12.7 days with precipitation
11.7 days with precipitation
9.5 days with precipitation
9.4 days with precipitation
8.2 days with precipitation
Snow: 0.5"
8.6 days with precipitation
Snow: 2.7"
7.7 days with precipitation
Snow: 7.9"
7.8 days with precipitation
First Fall Freeze
October 20
50% probability date
Last Spring Freeze
April 18
50% probability date
Growing Season
185 days
Annual totals indicate energy demand for heating and cooling
Heating Degree Days
6,178
Higher = more heating needed
Cooling Degree Days
1,070
Higher = more cooling needed
Warmest Month
July
Coldest Month
January
Monthly averages from hourly observations
| Month | Humidity | Wind (mph) | Clear Sky % | Overcast % |
|---|---|---|---|---|
| January | 72% | 10.0 | 32% | 44% |
| February | 68% | 10.6 | 25% | 43% |
| March | 59% | 11.3 | 22% | 42% |
| April | 61% | 10.5 | 19% | 41% |
| May | 66% | 8.9 | 17% | 33% |
| June | 68% | 8.5 | 28% | 20% |
| July | 69% | 7.6 | 22% | 21% |
| August | 70% | 7.9 | 34% | 18% |
| September | 65% | 9.0 | 37% | 22% |
| October | 65% | 10.1 | 29% | 36% |
| November | 71% | 10.1 | 25% | 43% |
| December | 74% | 10.1 | 29% | 44% |
What Des Moines's climate means for you
Des Moines runs 51°F a year - peaking in July, coldest in January.
These are 30-year NOAA normals (1991–2020) - the typical year, not a forecast for any specific season.
Des Moines, Iowa runs an annual average of 51°F, ranging from a mean daily high of 61°F to a mean daily low of 41°F, per NOAA's 1991–2020 climate normals. July is typically the warmest month of the year, while January is the coldest. Drawn from 2 weather stations, these thirty-year averages smooth out year-to-year swings into a baseline for what a typical month looks like here.
Des Moines averages 36.5 inches of precipitation a year, with 36.5 inches typically falling as snow, and that matters as much to daily life here as temperature does. The frost-free season averages 185 days, which directly shapes the planting calendar and growing potential for the area, with the last spring freeze near April 18 and the first fall freeze near October 20. As for energy demand, 6,178 heating degree days and 1,070 cooling degree days tell the story of how often furnaces and air conditioners run during a normal year.
On PlainClimate's composite comfort index, Des Moines scores 63/100 (Good), a blended measure that weighs temperature mildness, precipitation moderation, and extreme-weather frequency against one another. The monthly tables above turn that into a planning tool: expect the mildest highs and lows in the shoulder seasons, July-driven heat at the peak of summer, and January-driven cold at the depth of winter. Every number here is a thirty-year average, not a forecast, so any given year can and does run warmer, cooler, wetter, or drier than the normal.
Data source: NOAA U.S. Climate Normals v1.0.1 (1991-2020). Station: USW00014933. For informational purposes only.
Read our methodology - how this data is sourced, computed, and verified.
Every figure on PlainClimate is rendered directly from NOAA 1991-2020 U.S. Climate Normals data, no number is typed in by an editor. This page draws directly on NOAA 1991-2020 U.S. Climate Normals data, no figure is typed in by an editor. See our editorial standards & corrections policy, the methodology behind these numbers, or report a data error.