Guest, Sign inJoin
Fort Madison IowaFort Madison, #1 on this list · Photo: Billwhittaker · Public domain
Iowa rankings · Climate

Towns with the least snow in Iowa

Fort Madison gets the least snow of Iowa’s 140 towns of 2,500+ with a snow record: about 18 inches in a normal winter at its NOAA station. Mason City gets the most, about 44 inches; 53 of the 140 average under 30 inches.

NOAA U.S. Climate Normals, 1991–2020, at each town’s nearest station with a snow record (named in each row). A described list: no letters. How grades work

#1

Fort Madison

Lee County · 9,935 people
18in

8 days a year with an inch or more·Ft Madison station, 1 km

#2

Centerville

Appanoose County · 5,327 people
22in

8 days a year with an inch or more·Centerville station, 2 km

#3

Fairfield

Jefferson County · 9,220 people
22in

10 days a year with an inch or more·Fairfield station, 2 km

All 140 towns

Snow in a normal winter, least first. Towns that share a station share its figure and rank (T = tied; 80 towns here share a station).

140 towns ranked. Not here? See why a town may be missing.

#TownSnow a yearDays with 1″+NOAA station
1Fort MadisonLee County · 9,935 people18 in8Ft Madison1.0 km
2CentervilleAppanoose County · 5,327 people22 in8Centerville1.5 km
3FairfieldJefferson County · 9,220 people22 in10Fairfield1.9 km
T4BurlingtonDes Moines County · 23,336 people22 in8Burlington 2s3.7 km
T4West BurlingtonDes Moines County · 3,358 people22 in8Burlington 2s7.2 km
6ClarindaPage County · 5,273 people23 in9Clarinda1.9 km
7KeokukLee County · 9,510 people23 in9Bentley25.6 km
8MuscatineMuscatine County · 23,164 people24 in9Muscatine1.4 km
T9OskaloosaMahaska County · 11,493 people24 in8Ottumwa Industrial AP26.2 km
T9OttumwaWapello County · 25,319 people24 in8Ottumwa Industrial AP9.7 km
11OnawaMonona County · 2,821 people24 in9Kennebec9.4 km
12CharitonLucas County · 4,347 people24 in9Chariton 1 E2.6 km
13BloomfieldDavis County · 2,785 people24 in10Bloomfield1.1 km
T14AdelDallas County · 7,098 people25 in9Ankeny33.1 km
T14AltoonaPolk County · 22,796 people25 in9Ankeny16.8 km
T14AnkenyPolk County · 77,833 people25 in9Ankeny4.1 km
T14BondurantPolk County · 9,647 people25 in9Ankeny17.1 km
T14JohnstonPolk County · 25,065 people25 in9Ankeny7.6 km
T14MitchellvillePolk County · 2,671 people25 in9Ankeny24.5 km
T14Polk CityPolk County · 6,630 people25 in9Ankeny8.2 km
T14Saylorvilleunincorporated, Polk County · 3,366 people25 in9Ankeny6.0 km
22Mount PleasantHenry County · 8,500 people25 in11Mt Pleasant 1 SSW2.1 km
23WashingtonWashington County · 7,261 people25 in9Washington2.1 km
T24GlenwoodMills County · 5,287 people25 in10Plattsmouth 1e12.1 km
T24MarshalltownMarshall County · 27,536 people25 in11Marshalltown3.7 km
26CrestonUnion County · 7,335 people26 in10Greenfield26.9 km
27ShenandoahPage County · 4,808 people26 in9Shenandoah2.0 km
28Orange CitySioux County · 6,468 people27 in10Alton3.1 km
T29Carter LakePottawattamie County · 3,670 people27 in8Omaha Eppley Airfield2.8 km
T29Council BluffsPottawattamie County · 62,680 people27 in8Omaha Eppley Airfield9.1 km
31FairfaxLinn County · 2,925 people27 in11Walford 2 SE7.3 km
T32AtlanticCass County · 6,676 people27 in9Atlantic 1 NE3.1 km
T32HuxleyStory County · 4,715 people27 in13Ames 5 SE6.6 km
T32NevadaStory County · 6,974 people27 in13Ames 5 SE10.8 km
35Red OakMontgomery County · 5,388 people27 in9Red Oak1.9 km
T36CoralvilleJohnson County · 23,960 people28 in10Iowa City12.5 km
T36Iowa CityJohnson County · 76,229 people28 in10Iowa City5.6 km
T36KalonaWashington County · 2,811 people28 in10Iowa City21.3 km
T36TiffinJohnson County · 7,156 people28 in10Iowa City16.6 km
T36West BranchCedar County · 2,956 people28 in10Iowa City14.8 km
T36West LibertyMuscatine County · 3,717 people28 in10Iowa City20.6 km
T42HamptonFranklin County · 4,264 people28 in12Iowa Falls25.1 km
T42Iowa FallsHardin County · 5,013 people28 in12Iowa Falls1.1 km
T44OsceolaClarke County · 5,679 people28 in9Osceola3.5 km
T44WilliamsburgIowa County · 3,408 people28 in10Williamsburg 1e1.4 km
T46DeWittClinton County · 5,704 people29 in10De Witt1.4 km
T46EldridgeScott County · 6,954 people29 in10De Witt19.4 km
T46Missouri ValleyHarrison County · 2,616 people29 in11Logan12.9 km
T46NewtonJasper County · 15,741 people29 in11Newton1.9 km
T50Cedar RapidsLinn County · 137,935 people29 in9Swisher #212.9 km
T50North LibertyJohnson County · 21,976 people29 in9Swisher #213.4 km
T50SolonJohnson County · 3,345 people29 in9Swisher #216.7 km
53WiltonMuscatine County · 2,892 people29 in10Muscatine 2n13.2 km
T54AlbiaMonroe County · 3,599 people30 in9Albia 3 NNE4.6 km
T54KnoxvilleMarion County · 7,469 people30 in9Albia 3 NNE38.6 km
T54PellaMarion County · 10,992 people30 in9Albia 3 NNE39.3 km
57MaquoketaJackson County · 6,027 people30 in11Maquoketa1.9 km
58HarlanShelby County · 4,859 people30 in9Harlan0.8 km
59HawardenSioux County · 2,665 people31 in11Hawarden0.3 km
60WintersetMadison County · 5,520 people31 in12Winterset 1s3.3 km
61IndianolaWarren County · 16,829 people31 in10Indianola 2w6.9 km
T62Le MarsPlymouth County · 10,760 people31 in9Le Mars2.2 km
T62Storm LakeBuena Vista County · 11,590 people31 in12Sac City30.7 km
64GrinnellPoweshiek County · 9,430 people31 in11Grinnell 3 SW2.6 km
T65AnamosaJones County · 5,901 people31 in10Cascade30.2 km
T65ClarionWright County · 2,758 people31 in12Clarion1.4 km
T65DyersvilleDubuque County · 4,574 people31 in10Cascade22.3 km
T65MonticelloJones County · 4,104 people31 in10Cascade16.2 km
69JeffersonGreene County · 4,150 people32 in10Jefferson1.6 km
T70CamancheClinton County · 4,557 people32 in11Clinton #11.0 km
T70ClintonClinton County · 24,049 people32 in11Clinton #15.6 km
T70Le ClaireScott County · 4,741 people32 in11Clinton #124.0 km
73Story CityStory County · 3,382 people32 in12Jewell13.5 km
74Grundy CenterGrundy County · 2,814 people32 in11Grundy Ctr1.2 km
T75AmesStory County · 68,220 people33 in11Ames 8 WSW12.6 km
T75MadridBoone County · 2,820 people33 in11Ames 8 WSW16.6 km
T77PerryDallas County · 8,208 people33 in10Jamaica 3.2 S18.4 km
T77TamaTama County · 3,011 people33 in13Toledo 3n7.9 km
T79Eagle GroveWright County · 3,653 people33 in13Webster City23.6 km
T79Webster CityHamilton County · 7,815 people33 in13Webster City1.8 km
81EldoraHardin County · 2,593 people33 in11Eldora0.6 km
T82Center PointLinn County · 2,572 people34 in12Vinton18.8 km
T82VintonBenton County · 5,004 people34 in12Vinton1.7 km
T84IndependenceBuchanan County · 6,312 people34 in11Independence #17.5 km
T84JesupBuchanan County · 2,557 people34 in11Independence #116.5 km
T86HiawathaLinn County · 7,432 people34 in10Cedar Rapids #18.4 km
T86MarionLinn County · 42,732 people34 in10Cedar Rapids #10.6 km
T86Mount VernonLinn County · 4,514 people34 in10Cedar Rapids #119.3 km
T86RobinsLinn County · 3,366 people34 in10Cedar Rapids #17.8 km
T86Rock ValleySioux County · 4,188 people34 in12Rock Valley1.4 km
T91CarrollCarroll County · 10,085 people34 in12Denison38.5 km
T91DenisonCrawford County · 8,214 people34 in12Denison3.0 km
93ManchesterDelaware County · 5,357 people35 in11Manchester #21.4 km
94Sioux CenterSioux County · 8,864 people35 in14Sioux Ctr 2 SE2.7 km
95Rock RapidsLyon County · 2,733 people35 in12Rock Rapids0.3 km
96BooneBoone County · 12,471 people36 in11Boone1.7 km
T97Sergeant BluffWoodbury County · 5,324 people36 in11Sioux City Gateway AP2.4 km
T97Sioux CityWoodbury County · 86,356 people36 in11Sioux City Gateway AP11.6 km
T99BettendorfScott County · 40,710 people36 in11Moline Quad City Intl AP12.0 km
T99DavenportScott County · 100,358 people36 in11Moline Quad City Intl AP12.2 km
T99DubuqueDubuque County · 59,148 people36 in12Dubuque L&d 116.8 km
T102CarlisleWarren County · 4,532 people36 in11Des Moines Intl AP14.5 km
T102ClivePolk County · 19,861 people36 in11Des Moines Intl AP15.1 km
T102Des MoinesPolk County · 212,086 people36 in11Des Moines Intl AP5.6 km
T102NorwalkWarren County · 15,004 people36 in11Des Moines Intl AP6.4 km
T102Pleasant HillPolk County · 11,239 people36 in11Des Moines Intl AP14.3 km
T102WaukeeDallas County · 34,890 people36 in11Des Moines Intl AP20.1 km
T102West Des MoinesPolk County · 74,224 people36 in11Des Moines Intl AP10.8 km
T102Windsor HeightsPolk County · 5,059 people36 in11Des Moines Intl AP9.3 km
T110AlgonaKossuth County · 5,309 people37 in12Emmetsburg36.8 km
T110EmmetsburgPalo Alto County · 3,684 people37 in12Emmetsburg1.4 km
T112Charles CityFloyd County · 7,013 people38 in13Charles City0.2 km
T112DecorahWinneshiek County · 7,417 people38 in14Decorah0.9 km
114CherokeeCherokee County · 5,122 people38 in12Cherokee1.5 km
T115EsthervilleEmmet County · 5,807 people38 in12Milford 4 NW28.3 km
T115GrimesPolk County · 17,405 people38 in12Des Moines Wsfo-johnston9.3 km
T115MilfordDickinson County · 3,209 people38 in12Milford 4 NW5.6 km
T115UrbandalePolk County · 48,570 people38 in12Des Moines Wsfo-johnston12.1 km
119Forest CityWinnebago County · 4,143 people38 in13Lake Mills19.7 km
120New HamptonChickasaw County · 3,420 people38 in13NEW Hampton1.2 km
T121Fort DodgeWebster County · 24,837 people39 in16Ft Dodge 5nnw8.4 km
T121HumboldtHumboldt County · 4,675 people39 in16Ft Dodge 5nnw15.6 km
T123Cedar FallsBlack Hawk County · 41,240 people39 in12Waterloo Muni AP5.9 km
T123EvansdaleBlack Hawk County · 4,463 people39 in12Waterloo Muni AP14.6 km
T123HudsonBlack Hawk County · 3,028 people39 in12Waterloo Muni AP13.9 km
T123WaterlooBlack Hawk County · 66,919 people39 in12Waterloo Muni AP8.0 km
T123WaverlyBremer County · 10,561 people39 in12Waterloo Muni AP19.5 km
128OelweinFayette County · 5,757 people39 in13Oelwein 1e3.2 km
129OsageMitchell County · 3,552 people40 in14Osage0.4 km
T130TiptonCedar County · 3,060 people40 in14Lowden19.8 km
T130WaukonAllamakee County · 3,849 people40 in13Postville20.9 km
132CrescoHoward County · 3,925 people40 in15Cresco 1 NE2.7 km
133SheldonO'Brien County · 5,575 people41 in14Sheldon0.8 km
T134SibleyOsceola County · 2,762 people42 in15Sibley0.6 km
T134Spirit LakeDickinson County · 5,525 people42 in14Spirit Lake2.2 km
136AsburyDubuque County · 6,035 people42 in13Dubuque Rgnl AP14.2 km
137SpencerClay County · 11,218 people43 in14Spencer 1 N2.1 km
T138Clear LakeCerro Gordo County · 7,601 people44 in13Mason City Muni AP4.4 km
T138GarnerHancock County · 3,029 people44 in13Mason City Muni AP23.2 km
T138Mason CityCerro Gordo County · 26,853 people44 in13Mason City Muni AP10.3 km

A station’s normal can differ from the town’s own when the station sits higher or lower; each town’s Climate page names its station and checks it.

Quick answers

Questions people ask

What part of Iowa gets the least amount of snow?

Among towns of 2,500+, the least snow falls in Fort Madison (Lee County, about 18 in), Centerville (Appanoose County, about 22 in), Fairfield (Jefferson County, about 22 in), on NOAA’s 1991–2020 normals at each town’s station.

Which Iowa town gets the most snow?

Mason City (Cerro Gordo County), about 44 inches in a normal winter at the Mason City Muni AP station. See the snowiest towns.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents (140 in Iowa) whose nearest station has a snow normal of an inch or more; 0 have no station with a snow record. Smaller towns show their snow on their own Climate page.

Go deeper

More Iowa lists

Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.

All Iowa rankings →
Other states

Least snow in other states