Guest, Sign inJoin
Aloys Bilz HouseSpring Lake, #1 on this list · Photo: rossograph · CC BY-SA 3.0
Michigan rankings · 2026

Best small towns in Michigan

Spring Lake ranks first of Michigan’s 502 graded small towns (2,500–9,999 residents), with an A+: schools (A+) and walkability (A−) are its strongest grades; hazard risk (C+) is its lowest. 131 of the 502 (26%) grade A− or better nationally, against 25% of U.S. towns.

The overall grade, sorted: cost of living, safety, schools, health, jobs & income, walkability and hazard risk, from Census, FBI, state, CDC, EPA and FEMA data. How grades work

#2

Spring Lake

Ottawa County · 2,504 people
A+

Strongest: schools A+, walkability A−·lowest: hazard risk C+

BCost–SafetyA+SchoolsA−HealthA−JobsA−WalkC+Hazards
#5

Huntington Woods

Oakland County · 6,274 people
A+

Strongest: jobs & income A+, health A+·lowest: cost of living C−

C−CostASafetyASchoolsA+HealthA+JobsA−WalkBHazards

Where they are: Three of the top 10 are in Oakland County.

All 502 small towns

Overall score, highest first. The score (0–100) blends the seven livability grades and sets the order; the letter places that score among every U.S. town of 2,500+, and A+ is the top 5%, so neighbors on the list often share a letter. Each town links to its page, where the grade sheet shows every subject. The rank is the town’s place among all 697 Michigan towns.

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

#TownScoreGradeWhat drives it
2Spring LakeOttawa County · 2,504 people77.2top 0.6%A+Strongest: schools A+, walkability A−·lowest: hazard risk C+
3Lincoln TownshipMidland County · 2,550 people76.1top 0.9%A+Strongest: cost of living A, schools A·lowest: walkability C+
5Huntington WoodsOakland County · 6,274 people75.2top 1.3%A+Strongest: jobs & income A+, health A+·lowest: cost of living C−
6NorthvilleOakland County · 6,013 people75.0top 1.5%A+Strongest: jobs & income A+, schools A+·lowest: cost of living D
8Resort TownshipEmmet County · 2,821 people74.6top 1.6%A+Strongest: hazard risk A+, schools A·lowest: walkability B−
9PlymouthWayne County · 9,164 people74.6top 1.7%A+Strongest: hazard risk A+, jobs & income A+·lowest: cost of living C−
12Olive TownshipOttawa County · 5,291 people74.1top 2.0%A+Strongest: jobs & income A, schools A−·lowest: walkability D
17Lake OrionOakland County · 2,900 people73.5top 2.6%A+Strongest: schools A, hazard risk A·lowest: cost of living C
19Ingersoll TownshipMidland County · 2,622 people73.2top 2.8%A+Strongest: cost of living A, schools A·lowest: walkability C−
20Lodi TownshipWashtenaw County · 6,281 people72.7top 3.2%A+Strongest: health A+, schools A+·lowest: walkability C−
22HudsonvilleOttawa County · 7,964 people72.4top 3.5%A+Strongest: schools A+, hazard risk A·lowest: cost of living B−
25Crockery TownshipOttawa County · 4,784 people71.9top 4.1%A+Strongest: schools A, jobs & income A·lowest: walkability D−
27Blendon TownshipOttawa County · 7,629 people71.6top 4.5%A+Strongest: schools A, jobs & income A·lowest: walkability C+
35DexterWashtenaw County · 4,461 people70.9top 5.4%AStrongest: health A+, jobs & income A+·lowest: cost of living D
36Ann Arbor TownshipWashtenaw County · 4,506 people70.8top 5.4%AStrongest: health A+, jobs & income A+·lowest: cost of living D
37FranklinOakland County · 3,134 people70.8top 5.6%AStrongest: jobs & income A+, schools A+·lowest: cost of living C−
38Bloomfield HillsOakland County · 4,390 people70.6top 5.9%AStrongest: health A+, schools A+·lowest: cost of living D−
39Spring Arbor TownshipJackson County · 8,526 people70.5top 6.0%AStrongest: safety A, hazard risk A·lowest: cost of living B−
40Larkin TownshipMidland County · 5,390 people70.5top 6.0%AStrongest: schools A, jobs & income A·lowest: walkability C+
41PetoskeyEmmet County · 5,772 people70.2top 6.4%AStrongest: hazard risk A+, walkability A·lowest: cost of living C
45Barry TownshipBarry County · 3,502 people69.9top 6.9%AStrongest: hazard risk A, schools A−·lowest: walkability B−
47LowellKent County · 4,134 people69.8top 7.1%AStrongest: schools A, walkability A·lowest: cost of living B−
48Wolverine LakeOakland County · 4,455 people69.6top 7.4%AStrongest: safety A+, jobs & income A·lowest: cost of living D
49Acme TownshipGrand Traverse County · 4,531 people69.6top 7.4%AStrongest: hazard risk A+, jobs & income A·lowest: cost of living C+
50Robinson TownshipOttawa County · 6,475 people69.5top 7.6%AStrongest: schools A, health A−·lowest: walkability C
52MilfordOakland County · 6,520 people69.4top 7.7%AStrongest: safety A, jobs & income A·lowest: cost of living C−
53Village of Grosse Pointe ShoresWayne County · 2,533 people69.4top 7.8%AStrongest: health A+, jobs & income A+·lowest: hazard risk C
54Northfield TownshipWashtenaw County · 8,785 people69.3top 7.9%AStrongest: health A, jobs & income A·lowest: walkability C
59Fillmore TownshipAllegan County · 2,934 people68.9top 8.7%AStrongest: hazard risk A, jobs & income A−·lowest: walkability C−
62Grosse Pointe FarmsWayne County · 9,735 people68.7top 8.9%AStrongest: jobs & income A+, health A+·lowest: cost of living C−
63Lowell TownshipKent County · 6,500 people68.7top 8.9%AStrongest: jobs & income A+, schools A·lowest: walkability C
64EssexvilleBay County · 3,284 people68.6top 9.1%AStrongest: health A−, cost of living B+·lowest: hazard risk C+
66MiddlevilleBarry County · 4,407 people68.2top 9.8%AStrongest: schools A−, hazard risk B+·lowest: walkability B−
68Addison TownshipOakland County · 6,321 people68.2top 9.9%AStrongest: safety A+, hazard risk A·lowest: walkability C−
70Whiteford TownshipMonroe County · 4,618 people68.1top 10.0%AStrongest: jobs & income A, schools A·lowest: walkability D
72Sylvan TownshipWashtenaw County · 3,545 people68.0top 10.2%AStrongest: jobs & income A, health A·lowest: cost of living D
73OtsegoAllegan County · 4,045 people67.9top 10.3%AStrongest: cost of living A, schools A·lowest: hazard risk C+
75Thornapple TownshipBarry County · 9,692 people67.9top 10.4%AStrongest: jobs & income A, schools A−·lowest: walkability C+
76Elk Rapids TownshipAntrim County · 2,647 people67.8top 10.5%AStrongest: hazard risk A+, schools A·lowest: cost of living C−
77Richland TownshipKalamazoo County · 9,116 people67.7top 10.7%AStrongest: jobs & income A, hazard risk A·lowest: walkability C
78Ross TownshipKalamazoo County · 4,891 people67.7top 10.8%AStrongest: health A−, schools A−·lowest: walkability C−
79North MuskegonMuskegon County · 4,079 people67.7top 10.8%AStrongest: hazard risk A, jobs & income A·lowest: cost of living C
81DeWittClinton County · 4,795 people67.6top 10.9%AStrongest: schools A, health A·lowest: cost of living C
82WaylandAllegan County · 4,531 people67.6top 11.0%AStrongest: hazard risk A−, schools A−·lowest: health C+
83Eagle TownshipClinton County · 2,802 people67.5top 11.2%AStrongest: jobs & income A, health A−·lowest: cost of living C+
84Saline TownshipWashtenaw County · 2,735 people67.5top 11.3%AStrongest: schools A+, health A·lowest: walkability C−
86Clinton TownshipLenawee County · 3,700 people67.5top 11.3%AStrongest: schools A−, cost of living A−·lowest: jobs & income B−
87Lima TownshipWashtenaw County · 4,215 people67.5top 11.4%AStrongest: health A+, jobs & income A+·lowest: cost of living C−
88RomeoMacomb County · 3,750 people67.3top 11.6%AStrongest: hazard risk A+, schools A·lowest: health B−
90SalineWashtenaw County · 9,001 people67.2top 11.8%AStrongest: schools A+, health A·lowest: cost of living C+
91ChelseaWashtenaw County · 5,424 people67.1top 12.2%AStrongest: hazard risk A+, health A+·lowest: cost of living D
92Little Traverse TownshipEmmet County · 2,622 people67.0top 12.3%AStrongest: schools A−, hazard risk B+·lowest: walkability C
93Olive TownshipClinton County · 2,527 people66.9top 12.4%AStrongest: schools A−, jobs & income A−·lowest: walkability D−
94Armada TownshipMacomb County · 5,384 people66.9top 12.5%AStrongest: schools A, jobs & income A·lowest: walkability C
96Boston TownshipIonia County · 6,121 people66.9top 12.5%AStrongest: schools A, cost of living A−·lowest: walkability C
97St. JohnsClinton County · 7,780 people66.8top 12.6%AStrongest: hazard risk A−, schools A−·lowest: jobs & income B−
99LindenGenesee County · 4,186 people66.7top 12.8%AStrongest: safety A, schools A·lowest: cost of living C+
100Grand LedgeEaton County · 7,853 people66.7top 12.9%AStrongest: schools A−, safety B+·lowest: cost of living B−
101Homer TownshipMidland County · 3,952 people66.7top 12.9%AStrongest: schools A, cost of living A·lowest: walkability D
103Webster TownshipWashtenaw County · 6,485 people66.5top 13.3%AStrongest: health A+, jobs & income A+·lowest: cost of living D
105NorwayDickinson County · 2,815 people66.5top 13.3%AStrongest: hazard risk A, schools A·lowest: health C
106MilanWashtenaw County · 5,973 people66.5top 13.4%AStrongest: walkability A, hazard risk A−·lowest: cost of living B−
108RockfordKent County · 6,313 people66.4top 13.6%AStrongest: schools A+, health A−·lowest: cost of living C+
109Courtland TownshipKent County · 9,321 people66.2top 14.1%AStrongest: jobs & income A, schools A·lowest: walkability D
110Eureka TownshipMontcalm County · 4,354 people66.1top 14.3%AStrongest: hazard risk A, cost of living A·lowest: health C
111OxfordOakland County · 3,451 people66.0top 14.4%AStrongest: hazard risk A+, safety A·lowest: cost of living C−
112Deerfield TownshipLivingston County · 4,102 people66.0top 14.4%AStrongest: schools A, hazard risk A·lowest: walkability C−
114St. ClairSt. Clair County · 5,833 people66.0top 14.5%AStrongest: hazard risk A−, schools A−·lowest: cost of living B−
115BrightonLivingston County · 7,904 people65.9top 14.7%AStrongest: schools A+, hazard risk A·lowest: cost of living C−
116KingsfordDickinson County · 5,096 people65.9top 14.8%AStrongest: schools A, hazard risk A−·lowest: jobs & income C
118Whitewater TownshipGrand Traverse County · 2,736 people65.8top 15.0%AStrongest: hazard risk A+, schools A·lowest: walkability D
119Ishpeming TownshipMarquette County · 3,449 people65.7top 15.1%A−Strongest: hazard risk A, cost of living A·lowest: walkability C
120MasonIngham County · 8,264 people65.7top 15.2%A−Strongest: hazard risk A, jobs & income A−·lowest: cost of living C+
121Manchester TownshipWashtenaw County · 4,550 people65.7top 15.2%A−Strongest: health A−, hazard risk A−·lowest: walkability C
122Unadilla TownshipLivingston County · 3,284 people65.7top 15.2%A−Strongest: safety A, health A−·lowest: walkability C−
123Salem TownshipAllegan County · 5,269 people65.5top 15.6%A−Strongest: jobs & income A, schools A−·lowest: walkability D
124FerrysburgOttawa County · 2,955 people65.4top 15.8%A−Strongest: schools A, health A·lowest: walkability C−
126MarysvilleSt. Clair County · 9,868 people65.0top 16.8%A−Strongest: hazard risk A+, schools A·lowest: walkability C+
127Brady TownshipKalamazoo County · 4,485 people64.9top 17.0%A−Strongest: jobs & income A−, schools A−·lowest: walkability C−
128Bingham TownshipClinton County · 2,973 people64.9top 17.0%A−Strongest: schools A−, hazard risk A−·lowest: walkability C+
130Odessa TownshipIonia County · 3,966 people64.8top 17.2%A−Strongest: schools A−, cost of living A−·lowest: health B−
131Hope TownshipBarry County · 3,218 people64.8top 17.3%A−Strongest: cost of living A, hazard risk A·lowest: walkability D−
132Boyne CityCharlevoix County · 3,793 people64.7top 17.5%A−Strongest: hazard risk A+, safety A−·lowest: jobs & income C
134Lyndon TownshipWashtenaw County · 2,662 people64.6top 17.6%A−Strongest: schools A, health A·lowest: walkability D−
136Ida TownshipMonroe County · 4,808 people64.6top 17.7%A−Strongest: schools A, jobs & income A−·lowest: walkability D−
138Grass Lake TownshipJackson County · 6,273 people64.3top 18.3%A−Strongest: jobs & income A, hazard risk A−·lowest: cost of living C+
140GibraltarWayne County · 4,792 people64.2top 18.5%A−Strongest: hazard risk A, jobs & income A−·lowest: walkability C
141PortlandIonia County · 3,770 people64.2top 18.7%A−Strongest: cost of living A−, health B+·lowest: walkability C
142Leighton TownshipAllegan County · 7,374 people64.1top 18.8%A−Strongest: jobs & income A+, hazard risk A·lowest: walkability C−
143HancockHoughton County · 4,596 people64.1top 18.9%A−Strongest: walkability A, hazard risk A−·lowest: jobs & income C+
144NegauneeMarquette County · 4,663 people64.0top 19.1%A−Strongest: hazard risk A, schools A·lowest: jobs & income C+
145Portage TownshipHoughton County · 3,234 people63.9top 19.3%A−Strongest: schools A+, hazard risk A−·lowest: jobs & income C+
146Dexter TownshipWashtenaw County · 6,510 people63.9top 19.4%A−Strongest: health A+, schools A·lowest: cost of living D
147Overisel TownshipAllegan County · 3,169 people63.8top 19.5%A−Strongest: jobs & income A, schools A−·lowest: walkability C−
148Grosse PointeWayne County · 5,490 people63.8top 19.5%A−Strongest: health A+, jobs & income A·lowest: cost of living D
149Laketown TownshipAllegan County · 6,257 people63.7top 19.8%A−Strongest: jobs & income A, schools A·lowest: walkability D
150WilliamstonIngham County · 3,810 people63.6top 20.0%A−Strongest: schools A, health A−·lowest: hazard risk C
151Sparta TownshipKent County · 9,617 people63.6top 20.0%A−Strongest: hazard risk A−, cost of living A−·lowest: jobs & income C+
152HollyOakland County · 5,906 people63.6top 20.1%A−Strongest: hazard risk A, safety B+·lowest: walkability B
153Bowne TownshipKent County · 3,339 people63.5top 20.2%A−Strongest: schools A, health A·lowest: walkability D−
154Salem TownshipWashtenaw County · 6,786 people63.5top 20.2%A−Strongest: health A+, schools A·lowest: walkability D
155Wayland TownshipAllegan County · 3,620 people63.5top 20.4%A−Strongest: hazard risk A, schools A−·lowest: walkability C−
156Metamora TownshipLapeer County · 4,573 people63.4top 20.4%A−Strongest: hazard risk A, jobs & income A−·lowest: walkability C
157Stockbridge TownshipIngham County · 3,998 people63.4top 20.5%A−Strongest: hazard risk A−, jobs & income B+·lowest: walkability C+
158FrankenmuthSaginaw County · 5,197 people63.2top 20.9%A−Strongest: schools A, health A−·lowest: hazard risk C
160Dundee TownshipMonroe County · 8,780 people63.2top 21.0%A−Strongest: schools A−, jobs & income A−·lowest: cost of living C+
162Saugatuck TownshipAllegan County · 3,688 people63.1top 21.1%A−Strongest: jobs & income A, schools B+·lowest: cost of living C+
163Vergennes TownshipKent County · 4,968 people63.1top 21.2%A−Strongest: jobs & income A+, schools A·lowest: walkability D
164GladstoneDelta County · 5,189 people63.0top 21.5%A−Strongest: safety A, walkability A−·lowest: jobs & income C−
166ZeelandOttawa County · 5,637 people62.9top 21.8%A−Strongest: hazard risk A+, schools A·lowest: cost of living C+
167Leroy TownshipIngham County · 3,881 people62.8top 22.0%A−Strongest: schools A−, health B+·lowest: walkability C+
168Adams TownshipHoughton County · 2,565 people62.8top 22.0%A−Strongest: hazard risk A−, cost of living A−·lowest: jobs & income C−
169Alamo TownshipKalamazoo County · 3,826 people62.8top 22.1%A−Strongest: jobs & income A, schools A·lowest: walkability D
171Dorr TownshipAllegan County · 7,918 people62.7top 22.2%A−Strongest: jobs & income A−, schools A−·lowest: walkability D
172DundeeMonroe County · 6,008 people62.7top 22.3%A−Strongest: schools A−, jobs & income A−·lowest: cost of living C
173Summerfield TownshipMonroe County · 3,195 people62.6top 22.4%A−Strongest: schools A, jobs & income B+·lowest: walkability C+
174Livingston TownshipOtsego County · 2,748 people62.6top 22.4%A−Strongest: hazard risk A+, schools A−·lowest: walkability C−
175Hopkins TownshipAllegan County · 2,754 people62.6top 22.4%A−Strongest: hazard risk A−, schools A−·lowest: health C+
176Chocolay TownshipMarquette County · 6,014 people62.6top 22.5%A−Strongest: safety A−, schools A−·lowest: walkability C+
178Gun Plain TownshipAllegan County · 6,169 people62.4top 22.8%A−Strongest: cost of living A−, schools B·lowest: walkability C
179St. JosephBerrien County · 7,893 people62.4top 22.9%A−Strongest: schools A, walkability A·lowest: cost of living C−
181Tallmadge TownshipOttawa County · 9,188 people62.4top 23.0%A−Strongest: schools A, jobs & income A−·lowest: walkability C−
183HowellLivingston County · 9,896 people62.4top 23.0%A−Strongest: hazard risk A+, schools A−·lowest: cost of living C
184Dryden TownshipLapeer County · 4,809 people62.4top 23.0%A−Strongest: safety A, hazard risk A−·lowest: walkability C
185RockwoodWayne County · 3,132 people62.2top 23.3%A−Strongest: hazard risk A−, safety A−·lowest: walkability C−
186Pierson TownshipMontcalm County · 3,516 people62.1top 23.8%A−Strongest: hazard risk A, cost of living A·lowest: walkability D
190Peninsula TownshipGrand Traverse County · 6,160 people62.0top 24.1%A−Strongest: hazard risk A+, jobs & income A·lowest: cost of living D
191Argentine TownshipGenesee County · 7,021 people62.0top 24.2%A−Strongest: safety A, schools A−·lowest: walkability D
192Walled LakeOakland County · 7,320 people61.9top 24.4%A−Strongest: hazard risk A, schools A·lowest: cost of living C
193Almont TownshipLapeer County · 7,103 people61.8top 24.5%A−Strongest: schools A, health B·lowest: walkability C
194Erie TownshipMonroe County · 4,348 people61.8top 24.5%A−Strongest: cost of living A−, schools A−·lowest: walkability C
195York TownshipWashtenaw County · 9,130 people61.6top 25.1%B+Strongest: schools A, jobs & income A·lowest: walkability C−
197Bear Creek TownshipEmmet County · 6,513 people61.6top 25.3%B+Strongest: hazard risk A+, schools A·lowest: cost of living C−
199IthacaGratiot County · 2,807 people61.5top 25.5%B+Strongest: cost of living A−, walkability A−·lowest: health C
201Deerfield TownshipLapeer County · 5,802 people61.4top 25.7%B+Strongest: cost of living A−, hazard risk B+·lowest: health C+
202Yankee Springs TownshipBarry County · 5,462 people61.3top 26.0%B+Strongest: schools A−, hazard risk A−·lowest: walkability C−
204Paradise TownshipGrand Traverse County · 5,101 people61.3top 26.2%B+Strongest: hazard risk A, schools A·lowest: walkability C
209TecumsehLenawee County · 8,608 people61.1top 26.6%B+Strongest: safety A−, schools A−·lowest: cost of living C+
212Milton TownshipCass County · 3,187 people61.0top 26.9%B+Strongest: jobs & income A, hazard risk A·lowest: walkability D
214Alaiedon TownshipIngham County · 2,933 people60.9top 27.0%B+Strongest: hazard risk A, health A−·lowest: cost of living C
215SpartaKent County · 4,255 people60.9top 27.3%B+Strongest: hazard risk A, schools B+·lowest: jobs & income C+
216Danby TownshipIonia County · 2,997 people60.8top 27.3%B+Strongest: cost of living A−, jobs & income A−·lowest: walkability D
217Otsego TownshipAllegan County · 6,001 people60.8top 27.5%B+Strongest: schools A, jobs & income B+·lowest: hazard risk C+
220Escanaba TownshipDelta County · 3,552 people60.6top 27.8%B+Strongest: hazard risk A, schools B+·lowest: health C+
221Hanover TownshipJackson County · 3,708 people60.6top 28.0%B+Strongest: hazard risk A−, jobs & income A−·lowest: walkability D
222BlissfieldLenawee County · 3,262 people60.6top 28.0%B+Strongest: safety A, jobs & income B+·lowest: hazard risk C
223Cottrellville TownshipSt. Clair County · 3,469 people60.6top 28.0%B+Strongest: jobs & income A−, schools A−·lowest: walkability C−
224Elmwood TownshipLeelanau County · 5,039 people60.5top 28.1%B+Strongest: hazard risk A+, schools A−·lowest: cost of living C
226Baroda TownshipBerrien County · 2,818 people60.5top 28.2%B+Strongest: schools A, jobs & income B+·lowest: walkability C−
228Pleasant RidgeOakland County · 2,592 people60.3top 28.6%B+Strongest: health A+, jobs & income A·lowest: cost of living C−
229Hastings TownshipBarry County · 3,091 people60.3top 28.7%B+Strongest: cost of living A−, schools B+·lowest: jobs & income C+
230Bagley TownshipOtsego County · 6,104 people60.2top 28.8%B+Strongest: hazard risk A+, schools A−·lowest: walkability C−
231Grattan TownshipKent County · 3,896 people60.2top 28.8%B+Strongest: hazard risk A+, schools A·lowest: walkability D
232AlmontLapeer County · 2,848 people60.2top 28.9%B+Strongest: schools A, hazard risk B+·lowest: walkability C+
233Irving TownshipBarry County · 3,836 people60.2top 28.9%B+Strongest: schools A−, jobs & income B+·lowest: walkability D
234Heath TownshipAllegan County · 4,017 people60.0top 29.4%B+Strongest: jobs & income A, hazard risk B+·lowest: walkability C−
235North Branch TownshipLapeer County · 3,557 people59.8top 29.8%B+Strongest: cost of living A, hazard risk A−·lowest: jobs & income C
236Vevay TownshipIngham County · 3,638 people59.8top 29.8%B+Strongest: hazard risk A−, schools A−·lowest: walkability D−
237Williamstown TownshipIngham County · 5,338 people59.8top 29.8%B+Strongest: schools A, jobs & income A·lowest: cost of living D
238Nelson TownshipKent County · 5,054 people59.7top 30.1%B+Strongest: hazard risk A, cost of living B+·lowest: walkability C−
239Oakfield TownshipKent County · 6,190 people59.7top 30.3%B+Strongest: hazard risk A, schools A−·lowest: walkability C
241Schoolcraft TownshipKalamazoo County · 9,316 people59.6top 30.4%B+Strongest: schools A−, hazard risk B+·lowest: walkability C−
242Solon TownshipKent County · 6,652 people59.6top 30.5%B+Strongest: hazard risk A, jobs & income A−·lowest: walkability D
243Reynolds TownshipMontcalm County · 5,687 people59.5top 30.7%B+Strongest: cost of living A+, hazard risk B+·lowest: health C
244Marine CitySt. Clair County · 3,997 people59.4top 30.8%B+Strongest: walkability A−, schools A−·lowest: jobs & income C
246Kinross TownshipChippewa County · 6,790 people59.4top 30.9%B+Strongest: hazard risk A+, safety A+·lowest: jobs & income D−
247Soo TownshipChippewa County · 2,983 people59.3top 31.1%B+Strongest: hazard risk A, cost of living A−·lowest: walkability D
248Putnam TownshipLivingston County · 7,797 people59.2top 31.3%B+Strongest: health A−, schools B+·lowest: cost of living C
249Port Sheldon TownshipOttawa County · 5,480 people59.2top 31.4%B+Strongest: schools A−, jobs & income A−·lowest: walkability D
251Handy TownshipLivingston County · 8,887 people59.1top 31.7%B+Strongest: hazard risk A−, jobs & income B+·lowest: walkability B−
252Watertown TownshipClinton County · 5,890 people59.0top 31.8%B+Strongest: jobs & income A, schools A−·lowest: walkability D
254Rose TownshipOakland County · 6,268 people59.0top 31.9%B+Strongest: hazard risk A, schools B+·lowest: walkability D−
255Green Lake TownshipGrand Traverse County · 6,822 people59.0top 32.0%B+Strongest: schools A−, hazard risk A−·lowest: walkability C−
256Ensley TownshipNewaygo County · 2,723 people59.0top 32.0%B+Strongest: hazard risk A, jobs & income A−·lowest: walkability C
257Adrian TownshipLenawee County · 6,322 people58.9top 32.2%B+Strongest: safety A, jobs & income A−·lowest: health C−
261Emmett TownshipSt. Clair County · 2,515 people58.8top 32.6%B+Strongest: schools A−, cost of living B·lowest: walkability C
262WhitehallMuskegon County · 3,205 people58.7top 32.7%B+Strongest: hazard risk A+, schools A−·lowest: health C+
264Chikaming TownshipBerrien County · 2,752 people58.5top 33.3%B+Strongest: hazard risk A, jobs & income A−·lowest: cost of living C−
265Keego HarborOakland County · 2,723 people58.2top 34.1%B+Strongest: health A−, hazard risk A−·lowest: cost of living C−
266CorunnaShiawassee County · 3,000 people58.1top 34.2%B+Strongest: safety A−, walkability A−·lowest: jobs & income C
267Royalton TownshipBerrien County · 5,198 people58.1top 34.3%B+Strongest: jobs & income A, health A−·lowest: walkability C−
268Wright TownshipOttawa County · 3,185 people58.0top 34.7%B+Strongest: hazard risk A−, schools A−·lowest: walkability C−
269Vernon TownshipShiawassee County · 4,296 people58.0top 34.7%B+Strongest: cost of living A−, jobs & income B+·lowest: walkability D
270Cohoctah TownshipLivingston County · 3,185 people58.0top 34.8%B+Strongest: schools A−, hazard risk A−·lowest: walkability C−
271Chesaning TownshipSaginaw County · 4,654 people57.9top 35.1%BStrongest: cost of living A−, hazard risk B+·lowest: health C
272Kalkaska TownshipKalkaska County · 5,207 people57.7top 35.4%BStrongest: cost of living A+, hazard risk A+·lowest: health C
273Groveland TownshipOakland County · 6,274 people57.7top 35.6%BStrongest: jobs & income A, hazard risk A·lowest: walkability D
274Aurelius TownshipIngham County · 4,394 people57.6top 35.7%BStrongest: jobs & income A, health B+·lowest: walkability D
275Berlin TownshipSt. Clair County · 3,134 people57.6top 35.7%BStrongest: schools A−, cost of living B·lowest: walkability D
277Raisin TownshipLenawee County · 8,165 people57.6top 35.8%BStrongest: safety A, hazard risk B+·lowest: health C+
279Grand BlancGenesee County · 7,880 people57.6top 35.8%BStrongest: hazard risk A, schools A−·lowest: cost of living C−
280Lapeer TownshipLapeer County · 4,996 people57.6top 35.9%BStrongest: safety A+, hazard risk A−·lowest: walkability D
281Eaton TownshipEaton County · 4,009 people57.4top 36.3%BStrongest: jobs & income A−, cost of living A−·lowest: walkability D
282Breitung TownshipDickinson County · 5,857 people57.4top 36.3%BStrongest: schools A, hazard risk A−·lowest: walkability C
283DurandShiawassee County · 3,457 people57.3top 36.4%BStrongest: walkability A, schools B+·lowest: health C+
284Blair TownshipGrand Traverse County · 9,208 people57.3top 36.4%BStrongest: hazard risk A−, schools A−·lowest: walkability C−
287Almira TownshipBenzie County · 3,989 people57.1top 37.0%BStrongest: hazard risk A, jobs & income A−·lowest: walkability D
288Iron RiverIron County · 3,027 people57.1top 37.0%BStrongest: cost of living A+, hazard risk A·lowest: jobs & income D
289Rutland TownshipBarry County · 4,308 people57.1top 37.0%BStrongest: hazard risk A−, cost of living B+·lowest: walkability D
290SanduskySanilac County · 2,664 people57.1top 37.1%BStrongest: walkability A, schools A−·lowest: jobs & income C−
291Ray TownshipMacomb County · 3,848 people57.0top 37.2%BStrongest: jobs & income A, schools A·lowest: walkability D
292Somerset TownshipHillsdale County · 4,606 people57.0top 37.3%BStrongest: safety A, hazard risk A−·lowest: walkability C
293China TownshipSt. Clair County · 3,530 people56.9top 37.6%BStrongest: schools A−, cost of living B·lowest: walkability D
294Cambridge TownshipLenawee County · 5,763 people56.9top 37.6%BStrongest: safety A−, hazard risk B+·lowest: walkability C−
295Manlius TownshipAllegan County · 3,433 people56.9top 37.6%BStrongest: jobs & income A−, hazard risk A−·lowest: walkability C−
296Wheeler TownshipGratiot County · 2,569 people56.9top 37.6%BStrongest: cost of living A, hazard risk B·lowest: jobs & income C
298Iron MountainDickinson County · 7,469 people56.8top 37.8%BStrongest: walkability A, hazard risk A·lowest: jobs & income C
299Ravenna TownshipMuskegon County · 3,045 people56.8top 37.8%BStrongest: jobs & income B+, hazard risk B+·lowest: walkability C−
300Oneida TownshipEaton County · 3,966 people56.8top 37.8%BStrongest: schools A−, jobs & income A−·lowest: walkability D
302Haring TownshipWexford County · 3,626 people56.6top 38.4%BStrongest: hazard risk A+, schools B+·lowest: health C
304Liberty TownshipJackson County · 3,080 people56.5top 38.7%BStrongest: schools B+, hazard risk B+·lowest: walkability D
306Rogers CityPresque Isle County · 2,869 people56.3top 39.3%BStrongest: hazard risk A, safety A·lowest: jobs & income D
307Polkton TownshipOttawa County · 2,616 people56.3top 39.4%BStrongest: jobs & income A, schools A−·lowest: walkability D−
308Hadley TownshipLapeer County · 4,555 people56.3top 39.4%BStrongest: jobs & income A−, hazard risk A−·lowest: walkability D
309Iosco TownshipLivingston County · 3,876 people56.2top 39.5%BStrongest: jobs & income A−, health B+·lowest: walkability D
311Woodhull TownshipShiawassee County · 3,689 people56.2top 39.6%BStrongest: jobs & income A, hazard risk B+·lowest: walkability D
312Lake TownshipBerrien County · 3,348 people56.1top 39.8%BStrongest: schools A, hazard risk A·lowest: cost of living C−
314Sandstone TownshipJackson County · 3,873 people55.9top 40.2%BStrongest: jobs & income A−, hazard risk A−·lowest: walkability D
315HastingsBarry County · 7,490 people55.9top 40.3%BStrongest: cost of living A−, hazard risk A−·lowest: safety C
316Spencer TownshipKent County · 4,288 people55.9top 40.5%BStrongest: hazard risk A, schools B+·lowest: walkability D
317Wales TownshipSt. Clair County · 3,195 people55.8top 40.5%BStrongest: cost of living A−, schools B+·lowest: walkability D−
318Lathrup VillageOakland County · 4,019 people55.8top 40.7%BStrongest: jobs & income A, walkability A−·lowest: cost of living C−
319Kawkawlin TownshipBay County · 4,349 people55.7top 40.9%BStrongest: jobs & income B+, cost of living B+·lowest: walkability D
320St. Clair TownshipSt. Clair County · 7,159 people55.5top 41.2%BStrongest: schools A−, hazard risk A−·lowest: walkability D
321Jefferson TownshipCass County · 2,581 people55.5top 41.4%BStrongest: hazard risk A+, schools A−·lowest: walkability D
322Conway TownshipLivingston County · 3,594 people55.4top 41.5%BStrongest: jobs & income A, hazard risk B+·lowest: walkability D−
323Augusta TownshipWashtenaw County · 7,345 people55.4top 41.6%BStrongest: jobs & income A, hazard risk A−·lowest: walkability D
324Clearwater TownshipKalkaska County · 2,600 people55.3top 41.7%BStrongest: cost of living A, hazard risk B+·lowest: walkability C−
325CoopersvilleOttawa County · 4,802 people55.3top 41.8%BStrongest: schools A−, hazard risk B+·lowest: walkability C
327Lyons TownshipIonia County · 3,580 people55.3top 41.9%BStrongest: cost of living A, schools B·lowest: walkability D
328FlushingGenesee County · 8,175 people55.2top 42.1%BStrongest: safety A−, health B·lowest: cost of living C+
329Williams TownshipBay County · 5,032 people55.2top 42.2%BStrongest: health B+, jobs & income B+·lowest: cost of living C+
330Elba TownshipLapeer County · 5,256 people55.1top 42.3%BStrongest: cost of living B+, hazard risk B+·lowest: walkability C−
331Negaunee TownshipMarquette County · 3,292 people55.1top 42.3%BStrongest: hazard risk A, schools A·lowest: walkability C−
332Lee TownshipMidland County · 4,075 people55.1top 42.4%BStrongest: schools A−, health B+·lowest: walkability D
333New Buffalo TownshipBerrien County · 2,517 people55.1top 42.4%BStrongest: schools A+, hazard risk A−·lowest: cost of living C−
335Bertrand TownshipBerrien County · 2,587 people55.1top 42.5%BStrongest: hazard risk A, jobs & income A−·lowest: walkability D
336Columbus TownshipSt. Clair County · 4,303 people55.0top 42.5%BStrongest: jobs & income A−, schools A−·lowest: walkability D
337Mayfield TownshipLapeer County · 8,070 people55.0top 42.5%BStrongest: cost of living A−, hazard risk A−·lowest: walkability D
338Victor TownshipClinton County · 3,493 people55.0top 42.7%BStrongest: schools A−, jobs & income B·lowest: walkability D−
339Montcalm TownshipMontcalm County · 3,532 people54.9top 42.8%BStrongest: cost of living A, hazard risk A·lowest: walkability D−
340Ontwa TownshipCass County · 6,839 people54.9top 42.8%BStrongest: schools A, hazard risk A·lowest: walkability D
341St. Charles TownshipSaginaw County · 3,115 people54.9top 42.8%BStrongest: cost of living A−, schools B·lowest: jobs & income C+
342Lexington TownshipSanilac County · 3,452 people54.9top 42.8%BStrongest: hazard risk A−, schools A−·lowest: health C−
343Atlas TownshipGenesee County · 8,271 people54.9top 42.8%BStrongest: schools A, hazard risk B+·lowest: cost of living D
344Calumet TownshipHoughton County · 6,309 people54.8top 43.2%BStrongest: hazard risk A, cost of living A·lowest: jobs & income D
345Burtchville TownshipSt. Clair County · 4,034 people54.8top 43.3%BStrongest: cost of living A−, hazard risk A−·lowest: walkability C−
348Laketon TownshipMuskegon County · 7,721 people54.5top 44.0%BStrongest: hazard risk A, jobs & income A−·lowest: walkability D
349Raisinville TownshipMonroe County · 6,136 people54.4top 44.3%BStrongest: jobs & income A−, cost of living A−·lowest: walkability C−
350RichmondMacomb County · 5,927 people54.3top 44.5%BStrongest: hazard risk A, walkability A−·lowest: health D
351Windsor TownshipEaton County · 7,197 people54.2top 44.9%BStrongest: jobs & income A, health B−·lowest: walkability C−
352Otsego Lake TownshipOtsego County · 2,968 people54.1top 45.0%BStrongest: hazard risk A, schools A−·lowest: walkability C−
353Franklin TownshipLenawee County · 3,047 people54.1top 45.0%BStrongest: schools B+, hazard risk B+·lowest: walkability D
354Bennington TownshipShiawassee County · 3,105 people54.1top 45.1%B−Strongest: jobs & income A, cost of living A−·lowest: walkability D−
355Johnstown TownshipBarry County · 2,917 people54.1top 45.2%B−Strongest: hazard risk B+, cost of living B+·lowest: walkability C
356Richland TownshipSaginaw County · 3,902 people54.1top 45.2%B−Strongest: safety B+, schools B+·lowest: walkability C−
357East TawasIosco County · 2,662 people54.1top 45.2%B−Strongest: hazard risk A, walkability A−·lowest: jobs & income D
358Birch Run TownshipSaginaw County · 5,853 people54.0top 45.2%B−Strongest: schools A−, hazard risk B+·lowest: walkability C−
359Howard TownshipCass County · 6,255 people54.0top 45.4%B−Strongest: hazard risk A−, cost of living A−·lowest: walkability C−
360Norvell TownshipJackson County · 2,822 people54.0top 45.4%B−Strongest: jobs & income A−, hazard risk B·lowest: walkability D−
362Prairieville TownshipBarry County · 3,393 people53.9top 45.6%B−Strongest: hazard risk A, schools A−·lowest: cost of living C
363Ash TownshipMonroe County · 8,013 people53.8top 45.7%B−Strongest: jobs & income B+, hazard risk B+·lowest: walkability C−
365Tyrone TownshipKent County · 5,262 people53.8top 45.9%B−Strongest: hazard risk A, schools B+·lowest: walkability C−
366IshpemingMarquette County · 6,205 people53.8top 46.0%B−Strongest: cost of living A−, walkability A−·lowest: jobs & income D
367Fabius TownshipSt. Joseph County · 3,325 people53.7top 46.0%B−Strongest: hazard risk A, cost of living B+·lowest: walkability D−
368BuchananBerrien County · 4,143 people53.7top 46.1%B−Strongest: hazard risk A−, schools A−·lowest: safety C
369St. Joseph TownshipBerrien County · 9,703 people53.7top 46.2%B−Strongest: hazard risk A−, schools B+·lowest: cost of living C
371Bingham TownshipLeelanau County · 2,660 people53.5top 46.6%B−Strongest: hazard risk A, health B+·lowest: walkability D
372PlainwellAllegan County · 3,722 people53.5top 46.6%B−Strongest: walkability A−, schools B·lowest: safety C+
373Sebewaing TownshipHuron County · 2,602 people53.5top 46.7%B−Strongest: walkability A−, cost of living A−·lowest: jobs & income C−
374Ashland TownshipNewaygo County · 2,861 people53.5top 46.8%B−Strongest: cost of living B+, hazard risk B+·lowest: health C+
375IronwoodGogebic County · 4,950 people53.5top 46.9%B−Strongest: hazard risk A+, cost of living A·lowest: jobs & income D−
376FremontNewaygo County · 4,599 people53.4top 47.1%B−Strongest: hazard risk A+, walkability A−·lowest: health C
377PottervilleEaton County · 3,135 people53.4top 47.2%B−Strongest: hazard risk A−, safety B+·lowest: walkability C
378Riley TownshipSt. Clair County · 3,196 people53.3top 47.4%B−Strongest: jobs & income A−, health B+·lowest: walkability D−
379MarshallCalhoun County · 6,800 people53.3top 47.5%B−Strongest: walkability A−, hazard risk B+·lowest: cost of living C+
381Martin TownshipAllegan County · 2,721 people53.2top 47.7%B−Strongest: hazard risk A, cost of living A−·lowest: walkability C
383Eaton Rapids TownshipEaton County · 4,012 people53.1top 48.1%B−Strongest: jobs & income A−, cost of living B+·lowest: walkability D
384Mancelona TownshipAntrim County · 4,559 people53.1top 48.1%B−Strongest: hazard risk A+, cost of living A·lowest: jobs & income D
385MattawanVan Buren County · 2,934 people53.0top 48.3%B−Strongest: schools A, health B+·lowest: jobs & income C
387Leroy TownshipCalhoun County · 3,680 people52.9top 48.5%B−Strongest: jobs & income A−, hazard risk A−·lowest: walkability C−
388Kimball TownshipSt. Clair County · 9,652 people52.9top 48.5%B−Strongest: hazard risk A−, cost of living A−·lowest: walkability D
389Shiawassee TownshipShiawassee County · 2,726 people52.9top 48.6%B−Strongest: jobs & income B+, hazard risk B+·lowest: walkability C−
390London TownshipMonroe County · 3,006 people52.9top 48.7%B−Strongest: schools A−, hazard risk B+·lowest: walkability D
391Bloomer TownshipMontcalm County · 6,567 people52.9top 48.7%B−Strongest: cost of living A+, hazard risk B+·lowest: health C−
392Littlefield TownshipEmmet County · 3,192 people52.8top 48.8%B−Strongest: cost of living B, walkability B·lowest: hazard risk C+
393Ira TownshipSt. Clair County · 5,104 people52.7top 49.1%B−Strongest: schools A−, hazard risk B+·lowest: cost of living C
394Arcadia TownshipLapeer County · 3,174 people52.6top 49.3%B−Strongest: hazard risk A−, cost of living A−·lowest: walkability D
395Paw Paw TownshipVan Buren County · 6,884 people52.6top 49.3%B−Strongest: hazard risk B+, walkability B+·lowest: jobs & income C
397Quincy TownshipBranch County · 4,140 people52.6top 49.6%B−Strongest: cost of living B+, hazard risk B·lowest: walkability D
398Mussey TownshipSt. Clair County · 4,177 people52.5top 49.7%B−Strongest: cost of living A−, hazard risk B·lowest: jobs & income C
399Clay TownshipSt. Clair County · 8,268 people52.4top 49.8%B−Strongest: schools B+, hazard risk B·lowest: walkability C+
402Sheridan TownshipNewaygo County · 2,581 people52.3bottom 49.7%B−Strongest: hazard risk A−, schools B·lowest: health C+
403Napoleon TownshipJackson County · 6,706 people52.2bottom 49.5%B−Strongest: hazard risk A−, jobs & income B+·lowest: health C
404Burr Oak TownshipSt. Joseph County · 2,635 people52.2bottom 49.5%B−Strongest: hazard risk A−, cost of living B+·lowest: health C
405Swartz CreekGenesee County · 5,827 people52.2bottom 49.5%B−Strongest: hazard risk A, jobs & income B+·lowest: cost of living C
406Buchanan TownshipBerrien County · 3,475 people52.2bottom 49.4%B−Strongest: schools A−, cost of living B·lowest: walkability D
407Marquette TownshipMarquette County · 4,196 people52.2bottom 49.4%B−Strongest: hazard risk A+, schools A−·lowest: cost of living D
409AlleganAllegan County · 5,127 people52.0bottom 49.0%B−Strongest: safety A−, walkability B+·lowest: health C−
410UticaMacomb County · 5,114 people51.9bottom 48.6%B−Strongest: schools A−, jobs & income B+·lowest: safety C−
412Denmark TownshipTuscola County · 2,704 people51.7bottom 48.1%B−Strongest: cost of living A−, schools B−·lowest: hazard risk C
413GreenvilleMontcalm County · 9,256 people51.6bottom 48.0%B−Strongest: hazard risk A, cost of living A−·lowest: safety C−
415Lake TownshipMissaukee County · 2,851 people51.3bottom 47.2%B−Strongest: hazard risk A, schools B+·lowest: health C−
417VicksburgKalamazoo County · 3,973 people51.1bottom 46.7%B−Strongest: schools A−, hazard risk B+·lowest: walkability C
419BeldingIonia County · 6,000 people51.0bottom 46.5%B−Strongest: cost of living A, hazard risk A−·lowest: health C−
420HillsdaleHillsdale County · 8,002 people51.0bottom 46.3%B−Strongest: walkability A, hazard risk A·lowest: jobs & income C−
421Easton TownshipIonia County · 3,136 people51.0bottom 46.3%B−Strongest: cost of living A, hazard risk B·lowest: walkability D
422CharlotteEaton County · 9,305 people50.9bottom 46.1%B−Strongest: walkability A−, hazard risk B+·lowest: safety C−
423Manistee TownshipManistee County · 4,268 people50.9bottom 46.1%B−Strongest: cost of living A−, hazard risk B+·lowest: walkability C−
424Suttons Bay TownshipLeelanau County · 2,959 people50.9bottom 46.1%B−Strongest: hazard risk A+, health B+·lowest: schools C+
425Orangeville TownshipBarry County · 3,497 people50.8bottom 45.9%B−Strongest: hazard risk B+, cost of living B+·lowest: walkability C−
426La Salle TownshipMonroe County · 4,591 people50.8bottom 45.8%B−Strongest: cost of living B+, jobs & income B·lowest: walkability D
427Richfield TownshipGenesee County · 8,941 people50.8bottom 45.8%B−Strongest: safety A−, schools A−·lowest: walkability C−
428Almena TownshipVan Buren County · 5,404 people50.8bottom 45.7%B−Strongest: jobs & income A, schools B·lowest: walkability D
429Elkland TownshipTuscola County · 3,485 people50.7bottom 45.7%B−Strongest: cost of living A−, schools A−·lowest: jobs & income D
430Cato TownshipMontcalm County · 3,002 people50.7bottom 45.6%B−Strongest: hazard risk A, cost of living A·lowest: jobs & income D
431Menominee TownshipMenominee County · 3,306 people50.7bottom 45.6%B−Strongest: cost of living A, hazard risk A−·lowest: walkability D−
432Marshall TownshipCalhoun County · 3,162 people50.7bottom 45.5%B−Strongest: jobs & income B+, hazard risk B+·lowest: cost of living C
433Casco TownshipSt. Clair County · 4,387 people50.6bottom 45.3%B−Strongest: schools A−, hazard risk B+·lowest: walkability D
434Oregon TownshipLapeer County · 5,722 people50.4bottom 44.8%C+Strongest: cost of living A, schools B·lowest: walkability D−
435Montrose TownshipGenesee County · 5,896 people50.4bottom 44.8%C+Strongest: safety A−, hazard risk B+·lowest: health C−
436MenomineeMenominee County · 8,175 people50.4bottom 44.7%C+Strongest: walkability A, hazard risk A·lowest: health C−
438Monterey TownshipAllegan County · 2,529 people50.4bottom 44.6%C+Strongest: hazard risk A−, cost of living B+·lowest: walkability C
439Fruitland TownshipMuskegon County · 5,955 people50.3bottom 44.5%C+Strongest: hazard risk A, jobs & income B+·lowest: walkability C−
441Benton TownshipEaton County · 2,776 people50.3bottom 44.4%C+Strongest: jobs & income B+, hazard risk B·lowest: walkability C
442Grant TownshipOceana County · 3,034 people50.3bottom 44.3%C+Strongest: cost of living A, hazard risk A·lowest: jobs & income D
443Benzonia TownshipBenzie County · 2,816 people50.3bottom 44.3%C+Strongest: hazard risk B+, cost of living B·lowest: jobs & income C
444BellevilleWayne County · 3,851 people50.2bottom 44.2%C+Strongest: hazard risk A, health B−·lowest: schools C+
445Hamlin TownshipMason County · 3,732 people50.2bottom 44.1%C+Strongest: hazard risk A, schools B·lowest: walkability D−
446Taymouth TownshipSaginaw County · 4,037 people50.2bottom 44.0%C+Strongest: jobs & income B+, cost of living B+·lowest: walkability D−
448Gerrish TownshipRoscommon County · 2,839 people50.0bottom 43.6%C+Strongest: safety B+, jobs & income B·lowest: walkability D
450Caledonia TownshipShiawassee County · 4,323 people50.0bottom 43.6%C+Strongest: cost of living A−, hazard risk B+·lowest: jobs & income C
451Grant TownshipNewaygo County · 3,406 people50.0bottom 43.5%C+Strongest: hazard risk A, cost of living B+·lowest: walkability C−
452Jerome TownshipMidland County · 4,613 people49.9bottom 43.3%C+Strongest: cost of living B, schools B·lowest: walkability C−
454Home TownshipMontcalm County · 2,813 people49.7bottom 42.9%C+Strongest: cost of living A+, hazard risk A+·lowest: jobs & income D
455Gaines TownshipGenesee County · 6,610 people49.7bottom 42.9%C+Strongest: hazard risk B+, jobs & income B·lowest: walkability D
456Carmel TownshipEaton County · 2,851 people49.7bottom 42.8%C+Strongest: jobs & income B+, hazard risk B+·lowest: walkability D−
457New HavenMacomb County · 6,749 people49.7bottom 42.7%C+Strongest: hazard risk A, schools B+·lowest: health C−
458Clyde TownshipSt. Clair County · 5,422 people49.7bottom 42.6%C+Strongest: cost of living B+, health B·lowest: walkability D−
459AlgonacSt. Clair County · 4,109 people49.6bottom 42.6%C+Strongest: walkability A, schools B+·lowest: health D
460Portsmouth TownshipBay County · 3,139 people49.6bottom 42.5%C+Strongest: jobs & income B+, cost of living B+·lowest: health C−
461Forsyth TownshipMarquette County · 6,291 people49.6bottom 42.5%C+Strongest: cost of living A−, safety B+·lowest: walkability C−
462Columbia TownshipJackson County · 7,515 people49.6bottom 42.4%C+Strongest: hazard risk A−, jobs & income B+·lowest: cost of living C−
463Concord TownshipJackson County · 2,721 people49.5bottom 42.3%C+Strongest: hazard risk A−, cost of living B+·lowest: walkability C−
465Mason TownshipCass County · 2,874 people49.4bottom 41.8%C+Strongest: hazard risk A, schools A−·lowest: jobs & income C−
466Clayton TownshipGenesee County · 7,309 people49.3bottom 41.7%C+Strongest: safety A, hazard risk A−·lowest: walkability D
467Rollin TownshipLenawee County · 3,020 people49.3bottom 41.7%C+Strongest: hazard risk A−, cost of living B·lowest: health C
468Orleans TownshipIonia County · 2,758 people49.2bottom 41.4%C+Strongest: hazard risk A, cost of living A·lowest: walkability D
469Perry TownshipShiawassee County · 4,167 people49.1bottom 41.1%C+Strongest: hazard risk A−, cost of living B·lowest: walkability C
470Pine Grove TownshipVan Buren County · 3,083 people49.0bottom 40.9%C+Strongest: cost of living B+, hazard risk B·lowest: walkability D
472Bad AxeHuron County · 2,943 people48.9bottom 40.5%C+Strongest: hazard risk A+, walkability A·lowest: jobs & income D
473Millington TownshipTuscola County · 4,171 people48.9bottom 40.5%C+Strongest: cost of living A−, schools B·lowest: health C−
474Decatur TownshipVan Buren County · 3,503 people48.8bottom 40.4%C+Strongest: cost of living A−, hazard risk B+·lowest: health C
475Hamlin TownshipEaton County · 3,238 people48.8bottom 40.2%C+Strongest: hazard risk B, jobs & income B·lowest: walkability C
476Dalton TownshipMuskegon County · 9,651 people48.8bottom 40.2%C+Strongest: hazard risk A, schools B+·lowest: walkability D
477Hayes TownshipOtsego County · 2,839 people48.7bottom 39.9%C+Strongest: hazard risk A, schools A−·lowest: walkability D−
478DavisonGenesee County · 5,039 people48.6bottom 39.8%C+Strongest: schools A−, walkability A−·lowest: jobs & income C−
479Oscoda TownshipIosco County · 7,158 people48.6bottom 39.6%C+Strongest: hazard risk A−, schools B+·lowest: jobs & income D−
480Shelby TownshipOceana County · 4,143 people48.5bottom 39.5%C+Strongest: hazard risk A, cost of living A−·lowest: jobs & income C−
481Bellevue TownshipEaton County · 3,218 people48.5bottom 39.4%C+Strongest: cost of living A−, hazard risk B·lowest: walkability C−
482Richmond TownshipMacomb County · 3,632 people48.4bottom 39.3%C+Strongest: schools A−, hazard risk B+·lowest: walkability D
483Nottawa TownshipSt. Joseph County · 3,808 people48.4bottom 39.1%C+Strongest: cost of living B+, hazard risk B−·lowest: health C
484LaGrange TownshipCass County · 3,724 people48.4bottom 39.0%C+Strongest: hazard risk A+, cost of living A−·lowest: health C
485Maple Grove TownshipSaginaw County · 2,646 people48.3bottom 39.0%C+Strongest: schools A−, jobs & income B−·lowest: walkability C−
487Burns TownshipShiawassee County · 3,268 people48.2bottom 38.7%C+Strongest: jobs & income B+, hazard risk B+·lowest: walkability D
488Richfield TownshipRoscommon County · 3,575 people48.2bottom 38.4%C+Strongest: cost of living A, safety A·lowest: jobs & income D−
489Wells TownshipDelta County · 4,821 people48.2bottom 38.4%C+Strongest: hazard risk A−, cost of living B+·lowest: walkability D
490Fraser TownshipBay County · 2,946 people48.1bottom 38.4%C+Strongest: cost of living B+, schools B·lowest: walkability D
491Onondaga TownshipIngham County · 3,086 people48.1bottom 38.1%C+Strongest: hazard risk B, jobs & income B·lowest: walkability D−
494Henrietta TownshipJackson County · 4,729 people47.9bottom 37.5%C+Strongest: cost of living B+, schools B−·lowest: walkability D−
495Trowbridge TownshipAllegan County · 2,561 people47.9bottom 37.5%C+Strongest: cost of living A−, hazard risk B+·lowest: walkability C−
496Frankenlust TownshipBay County · 3,684 people47.8bottom 37.4%C+Strongest: jobs & income A−, health B−·lowest: hazard risk C+
497CheboyganCheboygan County · 4,804 people47.8bottom 37.4%C+Strongest: walkability A−, cost of living A−·lowest: jobs & income D−
498Imlay CityLapeer County · 3,753 people47.8bottom 37.4%C+Strongest: hazard risk A, cost of living B+·lowest: health D
499Beaver TownshipBay County · 2,684 people47.8bottom 37.3%C+Strongest: health B+, jobs & income B+·lowest: walkability D−
500LapeerLapeer County · 9,201 people47.8bottom 37.3%C+Strongest: hazard risk A+, walkability A−·lowest: health D
501Reed CityOsceola County · 2,528 people47.8bottom 37.3%C+Strongest: cost of living A, hazard risk A·lowest: jobs & income D
502Grayling TownshipCrawford County · 5,892 people47.6bottom 36.9%C+Strongest: schools B+, cost of living B+·lowest: jobs & income D
503Mendon TownshipSt. Joseph County · 2,565 people47.6bottom 36.8%C+Strongest: cost of living A−, jobs & income B−·lowest: walkability C−
506L'Anse TownshipBaraga County · 3,634 people47.3bottom 36.1%C+Strongest: hazard risk A−, cost of living A−·lowest: jobs & income D
507St. LouisGratiot County · 7,406 people47.3bottom 36.1%C+Strongest: cost of living B+, safety B+·lowest: health D
510East China TownshipSt. Clair County · 3,661 people47.0bottom 35.4%C+Strongest: schools A−, health B·lowest: walkability D
511AlmaGratiot County · 9,304 people47.0bottom 35.3%C+Strongest: walkability A, cost of living B+·lowest: jobs & income D
512Ganges TownshipAllegan County · 2,676 people46.8bottom 35.0%C+Strongest: hazard risk B+, cost of living B+·lowest: walkability C
513Evergreen TownshipMontcalm County · 3,063 people46.7bottom 34.7%CStrongest: cost of living A, hazard risk A·lowest: walkability D
515Sherman TownshipSt. Joseph County · 3,462 people46.5bottom 34.2%CStrongest: hazard risk A−, jobs & income B·lowest: walkability C−
516Silver Creek TownshipCass County · 3,041 people46.5bottom 34.1%CStrongest: hazard risk A−, cost of living B+·lowest: health C−
517Attica TownshipLapeer County · 4,729 people46.5bottom 34.1%CStrongest: hazard risk A−, schools B·lowest: walkability C
518Coldwater TownshipBranch County · 3,859 people46.4bottom 33.9%CStrongest: hazard risk A−, cost of living B+·lowest: walkability C−
519ManisteeManistee County · 6,157 people46.2bottom 33.5%CStrongest: walkability A−, cost of living B+·lowest: jobs & income D
520Woodstock TownshipLenawee County · 3,578 people46.2bottom 33.4%CStrongest: hazard risk A−, schools B·lowest: walkability D
521LudingtonMason County · 7,634 people46.1bottom 33.3%CStrongest: hazard risk A+, walkability A·lowest: health C−
522Cambria TownshipHillsdale County · 2,547 people46.1bottom 33.2%CStrongest: hazard risk B+, cost of living B+·lowest: walkability C−
523Oronoko TownshipBerrien County · 9,074 people46.1bottom 33.2%CStrongest: walkability A−, hazard risk B+·lowest: schools C−
525FowlervilleLivingston County · 2,874 people46.0bottom 32.8%CStrongest: hazard risk A, walkability A·lowest: health C−
526Union TownshipBranch County · 2,969 people45.9bottom 32.7%CStrongest: cost of living A−, hazard risk A−·lowest: jobs & income D
527Imlay TownshipLapeer County · 3,192 people45.9bottom 32.5%CStrongest: hazard risk B, schools B·lowest: walkability D
528Castleton TownshipBarry County · 3,425 people45.8bottom 32.5%CStrongest: cost of living A−, walkability B−·lowest: jobs & income D
529Casco TownshipAllegan County · 2,937 people45.8bottom 32.3%CStrongest: hazard risk B+, jobs & income B−·lowest: health C−
530Marathon TownshipLapeer County · 4,444 people45.7bottom 32.0%CStrongest: cost of living A, hazard risk B+·lowest: walkability D
533Lockport TownshipSt. Joseph County · 3,825 people45.5bottom 31.6%CStrongest: schools B, cost of living B·lowest: walkability D
534Munising TownshipAlger County · 2,759 people45.5bottom 31.6%CStrongest: hazard risk A−, cost of living A−·lowest: jobs & income D
535Big RapidsMecosta County · 8,623 people45.4bottom 31.3%CStrongest: walkability A, schools B·lowest: jobs & income C−
536Homer TownshipCalhoun County · 2,897 people45.4bottom 31.3%CStrongest: cost of living A−, hazard risk A−·lowest: health D
537Waterloo TownshipJackson County · 2,995 people45.4bottom 31.2%CStrongest: schools B+, health B·lowest: walkability C−
538Pentland TownshipLuce County · 2,693 people45.4bottom 31.1%CStrongest: hazard risk A+, cost of living A·lowest: health D
540Amber TownshipMason County · 2,550 people45.3bottom 30.9%CStrongest: hazard risk A+, schools B·lowest: health C
541Garfield TownshipNewaygo County · 2,589 people45.1bottom 30.6%CStrongest: hazard risk A−, jobs & income B·lowest: health C
542Madison TownshipLenawee County · 7,538 people45.1bottom 30.5%CStrongest: hazard risk A−, schools B+·lowest: health C−
543Cedar SpringsKent County · 3,789 people45.1bottom 30.4%CStrongest: hazard risk A, walkability B+·lowest: health C−
544Ionia TownshipIonia County · 4,125 people45.0bottom 30.1%CStrongest: cost of living A−, hazard risk B·lowest: jobs & income C−
545Forest TownshipGenesee County · 4,354 people44.8bottom 29.7%CStrongest: hazard risk A−, cost of living B·lowest: walkability C−
546Colon TownshipSt. Joseph County · 3,336 people44.7bottom 29.5%CStrongest: cost of living A−, walkability B·lowest: schools D
548Hampton TownshipBay County · 9,581 people44.5bottom 28.9%CStrongest: safety B−, schools B−·lowest: hazard risk C
549Coe TownshipIsabella County · 3,084 people44.4bottom 28.7%CStrongest: schools B+, hazard risk B·lowest: jobs & income C−
550Fremont TownshipTuscola County · 3,126 people44.3bottom 28.4%CStrongest: cost of living A, hazard risk B−·lowest: jobs & income C−
553Pavilion TownshipKalamazoo County · 6,333 people44.0bottom 27.8%CStrongest: schools B+, hazard risk B+·lowest: walkability D
554GaylordOtsego County · 4,444 people44.0bottom 27.8%CStrongest: hazard risk A+, walkability A−·lowest: safety D
556Eaton RapidsEaton County · 5,218 people43.9bottom 27.6%CStrongest: cost of living B, jobs & income B−·lowest: safety C
557Green TownshipMecosta County · 3,408 people43.8bottom 27.3%CStrongest: cost of living A−, schools B·lowest: walkability D
558Plainfield TownshipIosco County · 3,353 people43.7bottom 27.1%CStrongest: hazard risk A+, schools B+·lowest: health D
561Vassar TownshipTuscola County · 3,871 people43.4bottom 26.5%CStrongest: cost of living A+, schools C+·lowest: walkability D−
562Sullivan TownshipMuskegon County · 2,725 people43.2bottom 26.0%CStrongest: hazard risk B+, schools B·lowest: walkability D−
564Parma TownshipJackson County · 2,670 people43.1bottom 25.8%CStrongest: hazard risk A−, schools B+·lowest: walkability D−
565Casnovia TownshipMuskegon County · 2,825 people43.1bottom 25.8%CStrongest: hazard risk A−, schools B·lowest: walkability C−
566Roosevelt ParkMuskegon County · 4,121 people42.9bottom 25.3%CStrongest: hazard risk A, schools B+·lowest: safety D
568Watervliet TownshipBerrien County · 3,126 people42.8bottom 25.0%CStrongest: hazard risk A, walkability B+·lowest: health D
569ClareClare County · 3,318 people42.6bottom 24.6%C−Strongest: walkability A, hazard risk A·lowest: jobs & income D
570Benton TownshipCheboygan County · 3,158 people42.5bottom 24.3%C−Strongest: schools B+, cost of living B+·lowest: walkability D−
571GladwinGladwin County · 3,140 people42.5bottom 24.3%C−Strongest: hazard risk A, cost of living B+·lowest: jobs & income D−
572Newton TownshipCalhoun County · 2,800 people42.4bottom 24.0%C−Strongest: hazard risk A−, jobs & income B·lowest: walkability D−
573Waverly TownshipVan Buren County · 2,502 people42.3bottom 23.9%C−Strongest: jobs & income B, cost of living B−·lowest: walkability D−
574Berrien TownshipBerrien County · 4,787 people42.3bottom 23.9%C−Strongest: hazard risk B+, jobs & income B·lowest: schools C−
575Arbela TownshipTuscola County · 2,770 people42.3bottom 23.9%C−Strongest: cost of living B, schools B·lowest: walkability C−
576Denton TownshipRoscommon County · 5,411 people42.3bottom 23.9%C−Strongest: safety A−, walkability B·lowest: jobs & income D
577Paw PawVan Buren County · 3,386 people42.3bottom 23.8%C−Strongest: walkability A, hazard risk B+·lowest: safety D
579Chippewa TownshipIsabella County · 4,668 people42.0bottom 23.3%C−Strongest: cost of living B, hazard risk B−·lowest: walkability C−
580Three RiversSt. Joseph County · 7,910 people42.0bottom 23.2%C−Strongest: walkability B+, cost of living B+·lowest: safety D
582Crystal TownshipMontcalm County · 2,726 people41.8bottom 22.8%C−Strongest: cost of living A−, hazard risk A−·lowest: walkability D
585Exeter TownshipMonroe County · 3,977 people41.6bottom 22.3%C−Strongest: hazard risk B−, cost of living B−·lowest: walkability D
588Holton TownshipMuskegon County · 2,674 people41.3bottom 21.8%C−Strongest: hazard risk A, cost of living B+·lowest: walkability D
589Porter TownshipCass County · 3,946 people41.0bottom 21.1%C−Strongest: hazard risk A, cost of living C+·lowest: schools C
590Baraga TownshipBaraga County · 3,382 people41.0bottom 21.1%C−Strongest: cost of living A, hazard risk A−·lowest: health D
591White Pigeon TownshipSt. Joseph County · 3,893 people40.9bottom 20.9%C−Strongest: hazard risk A−, cost of living B·lowest: health C−
592ManistiqueSchoolcraft County · 2,868 people40.8bottom 20.7%C−Strongest: cost of living A, walkability A·lowest: safety D
593Jefferson TownshipHillsdale County · 3,037 people40.6bottom 20.3%C−Strongest: hazard risk A−, cost of living B+·lowest: walkability D−
596Owosso TownshipShiawassee County · 4,786 people40.5bottom 20.1%C−Strongest: hazard risk A−, cost of living B·lowest: walkability D
598Hagar TownshipBerrien County · 3,173 people40.4bottom 19.7%C−Strongest: hazard risk A, jobs & income B·lowest: health D
599Constantine TownshipSt. Joseph County · 4,043 people40.4bottom 19.7%C−Strongest: cost of living A−, hazard risk C+·lowest: walkability D
600Pennfield TownshipCalhoun County · 8,681 people40.2bottom 19.4%C−Strongest: hazard risk B, jobs & income B−·lowest: walkability C−
602Sidney TownshipMontcalm County · 2,651 people40.1bottom 19.2%C−Strongest: hazard risk A, cost of living A−·lowest: jobs & income D
604Coloma TownshipBerrien County · 4,968 people39.7bottom 18.5%C−Strongest: hazard risk A−, safety B·lowest: health C
606Tompkins TownshipJackson County · 2,641 people39.3bottom 17.7%C−Strongest: hazard risk B+, cost of living B−·lowest: walkability D−
607Roscommon TownshipRoscommon County · 4,520 people39.1bottom 17.4%C−Strongest: cost of living B+, hazard risk B+·lowest: health C−
608Big Rapids TownshipMecosta County · 4,096 people39.1bottom 17.3%C−Strongest: schools B, walkability B−·lowest: hazard risk D
609Lansing TownshipIngham County · 8,060 people39.1bottom 17.2%C−Strongest: walkability A−, hazard risk B+·lowest: safety D−
610Center LineMacomb County · 8,503 people39.0bottom 17.0%C−Strongest: hazard risk A−, cost of living B+·lowest: health C−
613Rives TownshipJackson County · 4,794 people38.8bottom 16.6%C−Strongest: hazard risk B, cost of living B−·lowest: walkability D
614Highland ParkWayne County · 8,248 people38.8bottom 16.6%C−Strongest: walkability A+, hazard risk A+·lowest: safety D−
616Surrey TownshipClare County · 3,704 people38.7bottom 16.5%C−Strongest: hazard risk A, cost of living B+·lowest: jobs & income D
617Cedar Creek TownshipMuskegon County · 3,365 people38.5bottom 16.1%C−Strongest: hazard risk A, cost of living B−·lowest: walkability D
618Mecosta TownshipMecosta County · 2,891 people38.4bottom 15.9%C−Strongest: cost of living B, schools C+·lowest: hazard risk C−
620Brooks TownshipNewaygo County · 3,833 people38.3bottom 15.8%C−Strongest: hazard risk A−, jobs & income B−·lowest: walkability D
621Geneva TownshipVan Buren County · 3,401 people38.3bottom 15.7%C−Strongest: cost of living B, jobs & income B−·lowest: walkability D
622EcorseWayne County · 8,893 people38.3bottom 15.6%C−Strongest: cost of living A−, walkability A−·lowest: health D−
623Croton TownshipNewaygo County · 3,472 people38.2bottom 15.5%C−Strongest: hazard risk B, schools B−·lowest: walkability D
624Bedford TownshipCalhoun County · 9,145 people38.2bottom 15.4%C−Strongest: hazard risk B+, cost of living B+·lowest: walkability D
625River RougeWayne County · 6,814 people38.1bottom 15.3%C−Strongest: walkability A, cost of living A−·lowest: health D−
627Mills TownshipOgemaw County · 4,054 people38.0bottom 15.2%C−Strongest: cost of living A, hazard risk B+·lowest: jobs & income D−
628DowagiacCass County · 5,725 people38.0bottom 15.2%C−Strongest: hazard risk A, cost of living A−·lowest: safety D
630AlbionCalhoun County · 7,474 people37.9bottom 15.0%C−Strongest: walkability A−, cost of living A−·lowest: safety D−
631Bainbridge TownshipBerrien County · 2,625 people37.8bottom 14.9%DStrongest: hazard risk A−, cost of living B+·lowest: health D−
632Worth TownshipSanilac County · 3,423 people37.8bottom 14.9%DStrongest: schools A−, hazard risk B·lowest: walkability D−
633Bloomingdale TownshipVan Buren County · 3,074 people37.8bottom 14.9%DStrongest: hazard risk A−, cost of living B+·lowest: health D
635Lawrence TownshipVan Buren County · 3,294 people37.6bottom 14.6%DStrongest: hazard risk B+, cost of living B·lowest: health D
640Hayes TownshipClare County · 4,722 people37.2bottom 13.7%DStrongest: hazard risk A, cost of living A·lowest: jobs & income D−
642NewaygoNewaygo County · 2,547 people37.0bottom 13.5%DStrongest: hazard risk B+, walkability B·lowest: jobs & income D−
646Big Creek TownshipOscoda County · 2,739 people36.6bottom 12.9%DStrongest: hazard risk A, cost of living A−·lowest: jobs & income D−
649CaroTuscola County · 4,258 people36.2bottom 12.3%DStrongest: walkability A, cost of living B+·lowest: jobs & income D−
652Tuscarora TownshipCheboygan County · 3,113 people36.0bottom 12.0%DStrongest: safety B, jobs & income C+·lowest: walkability D
653Sage TownshipGladwin County · 2,502 people36.0bottom 11.9%DStrongest: hazard risk A−, schools B+·lowest: walkability D
655Lee TownshipAllegan County · 3,836 people35.5bottom 11.3%DStrongest: cost of living A, hazard risk B·lowest: health D−
658Grant TownshipClare County · 3,437 people35.2bottom 10.8%DStrongest: hazard risk A, schools B−·lowest: health D
659Thetford TownshipGenesee County · 6,482 people35.0bottom 10.6%DStrongest: hazard risk B+, cost of living B·lowest: walkability D
662Big Prairie TownshipNewaygo County · 2,569 people34.7bottom 10.2%DStrongest: cost of living B+, hazard risk C+·lowest: jobs & income D−
663Tobacco TownshipGladwin County · 2,519 people34.7bottom 10.2%DStrongest: hazard risk B+, cost of living B·lowest: walkability D
664South HavenVan Buren County · 4,002 people34.5bottom 10.0%DStrongest: walkability A, hazard risk B+·lowest: safety D−
666Albert TownshipMontmorency County · 2,637 people34.4bottom 10.0%DStrongest: hazard risk A+, schools B−·lowest: jobs & income D−
668SpringfieldCalhoun County · 5,246 people34.2bottom 9.7%DStrongest: hazard risk A, cost of living B+·lowest: health D
670Richland TownshipMontcalm County · 2,778 people33.9bottom 9.3%DStrongest: cost of living A, hazard risk A−·lowest: jobs & income D−
671Deerfield TownshipIsabella County · 3,366 people33.9bottom 9.3%DStrongest: hazard risk B−, schools B−·lowest: walkability D
672Hartford TownshipVan Buren County · 2,981 people33.9bottom 9.3%DStrongest: cost of living B+, hazard risk B·lowest: health D−
674Bridgeport TownshipSaginaw County · 9,874 people32.7bottom 7.8%DStrongest: cost of living A, hazard risk C+·lowest: health D
676VassarTuscola County · 2,685 people32.1bottom 7.0%DStrongest: cost of living B+, walkability C+·lowest: safety D
679Morton TownshipMecosta County · 4,766 people31.2bottom 6.0%DStrongest: schools B−, cost of living C·lowest: walkability C−
681Mount MorrisGenesee County · 3,086 people31.1bottom 5.9%DStrongest: hazard risk A, walkability A·lowest: health D−
683Buena Vista TownshipSaginaw County · 7,473 people30.3bottom 5.2%DStrongest: cost of living B+, hazard risk B·lowest: health D−
688Sherman TownshipIsabella County · 3,236 people28.8bottom 3.9%D−Strongest: hazard risk B−, schools B−·lowest: jobs & income D
690Carrollton TownshipSaginaw County · 5,585 people27.7bottom 3.1%D−Strongest: cost of living C+, safety C+·lowest: health D
693Benton HarborBerrien County · 8,803 people27.1bottom 2.6%D−Strongest: hazard risk A, walkability A−·lowest: safety D−
695Webber TownshipLake County · 2,583 people26.7bottom 2.4%D−Strongest: cost of living B, hazard risk B·lowest: jobs & income D−
696Columbia TownshipVan Buren County · 2,542 people26.6bottom 2.4%D−Strongest: hazard risk B, cost of living B−·lowest: health D
Method

How this list is made

Each town’s overall grade blends seven livability grades: cost of living (weight 18), safety (18), schools (16), health (14), jobs & income (12), walkability (8) and hazard risk (4). A town needs 2,500+ residents and three of the first four. Letters are national, so an A here means the same as an A in any state; the list is the same towns in the same order, ranked within Michigan. Towns without their own FBI figures are graded on the rest and their page says why.

Data years: crime 2023–2025 (FBI), Census ACS 2020–2024, CDC PLACES 2025, state school tests. How grades work

Left off: college campuses

Places where more than half the residents are college students (ACS) are graded like every town but kept off this list, since its figures mostly describe student life.

Quick answers

Questions people ask

What is the best small town in Michigan?

Among 502 graded towns of 2,500 to 9,999 residents, Spring Lake (Ottawa County) ranks first, with an A+; schools (A+) and walkability (A−) are its strongest grades; hazard risk (C+) is its lowest. Lincoln Township and Huntington Woods follow.

How are these towns ranked?

By the overall grade, which blends seven livability grades from public data. The letter is national; the rank is within Michigan. The full method is on How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500 to 9,999 residents with an overall grade (502 in Michigan). 578 smaller places have subject grades only; 1 town of 2,500+ lack enough data for a grade; 2 college campuses (Houghton, Kochville Township) are left off. Larger towns are on the best places to live list. 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

Best small towns in other states