Guest, Sign inJoin
Michigan rankings · Climate

Towns with the hottest summers in Michigan

Bedford Township has the hottest summers of Michigan’s 691 towns of 2,500+: July afternoons average a high of 85° (NOAA 1991–2020 normals). The typical town here averages 82°; none of the 691 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

All 691 towns

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

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

#TownJuly highDays ≥90°January low
1Bedford TownshipMonroe County · 32,013 people85°1419°average low
T2Ida TownshipMonroe County · 4,808 people84°1419°average low
T2Whiteford TownshipMonroe County · 4,618 people84°1419°average low
T4BlissfieldLenawee County · 3,262 people84°1418°average low
T4La Salle TownshipMonroe County · 4,591 people84°1420°average low
T4Summerfield TownshipMonroe County · 3,195 people84°1418°average low
7Raisinville TownshipMonroe County · 6,136 people84°1418°average low
T8Ash TownshipMonroe County · 8,013 people84°1219°average low
T8Blissfield TownshipLenawee County · 3,836 people84°1418°average low
T8CarletonMonroe County · 2,302 people84°1218°average low
T8Exeter TownshipMonroe County · 3,977 people84°1218°average low
T8Huron TownshipWayne County · 16,556 people84°1318°average low
T8Monroe TownshipMonroe County · 14,277 people84°1420°average low
T14BellevilleWayne County · 3,851 people84°2118°average low
T14Dearborn HeightsWayne County · 60,664 people84°1618°average low
T14Dundee TownshipMonroe County · 8,780 people84°1418°average low
T14Frenchtown TownshipMonroe County · 21,753 people84°1319°average low
T14London TownshipMonroe County · 3,006 people84°1118°average low
T14Sumpter TownshipWayne County · 11,384 people84°1218°average low
T20Garden CityWayne County · 26,280 people84°1618°average low
T20Raisin TownshipLenawee County · 8,165 people84°1417°average low
T20RomulusWayne County · 24,547 people84°1318°average low
T20TaylorWayne County · 61,279 people84°1318°average low
T20WayneWayne County · 17,065 people84°1318°average low
T20WestlandWayne County · 82,333 people84°1318°average low
T26Allen ParkWayne County · 27,445 people84°1619°average low
T26Augusta TownshipWashtenaw County · 7,345 people84°1117°average low
T26Canton TownshipWayne County · 99,714 people84°2117°average low
T26DearbornWayne County · 105,611 people84°1619°average low
T26FerndaleOakland County · 19,212 people84°1318°average low
T26Hazel ParkOakland County · 14,937 people84°1318°average low
T26InksterWayne County · 24,959 people84°1318°average low
T26LivoniaWayne County · 92,603 people84°1118°average low
T26Madison HeightsOakland County · 28,297 people84°1318°average low
T26MilanWashtenaw County · 5,973 people84°1217°average low
T26Redford TownshipWayne County · 47,432 people84°1618°average low
T26SouthfieldOakland County · 76,111 people84°1118°average low
T26Van Buren TownshipWayne County · 29,770 people84°2117°average low
T39Berlin TownshipMonroe County · 10,123 people84°1320°average low
T39Erie TownshipMonroe County · 4,348 people84°1421°average low
T39Flat RockWayne County · 10,218 people84°1319°average low
T42Alamo TownshipKalamazoo County · 3,826 people84°1318°average low
T42Almena TownshipVan Buren County · 5,404 people84°1318°average low
T42Cooper TownshipKalamazoo County · 10,446 people84°1918°average low
T42DetroitWayne County · 649,095 people84°1319°average low
T42Gun Plain TownshipAllegan County · 6,169 people84°1918°average low
T42KalamazooKalamazoo County · 72,683 people84°1217°average low
T42Lathrup VillageOakland County · 4,019 people84°1118°average low
T42Madison TownshipLenawee County · 7,538 people84°1217°average low
T42Oak ParkOakland County · 29,072 people84°1318°average low
T42OtsegoAllegan County · 4,045 people84°518°average low
T42Paw PawVan Buren County · 3,386 people84°1318°average low
T42PlainwellAllegan County · 3,722 people84°518°average low
T42Plymouth TownshipWayne County · 27,130 people84°1217°average low
T42Royal OakOakland County · 57,583 people84°1318°average low
T42Sterling HeightsMacomb County · 133,931 people84°1318°average low
T42WarrenMacomb County · 137,138 people84°1319°average low
T42Waverly TownshipVan Buren County · 2,502 people84°1318°average low
T59AdrianLenawee County · 20,191 people84°1417°average low
T59Brady TownshipKalamazoo County · 4,485 people84°1217°average low
T59Comstock TownshipKalamazoo County · 15,512 people84°1217°average low
T59Constantine TownshipSt. Joseph County · 4,043 people84°1317°average low
T59Pavilion TownshipKalamazoo County · 6,333 people84°1217°average low
T59PortageKalamazoo County · 49,862 people84°1217°average low
T59Schoolcraft TownshipKalamazoo County · 9,316 people84°1217°average low
T59TecumsehLenawee County · 8,608 people84°2017°average low
T59VicksburgKalamazoo County · 3,973 people84°1217°average low
T59WoodhavenWayne County · 12,503 people84°1319°average low
T59Ypsilanti TownshipWashtenaw County · 53,721 people84°1217°average low
T70Adrian TownshipLenawee County · 6,322 people83°1417°average low
T70Antwerp TownshipVan Buren County · 13,832 people83°1317°average low
T70Beverly HillsOakland County · 10,449 people83°1118°average low
T70HamtramckWayne County · 27,261 people83°1319°average low
T70Kalamazoo TownshipKalamazoo County · 22,523 people83°1217°average low
T70Lockport TownshipSt. Joseph County · 3,825 people83°1317°average low
T70MattawanVan Buren County · 2,934 people83°1317°average low
T70MelvindaleWayne County · 12,325 people83°1619°average low
T70MonroeMonroe County · 20,076 people83°1420°average low
T70Otsego TownshipAllegan County · 6,001 people83°518°average low
T70Park TownshipSt. Joseph County · 2,374 people83°1317°average low
T70Paw Paw TownshipVan Buren County · 6,884 people83°1318°average low
T70Shelby TownshipMacomb County · 80,415 people83°1018°average low
T70Southfield TownshipOakland County · 14,671 people83°1118°average low
T70Texas TownshipKalamazoo County · 18,864 people83°1217°average low
T70TroyOakland County · 88,733 people83°1018°average low
T70UticaMacomb County · 5,114 people83°1118°average low
T70White Pigeon TownshipSt. Joseph County · 3,893 people83°1318°average low
T70York TownshipWashtenaw County · 9,130 people83°1817°average low
T89AlleganAllegan County · 5,127 people83°518°average low
T89Bloomingdale TownshipVan Buren County · 3,074 people83°1318°average low
T89Decatur TownshipVan Buren County · 3,503 people83°1118°average low
T89Mendon TownshipSt. Joseph County · 2,565 people83°1317°average low
T89Nottawa TownshipSt. Joseph County · 3,808 people83°1317°average low
T89Pine Grove TownshipVan Buren County · 3,083 people83°1317°average low
T89Three RiversSt. Joseph County · 7,910 people83°1317°average low
T89Trowbridge TownshipAllegan County · 2,561 people83°1318°average low
T97BirminghamOakland County · 21,923 people83°1017°average low
T97Brownstown TownshipWayne County · 32,680 people83°1320°average low
T97Burr Oak TownshipSt. Joseph County · 2,635 people83°1117°average low
T97ClintonLenawee County · 2,481 people83°2017°average low
T97Clinton TownshipMacomb County · 101,374 people83°1119°average low
T97Colon TownshipSt. Joseph County · 3,336 people83°1317°average low
T97DowagiacCass County · 5,725 people83°1118°average low
T97Fabius TownshipSt. Joseph County · 3,325 people83°1317°average low
T97GrandvilleKent County · 17,018 people83°1018°average low
T97Howard TownshipCass County · 6,255 people83°1218°average low
T97Lawrence TownshipVan Buren County · 3,294 people83°1318°average low
T97LowellKent County · 4,134 people83°1017°average low
T97Macomb TownshipMacomb County · 95,099 people83°1118°average low
T97NilesBerrien County · 11,665 people83°1218°average low
T97Niles TownshipBerrien County · 14,304 people83°1218°average low
T97Northville TownshipWayne County · 31,399 people83°1117°average low
T97Porter TownshipCass County · 3,946 people83°1317°average low
T97SalineWashtenaw County · 9,001 people83°1817°average low
T97WyomingKent County · 78,588 people83°1018°average low
T116Athens TownshipCalhoun County · 2,458 people83°1017°average low
T116Clinton TownshipLenawee County · 3,700 people83°2017°average low
T116Columbia TownshipVan Buren County · 2,542 people83°1318°average low
T116Farmington HillsOakland County · 83,291 people83°1117°average low
T116FranklinOakland County · 3,134 people83°1117°average low
T116Harper WoodsWayne County · 14,860 people83°1319°average low
T116Hartford TownshipVan Buren County · 2,981 people83°1118°average low
T116Hopkins TownshipAllegan County · 2,754 people83°518°average low
T116Lincoln ParkWayne County · 38,529 people83°1620°average low
T116Martin TownshipAllegan County · 2,721 people83°517°average low
T116Porter TownshipVan Buren County · 2,494 people83°1317°average low
T116RosevilleMacomb County · 46,863 people83°1319°average low
T116Sherman TownshipSt. Joseph County · 3,462 people83°1317°average low
T116SturgisSt. Joseph County · 10,900 people83°1117°average low
T116Superior TownshipWashtenaw County · 14,862 people83°1216°average low
T116Wayne TownshipCass County · 2,463 people83°1118°average low
T116Yankee Springs TownshipBarry County · 5,462 people83°1017°average low
T133Ann ArborWashtenaw County · 122,233 people83°1216°average low
T133BuchananBerrien County · 4,143 people83°1218°average low
T133Byron TownshipKent County · 28,685 people83°1018°average low
T133Caledonia TownshipKent County · 17,171 people83°1017°average low
T133Cascade TownshipKent County · 20,201 people83°1017°average low
T133Franklin TownshipLenawee County · 3,047 people83°1417°average low
T133Georgetown TownshipOttawa County · 55,682 people83°918°average low
T133Grand RapidsKent County · 201,183 people83°1017°average low
T133Jefferson TownshipCass County · 2,581 people83°1117°average low
T133KentwoodKent County · 54,776 people83°1017°average low
T133LaGrange TownshipCass County · 3,724 people83°1117°average low
T133Mason TownshipCass County · 2,874 people83°1217°average low
T133Milton TownshipCass County · 3,187 people83°1217°average low
T133Mount ClemensMacomb County · 15,419 people83°1119°average low
T133NorthvilleOakland County · 6,013 people83°1116°average low
T133Oshtemo TownshipKalamazoo County · 23,971 people83°1217°average low
T133Pittsfield TownshipWashtenaw County · 40,265 people83°1116°average low
T133Plainfield TownshipKent County · 34,770 people83°917°average low
T133Ray TownshipMacomb County · 3,848 people83°1418°average low
T133Richland TownshipKalamazoo County · 9,116 people83°1917°average low
T133RochesterOakland County · 12,824 people83°1017°average low
T133Rochester HillsOakland County · 77,539 people83°1017°average low
T133Ross TownshipKalamazoo County · 4,891 people83°1017°average low
T133Thornapple TownshipBarry County · 9,692 people83°1017°average low
T157Allegan TownshipAllegan County · 4,894 people83°518°average low
T157Berrien TownshipBerrien County · 4,787 people83°1118°average low
T157Birch Run TownshipSaginaw County · 5,853 people83°516°average low
T157Bridgeport TownshipSaginaw County · 9,874 people83°1316°average low
T157Buchanan TownshipBerrien County · 3,475 people83°1218°average low
T157Chippewa TownshipIsabella County · 4,668 people83°1016°average low
T157Coe TownshipIsabella County · 3,084 people83°1016°average low
T157Dorr TownshipAllegan County · 7,918 people83°518°average low
T157East Grand RapidsKent County · 11,663 people83°917°average low
T157EastpointeMacomb County · 33,814 people83°1319°average low
T157FrankenmuthSaginaw County · 5,197 people83°516°average low
T157Geneva TownshipVan Buren County · 3,401 people83°319°average low
T157Heath TownshipAllegan County · 4,017 people83°818°average low
T157Ionia TownshipIonia County · 4,125 people83°716°average low
T157Lee TownshipAllegan County · 3,836 people83°1318°average low
T157Leroy TownshipCalhoun County · 3,680 people83°1016°average low
T157Manlius TownshipAllegan County · 3,433 people83°819°average low
T157Orangeville TownshipBarry County · 3,497 people83°1017°average low
T157Oronoko TownshipBerrien County · 9,074 people83°918°average low
T157Overisel TownshipAllegan County · 3,169 people83°818°average low
T157Pennfield TownshipCalhoun County · 8,681 people83°1017°average low
T157Rutland TownshipBarry County · 4,308 people83°1017°average low
T157Salem TownshipAllegan County · 5,269 people83°818°average low
T157Silver Creek TownshipCass County · 3,041 people83°1118°average low
T157St. Charles TownshipSaginaw County · 3,115 people83°1316°average low
T157Taymouth TownshipSaginaw County · 4,037 people83°516°average low
T157Watervliet TownshipBerrien County · 3,126 people83°919°average low
T157WaylandAllegan County · 4,531 people83°518°average low
T157Wayland TownshipAllegan County · 3,620 people83°517°average low
T186Allendale TownshipOttawa County · 27,519 people83°318°average low
T186Baroda TownshipBerrien County · 2,818 people83°919°average low
T186Battle CreekCalhoun County · 52,021 people83°1016°average low
T186Bedford TownshipCalhoun County · 9,145 people83°1017°average low
T186Bertrand TownshipBerrien County · 2,587 people83°1417°average low
T186Bloomfield TownshipOakland County · 43,904 people83°1017°average low
T186Bowne TownshipKent County · 3,339 people83°1017°average low
T186Buena Vista TownshipSaginaw County · 7,473 people83°1316°average low
T186CoopersvilleOttawa County · 4,802 people83°1618°average low
T186FlintGenesee County · 79,306 people83°1116°average low
T186Flint TownshipGenesee County · 30,844 people83°1116°average low
T186Flushing TownshipGenesee County · 10,574 people83°816°average low
T186Gaines TownshipKent County · 30,659 people83°1017°average low
T186HastingsBarry County · 7,490 people83°1017°average low
T186Homer TownshipMidland County · 3,952 people83°1016°average low
T186HudsonvilleOttawa County · 7,964 people83°818°average low
T186IoniaIonia County · 12,208 people83°716°average low
T186Jamestown TownshipOttawa County · 10,702 people83°818°average low
T186Lee TownshipMidland County · 4,075 people83°1016°average low
T186Leighton TownshipAllegan County · 7,374 people83°1017°average low
T186Lenox TownshipMacomb County · 13,251 people83°1418°average low
T186Lowell TownshipKent County · 6,500 people83°1017°average low
T186Maple Grove TownshipSaginaw County · 2,646 people83°816°average low
T186Montrose TownshipGenesee County · 5,896 people83°816°average low
T186Mount PleasantIsabella County · 20,925 people83°1315°average low
T186Ontwa TownshipCass County · 6,839 people83°1117°average low
T186PortlandIonia County · 3,770 people83°716°average low
T186RockwoodWayne County · 3,132 people83°1320°average low
T186SouthgateWayne County · 28,931 people83°1320°average low
T186Tallmadge TownshipOttawa County · 9,188 people83°918°average low
T186Vienna TownshipGenesee County · 13,001 people83°816°average low
T186WalkerKent County · 25,881 people83°917°average low
T218Algoma TownshipKent County · 12,454 people83°1616°average low
T218Ann Arbor TownshipWashtenaw County · 4,506 people83°1216°average low
T218Arbela TownshipTuscola County · 2,770 people83°516°average low
T218Barry TownshipBarry County · 3,502 people83°1916°average low
T218Blendon TownshipOttawa County · 7,629 people83°818°average low
T218BurtonGenesee County · 29,313 people83°1116°average low
T218Carrollton TownshipSaginaw County · 5,585 people83°1316°average low
T218Castleton TownshipBarry County · 3,425 people83°1017°average low
T218Chesaning TownshipSaginaw County · 4,654 people83°816°average low
T218Clayton TownshipGenesee County · 7,309 people83°1116°average low
T218DavisonGenesee County · 5,039 people83°1416°average low
T218DexterWashtenaw County · 4,461 people83°1116°average low
T218Emmett TownshipCalhoun County · 11,712 people83°1017°average low
T218FlushingGenesee County · 8,175 people83°816°average low
T218Fulton TownshipGratiot County · 2,436 people83°1116°average low
T218Genesee TownshipGenesee County · 20,266 people83°1416°average low
T218Grand Rapids TownshipKent County · 19,442 people83°1017°average low
T218Holland TownshipOttawa County · 40,862 people83°819°average low
T218Hope TownshipBarry County · 3,218 people83°1016°average low
T218Jerome TownshipMidland County · 4,613 people83°1016°average low
T218Kochville Township College campusSaginaw County · 5,166 people83°916°average low
T218Lima TownshipWashtenaw County · 4,215 people83°1116°average low
T218Lodi TownshipWashtenaw County · 6,281 people83°1816°average low
T218Lyons TownshipIonia County · 3,580 people83°716°average low
T218ManchesterWashtenaw County · 2,027 people83°1216°average low
T218MarshallCalhoun County · 6,800 people83°1017°average low
T218Marshall TownshipCalhoun County · 3,162 people83°1017°average low
T218Mount Morris TownshipGenesee County · 19,484 people83°816°average low
T218New HavenMacomb County · 6,749 people83°1118°average low
T218Newton TownshipCalhoun County · 2,800 people83°1016°average low
T218Portland TownshipIonia County · 3,980 people83°716°average low
T218Prairieville TownshipBarry County · 3,393 people83°1917°average low
T218Richland TownshipSaginaw County · 3,902 people83°916°average low
T218River RougeWayne County · 6,814 people83°1620°average low
T218Royalton TownshipBerrien County · 5,198 people83°919°average low
T218SaginawSaginaw County · 42,863 people83°1316°average low
T218Saginaw TownshipSaginaw County · 40,962 people83°916°average low
T218Salem TownshipWashtenaw County · 6,786 people83°1216°average low
T218Scio TownshipWashtenaw County · 18,597 people83°1216°average low
T218Thomas TownshipSaginaw County · 11,900 people83°916°average low
T218Union TownshipBranch County · 2,969 people83°717°average low
T218WyandotteWayne County · 24,072 people83°1620°average low
T218ZeelandOttawa County · 5,637 people83°819°average low
T218Zeeland TownshipOttawa County · 12,305 people83°818°average low
T262AlmaGratiot County · 9,304 people83°1116°average low
T262Bainbridge TownshipBerrien County · 2,625 people83°918°average low
T262Bloomer TownshipMontcalm County · 6,567 people83°1416°average low
T262Brooks TownshipNewaygo County · 3,833 people83°416°average low
T262Cambridge TownshipLenawee County · 5,763 people83°1416°average low
T262Commerce TownshipOakland County · 45,067 people83°716°average low
T262Crystal TownshipMontcalm County · 2,726 people83°1116°average low
T262Danby TownshipIonia County · 2,997 people83°716°average low
T262Deerfield TownshipIsabella County · 3,366 people83°1315°average low
T262Eagle TownshipClinton County · 2,802 people83°916°average low
T262Easton TownshipIonia County · 3,136 people83°716°average low
T262Grand BlancGenesee County · 7,880 people83°1116°average low
T262Green Oak TownshipLivingston County · 19,901 people83°616°average low
T262Hamburg TownshipLivingston County · 20,901 people83°616°average low
T262Hastings TownshipBarry County · 3,091 people83°1016°average low
T262Ingersoll TownshipMidland County · 2,622 people83°1016°average low
T262Irving TownshipBarry County · 3,836 people83°1016°average low
T262IthacaGratiot County · 2,807 people83°1116°average low
T262Manchester TownshipWashtenaw County · 4,550 people83°1216°average low
T262MidlandMidland County · 42,806 people83°1016°average low
T262Norvell TownshipJackson County · 2,822 people83°1216°average low
T262NoviOakland County · 67,319 people83°1116°average low
T262Olive TownshipClinton County · 2,527 people83°916°average low
T262Pine River TownshipGratiot County · 2,357 people83°1116°average low
T262Ravenna TownshipMuskegon County · 3,045 people83°1617°average low
T262Richfield TownshipGenesee County · 8,941 people83°1416°average low
T262RockfordKent County · 6,313 people83°1616°average low
T262RomeoMacomb County · 3,750 people83°1417°average low
T262St. LouisGratiot County · 7,406 people83°1116°average low
T262Swartz CreekGenesee County · 5,827 people83°1116°average low
T262Tittabawassee TownshipSaginaw County · 11,007 people83°916°average low
T262TrentonWayne County · 17,849 people83°1320°average low
T262Union TownshipIsabella County · 11,850 people83°1315°average low
T262VassarTuscola County · 2,685 people83°1016°average low
T262Wheeler TownshipGratiot County · 2,569 people83°1116°average low
T262Wright TownshipOttawa County · 3,185 people83°1617°average low
T298AlbionCalhoun County · 7,474 people82°816°average low
T298Algansee TownshipBranch County · 2,047 people82°716°average low
T298Alpine TownshipKent County · 14,034 people82°1617°average low
T298Bellevue TownshipEaton County · 3,218 people82°616°average low
T298Benton TownshipBerrien County · 14,228 people82°919°average low
T298Bingham TownshipClinton County · 2,973 people82°1117°average low
T298Cannon TownshipKent County · 14,615 people82°1016°average low
T298Casco TownshipSt. Clair County · 4,387 people82°1418°average low
T298Casnovia TownshipMuskegon County · 2,825 people82°1616°average low
T298China TownshipSt. Clair County · 3,530 people82°1719°average low
T298ColdwaterBranch County · 14,216 people82°716°average low
T298Davison TownshipGenesee County · 20,403 people82°1216°average low
T298Dexter TownshipWashtenaw County · 6,510 people82°916°average low
T298East China TownshipSt. Clair County · 3,661 people82°1719°average low
T298Edenville TownshipMidland County · 2,495 people82°815°average low
T298Fillmore TownshipAllegan County · 2,934 people82°819°average low
T298Grosse Pointe ParkWayne County · 11,095 people82°1320°average low
T298JacksonJackson County · 31,022 people82°817°average low
T298Johnstown TownshipBarry County · 2,917 people82°1016°average low
T298Keego HarborOakland County · 2,723 people82°1016°average low
T298Lake TownshipBerrien County · 3,348 people82°919°average low
T298Lincoln TownshipMidland County · 2,550 people82°1016°average low
T298Lyon TownshipOakland County · 26,867 people82°716°average low
T298Marine CitySt. Clair County · 3,997 people82°1719°average low
T298Northfield TownshipWashtenaw County · 8,785 people82°1216°average low
T298Oakfield TownshipKent County · 6,190 people82°1415°average low
T298Ovid TownshipClinton County · 2,208 people82°1116°average low
T298Quincy TownshipBranch County · 4,140 people82°716°average low
T298RichmondMacomb County · 5,927 people82°1418°average low
T298Rollin TownshipLenawee County · 3,020 people82°1416°average low
T298South LyonOakland County · 12,107 people82°716°average low
T298Sparta TownshipKent County · 9,617 people82°1616°average low
T298St. Clair TownshipSt. Clair County · 7,159 people82°1018°average low
T298St. JohnsClinton County · 7,780 people82°1116°average low
T298Sullivan TownshipMuskegon County · 2,725 people82°318°average low
T298Vergennes TownshipKent County · 4,968 people82°1016°average low
T298West Bloomfield TownshipOakland County · 66,049 people82°1016°average low
T335Armada TownshipMacomb County · 5,384 people82°1417°average low
T335BeldingIonia County · 6,000 people82°1415°average low
T335Benton TownshipEaton County · 2,776 people82°616°average low
T335Boston TownshipIonia County · 6,121 people82°716°average low
T335BrightonLivingston County · 7,904 people82°716°average low
T335Bruce TownshipMacomb County · 10,175 people82°1417°average low
T335Burns TownshipShiawassee County · 3,268 people82°1316°average low
T335Caledonia TownshipShiawassee County · 4,323 people82°816°average low
T335Carmel TownshipEaton County · 2,851 people82°616°average low
T335CharlotteEaton County · 9,305 people82°616°average low
T335ChelseaWashtenaw County · 5,424 people82°1116°average low
T335Coloma TownshipBerrien County · 4,968 people82°919°average low
T335Columbus TownshipSt. Clair County · 4,303 people82°1418°average low
T335CorunnaShiawassee County · 3,000 people82°816°average low
T335Crockery TownshipOttawa County · 4,784 people82°318°average low
T335Croton TownshipNewaygo County · 3,472 people82°1615°average low
T335DeWittClinton County · 4,795 people82°916°average low
T335DeWitt TownshipClinton County · 15,516 people82°916°average low
T335Delta TownshipEaton County · 33,175 people82°916°average low
T335Denmark TownshipTuscola County · 2,704 people82°1016°average low
T335East Lansing College campusIngham County · 49,355 people82°916°average low
T335Eaton RapidsEaton County · 5,218 people82°1017°average low
T335Eaton TownshipEaton County · 4,009 people82°617°average low
T335Egelston TownshipMuskegon County · 11,445 people82°317°average low
T335Eureka TownshipMontcalm County · 4,354 people82°1415°average low
T335Evergreen TownshipMontcalm County · 3,063 people82°1415°average low
T335Gaines TownshipGenesee County · 6,610 people82°1116°average low
T335Grand Blanc TownshipGenesee County · 40,022 people82°1116°average low
T335Grand LedgeEaton County · 7,853 people82°916°average low
T335GreenvilleMontcalm County · 9,256 people82°1415°average low
T335Grosse Pointe WoodsWayne County · 15,792 people82°1120°average low
T335HowellLivingston County · 9,896 people82°1316°average low
T335LansingIngham County · 113,884 people82°916°average low
T335Lansing TownshipIngham County · 8,060 people82°916°average low
T335LapeerLapeer County · 9,201 people82°916°average low
T335Meridian TownshipIngham County · 44,869 people82°916°average low
T335Montcalm TownshipMontcalm County · 3,532 people82°1414°average low
T335Mundy TownshipGenesee County · 15,468 people82°1116°average low
T335NewaygoNewaygo County · 2,547 people82°416°average low
T335Odessa TownshipIonia County · 3,966 people82°1016°average low
T335Olive TownshipOttawa County · 5,291 people82°819°average low
T335Orleans TownshipIonia County · 2,758 people82°1415°average low
T335OwossoShiawassee County · 14,437 people82°816°average low
T335PontiacOakland County · 62,077 people82°1016°average low
T335PottervilleEaton County · 3,135 people82°616°average low
T335Putnam TownshipLivingston County · 7,797 people82°916°average low
T335Richmond TownshipMacomb County · 3,632 people82°1417°average low
T335Spencer TownshipKent County · 4,288 people82°1415°average low
T335St. Clair ShoresMacomb County · 57,872 people82°1320°average low
T335Thetford TownshipGenesee County · 6,482 people82°1416°average low
T335Vassar TownshipTuscola County · 3,871 people82°1016°average low
T335Vernon TownshipShiawassee County · 4,296 people82°1316°average low
T335Victor TownshipClinton County · 3,493 people82°916°average low
T335Walled LakeOakland County · 7,320 people82°1116°average low
T335Washington TownshipMacomb County · 29,229 people82°1017°average low
T335Waterloo TownshipJackson County · 2,995 people82°1116°average low
T335Watertown TownshipClinton County · 5,890 people82°916°average low
T335Webster TownshipWashtenaw County · 6,485 people82°616°average low
T335Williams TownshipBay County · 5,032 people82°1016°average low
T335Windsor TownshipEaton County · 7,197 people82°616°average low
T335WixomOakland County · 17,313 people82°716°average low
T396Alaiedon TownshipIngham County · 2,933 people82°916°average low
T396Almont TownshipLapeer County · 7,103 people82°1417°average low
T396Argentine TownshipGenesee County · 7,021 people82°616°average low
T396Ashland TownshipNewaygo County · 2,861 people82°1616°average low
T396Atlas TownshipGenesee County · 8,271 people82°1216°average low
T396Aurelius TownshipIngham County · 4,394 people82°1016°average low
T396Beaver TownshipBay County · 2,684 people82°1016°average low
T396Blackman TownshipJackson County · 24,987 people82°817°average low
T396Cedar SpringsKent County · 3,789 people82°1616°average low
T396Chesterfield TownshipMacomb County · 47,770 people82°1119°average low
T396Chikaming TownshipBerrien County · 2,752 people82°1019°average low
T396ClareClare County · 3,318 people82°814°average low
T396Cohoctah TownshipLivingston County · 3,185 people82°1316°average low
T396Columbia TownshipJackson County · 7,515 people82°1416°average low
T396Concord TownshipJackson County · 2,721 people82°816°average low
T396Courtland TownshipKent County · 9,321 people82°1415°average low
T396Delhi TownshipIngham County · 28,431 people82°916°average low
T396DurandShiawassee County · 3,457 people82°1316°average low
T396Elba TownshipLapeer County · 5,256 people82°916°average low
T396FentonGenesee County · 11,774 people82°616°average low
T396Fenton TownshipGenesee County · 17,408 people82°616°average low
T396FowlervilleLivingston County · 2,874 people82°1316°average low
T396Grant TownshipNewaygo County · 3,406 people82°1616°average low
T396Grattan TownshipKent County · 3,896 people82°1415°average low
T396Hamlin TownshipEaton County · 3,238 people82°1016°average low
T396Handy TownshipLivingston County · 8,887 people82°1316°average low
T396Henrietta TownshipJackson County · 4,729 people82°816°average low
T396HollandOttawa County · 35,372 people82°819°average low
T396Holly TownshipOakland County · 12,283 people82°1116°average low
T396Homer TownshipCalhoun County · 2,897 people82°916°average low
T396Howell TownshipLivingston County · 8,606 people82°1316°average low
T396Iosco TownshipLivingston County · 3,876 people82°1316°average low
T396Larkin TownshipMidland County · 5,390 people82°1016°average low
T396LindenGenesee County · 4,186 people82°616°average low
T396Lyndon TownshipWashtenaw County · 2,662 people82°1116°average low
T396MasonIngham County · 8,264 people82°916°average low
T396Milford TownshipOakland County · 18,008 people82°716°average low
T396Millington TownshipTuscola County · 4,171 people82°1016°average low
T396Monitor TownshipBay County · 10,597 people82°1216°average low
T396Napoleon TownshipJackson County · 6,706 people82°816°average low
T396Onondaga TownshipIngham County · 3,086 people82°1016°average low
T396Owosso TownshipShiawassee County · 4,786 people82°816°average low
T396Parma TownshipJackson County · 2,670 people82°816°average low
T396Rives TownshipJackson County · 4,794 people82°817°average low
T396Sandstone TownshipJackson County · 3,873 people82°816°average low
T396Spring Arbor TownshipJackson County · 8,526 people82°816°average low
T396St. ClairSt. Clair County · 5,833 people82°1018°average low
T396Summit TownshipJackson County · 22,705 people82°816°average low
T396Tompkins TownshipJackson County · 2,641 people82°816°average low
T396Tyrone TownshipKent County · 5,262 people82°1616°average low
T396Unadilla TownshipLivingston County · 3,284 people82°916°average low
T396WilliamstonIngham County · 3,810 people82°916°average low
T448Auburn HillsOakland County · 25,925 people82°1016°average low
T448Bath TownshipClinton County · 13,556 people82°916°average low
T448Bennington TownshipShiawassee County · 3,105 people82°816°average low
T448Berlin TownshipSt. Clair County · 3,134 people82°1417°average low
T448Brighton TownshipLivingston County · 19,489 people82°715°average low
T448Cambria TownshipHillsdale County · 2,547 people82°916°average low
T448Cedar Creek TownshipMuskegon County · 3,365 people82°417°average low
T448Covert TownshipVan Buren County · 2,499 people82°319°average low
T448Eaton Rapids TownshipEaton County · 4,012 people82°1016°average low
T448Forest TownshipGenesee County · 4,354 people82°1416°average low
T448Garfield TownshipNewaygo County · 2,589 people82°416°average low
T448Genoa TownshipLivingston County · 20,576 people82°1316°average low
T448Grass Lake TownshipJackson County · 6,273 people82°1116°average low
T448Groveland TownshipOakland County · 6,274 people82°1216°average low
T448HollyOakland County · 5,906 people82°616°average low
T448Jefferson TownshipHillsdale County · 3,037 people82°916°average low
T448Lapeer TownshipLapeer County · 4,996 people82°916°average low
T448Leroy TownshipIngham County · 3,881 people82°916°average low
T448Marion TownshipLivingston County · 12,051 people82°1316°average low
T448Oakland TownshipOakland County · 20,631 people82°1016°average low
T448Oneida TownshipEaton County · 3,966 people82°616°average low
T448Oregon TownshipLapeer County · 5,722 people82°916°average low
T448Portsmouth TownshipBay County · 3,139 people82°1116°average low
T448Reynolds TownshipMontcalm County · 5,687 people82°815°average low
T448Riley TownshipSt. Clair County · 3,196 people82°1417°average low
T448Robinson TownshipOttawa County · 6,475 people82°319°average low
T448Sheridan TownshipNewaygo County · 2,581 people82°416°average low
T448Sidney TownshipMontcalm County · 2,651 people82°1415°average low
T448Stockbridge TownshipIngham County · 3,998 people82°916°average low
T448Sylvan TownshipWashtenaw County · 3,545 people82°1116°average low
T448Wales TownshipSt. Clair County · 3,195 people82°1418°average low
T448Waterford TownshipOakland County · 69,922 people82°1016°average low
T448White Lake TownshipOakland County · 31,377 people82°616°average low
T448Woodhull TownshipShiawassee County · 3,689 people82°916°average low
T482AlmontLapeer County · 2,848 people82°1416°average low
T482Bay CityBay County · 31,868 people82°1116°average low
T482Benton HarborBerrien County · 8,803 people82°920°average low
T482Casco TownshipAllegan County · 2,937 people82°319°average low
T482Cato TownshipMontcalm County · 3,002 people82°1414°average low
T482Conway TownshipLivingston County · 3,594 people82°1316°average low
T482Cottrellville TownshipSt. Clair County · 3,469 people82°1719°average low
T482Deerfield TownshipLivingston County · 4,102 people82°616°average low
T482Ensley TownshipNewaygo County · 2,723 people82°1615°average low
T482FremontNewaygo County · 4,599 people82°416°average low
T482Fruitport TownshipMuskegon County · 15,666 people82°318°average low
T482Hadley TownshipLapeer County · 4,555 people82°1216°average low
T482Highland TownshipOakland County · 20,319 people82°715°average low
T482HillsdaleHillsdale County · 8,002 people82°916°average low
T482Home TownshipMontcalm County · 2,813 people82°1414°average low
T482Imlay CityLapeer County · 3,753 people82°916°average low
T482Kimball TownshipSt. Clair County · 9,652 people82°1018°average low
T482Leoni TownshipJackson County · 13,764 people82°816°average low
T482Liberty TownshipJackson County · 3,080 people82°816°average low
T482Marathon TownshipLapeer County · 4,444 people82°916°average low
T482MarysvilleSt. Clair County · 9,868 people82°1018°average low
T482Mayfield TownshipLapeer County · 8,070 people82°916°average low
T482MilfordOakland County · 6,520 people82°715°average low
T482Morton TownshipMecosta County · 4,766 people82°814°average low
T482Muskegon TownshipMuskegon County · 17,911 people82°318°average low
T482Nelson TownshipKent County · 5,054 people82°1415°average low
T482Perry TownshipShiawassee County · 4,167 people82°816°average low
T482Pierson TownshipMontcalm County · 3,516 people82°1415°average low
T482Richland TownshipMontcalm County · 2,778 people82°1115°average low
T482Sherman TownshipIsabella County · 3,236 people82°1314°average low
T482Shiawassee TownshipShiawassee County · 2,726 people82°816°average low
T482Solon TownshipKent County · 6,652 people82°1615°average low
T482Vevay TownshipIngham County · 3,638 people82°916°average low
T482Williamstown TownshipIngham County · 5,338 people82°916°average low
T482Woodstock TownshipLenawee County · 3,578 people82°1416°average low
T517Attica TownshipLapeer County · 4,729 people82°916°average low
T517CaroTuscola County · 4,258 people82°1016°average low
T517GladwinGladwin County · 3,140 people82°814°average low
T517Hagar TownshipBerrien County · 3,173 people82°920°average low
T517Harrison TownshipMacomb County · 23,984 people82°1119°average low
T517Hartland TownshipLivingston County · 16,108 people82°715°average low
T517Holton TownshipMuskegon County · 2,674 people82°416°average low
T517Lake OrionOakland County · 2,900 people82°1016°average low
T517Lincoln TownshipBerrien County · 14,814 people82°920°average low
T517Mecosta TownshipMecosta County · 2,891 people82°814°average low
T517Oceola TownshipLivingston County · 14,888 people82°1315°average low
T517Orion TownshipOakland County · 38,882 people82°1016°average low
T517Tyrone TownshipLivingston County · 12,270 people82°615°average low
T530Deerfield TownshipLapeer County · 5,802 people82°916°average low
T530EssexvilleBay County · 3,284 people82°1117°average low
T530Fremont TownshipTuscola County · 3,126 people82°1015°average low
T530Grant TownshipClare County · 3,437 people82°814°average low
T530Hanover TownshipJackson County · 3,708 people82°816°average low
T530Independence TownshipOakland County · 37,725 people82°616°average low
T530Kawkawlin TownshipBay County · 4,349 people82°1217°average low
T530Mussey TownshipSt. Clair County · 4,177 people82°817°average low
T530North Branch TownshipLapeer County · 3,557 people82°916°average low
T530Rose TownshipOakland County · 6,268 people82°615°average low
T530Somerset TownshipHillsdale County · 4,606 people82°916°average low
T530Surrey TownshipClare County · 3,704 people82°814°average low
T542Addison TownshipOakland County · 6,321 people82°916°average low
T542Arcadia TownshipLapeer County · 3,174 people82°916°average low
T542Big RapidsMecosta County · 8,623 people82°814°average low
T542Emmett TownshipSt. Clair County · 2,515 people82°817°average low
T542Ganges TownshipAllegan County · 2,676 people82°319°average low
T542Green TownshipMecosta County · 3,408 people82°814°average low
T542Springfield TownshipOakland County · 14,832 people82°615°average low
T549Dalton TownshipMuskegon County · 9,651 people82°317°average low
T549St. Joseph TownshipBerrien County · 9,703 people82°920°average low
T551Dryden TownshipLapeer County · 4,809 people82°916°average low
T551New BaltimoreMacomb County · 12,123 people82°1119°average low
T551Norton ShoresMuskegon County · 25,088 people82°319°average low
T551OxfordOakland County · 3,451 people82°1016°average low
T555Big Rapids TownshipMecosta County · 4,096 people82°814°average low
T555Brandon TownshipOakland County · 15,541 people82°1215°average low
T555Clyde TownshipSt. Clair County · 5,422 people82°1018°average low
T555Oxford TownshipOakland County · 23,066 people82°915°average low
T555Spring Lake TownshipOttawa County · 15,705 people82°319°average low
T555St. JosephBerrien County · 7,893 people82°920°average low
T561Bangor TownshipBay County · 13,778 people81°1117°average low
T561Ira TownshipSt. Clair County · 5,104 people81°1720°average low
T561Metamora TownshipLapeer County · 4,573 people81°916°average low
T561North MuskegonMuskegon County · 4,079 people81°318°average low
T561Saugatuck TownshipAllegan County · 3,688 people81°820°average low
T566Clay TownshipSt. Clair County · 8,268 people81°1720°average low
T566Hampton TownshipBay County · 9,581 people81°1117°average low
T566Mills TownshipOgemaw County · 4,054 people81°613°average low
T566Port Huron TownshipSt. Clair County · 10,665 people81°1019°average low
T570Clearwater TownshipKalkaska County · 2,600 people81°414°average low
T570Fraser TownshipBay County · 2,946 people81°1217°average low
T570MuskegonMuskegon County · 37,224 people81°319°average low
T570South HavenVan Buren County · 4,002 people81°320°average low
T574AlgonacSt. Clair County · 4,109 people81°1720°average low
T574Grand Haven TownshipOttawa County · 19,981 people81°319°average low
T574Reed CityOsceola County · 2,528 people81°813°average low
T574South Haven TownshipVan Buren County · 4,138 people81°320°average low
T578Elkland TownshipTuscola County · 3,485 people81°715°average low
T578Laketown TownshipAllegan County · 6,257 people81°819°average low
T578Park TownshipOttawa County · 19,199 people81°1119°average low
T578Port HuronSt. Clair County · 28,273 people81°1019°average low
T578Roscommon TownshipRoscommon County · 4,520 people81°812°average low
T578Sebewaing TownshipHuron County · 2,602 people81°716°average low
T584Grant TownshipOceana County · 3,034 people81°217°average low
T584Port Sheldon TownshipOttawa County · 5,480 people81°1119°average low
T584West Branch TownshipOgemaw County · 2,607 people81°612°average low
T587Hayes TownshipClare County · 4,722 people81°812°average low
T587Paradise TownshipGrand Traverse County · 5,101 people81°413°average low
T587Whitewater TownshipGrand Traverse County · 2,736 people81°915°average low
T590Denton TownshipRoscommon County · 5,411 people81°412°average low
T590Plainfield TownshipIosco County · 3,353 people81°611°average low
T590Roosevelt ParkMuskegon County · 4,121 people81°319°average low
T590WhitehallMuskegon County · 3,205 people81°218°average low
T594Blair TownshipGrand Traverse County · 9,208 people81°914°average low
T594FerrysburgOttawa County · 2,955 people81°319°average low
T594Fruitland TownshipMuskegon County · 5,955 people81°218°average low
T594Grand HavenOttawa County · 11,038 people81°319°average low
T594Laketon TownshipMuskegon County · 7,721 people81°319°average low
T599Gerrish TownshipRoscommon County · 2,839 people80°412°average low
T599Green Lake TownshipGrand Traverse County · 6,822 people80°914°average low
T599Lake TownshipMissaukee County · 2,851 people80°512°average low
T599SanduskySanilac County · 2,664 people80°616°average low
T603Kalkaska TownshipKalkaska County · 5,207 people80°413°average low
T603ShelbyOceana County · 2,185 people80°316°average low
T603Shelby TownshipOceana County · 4,143 people80°315°average low
T606CadillacWexford County · 10,438 people80°412°average low
T606Cherry Grove TownshipWexford County · 2,444 people80°412°average low
T606East Bay TownshipGrand Traverse County · 11,780 people80°915°average low
T606KalkaskaKalkaska County · 2,258 people80°413°average low
T606Richfield TownshipRoscommon County · 3,575 people80°411°average low
T606Tuscarora TownshipCheboygan County · 3,113 people80°512°average low
T612Big Creek TownshipOscoda County · 2,739 people80°811°average low
T612Worth TownshipSanilac County · 3,423 people80°618°average low
T614Boyne CityCharlevoix County · 3,793 people80°1614°average low
T614Burtchville TownshipSt. Clair County · 4,034 people80°1019°average low
T614Inland TownshipBenzie County · 2,493 people80°614°average low
T614NorwayDickinson County · 2,815 people80°65°average low
T618Grayling TownshipCrawford County · 5,892 people80°611°average low
T618Haring TownshipWexford County · 3,626 people80°412°average low
T620Amber TownshipMason County · 2,550 people80°516°average low
T620Bad AxeHuron County · 2,943 people80°615°average low
T620Fort Gratiot TownshipSt. Clair County · 11,715 people80°1019°average low
T620Oscoda TownshipIosco County · 7,158 people80°612°average low
T624Almira TownshipBenzie County · 3,989 people80°614°average low
T624Iron MountainDickinson County · 7,469 people80°65°average low
T624KingsfordDickinson County · 5,096 people80°65°average low
T624Lexington TownshipSanilac County · 3,452 people80°617°average low
T624Menominee TownshipMenominee County · 3,306 people80°49°average low
T629Garfield TownshipGrand Traverse County · 19,698 people80°916°average low
T629Long Lake TownshipGrand Traverse County · 10,101 people80°914°average low
T631Benzonia TownshipBenzie County · 2,816 people80°115°average low
T631Breitung TownshipDickinson County · 5,857 people80°65°average low
T631East TawasIosco County · 2,662 people80°514°average low
T631Wells TownshipDelta County · 4,821 people80°69°average low
T635Littlefield TownshipEmmet County · 3,192 people79°512°average low
T635Manistee TownshipManistee County · 4,268 people79°316°average low
T637Forsyth TownshipMarquette County · 6,291 people79°36°average low
T637Springvale TownshipEmmet County · 2,122 people79°213°average low
639Albert TownshipMontmorency County · 2,637 people79°910°average low
T640Acme TownshipGrand Traverse County · 4,531 people79°918°average low
T640Escanaba TownshipDelta County · 3,552 people79°69°average low
T642Bagley TownshipOtsego County · 6,104 people79°311°average low
T642Hayes TownshipOtsego County · 2,839 people79°111°average low
T642Otsego Lake TownshipOtsego County · 2,968 people79°311°average low
T642Peninsula TownshipGrand Traverse County · 6,160 people79°518°average low
T642Traverse CityGrand Traverse County · 15,832 people79°917°average low
T647Benton TownshipCheboygan County · 3,158 people79°311°average low
T647Bingham TownshipLeelanau County · 2,660 people79°516°average low
T647Hamlin TownshipMason County · 3,732 people79°517°average low
T650Elk Rapids TownshipAntrim County · 2,647 people79°518°average low
T650Elmwood TownshipLeelanau County · 5,039 people79°917°average low
T650Filer TownshipManistee County · 2,289 people79°317°average low
T650Mancelona TownshipAntrim County · 4,559 people79°411°average low
654GaylordOtsego County · 4,444 people78°310°average low
T655Resort TownshipEmmet County · 2,821 people78°214°average low
T655Rogers CityPresque Isle County · 2,869 people78°814°average low
657Livingston TownshipOtsego County · 2,748 people78°310°average low
658Alpena TownshipAlpena County · 9,068 people78°413°average low
T659Houghton College campusHoughton County · 8,560 people78°28°average low
T659LudingtonMason County · 7,634 people78°518°average low
T661AlpenaAlpena County · 10,088 people78°414°average low
T661Bear Creek TownshipEmmet County · 6,513 people78°214°average low
T661ManisteeManistee County · 6,157 people78°317°average low
T661Portage TownshipHoughton County · 3,234 people78°27°average low
T665Baraga TownshipBaraga County · 3,382 people78°78°average low
T665Iron RiverIron County · 3,027 people78°23°average low
667MenomineeMenominee County · 8,175 people78°412°average low
668Kinross TownshipChippewa County · 6,790 people77°37°average low
T669IshpemingMarquette County · 6,205 people77°45°average low
T669Suttons Bay TownshipLeelanau County · 2,959 people77°516°average low
671NegauneeMarquette County · 4,663 people77°36°average low
672HancockHoughton County · 4,596 people77°28°average low
T673CheboyganCheboygan County · 4,804 people77°313°average low
T673IronwoodGogebic County · 4,950 people77°24°average low
T675L'Anse TownshipBaraga County · 3,634 people77°16°average low
T675Munising TownshipAlger County · 2,759 people77°19°average low
T675Negaunee TownshipMarquette County · 3,292 people77°37°average low
T675Pentland TownshipLuce County · 2,693 people77°18°average low
T679EscanabaDelta County · 12,257 people77°211°average low
T679Ishpeming TownshipMarquette County · 3,449 people77°36°average low
681Adams TownshipHoughton County · 2,565 people76°27°average low
T682Little Traverse TownshipEmmet County · 2,622 people76°215°average low
T682Marquette TownshipMarquette County · 4,196 people76°39°average low
684PetoskeyEmmet County · 5,772 people76°216°average low
T685GladstoneDelta County · 5,189 people76°111°average low
T685MarquetteMarquette County · 21,944 people76°311°average low
687Soo TownshipChippewa County · 2,983 people76°38°average low
688Calumet TownshipHoughton County · 6,309 people76°29°average low
689Sault Ste. MarieChippewa County · 13,083 people76°18°average low
690Chocolay TownshipMarquette County · 6,014 people75°313°average low
691ManistiqueSchoolcraft County · 2,868 people75°012°average low
Quick answers

Questions people ask

Which Michigan town has the hottest summers?

Bedford Township (Monroe County): July afternoons average a high of 85°. Ida Township (84°) and Whiteford Township (84°) 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 (691 in Michigan): 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 Michigan page.

Go deeper

More Michigan lists

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

All Michigan rankings →
Other states

Hottest summers in other states