Iowa Climate Data
Climate normals for 143 cities from 259 NOAA weather stations.
Avg Temperature
48°F (9°C)
Avg Precipitation
35.9"
Avg Snowfall
32.2"
Cities / Stations
143 / 259
Iowa Climate in Context
U.S. land-mean temperature anomaly (NOAA NCEI) tracked against global anomaly (NASA GISTEMP). Paris Agreement 1.5°C and 2.0°C thresholds shown as reference lines. Iowa sits within this national warming envelope; individual cities below show local readings against this trend.
- United States (incl. Iowa) +0.11 °C/decade
- Global (NASA GISTEMP) +0.11 °C/decade
- Paris Agreement thresholds 1.5°C / 2.0°C
Cities in Iowa
143 cities with climate data
| City | Avg Temp | High | Low | Precip | Snow | Comfort |
|---|---|---|---|---|---|---|
| Albia | 50°F | 60°F | 40°F | 36.5" | 30.0" | 62/100 |
| Algona | 46°F | 57°F | 35°F | 34.1" | N/A | 67/100 |
| Allerton | 50°F | 60°F | 40°F | 40.4" | N/A | 67/100 |
| Allison | 47°F | 57°F | 37°F | 35.4" | N/A | 67/100 |
| Ames | 48°F | 59°F | 37°F | 38.1" | 27.3" | 62/100 |
| Ames Muni | 49°F | 59°F | 38°F | 35.9" | N/A | 67/100 |
| Anamosa | 47°F | 58°F | 36°F | 40.1" | N/A | 67/100 |
| Ankeny | 50°F | 60°F | 39°F | 37.0" | 24.7" | 62/100 |
| Atlantic | 49°F | 61°F | 37°F | 37.1" | 27.3" | 62/100 |
| Audubon | 47°F | 58°F | 36°F | 35.0" | N/A | 67/100 |
| Battle Creek | 47°F | 58°F | 36°F | 32.1" | N/A | 67/100 |
| Beaconsfield | 49°F | 59°F | 39°F | 38.0" | 26.5" | 62/100 |
| Bedford | 50°F | 61°F | 40°F | 38.4" | N/A | 67/100 |
| Belle Plaine | 48°F | 59°F | 38°F | 36.0" | 27.9" | 62/100 |
| Bellevue L&d | 49°F | 59°F | 39°F | 37.8" | 31.9" | 62/100 |
| Bloomfield | 51°F | 61°F | 42°F | 39.1" | 24.2" | 62/100 |
| Boone | 48°F | 59°F | 37°F | 39.1" | 35.9" | 62/100 |
| Britt | 46°F | 56°F | 36°F | 34.3" | N/A | 67/100 |
| Burlington | 51°F | 61°F | 41°F | 41.0" | 21.8" | 62/100 |
| Burlington Muni | 52°F | 61°F | 43°F | 37.9" | N/A | 67/100 |
| Carroll | 48°F | 59°F | 38°F | 33.7" | N/A | 67/100 |
| Cascade | 48°F | 58°F | 38°F | 39.3" | 31.1" | 62/100 |
| Castana Exp Farm | 48°F | 59°F | 38°F | 32.1" | 28.6" | 62/100 |
| Cedar Rapids #1 | 50°F | 61°F | 39°F | 38.8" | 34.3" | 62/100 |
| Cedar Rapids Muni | 48°F | 58°F | 38°F | 35.9" | N/A | 67/100 |
| Centerville | 50°F | 61°F | 39°F | 36.0" | 21.5" | 62/100 |
| Chariton | 48°F | 60°F | 37°F | 37.3" | 24.1" | 62/100 |
| Charles City | 47°F | 56°F | 37°F | 37.7" | 37.5" | 62/100 |
| Cherokee | 47°F | 58°F | 35°F | 31.2" | 37.8" | 62/100 |
| Clarinda | 50°F | 62°F | 39°F | 36.6" | 22.8" | 62/100 |
| Clarion | 47°F | 58°F | 36°F | 34.3" | 31.1" | 62/100 |
| Clinton #1 | 50°F | 60°F | 41°F | 36.5" | 31.9" | 62/100 |
| Coggon | 47°F | 57°F | 36°F | 39.1" | N/A | 67/100 |
| Colo | 48°F | 58°F | 38°F | 36.5" | 30.6" | 62/100 |
| Columbus Junction | 49°F | 60°F | 38°F | 38.8" | 31.3" | 62/100 |
| Corning | 49°F | 60°F | 38°F | 35.3" | 27.8" | 62/100 |
| Cresco | 45°F | 56°F | 34°F | 38.0" | 40.3" | 62/100 |
| Creston | 49°F | 60°F | 38°F | 37.9" | N/A | 67/100 |
| Dakota City | 47°F | 57°F | 37°F | 35.8" | N/A | 67/100 |
| Davenport | 50°F | 60°F | 40°F | 36.2" | N/A | 67/100 |
| Decorah | 49°F | 59°F | 38°F | 37.6" | 37.5" | 62/100 |
| Denison | 48°F | 58°F | 37°F | 33.6" | 34.5" | 62/100 |
| Des Moines | 51°F | 61°F | 41°F | 36.5" | 36.5" | 62/100 |
| Des Moines Wsfo-johnston | 50°F | 60°F | 41°F | 36.2" | 38.0" | 62/100 |
| Donnellson | 52°F | 62°F | 41°F | 39.2" | 26.6" | 62/100 |
| Dubuque L&d | 48°F | 58°F | 39°F | 38.8" | 36.1" | 62/100 |
| Dubuque Rgnl | 47°F | 56°F | 38°F | 38.2" | 42.5" | 62/100 |
| Eldora | 47°F | 57°F | 37°F | 37.9" | 33.2" | 62/100 |
| Elkader | 46°F | 57°F | 35°F | 38.8" | 35.6" | 62/100 |
| Emmetsburg | 47°F | 58°F | 37°F | 33.6" | 37.1" | 62/100 |
| Estherville | 45°F | 56°F | 34°F | 31.7" | N/A | 57/100 |
| Estherville Muni | 45°F | 55°F | 35°F | 29.3" | N/A | 57/100 |
| Fairfield | 50°F | 60°F | 40°F | 38.4" | 21.7" | 62/100 |
| Fayette | 45°F | 56°F | 34°F | 39.5" | 41.1" | 62/100 |
| Forest City | 45°F | 55°F | 35°F | 35.9" | N/A | 57/100 |
| FT Dodge | 47°F | 57°F | 36°F | 35.1" | 39.0" | 62/100 |
| FT Madison | 52°F | 61°F | 43°F | 39.4" | 18.1" | 67/100 |
| Glenwood | 51°F | 63°F | 39°F | 34.8" | 23.7" | 62/100 |
| Greenfield | 49°F | 59°F | 39°F | 36.5" | 25.5" | 62/100 |
| Grinnell | 48°F | 58°F | 37°F | 38.2" | 31.0" | 62/100 |
| Grundy Ctr | 47°F | 57°F | 37°F | 36.8" | 32.3" | 62/100 |
| Guthrie Ctr | 48°F | 60°F | 37°F | 37.1" | N/A | 67/100 |
| Guttenberg L&d | 49°F | 58°F | 39°F | 37.3" | 34.4" | 62/100 |
| Hampton | 47°F | 57°F | 36°F | 38.1" | N/A | 67/100 |
| Harlan | 50°F | 61°F | 38°F | 34.3" | 30.5" | 62/100 |
| Hawarden | 47°F | 58°F | 35°F | 29.9" | 30.6" | 62/100 |
| Holstein | 47°F | 57°F | 37°F | 33.2" | 35.3" | 62/100 |
| Humboldt Wtp | 46°F | 55°F | 37°F | 35.0" | N/A | 67/100 |
| Ida Grove | 48°F | 58°F | 37°F | N/A | N/A | 52/100 |
| Independence #1 | 47°F | 58°F | 36°F | 37.4" | 33.9" | 62/100 |
| Indianola | 50°F | 61°F | 39°F | 37.8" | 30.8" | 62/100 |
| Iowa City | 49°F | 60°F | 38°F | 38.5" | 27.5" | 62/100 |
| Iowa City Muni | 51°F | 61°F | 41°F | 35.7" | N/A | 67/100 |
| Iowa Falls | 47°F | 57°F | 36°F | 38.1" | 27.7" | 62/100 |
| Jefferson | 48°F | 58°F | 37°F | 35.3" | 31.7" | 62/100 |
| Keokuk Lock Dam | 52°F | 62°F | 43°F | 39.8" | N/A | 67/100 |
| Keosauqua | 51°F | 61°F | 40°F | 39.7" | 23.0" | 62/100 |
| Knoxville | 50°F | 60°F | 40°F | 37.5" | N/A | 67/100 |
| Lake Park | 46°F | 57°F | 36°F | 31.4" | 41.0" | 62/100 |
| Lamoni | 51°F | 61°F | 41°F | N/A | N/A | 52/100 |
| Lamoni Muni | 52°F | 61°F | 42°F | 37.4" | N/A | 67/100 |
| LE Claire L&d | 51°F | 60°F | 41°F | 37.1" | N/A | 67/100 |
| LE Mars | 47°F | 58°F | 35°F | 30.0" | 30.9" | 62/100 |
| Leon | 50°F | 61°F | 38°F | 39.3" | 28.5" | 62/100 |
| Little Sioux | 48°F | 60°F | 36°F | 39.8" | 45.6" | 62/100 |
| Logan | 49°F | 61°F | 38°F | 34.4" | 28.7" | 62/100 |
| Lowden | 49°F | 60°F | 38°F | 39.6" | 39.8" | 62/100 |
| Manchester #2 | 46°F | 57°F | 36°F | 38.6" | 34.7" | 62/100 |
| Mapleton No.2 | 47°F | 58°F | 36°F | 32.2" | 31.1" | 62/100 |
| Maquoketa | 48°F | 57°F | 38°F | 36.7" | 30.3" | 62/100 |
| Marshalltown | 48°F | 58°F | 37°F | 37.9" | 25.3" | 62/100 |
| Marshalltown Muni | 48°F | 58°F | 37°F | 32.8" | N/A | 67/100 |
| Mason City | 46°F | 56°F | 36°F | 36.3" | N/A | 67/100 |
| Mason City Muni | 46°F | 56°F | 35°F | 36.3" | 44.4" | 62/100 |
| Milford | 46°F | 56°F | 36°F | 29.5" | 38.0" | 62/100 |
| MT Ayr | 50°F | 60°F | 39°F | 37.0" | 20.5" | 62/100 |
| MT Pleasant | 50°F | 61°F | 39°F | 38.5" | 24.8" | 62/100 |
| Muscatine | 51°F | 61°F | 40°F | 40.0" | 23.5" | 62/100 |
| New Hampton | 45°F | 55°F | 35°F | 40.6" | 38.5" | 52/100 |
| Newton | 49°F | 59°F | 38°F | 35.1" | 28.7" | 62/100 |
| Northwood | 43°F | 53°F | 33°F | 35.5" | 40.2" | 52/100 |
| Oakland | 49°F | 60°F | 39°F | 36.4" | 28.0" | 62/100 |
| Oelwein | 48°F | 58°F | 37°F | 35.4" | 39.3" | 62/100 |
| Onawa | 49°F | 61°F | 36°F | 29.9" | 31.0" | 62/100 |
| Osage | 45°F | 55°F | 36°F | 37.6" | 39.6" | 62/100 |
| Osceola | 50°F | 61°F | 38°F | 38.7" | 28.1" | 62/100 |
| Oskaloosa | 50°F | 61°F | 39°F | 38.7" | N/A | 67/100 |
| Ottumwa Industrial | 51°F | 61°F | 40°F | 37.0" | 23.6" | 62/100 |
| Perry | 49°F | 60°F | 38°F | 36.1" | N/A | 67/100 |
| Pocahontas | 47°F | 58°F | 36°F | 32.8" | 38.8" | 62/100 |
| Postville | 46°F | 57°F | 35°F | 38.9" | 39.8" | 62/100 |
| Primghar | 48°F | 58°F | 38°F | 31.4" | 34.8" | 62/100 |
| Rathbun Dam | 50°F | 61°F | 40°F | 38.6" | N/A | 67/100 |
| Red Oak | 51°F | 62°F | 40°F | 37.2" | 27.4" | 62/100 |
| Rock Rapids | 46°F | 57°F | 35°F | 29.3" | 34.9" | 62/100 |
| Rockwell City | 47°F | 58°F | 37°F | 33.8" | 32.1" | 62/100 |
| Sac City | 47°F | 57°F | 36°F | 33.0" | 30.9" | 62/100 |
| Sanborn | 45°F | 56°F | 35°F | 32.1" | 41.4" | 62/100 |
| Sheldon | 45°F | 56°F | 34°F | 31.1" | 40.8" | 52/100 |
| Shenandoah | 52°F | 63°F | 41°F | 36.4" | 26.4" | 62/100 |
| Sibley | 45°F | 55°F | 34°F | 30.2" | 41.5" | 52/100 |
| Sidney | 51°F | 62°F | 40°F | 33.3" | 20.6" | 62/100 |
| Sigourney | 49°F | 60°F | 38°F | 37.4" | N/A | 67/100 |
| Sioux City Ang | 48°F | 60°F | 36°F | 30.3" | N/A | 67/100 |
| Sioux City Gateway | 49°F | 60°F | 37°F | 29.3" | 36.0" | 62/100 |
| Sioux Ctr | 48°F | 59°F | 37°F | 29.9" | 34.8" | 62/100 |
| Sioux Rapids | 46°F | 56°F | 37°F | 32.0" | 35.2" | 62/100 |
| Spencer | 46°F | 57°F | 36°F | 31.0" | 43.3" | 62/100 |
| Spencer Muni | 47°F | 57°F | 36°F | 26.8" | N/A | 67/100 |
| Spirit Lake | 46°F | 55°F | 36°F | 29.1" | 41.5" | 62/100 |
| Stanley | 45°F | 56°F | 35°F | 38.6" | N/A | 67/100 |
| Storm Lake | 47°F | 57°F | 38°F | 33.8" | N/A | 67/100 |
| Swea City | 44°F | 54°F | 34°F | 32.9" | 39.7" | 52/100 |
| Tipton | 49°F | 59°F | 39°F | 36.5" | N/A | 67/100 |
| Toledo | 47°F | 58°F | 37°F | 35.3" | 32.8" | 62/100 |
| Tripoli | 46°F | 57°F | 36°F | 38.6" | N/A | 67/100 |
| Vinton | 46°F | 56°F | 36°F | 37.9" | 33.6" | 62/100 |
| Washington | 49°F | 60°F | 38°F | 37.9" | 25.2" | 62/100 |
| Waterloo Muni | 49°F | 59°F | 39°F | 36.3" | 39.1" | 62/100 |
| Waukon | 45°F | 55°F | 36°F | 39.2" | N/A | 67/100 |
| Webster City | 46°F | 57°F | 35°F | 37.2" | 32.9" | 62/100 |
| Williamsburg | 48°F | 59°F | 38°F | 37.7" | 28.1" | 62/100 |
| Winterset | 48°F | 59°F | 37°F | 34.8" | 30.7" | 62/100 |
Source: NOAA National Centers for Environmental Information U.S. Climate Normals v1.0.1 · 1991-2020 Statewide aggregates for Iowa computed from 259 reporting stations.
Climate Insight: Iowa
Iowa's climate profile is aggregated from 143 cities and 259 NOAA weather stations reporting under the 1991–2020 U.S. Climate Normals program. The statewide average annual temperature sits at 48°F, which represents a population-weighted mean across all measured localities rather than any single city's reading. Because Iowa spans multiple latitudes, elevations, and proximities to large water bodies, local conditions can differ from this headline number by wide margins — coastal, valley, and mountain stations often diverge by ten degrees or more even within a single month.
Precipitation and snowfall averages round out the climatological picture. Across Iowa, annual precipitation averages 35.9 inches, with typical seasonal snowfall near 32.2 inches statewide. These numbers combine rain, sleet, and snow water-equivalent and describe the thirty-year normal rather than any particular recent year. Readers evaluating a specific destination should drill into one of the 143 individual city pages below — each city's climate varies based on local geography, and the statewide figures here are averages that mask meaningful intrastate differences.
For planning purposes, the city table above is sorted to help you compare averages side-by-side: annual mean temperature, average daily high and low, precipitation totals, snowfall, and PlainClimate's composite comfort score. A city's comfort score weighs temperature mildness, humidity, and extreme-weather frequency into a single 0–100 rating, which is especially useful when contrasting locations at different elevations or distances from the coast. Use these rankings as a starting point, then open each city page for monthly breakdowns, degree-day totals, frost dates, and humidity metrics that matter for gardening, energy budgeting, and relocation decisions.
Data source: NOAA U.S. Climate Normals v1.0.1 (1991-2020). For informational purposes only.
Read our methodology — how this data is sourced, computed, and verified.