Guest, Sign inJoin
Ward near Fourth in CaruthersvilleCaruthersville, #1 on this list · Photo: Nyttend · Public domain
Missouri rankings · Climate

Towns with the mildest winters in Missouri

Caruthersville has the mildest winters of Missouri’s 236 towns of 2,500+: January nights average a low of 30° (NOAA 1991–2020 normals). The typical town here averages 23°; none of the 236 stay above freezing.

The average January low. NOAA U.S. Climate Normals, 1991–2020, from NOAA’s 5 km grid at each town’s center; one town for each grid cell. A described list: no letters. How grades work

#1

Caruthersville

Pemiscot County · 5,211 people
30°

January low·July high 90°·71 freezing nights a year

#T2

Kennett

Dunklin County · 10,118 people
29°

January low·July high 90°·84 freezing nights a year

All 236 towns

January low, highest first. Towns with the same figure share a rank (T = tied; 200 towns here).

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

#TownJanuary lowNights ≤32°July high
1CaruthersvillePemiscot County · 5,211 people30°7190°average high
T2Independence TownshipDunklin County · 11,792 people29°8490°average high
T2KennettDunklin County · 10,118 people29°8490°average high
4PortagevilleNew Madrid County · 2,702 people29°7190°average high
T5Cotton Hill TownshipDunklin County · 4,700 people28°7790°average high
T5New MadridNew Madrid County · 2,586 people28°7290°average high
7Union TownshipDunklin County · 3,242 people28°7790°average high
8MaldenDunklin County · 3,493 people28°7790°average high
9East PrairieMississippi County · 2,841 people28°7489°average high
10SikestonScott County · 15,983 people28°7490°average high
T11CharlestonMississippi County · 4,731 people27°8189°average high
T11Liberty TownshipStoddard County · 14,741 people27°7790°average high
13DexterStoddard County · 7,851 people27°7790°average high
14Castor TownshipStoddard County · 4,651 people27°9789°average high
15Pike TownshipStoddard County · 3,577 people26°9790°average high
16Poplar BluffButler County · 16,295 people26°8390°average high
T17Duck Creek TownshipStoddard County · 3,016 people26°9290°average high
T17Scott CityScott County · 4,593 people26°9089°average high
19ChaffeeScott County · 3,017 people26°9089°average high
20Cape GirardeauCape Girardeau County · 40,977 people26°9089°average high
21JoplinJasper County · 53,930 people25°8790°average high
T22AndersonMcDonald County · 2,073 people25°10090°average high
T22BransonTaney County · 12,921 people25°10390°average high
T22Carl JunctionJasper County · 8,484 people25°8790°average high
T22HollisterTaney County · 4,690 people25°8690°average high
T22NeoshoNewton County · 14,078 people25°9890°average high
T22OronogoJasper County · 3,204 people25°8790°average high
T22Webb CityJasper County · 13,459 people25°8790°average high
T29CarthageJasper County · 15,895 people25°9390°average high
T29CassvilleBarry County · 3,301 people25°11088°average high
T29JacksonCape Girardeau County · 16,033 people25°9189°average high
32ForsythTaney County · 2,752 people25°10390°average high
33GranbyNewton County · 2,113 people24°9890°average high
34MonettBarry County · 10,248 people24°8989°average high
35LamarBarton County · 4,337 people24°10090°average high
36AuroraLawrence County · 7,686 people24°11288°average high
37West PlainsHowell County · 12,780 people24°10889°average high
T38MarionvilleLawrence County · 2,108 people24°11288°average high
T38Mount VernonLawrence County · 4,835 people24°11189°average high
T38Ste. GenevieveSte. Genevieve County · 5,065 people24°9989°average high
41CleverChristian County · 3,143 people24°11288°average high
T42AvaDouglas County · 3,231 people24°9688°average high
T42Center TownshipVernon County · 9,550 people24°9790°average high
T42PerryvillePerry County · 8,593 people24°11488°average high
T42PiedmontWayne County · 1,862 people24°10990°average high
T46Afftonunincorporated, St. Louis County · 19,052 people24°7989°average high
T46Concordunincorporated, St. Louis County · 18,368 people24°9788°average high
T46Lemayunincorporated, St. Louis County · 16,228 people24°9789°average high
T46MaplewoodSt. Louis County · 8,033 people24°7989°average high
T46Mehlvilleunincorporated, St. Louis County · 29,805 people24°9789°average high
T46NevadaVernon County · 8,404 people24°9790°average high
T46Oakvilleunincorporated, St. Louis County · 35,333 people24°9789°average high
T46St. LouisSt. Louis city · 278,144 people24°7988°average high
T54ArnoldJefferson County · 20,994 people23°10589°average high
T54Barnhartunincorporated, Jefferson County · 5,785 people23°10589°average high
T54Burdine TownshipTexas County · 3,327 people23°10387°average high
T54El Dorado SpringsCedar County · 3,642 people23°10089°average high
T54FestusJefferson County · 14,066 people23°10589°average high
T54Mountain ViewHowell County · 2,661 people23°10388°average high
T54Sunset HillsSt. Louis County · 9,075 people23°10688°average high
T61CrestwoodSt. Louis County · 12,207 people23°7988°average high
T61FergusonSt. Louis County · 17,953 people23°8588°average high
T61GlendaleSt. Louis County · 6,060 people23°7988°average high
T61JenningsSt. Louis County · 13,093 people23°8588°average high
T61Moline AcresSt. Louis County · 2,093 people23°8588°average high
T61Mountain GroveWright County · 4,754 people23°10387°average high
T61NormandySt. Louis County · 4,380 people23°8588°average high
T61NorthwoodsSt. Louis County · 3,579 people23°8588°average high
T61Osage BeachCamden County · 5,079 people23°8889°average high
T61OverlandSt. Louis County · 15,474 people23°8588°average high
T61PevelyJefferson County · 6,239 people23°10589°average high
T61RepublicGreene County · 22,404 people23°9588°average high
T61University CitySt. Louis County · 34,657 people23°8588°average high
T61Webster GrovesSt. Louis County · 23,450 people23°7989°average high
T75Bellefontaine NeighborsSt. Louis County · 10,368 people23°8588°average high
T75FentonSt. Louis County · 4,060 people23°10689°average high
T75KirkwoodSt. Louis County · 29,331 people23°10689°average high
T75Murphyunincorporated, Jefferson County · 8,285 people23°10688°average high
T75NixaChristian County · 26,597 people23°10888°average high
T75OzarkChristian County · 23,544 people23°10888°average high
T75Spanish Lakeunincorporated, St. Louis County · 17,873 people23°8588°average high
T82BerkeleySt. Louis County · 8,026 people23°8588°average high
T82Black JackSt. Louis County · 6,547 people23°8588°average high
T82Creve CoeurSt. Louis County · 18,480 people23°10688°average high
T82DellwoodSt. Louis County · 4,825 people23°8588°average high
T82Des PeresSt. Louis County · 9,102 people23°10688°average high
T82LadueSt. Louis County · 8,934 people23°8588°average high
T82OlivetteSt. Louis County · 8,937 people23°8588°average high
T82St. AnnSt. Louis County · 12,617 people23°8588°average high
T82WillardGreene County · 6,904 people23°9589°average high
T91BattlefieldGreene County · 6,361 people23°9589°average high
T91BolivarPolk County · 11,994 people23°10889°average high
T91CamdentonCamden County · 4,050 people23°8889°average high
T91Fort Leonard Woodunincorporated, Pulaski County · 15,432 people23°11189°average high
T91High Ridgeunincorporated, Jefferson County · 3,714 people23°10588°average high
T91LebanonLaclede County · 15,663 people23°9588°average high
T91Piney TownshipTexas County · 5,071 people23°10888°average high
T91Town and CountrySt. Louis County · 11,619 people23°10688°average high
T91Valley ParkSt. Louis County · 6,767 people23°10689°average high
T100FlorissantSt. Louis County · 51,124 people23°8588°average high
T100Old Jamestownunincorporated, St. Louis County · 20,651 people23°8588°average high
T100Sherrill TownshipTexas County · 5,574 people23°10988°average high
T100SpringfieldGreene County · 169,847 people23°9588°average high
T100St. RobertPulaski County · 5,602 people23°11089°average high
T105BallwinSt. Louis County · 30,901 people23°10688°average high
T105BridgetonSt. Louis County · 11,277 people23°8588°average high
T105Byrnes MillJefferson County · 3,183 people23°10588°average high
T105EldonMiller County · 4,785 people23°9788°average high
T105HillsboroJefferson County · 3,493 people23°10588°average high
T105ManchesterSt. Louis County · 18,069 people23°10689°average high
T105Maryland HeightsSt. Louis County · 27,559 people23°10689°average high
T105RogersvilleWebster County · 5,754 people23°13587°average high
T105WaynesvillePulaski County · 5,558 people23°11089°average high
T114HazelwoodSt. Louis County · 24,849 people23°8588°average high
T114StraffordGreene County · 2,789 people23°9587°average high
T116ChesterfieldSt. Louis County · 49,309 people23°10688°average high
T116Clarkson ValleySt. Louis County · 2,540 people23°10588°average high
T116De SotoJefferson County · 6,527 people23°10589°average high
T116EllisvilleSt. Louis County · 10,315 people23°10588°average high
T116RollaPhelps County · 20,588 people23°9688°average high
T121EurekaSt. Louis County · 13,422 people22°10589°average high
T121MarshfieldWebster County · 8,078 people22°9587°average high
T123St. CharlesSt. Charles County · 72,561 people22°10488°average high
T123WildwoodSt. Louis County · 34,955 people22°10588°average high
T125CottlevilleSt. Charles County · 6,717 people22°10588°average high
T125FredericktownMadison County · 4,584 people22°11588°average high
T125Jefferson CityCole County · 42,489 people22°10688°average high
T125PacificFranklin County · 7,824 people22°10589°average high
T125St. PetersSt. Charles County · 61,479 people22°10288°average high
T125Weldon SpringSt. Charles County · 5,301 people22°10588°average high
T131BuffaloDallas County · 3,550 people22°10889°average high
T131Dardenne PrairieSt. Charles County · 15,032 people22°10588°average high
T131Gray Summitunincorporated, Franklin County · 2,991 people22°11688°average high
T131SalemDent County · 4,674 people22°9188°average high
T135FarmingtonSt. Francois County · 19,226 people22°10488°average high
T135Holts SummitCallaway County · 4,773 people22°10688°average high
T135Mount Pleasant TownshipBates County · 5,093 people22°11189°average high
T138Bonne TerreSt. Francois County · 6,636 people22°10488°average high
T138DeslogeSt. Francois County · 4,819 people22°10489°average high
T138Lake St. LouisSt. Charles County · 19,129 people22°10588°average high
T138O'FallonSt. Charles County · 96,101 people22°10588°average high
T138Villa Ridgeunincorporated, Franklin County · 2,835 people22°10088°average high
143Park HillsSt. Francois County · 8,753 people22°10487°average high
T144ClintonHenry County · 9,504 people22°11789°average high
T144St. PaulSt. Charles County · 3,849 people22°10588°average high
T144Terre du Lacunincorporated, St. Francois County · 2,516 people22°10388°average high
147St. JamesPhelps County · 3,925 people22°9688°average high
T148St. ClairFranklin County · 4,813 people22°10088°average high
T148UnionFranklin County · 13,445 people22°10089°average high
T148VersaillesMorgan County · 2,713 people22°10988°average high
T148WentzvilleSt. Charles County · 49,495 people22°10588°average high
T148WindsorHenry County · 2,869 people22°11088°average high
T148Windsor TownshipHenry County · 3,454 people22°11788°average high
T154AshlandBoone County · 5,221 people21°10188°average high
T154CaliforniaMoniteau County · 4,523 people21°10488°average high
T154PotosiWashington County · 2,568 people21°10388°average high
T154WashingtonFranklin County · 15,906 people21°11689°average high
T158OwensvilleGasconade County · 2,802 people21°12488°average high
T158Whiteman AFBunincorporated, Johnson County · 3,517 people21°11788°average high
T160CubaCrawford County · 3,288 people21°14188°average high
T160Knob NosterJohnson County · 2,997 people21°11888°average high
T160New HavenFranklin County · 2,397 people21°12489°average high
T160SullivanFranklin County · 6,942 people21°12488°average high
T160TiptonMoniteau County · 2,766 people21°10488°average high
T160Wright CityWarren County · 5,854 people21°11188°average high
T166SedaliaPettis County · 22,621 people21°12288°average high
T166WarrensburgJohnson County · 20,283 people21°11889°average high
T168ColumbiaBoone County · 130,851 people21°9388°average high
T168HarrisonvilleCass County · 10,040 people21°10688°average high
T170BeltonCass County · 26,193 people21°10688°average high
T170Moscow MillsLincoln County · 4,388 people21°11188°average high
T170RaytownJackson County · 29,154 people21°11388°average high
T173BoonvilleCooper County · 7,867 people21°10788°average high
T173PeculiarCass County · 6,365 people21°10688°average high
T173TroyLincoln County · 15,201 people21°11188°average high
T173WarrentonWarren County · 9,667 people21°11187°average high
T177FultonCallaway County · 12,853 people20°11688°average high
T177GrandviewJackson County · 26,653 people20°9688°average high
T177Pleasant HillCass County · 8,956 people20°10688°average high
T177RaymoreCass County · 26,633 people20°10688°average high
T181OdessaLafayette County · 5,721 people20°11688°average high
T181ParkvillePlatte County · 9,093 people20°10788°average high
T181RiversidePlatte County · 4,581 people20°9388°average high
T184GladstoneClay County · 27,497 people20°9388°average high
T184Grain ValleyJackson County · 16,908 people20°11388°average high
T184GreenwoodJackson County · 6,315 people20°10688°average high
T184IndependenceJackson County · 121,675 people20°11388°average high
T188Blue SpringsJackson County · 61,632 people20°11388°average high
T188HigginsvilleLafayette County · 4,770 people20°11588°average high
T188Lee's SummitJackson County · 107,514 people20°9688°average high
T188LexingtonLafayette County · 4,568 people20°11888°average high
T188MarshallSaline County · 13,766 people20°11688°average high
T188Montgomery CityMontgomery County · 2,782 people20°11188°average high
T194FayetteHoward County · 2,848 people20°11388°average high
T194LouisianaPike County · 3,208 people20°10887°average high
T194Sugar CreekJackson County · 3,209 people20°11388°average high
T197BucknerJackson County · 2,891 people20°11388°average high
T197Kansas CityJackson County · 521,220 people20°10789°average high
T197Oak GroveJackson County · 9,370 people20°11688°average high
T200Bowling GreenPike County · 4,472 people20°11786°average high
T200LibertyClay County · 31,319 people20°11388°average high
T200Pleasant ValleyClay County · 2,747 people20°9388°average high
203Platte CityPlatte County · 4,911 people20°10788°average high
204MexicoAudrain County · 11,558 people20°11387°average high
T205CentraliaBoone County · 4,767 people20°11387°average high
T205RichmondRay County · 5,968 people20°13188°average high
T205VandaliaAudrain County · 3,029 people20°11987°average high
T208CarrolltonCarroll County · 3,499 people20°11788°average high
T208SmithvilleClay County · 11,160 people20°11988°average high
210Excelsior SpringsClay County · 10,819 people19°12887°average high
T211Carrollton TownshipCarroll County · 3,846 people19°11788°average high
T211LawsonRay County · 2,541 people19°12887°average high
T213HannibalMarion County · 16,804 people19°11487°average high
T213KearneyClay County · 11,296 people19°12888°average high
215MoberlyRandolph County · 13,719 people19°10287°average high
216PalmyraMarion County · 3,649 people19°11287°average high
217Marceline TownshipLinn County · 2,589 people19°12187°average high
218LathropClinton County · 2,253 people18°13287°average high
219Monroe CityMonroe County · 2,714 people18°12186°average high
T220Brookfield TownshipLinn County · 4,711 people18°12187°average high
T220ChillicotheLivingston County · 9,114 people18°12388°average high
T220MaconMacon County · 5,532 people18°11986°average high
T223Chillicothe TownshipLivingston County · 9,205 people18°12388°average high
T223St. JosephBuchanan County · 71,001 people18°12687°average high
225CantonLewis County · 2,763 people18°12287°average high
T226CameronClinton County · 7,341 people18°13287°average high
T226Country ClubAndrew County · 2,512 people18°13087°average high
228SavannahAndrew County · 5,107 people18°13087°average high
229Grand River TownshipDeKalb County · 3,258 people18°13287°average high
T230TrentonGrundy County · 5,557 people17°12788°average high
T230Trenton TownshipGrundy County · 5,964 people17°12787°average high
232KirksvilleAdair County · 17,863 people16°12686°average high
T233BethanyHarrison County · 2,956 people16°13286°average high
T233Bethany TownshipHarrison County · 3,363 people16°13287°average high
235Polk TownshipNodaway County · 13,673 people15°13886°average high
236Union TownshipPutnam County · 2,086 people15°13485°average high
Quick answers

Questions people ask

Which Missouri town has the mildest winters?

Caruthersville (Pemiscot County): January nights average a low of 30°. Independence Township (29°) and Kennett (29°) follow.

How are these towns ranked?

By the average January low (the coldest month’s nights), highest first, on NOAA’s 1991–2020 normals, read from its 5 km grid at each town’s center. Towns with the same figure share a rank (T); the figure and the state rank are the ones on each town’s Climate page. How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents, one for each of NOAA’s 5 km grid cells (236 in Missouri): where towns share a cell, one of them stands for it, since the grid gives them the same figures. Every town’s own figures are on its Climate page. Every town is on the Missouri page.

Go deeper

More Missouri lists

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

All Missouri rankings →
Other states

Mildest winters in other states