Michigan Water Quality Report (2026)

By Echo Water Research Team 23 min read
Michigan Water Quality Report (2026)

Michigan Tap Water Quality Report

652 cities analyzed • 6,300,814 people served

Updated March 2026 • Data from EWG & EPA SDWIS

652
Cities Analyzed
3.0
Avg Above Guidelines
6,300,814
Total Population Served
Best Water Quality
Marlette (0 above guidelines)
Most Concerns
Portland (14 above guidelines)

Most Common Contaminants in Michigan

Contaminant Found In % of Cities
Total trihalomethanes (TTHMs) carcinogen 472 of 652 72%
Haloacetic acids (HAA5) carcinogen 427 of 652 65%
Fluoride 363 of 652 56%
Nitrate carcinogen 213 of 652 33%
Fluoride* 146 of 652 22%
Nitrate* carcinogen 139 of 652 21%
Haloacetic acids (HAA9) carcinogen 134 of 652 21%
Strontium 127 of 652 19%
Manganese 122 of 652 19%
Chromium (hexavalent) carcinogen 118 of 652 18%

City-by-City Water Quality Rankings

Ranked by number of contaminants above EWG health guidelines (most to fewest).

# City Detected Above Guidelines Above Legal People Served
1 Temperance 23 14 0 33,816
2 Portland 25 14 0 3,883
3 Ann Arbor 24 11 0 118,017
4 Michiana 19 10 0 182
5 Kalamazoo 25 9 0 192,992
6 Monroe 17 9 0 48,664
7 Portage 21 9 0 46,292
8 Holland 15 9 0 36,542
9 Independence Township 19 9 0 11,790
10 Zeeland 15 9 0 8,328
11 Dundee 17 9 1 4,250
12 Petersburg 17 9 0 1,115
13 Mt Pleasant 15 8 0 21,688
14 Mount Clemens 18 8 0 18,405
15 Niles 16 8 0 14,215
16 St. Joseph 15 8 0 0
17 Bronson 11 8 0 0
18 Clare 14 8 0 0
19 Wyoming 16 7 0 72,125
20 Jenison 16 7 0 41,086
21 Muskegon 13 7 0 37,213
22 Kentwood 16 7 0 36,072
23 Wyandotte 14 7 0 25,883
24 Norton Shores 14 7 0 23,994
25 Adrian 17 7 0 23,663
26 Grandville 16 7 0 15,948
27 Fenton 14 7 0 11,746
28 Muskegon Heights 14 7 0 9,917
29 Fruitport 13 7 0 9,355
30 St Joseph 14 7 0 8,789
31 Hudsonville 16 7 0 7,708
32 Roosevelt Park 13 7 0 3,831
33 North Muskegon 13 7 0 3,786
34 Ashley 11 7 0 526
35 Grand Rapids 13 6 0 273,005
36 Roseville 10 6 0 47,299
37 Allen Park 11 6 0 28,210
38 Grand Blanc 10 6 1 21,000
39 Allendale 13 6 0 19,725
40 Traverse City 15 6 0 14,532
41 Escanaba 11 6 0 13,659
42 Mt. Pleasant 17 6 0 12,927
43 East Grand Rapids 13 6 0 11,637
44 Spring Lake 13 6 0 9,393
45 Ludington 10 6 0 8,184
46 Coopersville 13 6 0 4,519
47 Plainwell 9 6 0 3,998
48 Ferrysburg 13 6 0 3,268
49 Nunica 13 6 0 1,847
50 Scottville 13 6 0 1,214
51 Northport 10 6 0 526
52 West Olive 13 6 0 407
53 Detroit 11 5 0 713,777
54 Warren 9 5 0 134,056
55 Sterling Heights 10 5 0 127,000
56 Dearborn 9 5 0 109,976
57 Clinton Township 8 5 0 100,513
58 Livonia 9 5 0 96,942
59 Canton 9 5 0 90,173
60 Macomb 9 5 0 90,000
61 Troy 8 5 0 85,854
62 Westland 9 5 0 84,094
63 Rochester Hills 7 5 0 74,000
64 Waterford 15 5 0 73,441
65 Shelby Township 9 5 0 72,000
66 Southfield 9 5 0 71,739
67 Taylor 10 5 0 63,409
68 St. Clair Shores 9 5 0 59,715
69 Dearborn Heights 9 5 0 57,774
70 Royal Oak 9 5 0 57,236
71 Farmington Hills 8 5 0 56,823
72 Ypsilanti 10 5 0 53,988
73 Saginaw 11 5 0 51,508
74 Redford Township 8 5 0 49,504
75 West Bloomfield 8 5 0 49,479
76 Novi 10 5 0 48,000
77 Chesterfield Township 9 5 0 41,650
78 Bloomfield Hills 9 5 0 41,070
79 Lincoln Park 9 5 0 38,144
80 Port Huron 10 5 0 33,800
81 Brownstown Township 9 5 0 33,194
82 Jackson 14 5 0 33,165
83 Lake Orion 8 5 0 33,000
84 Eastpointe 9 5 0 32,442
85 Northville 9 5 0 32,103
86 Southgate 11 5 0 30,047
87 Madison Heights 9 5 0 29,694
88 Oak Park 10 5 0 29,654
89 Garden City 9 5 0 27,625
90 Plymouth 9 5 0 27,524
91 Van Buren Township 9 5 0 27,359
92 Inkster 9 5 0 25,369
93 Harrison Township 8 5 0 24,314
94 Romulus 9 5 0 23,989
95 Hamtramck 9 5 0 22,413
96 Ferndale 9 5 0 22,105
97 Auburn Hills 10 5 0 21,412
98 Burton 9 5 0 21,000
99 Birmingham 10 5 0 20,472
100 Trenton 9 5 0 18,544
101 Wayne 10 5 0 17,593
102 Brighton 10 5 0 17,046
103 Fraser 8 5 0 16,500
104 Hazel Park 9 5 0 16,400
105 Grosse Pointe Woods 9 5 0 16,135
106 New Boston 11 5 0 15,879
107 Washington 8 5 0 15,828
108 Grand Haven 8 5 0 15,051
109 Berkley 9 5 0 14,970
110 Sault Ste. Marie 10 5 0 14,689
111 Harper Woods 9 5 0 14,236
112 Wixom 7 5 0 13,928
113 Woodhaven 9 5 0 12,875
114 Melvindale 9 5 0 12,851
115 New Baltimore 11 5 0 12,720
116 Riverview 9 5 0 12,486
117 Clawson 8 5 0 11,825
118 Fort Gratiot 11 5 0 11,616
119 Farmington 9 5 0 11,597
120 Grosse Pointe Park 9 5 0 11,555
121 Beverly Hills 8 5 0 10,451
122 Grosse Ile 10 5 0 10,371
123 Alpena 11 5 0 10,128
124 Bridgeport 10 5 0 10,104
125 Freeland 10 5 0 9,227
126 Iron Mountain 5 5 0 9,200
127 South Haven 6 5 0 9,133
128 Highland Park 10 5 0 8,977
129 Grand Ledge 7 5 0 8,701
130 Greenville 10 5 0 8,449
131 Kincheloe 11 5 0 7,341
132 Frankenmuth 10 5 0 4,944
133 Gladstone 7 5 0 4,632
134 Caledonia 9 5 0 4,573
135 Bridgman 10 5 0 4,177
136 Mancelona 5 5 0 3,900
137 Springfield 8 5 0 3,833
138 Kimball 10 5 0 3,463
139 Reese 10 5 0 3,024
140 Berrien Springs 8 5 0 3,000
141 Harbert 10 5 0 2,825
142 St Charles 10 5 0 2,054
143 Evart 8 5 0 1,742
144 Union City 6 5 0 1,630
145 Coloma 6 5 0 1,555
146 Birch Run 10 5 0 1,555
147 Baroda 10 5 0 910
148 Burt 10 5 0 411
149 San Diego 7 5 1 105
150 Athens 7 5 0 0
151 Covert 6 5 0 0
152 Lansing 13 4 0 166,000
153 Flint 8 4 0 81,252
154 Battle Creek 7 4 0 43,975
155 Midland 11 4 0 42,547
156 East Lansing 8 4 0 33,000
157 Bay City 11 4 0 32,255
158 Okemos 9 4 0 25,600
159 Marquette 10 4 0 21,000
160 Owosso 9 4 0 16,353
161 Ionia 9 4 0 12,997
162 Sturgis 12 4 0 11,920
163 South Lyon 11 4 0 11,055
164 Sanford 11 4 0 11,000
165 Cadillac 6 4 0 10,355
166 Ecorse 7 4 0 9,512
167 Grosse Pointe Farms 11 4 0 9,479
168 Newport 10 4 0 9,300
169 Albion 8 4 0 9,144
170 Lapeer 5 4 1 8,841
171 Fair Haven 6 4 0 8,679
172 Genesee 6 4 0 8,473
173 Rockford 6 4 0 7,160
174 St. Louis 6 4 0 6,976
175 Benton Harbor 9 4 0 6,733
176 East China 7 4 0 5,847
177 St. Clair 8 4 0 5,485
178 Grosse Pointe 11 4 0 5,421
179 Utica 6 4 0 5,059
180 Dexter 5 4 0 4,500
181 Caro 6 4 0 4,229
182 Gaylord 7 4 0 3,629
183 Middleville 11 4 0 3,309
184 Gwinn 7 4 0 3,000
185 Spring Arbor 10 4 0 2,833
186 Pinckney 5 4 0 2,515
187 Chesaning 7 4 0 2,394
188 L'anse 8 4 0 2,300
189 Auburn 11 4 0 2,087
190 Corunna 9 4 0 2,028
191 Caseville 9 4 0 2,005
192 Calumet 7 4 0 1,947
193 Montrose 5 4 0 1,657
194 Oak Brook 6 4 0 1,620
195 Stanton 6 4 0 1,417
196 Dollar Bay 6 4 0 1,391
197 Brooklyn 6 4 1 1,313
198 Frankfort 5 4 0 1,286
199 Pigeon 9 4 0 1,208
200 Springport 4 4 0 800
201 Climax 5 4 0 767
202 Twin Lake 7 4 1 755
203 Maple Rapids 5 4 0 643
204 Peck 6 4 0 632
205 Byron 5 4 1 581
206 Carsonville 5 4 0 527
207 Belmont 7 4 0 268
208 Riga 10 4 0 266
209 Pittsburgh 5 4 0 263
210 Ahmeek 7 4 0 148
211 Morganville 5 4 0 122
212 Rockwall 7 4 1 40
213 Blissfield 10 4 0 0
214 Deerfield 10 4 0 0
215 Copper City 7 4 0 0
216 Colon 5 4 0 0
217 Martin 6 4 0 0
218 Kingsford 6 4 0 0
219 Marcellus 5 4 0 0
220 Lawrence 7 4 0 0
221 Mendon 7 4 0 0
222 New Lothrop 8 4 0 0
223 Kinde 8 4 1 0
224 Almont 5 4 0 0
225 Coldwater 7 3 0 13,822
226 Flat Rock 4 3 0 10,541
227 Big Rapids 7 3 0 10,403
228 Marysville 5 3 0 9,959
229 Algonac 5 3 0 9,866
230 Essexville 12 3 0 9,652
231 Belleville 4 3 0 9,576
232 New Hudson 5 3 0 9,390
233 Alma 5 3 0 9,182
234 Menominee 8 3 0 8,583
235 Flushing 4 3 0 8,311
236 Armada 4 3 0 8,257
237 Mason 5 3 0 8,252
238 St. Johns 4 3 0 7,896
239 River Rouge 4 3 0 7,224
240 Marshall 5 3 0 7,088
241 Ishpeming 4 3 0 6,470
242 Milford 6 3 0 6,366
243 Huntington Woods 4 3 0 6,200
244 Manistee 8 3 0 6,200
245 Carleton 6 3 0 5,959
246 Swartz Creek 4 3 0 5,800
247 White Lake 4 3 0 5,799
248 Richmond 5 3 0 5,733
249 New Haven 4 3 0 5,600
250 Davison 5 3 0 5,000
251 Gibraltar 4 3 0 4,997
252 Buchanan 4 3 0 4,871
253 Marine City 7 3 0 4,652
254 Negaunee 4 3 0 4,568
255 Wayland 4 3 0 4,435
256 Lowell 4 3 0 4,150
257 Lathrup Village 4 3 0 4,075
258 Linden 6 3 0 4,004
259 Williamston 5 3 0 3,917
260 Whittaker 4 3 0 3,907
261 Saugatuck 5 3 0 3,892
262 Cedar Springs 4 3 0 3,520
263 Paw Paw 6 3 0 3,362
264 Rockwood 4 3 0 3,289
265 Charlevoix 6 3 0 3,124
266 Mount Morris 4 3 0 3,086
267 St. Ignace 6 3 0 2,987
268 Fowlerville 4 3 0 2,951
269 Grosse Pointe Shores 4 3 0 2,929
270 Whitehall 3 3 0 2,902
271 Lakeport 4 3 0 2,900
272 Rogers City 4 3 0 2,827
273 Vassar 4 3 0 2,697
274 Sandusky 4 3 0 2,679
275 Potterville 4 3 0 2,617
276 Clio 4 3 0 2,515
277 Croswell 5 3 0 2,447
278 Cass City 4 3 0 2,428
279 Reed City 4 3 0 2,425
280 Jonesville 4 3 0 2,258
281 Morenci 4 3 0 2,220
282 East Jordan 4 3 0 2,215
283 Hartland 4 3 0 2,200
284 Sylvan Lake 4 3 0 2,155
285 Mattawan 4 3 0 2,037
286 Yale 5 3 0 1,900
287 Olivet 5 3 0 1,758
288 Sebewaing 6 3 0 1,721
289 Harbor Beach 5 3 0 1,703
290 South Rockwood 6 3 0 1,675
291 Homer 4 3 0 1,668
292 Kingsley 3 3 0 1,657
293 Hemlock 4 3 0 1,632
294 Ovid 4 3 0 1,612
295 Schoolcraft 6 3 0 1,525
296 Shepherd 4 3 0 1,515
297 Webberville 4 3 1 1,503
298 Fennville 3 3 0 1,459
299 Glen Arbor 4 3 0 1,365
300 Litchfield 3 3 0 1,310
301 Manton 3 3 0 1,287
302 Orem 5 3 0 1,278
303 Edmore 4 3 0 1,256
304 Stockbridge 4 3 0 1,202
305 Memphis 4 3 0 1,180
306 Fowler 5 3 0 1,136
307 Otsego 5 3 0 1,133
308 Reading 4 3 0 1,078
309 Millington 4 3 0 1,072
310 Port Hope 5 3 0 1,058
311 Concord 4 3 0 1,050
312 North Branch 5 3 0 1,021
313 Lakeview 3 3 0 1,007
314 Elsie 5 3 0 966
315 Central Lake 3 3 0 952
316 Deckerville 5 3 0 950
317 Mayville 4 3 0 950
318 Onsted 4 3 0 907
319 Los Angeles 4 3 0 900
320 Grant 4 3 0 894
321 Otisville 5 3 1 864
322 Stephenson 3 3 0 862
323 Pentwater 4 3 0 857
324 Lake City 4 3 0 836
325 Forestville 5 3 0 836
326 Marion 4 3 0 800
327 Lyons 4 3 0 789
328 Vermontville 4 3 0 780
329 South Range 3 3 0 745
330 Thompsonville 3 3 0 700
331 Hillman 4 3 0 697
332 Merrill 4 3 0 695
333 Glen Allen 4 3 0 673
334 West Covina 3 3 0 670
335 Sheridan 5 3 0 649
336 Metamora 3 3 0 565
337 Buckley 3 3 0 529
338 Palmer 4 3 0 489
339 Powers 4 3 0 459
340 Perrinton 4 3 0 439
341 Three Rivers 4 3 0 398
342 Charlotte 5 3 0 363
343 Bear Lake 3 3 0 318
344 Ada 4 3 0 288
345 Garden 4 3 0 270
346 Decker 5 3 0 263
347 Clarkston 5 3 0 258
348 Rock 6 3 0 250
349 Granger 8 3 0 202
350 Dimondale 4 3 0 177
351 Lima 4 3 0 125
352 Romeo 4 3 0 115
353 Allegan 6 3 0 101
354 Pierson 7 3 1 100
355 Rapid River 6 3 0 95
356 St. Jospeh 3 3 0 90
357 Belding 5 3 0 78
358 Au Gres 3 3 0 66
359 Boynton Beach 4 3 0 54
360 Westerville 4 3 0 50
361 Pullman 5 3 0 30
362 Rosebush 6 3 0 25
363 Jones 4 3 0 0
364 Bangor 6 3 0 0
365 Gobles 3 3 0 0
366 Republic 3 3 0 0
367 Capac 5 3 0 0
368 Baraga 5 3 0 0
369 Clinton 4 3 0 0
370 Constantine 3 3 0 0
371 Lenox 4 3 0 0
372 Dryden 4 3 0 0
373 Howell 4 2 0 10,068
374 Petoskey 4 2 0 8,979
375 Holly 4 2 0 8,557
376 Houghton 3 2 0 8,386
377 Hillsdale 3 2 0 8,163
378 Milan 4 2 0 7,363
379 Hastings 3 2 0 7,350
380 Rochester 4 2 0 7,130
381 Oscoda 4 2 0 6,997
382 Tawas City 3 2 0 5,815
383 Chelsea 3 2 0 5,474
384 Fremont 6 2 0 4,516
385 Sparta 4 2 0 4,140
386 Lexington 4 2 0 3,854
387 Boyne City 3 2 0 3,735
388 Imlay City 4 2 0 3,579
389 Oxford 4 2 0 3,540
390 Cottrellville 2 2 0 3,200
391 Manistique 5 2 0 3,197
392 Gladwin 3 2 0 2,933
393 New Buffalo 2 2 0 2,845
394 Munising 2 2 0 2,783
395 Watervliet 3 2 0 2,735
396 Ontonagon 3 2 0 2,607
397 Newaygo 5 2 0 2,571
398 Montague 3 2 0 2,479
399 North Street 2 2 0 2,400
400 Galesburg 2 2 0 2,377
401 Hudson 3 2 0 2,307
402 Manchester 4 2 0 2,150
403 Grawn 3 2 0 2,125
404 Perry 5 2 0 2,065
405 Lake Odessa 3 2 0 2,018
406 Newberry 2 2 0 2,000
407 Grass Lake 3 2 0 1,986
408 Leslie 3 2 0 1,872
409 Howard City 3 2 0 1,800
410 Centreville 3 2 0 1,778
411 Elk Rapids 3 2 0 1,642
412 Nashville 4 2 0 1,628
413 Kawkawlin 7 2 0 1,480
414 Dowagiac 3 2 0 1,350
415 Bellevue 4 2 0 1,282
416 Harbor Springs 3 2 0 1,227
417 Ravenna 5 2 0 1,219
418 Pinconning 7 2 0 1,210
419 Unknown 3 2 0 1,060
420 Port Austin 4 2 0 1,004
421 Hesperia 7 2 0 954
422 Boyne Falls 4 2 0 950
423 Linwood 7 2 0 909
424 Mackinaw City 4 2 0 897
425 Onaway 5 2 0 880
426 Ubly 3 2 0 858
427 Parma 3 2 0 768
428 Interlochen 3 2 0 750
429 Sunfield 3 2 0 680
430 Port Sanilac 4 2 0 674
431 Mcbain 3 2 0 640
432 Mio 2 2 0 622
433 Eau Claire 3 2 0 610
434 Muir 3 2 0 604
435 Mackinac Island 4 2 0 583
436 Ramsay 2 2 0 551
437 Waldron 3 2 0 538
438 Camden 3 2 0 512
439 Unionville 3 2 0 508
440 Harrisville 3 2 0 493
441 Freeport 3 2 0 483
442 Ironwood 2 2 0 474
443 Kaleva 5 2 0 464
444 Kingston 3 2 0 440
445 Akron 3 2 0 402
446 Lennon 4 2 1 400
447 Mesick 4 2 0 397
448 Cedar Lake 5 2 0 360
449 Sand Lake 4 2 0 360
450 Detour Village 4 2 0 325
451 Ottawa Lake 6 2 0 303
452 Eagle Harbor 3 2 0 300
453 Alanson 2 2 0 274
454 Grand Beach 2 2 0 272
455 Keego Harbor 3 2 0 270
456 Owendale 3 2 0 241
457 Posen 3 2 0 234
458 Mt. Clemens 4 2 0 230
459 Trout Creek 2 2 0 200
460 Minden City 3 2 0 197
461 Palmyra 3 2 0 193
462 Gaithersburg 2 2 0 190
463 Trenary 2 2 1 175
464 Eaton Rapids 4 2 0 150
465 Stevensville 4 2 0 125
466 Bingham Farms 4 2 0 100
467 Phoenix 3 2 0 100
468 Durand 3 2 0 87
469 Langley 4 2 0 75
470 Cassopolis 2 2 0 75
471 Lewiston 4 2 0 53
472 Stanwood 4 2 0 50
473 Virginia City 2 2 0 50
474 Maple City 3 2 0 25
475 Omer 4 2 0 0
476 Addison 3 2 0 0
477 Amasa 2 2 0 0
478 Millersburg 3 2 0 0
479 Britton 4 2 0 0
480 Jasper 3 2 0 0
481 White Pigeon 4 2 0 0
482 Chassell 5 2 0 0
483 Lawton 2 2 0 0
484 Columbiaville 3 2 0 0
485 Wakefield 3 2 0 0
486 Augusta 2 2 0 0
487 Burr Oak 5 2 0 0
488 Kalkaska 2 2 0 0
489 Carson City 4 2 0 0
490 Saline 7 1 0 9,158
491 Tecumseh 4 1 0 8,521
492 Cheboygan 2 1 0 5,500
493 Norway 1 1 0 3,314
494 Ithaca 4 1 0 3,098
495 Iron River 1 1 0 3,019
496 Vicksburg 1 1 0 2,906
497 Michigan Center 2 1 0 2,408
498 Hart 2 1 0 2,126
499 Baldwin 1 1 0 2,000
500 Shelby 3 1 0 1,964
501 White Cloud 2 1 0 1,408
502 Saranac 1 1 0 1,343
503 Brown City 2 1 0 1,316
504 Quinnesec 1 1 0 1,200
505 Bellaire 1 1 0 1,086
506 Roscommon 4 1 0 1,075
507 Crystal Falls 2 1 0 990
508 Holt 2 1 0 950
509 Suttons Bay 2 1 0 874
510 Brimley 2 1 0 767
511 Tekonsha 2 1 0 722
512 Caspian 1 1 0 580
513 Benzonia 1 1 0 491
514 Salt Lake City 2 1 0 480
515 Pewamo 3 1 0 476
516 Atlanta 2 1 0 435
517 Grand Marais 1 1 0 411
518 Las Vegas 2 1 0 380
519 Elberta 2 1 0 372
520 Bradenton 2 1 0 372
521 Somerset Center 2 1 0 368
522 Gaines 2 1 0 367
523 Rockland 1 1 0 350
524 St. Petersburg 2 1 0 348
525 Whitmore Lake 3 1 0 330
526 Hancock 1 1 0 300
527 Big Bay 2 1 0 300
528 Delton 2 1 0 260
529 Cedaredge 1 1 0 248
530 D 1 1 0 190
531 East Leroy 1 1 0 168
532 Englewood 2 1 0 155
533 Houghton Lake 3 1 0 148
534 Chicago 1 1 0 142
535 Comstock Park 3 1 0 140
536 Hamilton 4 1 0 137
537 Durango 2 1 0 125
538 Miami 2 1 0 125
539 Manitou Beach 2 1 0 112
540 Aurora 2 1 0 105
541 Rose City 1 1 0 102
542 Seney 2 1 0 100
543 Hickory Corners 2 1 0 100
544 Onondaga 2 1 0 96
545 Lumbard 1 1 0 95
546 Gross Pointe Farms 2 1 0 90
547 Austin 2 1 0 90
548 Quincy 1 1 0 87
549 Lamont 2 1 0 86
550 Hersey 4 1 0 84
551 Yonkville 1 1 0 84
552 Conway 2 1 0 84
553 Middlebury 1 1 0 80
554 Weidman 2 1 0 72
555 Farwell 4 1 0 71
556 Alto 1 1 0 52
557 Hartford 1 1 0 50
558 Rancho Santa Fe 2 1 0 50
559 Irving 2 1 0 42
560 Dewitt 2 1 0 39
561 Rockville 1 1 0 32
562 Sandy 1 1 0 31
563 Pleasant Ridge 3 1 0 25
564 Vanderbilt 2 1 0 25
565 Mebane 3 1 0 20
566 Bessemer 4 1 0 0
567 Chatham 3 1 0 0
568 Decatur 3 1 0 0
569 Dansville 2 1 0 0
570 Watersmeet 2 1 0 0
571 Empire 3 1 0 0
572 Coleman 3 1 0 0
573 Sterling 3 1 0 0
574 Marenisco 1 1 0 0
575 Alpha 2 1 0 0
576 Bancroft 2 1 0 0
577 Breckenridge 3 1 0 0
578 Alger 3 1 0 0
579 Marlette 1 0 0 1,875
580 Three Oaks 4 0 0 1,622
581 Lake Linden 1 0 0 1,203
582 Harrison 0 0 0 1,100
583 Westphalia 1 0 0 925
584 Waymart 1 0 0 845
585 Elkton 2 0 0 808
586 Wolverine Lake 0 0 0 640
587 Napoleon 0 0 0 444
588 Arcadia 1 0 0 400
589 Gowen 2 0 0 390
590 Gagetown 1 0 0 388
591 Ellsworth 2 0 0 349
592 Clifford 1 0 0 324
593 Skandia 0 0 0 275
594 Edwardsburg 0 0 0 265
595 Walloon Lake 1 0 0 261
596 Summerland 1 0 0 255
597 Rudyard 1 0 0 250
598 Beaverton 1 0 0 250
599 Grosse Point Park 1 0 0 248
600 Columbia 2 0 0 208
601 Germfask 1 0 0 200
602 Copper Harbor 0 0 0 200
603 Cookeville 1 0 0 190
604 Saint Petersburg 1 0 0 185
605 Canal Fulton 0 0 0 178
606 Dorchester 1 0 0 175
607 Toledo 1 0 0 156
608 Sioux Falls 0 0 0 150
609 Palm Beach Gardens 1 0 0 148
610 Tustin 1 0 0 145
611 Applegate 1 0 0 140
612 Williamsburg 1 0 0 128
613 West Branch 0 0 0 125
614 Colorado Springs 1 0 0 110
615 Nottawa 1 0 0 100
616 St Louis 1 0 0 95
617 Lemont 0 0 0 90
618 Mecosta 0 0 0 90
619 Elida 0 0 0 88
620 Orchard Lake 1 0 0 86
621 Cleveland 1 0 0 80
622 Jacksonville 0 0 0 80
623 Bloomingdale 2 0 0 78
624 Glenn 2 0 0 77
625 Holton 0 0 0 75
626 Bloomfield 1 0 0 75
627 Idlewild 1 0 0 68
628 Magnolia 1 0 0 52
629 Beulah 1 0 0 50
630 Curtis 2 0 0 50
631 White Lake Charter Township 0 0 0 50
632 Apollo Beach 1 0 0 45
633 Bark River 1 0 0 45
634 Hale 1 0 0 43
635 Grayling 0 0 0 40
636 Highland 0 0 0 40
637 Mount Pleasant 1 0 0 40
638 Kewadin 2 0 0 40
639 Onekama 0 0 0 38
640 Hermansville 0 0 0 36
641 Whittemore 2 0 0 30
642 Lincoln 1 0 0 30
643 Standish 0 0 0 18
644 East Tawas 2 0 0 1
645 Bad Axe 2 0 0 0
646 Carney 1 0 0 0
647 Gaastra 2 0 0 0
648 Bergland 1 0 0 0
649 Ewen 1 0 0 0
650 Jeddo 1 0 0 0
651 Eagle River 1 0 0 0
652 Clarksville 1 0 0 0

Live in Michigan?

Get a free personalized water quality report for your address.

Check Your Water

Recommended Filtration for Michigan

Based on the most common contaminants found across Michigan (Total trihalomethanes (TTHMs), Haloacetic acids (HAA5), Fluoride), we recommend a reverse osmosis system or high-quality carbon block filter to remove disinfection byproducts and their precursors.

Echo RO System

Removes up to 99.9% of contaminants. The gold standard for drinking water in Michigan homes.

View RO Systems

Echo Whole-Home Filter

Protect every tap in your home from chlorine, VOCs, and disinfection byproducts.

View Whole-Home Filters

Echo Hydrogen Water Flask

Once your water is clean, supercharge it with molecular hydrogen for antioxidant and anti-inflammatory benefits.

Shop Hydrogen Flask

Frequently Asked Questions

Is Michigan tap water safe to drink?

Water quality varies significantly across Michigan. Of the 652 cities analyzed, the average city has 3.0 contaminants above EWG health guidelines. The best water quality was found in Marlette. We recommend checking your specific city's report for detailed information.

What city has the best water in Michigan?

Based on our analysis, Marlette has the fewest contaminants above EWG health guidelines in Michigan, with 0 above guideline levels.

What city has the worst water in Michigan?

Based on our analysis, Portland has the most contaminants above EWG health guidelines in Michigan, with 14 above guideline levels.

What's the best water filter for Michigan residents?

For most Michigan households, we recommend a reverse osmosis (RO) system for drinking water and a whole-home filter for showers and baths. The specific recommendation depends on your city's contaminant profile — check your city's report for personalized guidance.

Data sources: Environmental Working Group (EWG) Tap Water Database, U.S. EPA Safe Drinking Water Information System (SDWIS)

Last updated: March 2026

Methodology: Contaminant levels are compared against both EPA legal limits (Maximum Contaminant Levels) and EWG health guidelines, which are often stricter and based on the latest scientific research.

Share
Leave a comment

This site is protected by hCaptcha and the hCaptcha Privacy Policy and Terms of Service apply.