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 September 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 364 of 652 56%
Nitrate carcinogen 213 of 652 33%
Fluoride* 146 of 652 22%
Nitrate* carcinogen 140 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 Covert 6 5 0 0
151 Athens 7 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 Quinnesec 6 4 0 1,200
201 Springport 4 4 0 800
202 Climax 5 4 0 767
203 Twin Lake 7 4 1 755
204 Maple Rapids 5 4 0 643
205 Peck 6 4 0 632
206 Byron 5 4 1 581
207 Carsonville 5 4 0 527
208 Belmont 7 4 0 268
209 Riga 10 4 0 266
210 Pittsburgh 5 4 0 263
211 Ahmeek 7 4 0 148
212 Morganville 5 4 0 122
213 Rockwall 7 4 1 40
214 Colon 5 4 0 0
215 Lawrence 7 4 0 0
216 Kinde 8 4 1 0
217 Copper City 7 4 0 0
218 Kingsford 6 4 0 0
219 Almont 5 4 0 0
220 New Lothrop 8 4 0 0
221 Deerfield 10 4 0 0
222 Blissfield 10 4 0 0
223 Mendon 7 4 0 0
224 Martin 6 4 0 0
225 Marcellus 5 4 0 0
226 Coldwater 7 3 0 13,822
227 Flat Rock 4 3 0 10,541
228 Big Rapids 7 3 0 10,403
229 Marysville 5 3 0 9,959
230 Algonac 5 3 0 9,866
231 Essexville 12 3 0 9,652
232 Belleville 4 3 0 9,576
233 New Hudson 5 3 0 9,390
234 Alma 5 3 0 9,182
235 Menominee 8 3 0 8,583
236 Flushing 4 3 0 8,311
237 Armada 4 3 0 8,257
238 Mason 5 3 0 8,252
239 St. Johns 4 3 0 7,896
240 River Rouge 4 3 0 7,224
241 Marshall 5 3 0 7,088
242 Ishpeming 4 3 0 6,470
243 Milford 6 3 0 6,366
244 Manistee 8 3 0 6,200
245 Huntington Woods 4 3 0 6,200
246 Carleton 6 3 0 5,959
247 Swartz Creek 4 3 0 5,800
248 White Lake 4 3 0 5,799
249 Richmond 5 3 0 5,733
250 New Haven 4 3 0 5,600
251 Davison 5 3 0 5,000
252 Gibraltar 4 3 0 4,997
253 Buchanan 4 3 0 4,871
254 Marine City 7 3 0 4,652
255 Negaunee 4 3 0 4,568
256 Wayland 4 3 0 4,435
257 Lowell 4 3 0 4,150
258 Lathrup Village 4 3 0 4,075
259 Linden 6 3 0 4,004
260 Williamston 5 3 0 3,917
261 Whittaker 4 3 0 3,907
262 Saugatuck 5 3 0 3,892
263 Cedar Springs 4 3 0 3,520
264 Paw Paw 6 3 0 3,362
265 Rockwood 4 3 0 3,289
266 Charlevoix 6 3 0 3,124
267 Mount Morris 4 3 0 3,086
268 St. Ignace 6 3 0 2,987
269 Fowlerville 4 3 0 2,951
270 Grosse Pointe Shores 4 3 0 2,929
271 Whitehall 3 3 0 2,902
272 Lakeport 4 3 0 2,900
273 Rogers City 4 3 0 2,827
274 Vassar 4 3 0 2,697
275 Sandusky 4 3 0 2,679
276 Potterville 4 3 0 2,617
277 Clio 4 3 0 2,515
278 Croswell 5 3 0 2,447
279 Cass City 4 3 0 2,428
280 Reed City 4 3 0 2,425
281 Jonesville 4 3 0 2,258
282 Morenci 4 3 0 2,220
283 East Jordan 4 3 0 2,215
284 Hartland 4 3 0 2,200
285 Sylvan Lake 4 3 0 2,155
286 Mattawan 4 3 0 2,037
287 Yale 5 3 0 1,900
288 Olivet 5 3 0 1,758
289 Sebewaing 6 3 0 1,721
290 Harbor Beach 5 3 0 1,703
291 South Rockwood 6 3 0 1,675
292 Homer 4 3 0 1,668
293 Kingsley 3 3 0 1,657
294 Hemlock 4 3 0 1,632
295 Ovid 4 3 0 1,612
296 Schoolcraft 6 3 0 1,525
297 Shepherd 4 3 0 1,515
298 Webberville 4 3 1 1,503
299 Fennville 3 3 0 1,459
300 Glen Arbor 4 3 0 1,365
301 Litchfield 3 3 0 1,310
302 Manton 3 3 0 1,287
303 Orem 5 3 0 1,278
304 Edmore 4 3 0 1,256
305 Stockbridge 4 3 0 1,202
306 Memphis 4 3 0 1,180
307 Fowler 5 3 0 1,136
308 Otsego 5 3 0 1,133
309 Reading 4 3 0 1,078
310 Millington 4 3 0 1,072
311 Port Hope 5 3 0 1,058
312 Concord 4 3 0 1,050
313 North Branch 5 3 0 1,021
314 Lakeview 3 3 0 1,007
315 Elsie 5 3 0 966
316 Central Lake 3 3 0 952
317 Mayville 4 3 0 950
318 Deckerville 5 3 0 950
319 Onsted 4 3 0 907
320 Los Angeles 4 3 0 900
321 Grant 4 3 0 894
322 Otisville 5 3 1 864
323 Stephenson 3 3 0 862
324 Pentwater 4 3 0 857
325 Lake City 4 3 0 836
326 Forestville 5 3 0 836
327 Marion 4 3 0 800
328 Lyons 4 3 0 789
329 Vermontville 4 3 0 780
330 South Range 3 3 0 745
331 Thompsonville 3 3 0 700
332 Hillman 4 3 0 697
333 Merrill 4 3 0 695
334 Glen Allen 4 3 0 673
335 West Covina 3 3 0 670
336 Sheridan 5 3 0 649
337 Metamora 3 3 0 565
338 Buckley 3 3 0 529
339 Palmer 4 3 0 489
340 Powers 4 3 0 459
341 Perrinton 4 3 0 439
342 Three Rivers 4 3 0 398
343 Charlotte 5 3 0 363
344 Bear Lake 3 3 0 318
345 Ada 4 3 0 288
346 Garden 4 3 0 270
347 Decker 5 3 0 263
348 Clarkston 5 3 0 258
349 Rock 6 3 0 250
350 Granger 8 3 0 202
351 Dimondale 4 3 0 177
352 Lima 4 3 0 125
353 Romeo 4 3 0 115
354 Allegan 6 3 0 101
355 Pierson 7 3 1 100
356 Rapid River 6 3 0 95
357 St. Jospeh 3 3 0 90
358 Belding 5 3 0 78
359 Au Gres 3 3 0 66
360 Boynton Beach 4 3 0 54
361 Westerville 4 3 0 50
362 Pullman 5 3 0 30
363 Rosebush 6 3 0 25
364 Jones 4 3 0 0
365 Gobles 3 3 0 0
366 Constantine 3 3 0 0
367 Bangor 6 3 0 0
368 Lenox 4 3 0 0
369 Baraga 5 3 0 0
370 Republic 3 3 0 0
371 Dryden 4 3 0 0
372 Capac 5 3 0 0
373 Clinton 4 3 0 0
374 Howell 4 2 0 10,068
375 Petoskey 4 2 0 8,979
376 Holly 4 2 0 8,557
377 Houghton 3 2 0 8,386
378 Hillsdale 3 2 0 8,163
379 Milan 4 2 0 7,363
380 Hastings 3 2 0 7,350
381 Rochester 4 2 0 7,130
382 Oscoda 4 2 0 6,997
383 Tawas City 3 2 0 5,815
384 Chelsea 3 2 0 5,474
385 Fremont 6 2 0 4,516
386 Sparta 4 2 0 4,140
387 Lexington 4 2 0 3,854
388 Boyne City 3 2 0 3,735
389 Imlay City 4 2 0 3,579
390 Oxford 4 2 0 3,540
391 Cottrellville 2 2 0 3,200
392 Manistique 5 2 0 3,197
393 Gladwin 3 2 0 2,933
394 New Buffalo 2 2 0 2,845
395 Munising 2 2 0 2,783
396 Watervliet 3 2 0 2,735
397 Ontonagon 3 2 0 2,607
398 Newaygo 5 2 0 2,571
399 Montague 3 2 0 2,479
400 North Street 2 2 0 2,400
401 Galesburg 2 2 0 2,377
402 Hudson 3 2 0 2,307
403 Manchester 4 2 0 2,150
404 Grawn 3 2 0 2,125
405 Perry 5 2 0 2,065
406 Lake Odessa 3 2 0 2,018
407 Newberry 2 2 0 2,000
408 Grass Lake 3 2 0 1,986
409 Leslie 3 2 0 1,872
410 Howard City 3 2 0 1,800
411 Centreville 3 2 0 1,778
412 Elk Rapids 3 2 0 1,642
413 Nashville 4 2 0 1,628
414 Kawkawlin 7 2 0 1,480
415 Dowagiac 3 2 0 1,350
416 Bellevue 4 2 0 1,282
417 Harbor Springs 3 2 0 1,227
418 Ravenna 5 2 0 1,219
419 Pinconning 7 2 0 1,210
420 Unknown 3 2 0 1,060
421 Port Austin 4 2 0 1,004
422 Hesperia 7 2 0 954
423 Boyne Falls 4 2 0 950
424 Linwood 7 2 0 909
425 Mackinaw City 4 2 0 897
426 Onaway 5 2 0 880
427 Ubly 3 2 0 858
428 Parma 3 2 0 768
429 Interlochen 3 2 0 750
430 Sunfield 3 2 0 680
431 Port Sanilac 4 2 0 674
432 Mcbain 3 2 0 640
433 Mio 2 2 0 622
434 Eau Claire 3 2 0 610
435 Muir 3 2 0 604
436 Mackinac Island 4 2 0 583
437 Ramsay 2 2 0 551
438 Waldron 3 2 0 538
439 Camden 3 2 0 512
440 Unionville 3 2 0 508
441 Harrisville 3 2 0 493
442 Freeport 3 2 0 483
443 Ironwood 2 2 0 474
444 Kaleva 5 2 0 464
445 Kingston 3 2 0 440
446 Akron 3 2 0 402
447 Lennon 4 2 1 400
448 Mesick 4 2 0 397
449 Cedar Lake 5 2 0 360
450 Sand Lake 4 2 0 360
451 Detour Village 4 2 0 325
452 Ottawa Lake 6 2 0 303
453 Eagle Harbor 3 2 0 300
454 Alanson 2 2 0 274
455 Grand Beach 2 2 0 272
456 Keego Harbor 3 2 0 270
457 Owendale 3 2 0 241
458 Posen 3 2 0 234
459 Mt. Clemens 4 2 0 230
460 Trout Creek 2 2 0 200
461 Minden City 3 2 0 197
462 Palmyra 3 2 0 193
463 Gaithersburg 2 2 0 190
464 Trenary 2 2 1 175
465 Eaton Rapids 4 2 0 150
466 Stevensville 4 2 0 125
467 Phoenix 3 2 0 100
468 Bingham Farms 4 2 0 100
469 Durand 3 2 0 87
470 Langley 4 2 0 75
471 Holton 3 2 0 75
472 Cassopolis 2 2 0 75
473 Lewiston 4 2 0 53
474 Virginia City 2 2 0 50
475 Stanwood 4 2 0 50
476 Maple City 3 2 0 25
477 Burr Oak 5 2 0 0
478 Augusta 2 2 0 0
479 Omer 4 2 0 0
480 Carson City 4 2 0 0
481 Wakefield 3 2 0 0
482 Chassell 5 2 0 0
483 Amasa 2 2 0 0
484 Millersburg 3 2 0 0
485 Columbiaville 3 2 0 0
486 Kalkaska 2 2 0 0
487 Jasper 3 2 0 0
488 Britton 4 2 0 0
489 Addison 3 2 0 0
490 White Pigeon 4 2 0 0
491 Lawton 2 2 0 0
492 Saline 7 1 0 9,158
493 Tecumseh 4 1 0 8,521
494 Cheboygan 2 1 0 5,500
495 Norway 1 1 0 3,314
496 Ithaca 4 1 0 3,098
497 Iron River 1 1 0 3,019
498 Vicksburg 1 1 0 2,906
499 Michigan Center 2 1 0 2,408
500 Hart 2 1 0 2,126
501 Baldwin 1 1 0 2,000
502 Shelby 3 1 0 1,964
503 White Cloud 2 1 0 1,408
504 Saranac 1 1 0 1,343
505 Brown City 2 1 0 1,316
506 Bellaire 1 1 0 1,086
507 Roscommon 4 1 0 1,075
508 Crystal Falls 2 1 0 990
509 Holt 2 1 0 950
510 Suttons Bay 2 1 0 874
511 Brimley 2 1 0 767
512 Tekonsha 2 1 0 722
513 Caspian 1 1 0 580
514 Benzonia 1 1 0 491
515 Salt Lake City 2 1 0 480
516 Pewamo 3 1 0 476
517 Atlanta 2 1 0 435
518 Grand Marais 1 1 0 411
519 Las Vegas 2 1 0 380
520 Elberta 2 1 0 372
521 Bradenton 2 1 0 372
522 Somerset Center 2 1 0 368
523 Gaines 2 1 0 367
524 Rockland 1 1 0 350
525 St. Petersburg 2 1 0 348
526 Whitmore Lake 3 1 0 330
527 Big Bay 2 1 0 300
528 Hancock 1 1 0 300
529 Delton 2 1 0 260
530 Cedaredge 1 1 0 248
531 D 1 1 0 190
532 East Leroy 1 1 0 168
533 Englewood 2 1 0 155
534 Houghton Lake 3 1 0 148
535 Chicago 1 1 0 142
536 Comstock Park 3 1 0 140
537 Hamilton 4 1 0 137
538 Durango 2 1 0 125
539 Miami 2 1 0 125
540 Manitou Beach 2 1 0 112
541 Aurora 2 1 0 105
542 Rose City 1 1 0 102
543 Hickory Corners 2 1 0 100
544 Seney 2 1 0 100
545 Onondaga 2 1 0 96
546 Lumbard 1 1 0 95
547 Austin 2 1 0 90
548 Gross Pointe Farms 2 1 0 90
549 Quincy 1 1 0 87
550 Lamont 2 1 0 86
551 Yonkville 1 1 0 84
552 Conway 2 1 0 84
553 Hersey 4 1 0 84
554 Middlebury 1 1 0 80
555 Weidman 2 1 0 72
556 Farwell 4 1 0 71
557 Alto 1 1 0 52
558 Hartford 1 1 0 50
559 Rancho Santa Fe 2 1 0 50
560 Irving 2 1 0 42
561 Dewitt 2 1 0 39
562 Rockville 1 1 0 32
563 Sandy 1 1 0 31
564 Vanderbilt 2 1 0 25
565 Pleasant Ridge 3 1 0 25
566 Mebane 3 1 0 20
567 Decatur 3 1 0 0
568 Sterling 3 1 0 0
569 Dansville 2 1 0 0
570 Marenisco 1 1 0 0
571 Watersmeet 2 1 0 0
572 Bessemer 4 1 0 0
573 Alpha 2 1 0 0
574 Bancroft 2 1 0 0
575 Chatham 3 1 0 0
576 Empire 3 1 0 0
577 Alger 3 1 0 0
578 Breckenridge 3 1 0 0
579 Coleman 3 1 0 0
580 Marlette 1 0 0 1,875
581 Three Oaks 4 0 0 1,622
582 Lake Linden 1 0 0 1,203
583 Harrison 0 0 0 1,100
584 Westphalia 1 0 0 925
585 Waymart 1 0 0 845
586 Elkton 2 0 0 808
587 Wolverine Lake 0 0 0 640
588 Napoleon 0 0 0 444
589 Arcadia 1 0 0 400
590 Gowen 2 0 0 390
591 Gagetown 1 0 0 388
592 Ellsworth 2 0 0 349
593 Clifford 1 0 0 324
594 Skandia 0 0 0 275
595 Edwardsburg 0 0 0 265
596 Walloon Lake 1 0 0 261
597 Summerland 1 0 0 255
598 Beaverton 1 0 0 250
599 Rudyard 1 0 0 250
600 Grosse Point Park 1 0 0 248
601 Columbia 2 0 0 208
602 Copper Harbor 0 0 0 200
603 Germfask 1 0 0 200
604 Cookeville 1 0 0 190
605 Saint Petersburg 1 0 0 185
606 Canal Fulton 0 0 0 178
607 Dorchester 1 0 0 175
608 Toledo 1 0 0 156
609 Sioux Falls 0 0 0 150
610 Palm Beach Gardens 1 0 0 148
611 Tustin 1 0 0 145
612 Applegate 1 0 0 140
613 Williamsburg 1 0 0 128
614 West Branch 0 0 0 125
615 Colorado Springs 1 0 0 110
616 Nottawa 1 0 0 100
617 St Louis 1 0 0 95
618 Mecosta 0 0 0 90
619 Lemont 0 0 0 90
620 Elida 1 0 0 88
621 Orchard Lake 1 0 0 86
622 Cleveland 1 0 0 80
623 Jacksonville 0 0 0 80
624 Bloomingdale 2 0 0 78
625 Glenn 2 0 0 77
626 Bloomfield 1 0 0 75
627 Idlewild 1 0 0 68
628 Magnolia 1 0 0 52
629 Curtis 2 0 0 50
630 White Lake Charter Township 0 0 0 50
631 Beulah 1 0 0 50
632 Bark River 1 0 0 45
633 Apollo Beach 1 0 0 45
634 Hale 1 0 0 43
635 Grayling 0 0 0 40
636 Highland 0 0 0 40
637 Kewadin 2 0 0 40
638 Mount Pleasant 1 0 0 40
639 Onekama 0 0 0 38
640 Hermansville 0 0 0 36
641 Lincoln 1 0 0 30
642 Whittemore 2 0 0 30
643 Standish 0 0 0 18
644 East Tawas 2 0 0 1
645 Bad Axe 2 0 0 0
646 Gaastra 2 0 0 0
647 Clarksville 1 0 0 0
648 Ewen 1 0 0 0
649 Bergland 1 0 0 0
650 Carney 1 0 0 0
651 Jeddo 1 0 0 0
652 Eagle River 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: September 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.