Guest, Sign inJoin
Marshall MN 1Marshall, #1 on this list · Photo: Jon Platek · CC BY-SA 3.0
Minnesota rankings · Climate

Towns with the hottest summers in Minnesota

Marshall has the hottest summers of Minnesota’s 270 towns of 2,500+: July afternoons average a high of 84° (NOAA 1991–2020 normals). The typical town here averages 82°; none of the 270 average 90° or more.

The average July high. 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

Marshall

Lyon County · 14,171 people
84°

July high·January low 6°·18 days of 90°+ a year

#2

Granite Falls

Yellow Medicine County · 2,691 people
83°

July high·January low 5°·20 days of 90°+ a year

#3

Redwood Falls

Redwood County · 5,040 people
83°

July high·January low 6°·16 days of 90°+ a year

All 270 towns

July high, highest first. Towns with the same figure share a rank (T = tied; 250 towns here).

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

#TownJuly highDays ≥90°January low
1MarshallLyon County · 14,171 people84°186°average low
2Granite FallsYellow Medicine County · 2,691 people83°205°average low
3Redwood FallsRedwood County · 5,040 people83°166°average low
T4MontevideoChippewa County · 5,335 people83°114°average low
T4WinonaWinona County · 26,530 people83°128°average low
6LuverneRock County · 4,984 people83°186°average low
T7La CrescentHouston County · 5,261 people83°189°average low
T7Lake CityWabasha County · 5,306 people83°126°average low
T9Le SueurLe Sueur County · 4,210 people83°106°average low
T9North MankatoNicollet County · 14,165 people83°106°average low
T9South St. PaulDakota County · 20,532 people83°127°average low
T12New UlmBrown County · 13,863 people83°76°average low
T12SavageScott County · 32,970 people83°147°average low
T14BloomingtonHennepin County · 89,034 people83°127°average low
T14ShakopeeScott County · 49,366 people83°147°average low
T16BayportWashington County · 3,721 people83°186°average low
T16Belle PlaineScott County · 7,632 people83°66°average low
T16Mendota HeightsDakota County · 11,475 people83°127°average low
T16RichfieldHennepin County · 36,593 people83°127°average low
T16St. JamesWatonwan County · 4,863 people83°126°average low
T16WorthingtonNobles County · 13,979 people83°106°average low
T22Blue EarthFaribault County · 3,165 people82°107°average low
T22CarverCarver County · 7,198 people82°116°average low
T22Eden PrairieHennepin County · 63,075 people82°147°average low
T22EdinaHennepin County · 54,356 people82°127°average low
T22FairmontMartin County · 10,099 people82°117°average low
T22GoodviewWinona County · 4,122 people82°128°average low
T22HastingsDakota County · 22,563 people82°87°average low
T22St. PaulRamsey County · 306,684 people82°107°average low
T22St. PeterNicollet County · 12,275 people82°106°average low
T31BensonSwift County · 3,444 people82°123°average low
T31Brooklyn CenterHennepin County · 31,846 people82°126°average low
T31Brooklyn ParkHennepin County · 83,543 people82°126°average low
T31CrystalHennepin County · 22,239 people82°96°average low
T31FridleyAnoka County · 30,829 people82°186°average low
T31JordanScott County · 6,988 people82°66°average low
T31Lake CrystalBlue Earth County · 2,470 people82°106°average low
T31MinneapolisHennepin County · 430,324 people82°127°average low
T31Red WingGoodhue County · 16,805 people82°106°average low
T31RobbinsdaleHennepin County · 14,030 people82°96°average low
T31Sleepy EyeBrown County · 3,461 people82°76°average low
T31St. Paul ParkWashington County · 5,396 people82°87°average low
T43ChanhassenCarver County · 25,748 people82°76°average low
T43ChaskaCarver County · 30,513 people82°116°average low
T43GlencoeMcLeod County · 5,632 people82°65°average low
T43HopkinsHennepin County · 19,523 people82°97°average low
T43MankatoBlue Earth County · 46,529 people82°106°average low
T43New HopeHennepin County · 20,807 people82°96°average low
T43OsseoHennepin County · 2,534 people82°96°average low
T43Prior LakeScott County · 28,140 people82°147°average low
T43ShorewoodHennepin County · 7,620 people82°76°average low
T43St. Louis ParkHennepin County · 50,027 people82°97°average low
T43StillwaterWashington County · 19,354 people82°46°average low
T54AnokaAnoka County · 18,169 people82°105°average low
T54BlaineAnoka County · 76,603 people82°126°average low
T54Cannon FallsGoodhue County · 4,209 people82°106°average low
T54ChamplinHennepin County · 23,125 people82°105°average low
T54Columbia HeightsAnoka County · 22,482 people82°186°average low
T54Coon RapidsAnoka County · 64,193 people82°106°average low
T54Cottage GroveWashington County · 43,604 people82°87°average low
T54EaganDakota County · 67,109 people82°127°average low
T54Falcon HeightsRamsey County · 5,071 people82°107°average low
T54Golden ValleyHennepin County · 21,325 people82°96°average low
T54Inver Grove HeightsDakota County · 36,873 people82°87°average low
T54LexingtonAnoka County · 3,081 people82°126°average low
T54MayerCarver County · 2,563 people82°85°average low
T54MoundHennepin County · 9,064 people82°76°average low
T54New PragueScott County · 8,238 people82°66°average low
T54Spring Lake ParkAnoka County · 7,127 people82°126°average low
T70AftonWashington County · 2,960 people82°87°average low
T70BurnsvilleDakota County · 65,244 people82°127°average low
T70Cedar Lake TownshipScott County · 3,080 people82°67°average low
T70CentervilleAnoka County · 3,978 people82°126°average low
T70Chisago CityChisago County · 5,955 people82°145°average low
T70Circle PinesAnoka County · 4,967 people82°126°average low
T70ColumbusAnoka County · 4,356 people82°145°average low
T70Credit River5,644 people82°77°average low
T70DeephavenHennepin County · 3,794 people82°76°average low
T70Eagle LakeBlue Earth County · 3,357 people82°106°average low
T70Empire3,063 people82°87°average low
T70ExcelsiorHennepin County · 2,316 people82°76°average low
T70FarmingtonDakota County · 25,425 people82°77°average low
T70JacksonJackson County · 3,305 people82°86°average low
T70Lino LakesAnoka County · 23,220 people82°126°average low
T70Little CanadaRamsey County · 10,567 people82°127°average low
T70Maple GroveHennepin County · 73,893 people82°96°average low
T70MinnetonkaHennepin County · 53,969 people82°97°average low
T70Mounds ViewRamsey County · 12,786 people82°126°average low
T70New BrightonRamsey County · 22,159 people82°126°average low
T70North OaksRamsey County · 5,283 people82°126°average low
T70Norwood Young AmericaCarver County · 3,777 people82°116°average low
T70Oak Park HeightsWashington County · 4,625 people82°186°average low
T70RosemountDakota County · 31,881 people82°87°average low
T70Spring Lake TownshipScott County · 3,498 people82°67°average low
T70VictoriaCarver County · 12,447 people82°116°average low
T70WaconiaCarver County · 14,113 people82°116°average low
T70WayzataHennepin County · 4,344 people82°96°average low
T70West Lakeland TownshipWashington County · 3,931 people82°187°average low
T70WillmarKandiyohi County · 22,001 people82°84°average low
T100AndoverAnoka County · 33,874 people82°105°average low
T100DaytonHennepin County · 11,402 people82°115°average low
T100Forest LakeWashington County · 20,952 people82°145°average low
T100Ham LakeAnoka County · 17,104 people82°105°average low
T100IndependenceHennepin County · 3,763 people82°85°average low
T100LindstromChisago County · 5,039 people82°145°average low
T100MinnetristaHennepin County · 9,458 people82°85°average low
T100MoorheadClay County · 46,533 people82°100°average low
T100NorthfieldRice County · 21,992 people82°96°average low
T100RamseyAnoka County · 29,624 people82°115°average low
T100St. AnthonyHennepin County · 9,989 people82°107°average low
T100West St. PaulDakota County · 21,950 people82°127°average low
T100WindomCottonwood County · 4,817 people82°136°average low
T100WyomingChisago County · 8,121 people82°145°average low
T114Apple ValleyDakota County · 55,248 people82°87°average low
T114DelanoWright County · 7,788 people82°85°average low
T114DilworthClay County · 4,823 people82°100°average low
T114East BethelAnoka County · 12,605 people82°45°average low
T114FaribaultRice County · 25,040 people82°96°average low
T114Franklin TownshipWright County · 2,939 people82°85°average low
T114GrantWashington County · 3,954 people82°46°average low
T114HugoWashington County · 17,167 people82°126°average low
T114HutchinsonMcLeod County · 14,655 people82°105°average low
T114Lake ElmoWashington County · 14,376 people82°47°average low
T114Linwood TownshipAnoka County · 5,403 people82°145°average low
T114MahtomediWashington County · 8,189 people82°126°average low
T114MaplewoodRamsey County · 40,717 people82°127°average low
T114MedinaHennepin County · 7,460 people82°96°average low
T114North BranchChisago County · 12,398 people82°104°average low
T114OronoHennepin County · 8,301 people82°96°average low
T114PipestonePipestone County · 4,100 people82°116°average low
T114PlymouthHennepin County · 78,942 people82°96°average low
T114RosevilleRamsey County · 35,663 people82°107°average low
T114ShoreviewRamsey County · 26,906 people82°127°average low
T114St. MichaelWright County · 22,498 people82°65°average low
T114StacyChisago County · 4,367 people82°144°average low
T114Vadnais HeightsRamsey County · 13,052 people82°127°average low
T114WabashaWabasha County · 2,599 people82°77°average low
T114WatertownCarver County · 4,789 people82°85°average low
T114White Bear LakeRamsey County · 23,392 people82°126°average low
T114White Bear TownshipRamsey County · 10,399 people82°126°average low
T141CokatoWright County · 2,793 people82°94°average low
T141CorcoranHennepin County · 9,269 people82°95°average low
T141GreenfieldHennepin County · 2,962 people82°85°average low
T141HanoverWright County · 4,392 people82°65°average low
T141Le CenterLe Sueur County · 2,524 people82°106°average low
T141May TownshipWashington County · 2,638 people82°46°average low
T141MontroseWright County · 3,986 people82°85°average low
T141Rockford TownshipWright County · 3,474 people82°85°average low
T141RogersHennepin County · 15,606 people82°115°average low
T141ScandiaWashington County · 3,979 people82°146°average low
T141WoodburyWashington County · 81,558 people82°87°average low
T152AlbertvilleWright County · 8,544 people82°115°average low
T152Chisago Lake TownshipChisago County · 4,958 people82°114°average low
T152LakevilleDakota County · 79,270 people82°77°average low
T152New Market TownshipScott County · 3,574 people82°77°average low
T152NowthenAnoka County · 4,630 people82°114°average low
T152Oak GroveAnoka County · 9,476 people82°45°average low
T152RockfordWright County · 4,827 people82°85°average low
T159Cascade TownshipOlmsted County · 2,810 people82°86°average low
T159Elk RiverSherburne County · 27,896 people82°114°average low
T159Elko New MarketScott County · 5,300 people82°77°average low
T159LitchfieldMeeker County · 6,528 people82°74°average low
T159MontgomeryLe Sueur County · 3,539 people82°66°average low
T159MorrisStevens County · 5,150 people82°72°average low
T159OakdaleWashington County · 30,588 people82°87°average low
T159OtsegoWright County · 24,525 people82°115°average low
T159St. AugustaStearns County · 3,799 people82°93°average low
T168AnnandaleWright County · 3,801 people82°34°average low
T168BeckerSherburne County · 5,425 people82°74°average low
T168Becker TownshipSherburne County · 5,698 people82°74°average low
T168BuffaloWright County · 16,878 people82°64°average low
T168Corinna TownshipWright County · 2,596 people82°34°average low
T168IsantiIsanti County · 7,714 people82°54°average low
T168LonsdaleRice County · 5,117 people82°96°average low
T168Monticello TownshipWright County · 3,374 people82°64°average low
T168New London TownshipKandiyohi County · 2,965 people82°103°average low
T168RochesterOlmsted County · 124,292 people82°56°average low
T168SartellStearns County · 19,918 people82°93°average low
T168Silver Creek TownshipWright County · 2,620 people82°64°average low
T168St. CloudStearns County · 72,647 people82°93°average low
T168St. FrancisAnoka County · 8,635 people82°44°average low
T168Waite ParkStearns County · 8,450 people82°93°average low
T168Watab TownshipBenton County · 3,478 people82°63°average low
T184Big LakeSherburne County · 12,929 people81°114°average low
T184ChatfieldFillmore County · 3,018 people81°86°average low
T184Cold SpringStearns County · 4,329 people81°93°average low
T184MonticelloWright County · 15,670 people81°64°average low
T184Palmer TownshipSherburne County · 2,633 people81°93°average low
T184PlainviewWabasha County · 3,482 people81°126°average low
T184St. JosephStearns County · 6,846 people81°93°average low
T184WasecaWaseca County · 9,035 people81°106°average low
T184ZumbrotaGoodhue County · 4,072 people81°76°average low
T193BarnesvilleClay County · 2,767 people81°50°average low
T193CambridgeIsanti County · 11,090 people81°54°average low
T193Cambridge TownshipIsanti County · 2,592 people81°54°average low
T193PaynesvilleStearns County · 2,591 people81°103°average low
T193Pine IslandGoodhue County · 3,911 people81°76°average low
T193Rush CityChisago County · 3,300 people81°94°average low
T193Sauk RapidsBenton County · 13,768 people81°93°average low
T200Albert LeaFreeborn County · 18,217 people81°86°average low
T200AustinMower County · 26,689 people81°66°average low
T200Bradford TownshipIsanti County · 3,549 people81°54°average low
T200Little FallsMorrison County · 9,277 people81°142°average low
T200Marion TownshipOlmsted County · 4,111 people81°56°average low
T200Orrock TownshipSherburne County · 3,698 people81°74°average low
T200OwatonnaSteele County · 26,633 people81°96°average low
T200Wakefield TownshipStearns County · 2,829 people81°93°average low
T200ZimmermanSherburne County · 6,904 people81°74°average low
T209Brockway TownshipStearns County · 3,016 people81°63°average low
T209St. CharlesWinona County · 4,090 people81°96°average low
T211Blue Hill TownshipSherburne County · 2,625 people81°74°average low
T211CaledoniaHouston County · 2,768 people81°58°average low
T211Collegeville TownshipStearns County · 3,262 people81°93°average low
T211East Grand ForksPolk County · 8,906 people81°7−2°average low
T211GlenwoodPope County · 2,631 people81°91°average low
T211Livonia TownshipSherburne County · 6,436 people81°114°average low
T211MelroseStearns County · 3,888 people81°92°average low
T211Pine CityPine County · 3,820 people81°43°average low
T211Pokegama TownshipPine County · 2,884 people81°43°average low
T220FoleyBenton County · 2,650 people81°93°average low
T220PrincetonMille Lacs County · 5,480 people81°74°average low
222ByronOlmsted County · 6,740 people81°86°average low
T223AlbanyStearns County · 2,873 people81°92°average low
T223CrookstonPolk County · 7,375 people81°7−2°average low
T223MilacaMille Lacs County · 3,041 people81°53°average low
T223StewartvilleOlmsted County · 6,850 people81°56°average low
T227Dodge CenterDodge County · 2,951 people81°86°average low
T227Fergus FallsOtter Tail County · 14,246 people81°80°average low
T227KassonDodge County · 7,350 people81°86°average low
T227Sauk CentreStearns County · 4,663 people81°91°average low
231MoraKanabec County · 3,763 people80°53°average low
T232BaxterCrow Wing County · 9,217 people80°51°average low
T232Sylvan TownshipCass County · 3,030 people80°21°average low
234BrainerdCrow Wing County · 14,428 people80°51°average low
235Pelican RapidsOtter Tail County · 2,608 people80°5−1°average low
T236AlexandriaDouglas County · 15,045 people80°61°average low
T236Alexandria TownshipDouglas County · 3,114 people80°61°average low
T236Breezy PointCrow Wing County · 2,771 people80°40°average low
T236La Grand TownshipDouglas County · 4,309 people80°61°average low
T236Long PrairieTodd County · 3,830 people80°51°average low
241CrosslakeCrow Wing County · 2,412 people80°40°average low
242WadenaWadena County · 4,341 people80°30°average low
243Thief River FallsPennington County · 8,799 people79°6−4°average low
244PerhamOtter Tail County · 3,746 people79°3−1°average low
T245Detroit LakesBecker County · 10,019 people79°7−2°average low
T245Moose LakeCarlton County · 2,948 people79°51°average low
247Park RapidsHubbard County · 4,447 people79°5−2°average low
248RoseauRoseau County · 2,685 people79°2−5°average low
T249BemidjiBeltrami County · 15,770 people79°4−3°average low
T249Bemidji TownshipBeltrami County · 4,031 people79°4−2°average low
T249CohassetItasca County · 2,728 people79°2−2°average low
T249Grand RapidsItasca County · 11,181 people79°6−2°average low
T249Harris TownshipItasca County · 3,364 people79°6−1°average low
254Northern TownshipBeltrami County · 3,701 people78°4−3°average low
255White TownshipSt. Louis County · 3,088 people78°1−4°average low
T256EvelethSt. Louis County · 3,381 people78°2−3°average low
T256Mountain IronSt. Louis County · 2,835 people78°2−3°average low
T258CloquetCarlton County · 12,399 people78°60°average low
T258ElySt. Louis County · 3,231 people78°2−5°average low
T258Thomson TownshipCarlton County · 5,624 people78°61°average low
T258VirginiaSt. Louis County · 8,187 people78°2−3°average low
T262Grand Lake TownshipSt. Louis County · 2,705 people78°2−2°average low
T262HibbingSt. Louis County · 15,823 people78°2−2°average low
T262International FallsKoochiching County · 5,481 people78°2−5°average low
265ChisholmSt. Louis County · 4,625 people78°2−2°average low
T266HermantownSt. Louis County · 10,110 people77°22°average low
T266Rice LakeSt. Louis County · 4,169 people77°20°average low
268ProctorSt. Louis County · 3,054 people77°23°average low
269DuluthSt. Louis County · 88,330 people76°35°average low
270Two HarborsLake County · 3,443 people75°14°average low
Quick answers

Questions people ask

Which Minnesota town has the hottest summers?

Marshall (Lyon County): July afternoons average a high of 84°. Granite Falls (83°) and Redwood Falls (83°) follow.

How are these towns ranked?

By the average July high (the warmest month’s afternoons), 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 (270 in Minnesota): 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 Minnesota page.

Go deeper

More Minnesota lists

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

All Minnesota rankings →
Other states

Hottest summers in other states