Michigan Water Quality Report
520 cities tested · Average grade: B+ · 7.6M people served
Live Water Alerts for Michigan →Latest water news in Michigan
Recent reporting on Michigan drinking water — boil-water advisories, regulatory action, and infrastructure events.
EPA Redirects $4.1 Billion to States for Lead Pipe Removal — and Cuts the National Estimate in Half
EPA reallocates $4.1B for lead service line removal as updated state inventories drop the national estimate from 9.2M to 4M pipes.
Read full story →Oakland County Water Emergency: GLWA Lifts Final Boil Water Advisories After 42-Inch Main Break
GLWA lifted the final Oakland County boil water advisories May 16, six days after a 42-inch transmission main ruptured in Auburn Hills.
Read full story →Michigan water quality overview
Michigan's drinking water quality is good overall, with an average score of 81 out of 100 across 520 cities tested. The median score is 84.6, serving a total population of 7,553,747 residents. 86% of cities earned an A or B grade, indicating broadly strong water quality infrastructure across the state. PFAS "forever chemicals" were detected in 76 of 520 cities tested (15%). 8 cities exceed the 2024 EPA maximum contaminant levels. 13 cities have lead levels exceeding the EPA action level of 15 ppb, often indicating aging infrastructure with lead service lines or lead solder. The state relies on a mix of water sources: 303 cities use groundwater while 217 draw from surface water such as rivers, lakes, and reservoirs.
Issues to watch in Michigan
Explore contaminants in Michigan
More contaminants tested in Michigan
Private-well water in Michigan
Based on USGS Powell Domestic-Well Database — 1,401 private wells sampled across Michigan. These wells are not regulated by the EPA; if you draw your tap from a private well, the public-system grade above does not apply to you.
Top industrial water polluters in Michigan
Industrial polluters nearby
The 10 facilities reporting the most pounds released to surface water in Michigan, 2023.
Total reported releases to surface water: 2,825,269 lbs
| Facility | Top chemical | To surface water (lbs/yr) |
|---|---|---|
JBS PLAINWELL PLAINWELL, MI49080 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 2,199,444 |
PACKAGING CORP OF AMERICA FILER CITY, MI49634 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 113,628 |
DARLING INGREDIENTS INC. HAMILTON, MI49419 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 108,510 |
MEAD JOHNSON & CO LLC ZEELAND, MI49464 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 107,615 |
THE HILLSHIRE BRANDS CO ZEELAND, MI49464 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 98,513 |
+ 5 more facilities
Source: EPA Toxic Release Inventory (TRI) 2023
How Michigan cities scored
Worst Cities
Water quality across Michigan
Each dot is a city, colored by its water quality grade. Size reflects population served. Click any city to view its full water report.
520 cities in Michigan
| # | City | Grade | Score | Population | Violations |
|---|---|---|---|---|---|
| 1 | Commerce Township | A+ | 99 | 20K | 0 |
| 2 | Frankenmuth | A+ | 99 | 6K | 0 |
| 3 | Bridgeport | A+ | 98.6 | 10K | 2 |
| 4 | Bloomfield Township | A+ | 98.5 | 41K | 0 |
| 5 | Tecumseh | A+ | 98 | 9K | 0 |
| 6 | Byron Center | A+ | 97.2 | 37K | 0 |
| 7 | Zeeland | A+ | 96.4 | 8K | 2 |
| 8 | Riverview | A+ | 96.3 | 12K | 2 |
| 9 | Janesville | A+ | 96.1 | 1K | 8 |
| 10 | Reese | A+ | 96 | 3K | 0 |
| 11 | Lenox | A+ | 96 | 3K | 0 |
| 12 | Nunica | A+ | 96 | 2K | 0 |
| 13 | Calumet City | A+ | 96 | 677 | 0 |
| 14 | Ontonagon | A+ | 95.9 | 3K | 5 |
| 15 | Republic | A+ | 95.9 | 700 | 6 |
| 16 | Bridgman | A+ | 95.8 | 6K | 26 |
| 17 | Algonac | A+ | 95.5 | 14K | 39 |
| 18 | Rockwood | A+ | 95.5 | 3K | 3 |
| 19 | Williamston | A+ | 95.2 | 4K | 6 |
| 20 | Centreville (Rr Name Centervil | A+ | 95.1 | 2K | 24 |
| 21 | Hazel Park | A+ | 95 | 16K | 0 |
| 22 | Birch Run | A+ | 95 | 6K | 6 |
| 23 | East China | A | 94.8 | 6K | 0 |
| 24 | Howard City | A | 94.8 | 2K | 9 |
| 25 | Hartland | A | 94.7 | 3K | 2 |
| 26 | Menominee | A | 94.6 | 9K | 5 |
| 27 | Ruskin | A | 94.4 | 2K | 35 |
| 28 | Lady Lake | A | 94.4 | 1K | 6 |
| 29 | Merrill | A | 94.3 | 695 | 10 |
| 30 | Dexter | A | 94.1 | 5K | 24 |
| 31 | Almont | A | 94.1 | 3K | 8 |
| 32 | New Baltimore | A | 94 | 13K | 36 |
| 33 | Mio | A | 93.8 | 682 | 13 |
| 34 | Stephenson | A | 93.7 | 862 | 5 |
| 35 | Peck | A | 93.7 | 632 | 2 |
| 36 | Shelby | A | 93.6 | 2K | 10 |
| 37 | Litchfield | A | 93.6 | 1K | 8 |
| 38 | Pinconning | A | 93.6 | 1K | 6 |
| 39 | Harrison Township | A | 93.5 | 24K | 3 |
| 40 | Muir | A | 93.5 | 604 | 11 |
| 41 | Sunfield | A | 93.4 | 680 | 12 |
| 42 | Pontiac | A | 93.3 | 64K | 9 |
| 43 | Woodhaven | A | 93.3 | 13K | 8 |
| 44 | Livonia | A | 93.2 | 97K | 5 |
| 45 | Muskgon | A | 93.2 | 12K | 4 |
| 46 | Breckenridge | A | 93.2 | 1K | 8 |
| 47 | Warren | A | 93.1 | 134K | 3 |
| 48 | Clare | A | 92.9 | 3K | 2 |
| 49 | Osceola | A | 92.9 | 1K | 44 |
| 50 | Osceola | A | 92.9 | 1K | 44 |
| 51 | Carsonville | A | 92.9 | 527 | 8 |
| 52 | Sturgis | A | 92.8 | 12K | 9 |
| 53 | Tekonsha | A | 92.8 | 722 | 16 |
| 54 | Rogers City | A | 92.7 | 3K | 3 |
| 55 | Sandusky | A | 92.7 | 3K | 12 |
| 56 | Dryden | A | 92.7 | 1K | 11 |
| 57 | Wilson | A | 92.6 | 4K | 2 |
| 58 | Casper | A | 92.6 | 1K | 7 |
| 59 | Imlay City | A | 92.5 | 4K | 7 |
| 60 | Bad Axe | A | 92.5 | 3K | 8 |
| 61 | Millington | A | 92.5 | 1K | 5 |
| 62 | Kincheloe | A | 92.4 | 5K | 13 |
| 63 | Sterling Heights | A | 92.3 | 127K | 3 |
| 64 | Wixom | A | 92.2 | 14K | 4 |
| 65 | Tawas City | A | 92.2 | 8K | 11 |
| 66 | Jonesville | A | 92.2 | 2K | 5 |
| 67 | Roseville | A | 92 | 47K | 6 |
| 68 | Ionia | A | 92 | 13K | 9 |
| 69 | Walled Lake | A | 91.9 | 5K | 3 |
| 70 | Clyde | A | 91.9 | 2K | 2 |
| 71 | Elkton | A | 91.9 | 808 | 15 |
| 72 | Burton | A | 91.8 | 21K | 20 |
| 73 | Parma | A | 91.8 | 768 | 3 |
| 74 | Mcbain | A | 91.8 | 640 | 38 |
| 75 | Unionville | A | 91.8 | 508 | 6 |
| 76 | Macomb | A | 91.7 | 90K | 6 |
| 77 | Port Hope | A | 91.7 | 1K | 14 |
| 78 | Baroda | A | 91.7 | 910 | 5 |
| 79 | Newport | A | 91.6 | 10K | 3 |
| 80 | Roosevelt Park | A | 91.6 | 4K | 3 |
| 81 | Menomonie | A | 91.5 | 700 | 4 |
| 82 | Ira | A | 91.4 | 7K | 2 |
| 83 | Munising | A | 91.4 | 3K | 14 |
| 84 | Fort Gratiot | A | 91.3 | 12K | 7 |
| 85 | Decatur | A | 91.3 | 2K | 6 |
| 86 | Norton Shores | A | 91.2 | 24K | 3 |
| 87 | Flat Rock | A | 91.2 | 11K | 4 |
| 88 | Pinckney | A | 91.2 | 2K | 4 |
| 89 | Quinnesec | A | 91.2 | 1K | 12 |
| 90 | Memphis | A | 91.2 | 1K | 5 |
| 91 | Norway | A | 91.1 | 3K | 7 |
| 92 | Davison | A | 91 | 5K | 2 |
| 93 | North Branch | A | 91 | 1K | 2 |
| 94 | Allegany (T) | A | 91 | 704 | 11 |
| 95 | Reading | A | 90.9 | 1K | 6 |
| 96 | Twin Lake | A | 90.9 | 755 | 8 |
| 97 | Washington | A | 90.8 | 16K | 16 |
| 98 | Grosse Pointe Shores | A | 90.7 | 3K | 15 |
| 99 | Cadillac | A | 90.6 | 11K | 17 |
| 100 | Wakefield | A | 90.6 | 2K | 8 |
| 101 | Canton | A | 90.5 | 100K | 7 |
| 102 | Eastpointe | A | 90.5 | 32K | 7 |
| 103 | Rochester | A | 90.5 | 13K | 14 |
| 104 | Farmington | A | 90.5 | 12K | 14 |
| 105 | South Rockwood | A | 90.5 | 2K | 4 |
| 106 | Dover | A | 90.5 | 1K | 61 |
| 107 | Ashley | A | 90.5 | 526 | 18 |
| 108 | Grosse Pointe | A | 90.4 | 5K | 7 |
| 109 | Climax | A | 90.4 | 965 | 10 |
| 110 | St. Joseph | A | 90.2 | 35K | 8 |
| 111 | Blissfield | A | 90.2 | 3K | 31 |
| 112 | Corunna | A | 90.2 | 2K | 2 |
| 113 | Linwood | A | 90.2 | 909 | 12 |
| 114 | Gobles | A | 90.2 | 725 | 4 |
| 115 | St. Clair Shores | A | 90.1 | 60K | 12 |
| 116 | Bingham Farms | A | 90.1 | 888 | 3 |
| 117 | Huntington Woods | A | 90 | 6K | 5 |
| 118 | Potterville | A | 90 | 3K | 12 |
| 119 | Escanaba | A- | 89.9 | 13K | 4 |
| 120 | Ovid | A- | 89.9 | 2K | 14 |
| 121 | Brown City | A- | 89.8 | 1K | 8 |
| 122 | Bronson | A- | 89.7 | 2K | 2 |
| 123 | Stanton | A- | 89.7 | 1K | 13 |
| 124 | East Kingsford | A- | 89.6 | 1K | 2 |
| 125 | Romeo | A- | 89.5 | 4K | 13 |
| 126 | Cass City | A- | 89.5 | 2K | 14 |
| 127 | Centreville | A- | 89.4 | 3K | 23 |
| 128 | East Jordan | A- | 89.4 | 2K | 35 |
| 129 | Central Lake | A- | 89.4 | 952 | 47 |
| 130 | Lake Orion | A- | 89.3 | 36K | 14 |
| 131 | Mount Morris | A- | 89.3 | 3K | 7 |
| 132 | Manchester | A- | 89.3 | 2K | 4 |
| 133 | Olivet | A- | 89.3 | 2K | 5 |
| 134 | Melvindale | A- | 89.2 | 13K | 10 |
| 135 | Manistee | A- | 89.2 | 10K | 35 |
| 136 | Coleman | A- | 89.2 | 1K | 8 |
| 137 | Carleton | A- | 89.1 | 6K | 3 |
| 138 | Montague | A- | 89.1 | 3K | 5 |
| 139 | Grayling | A- | 89.1 | 2K | 4 |
| 140 | Schoolcraft | A- | 89.1 | 2K | 20 |
| 141 | Durand | A- | 89 | 4K | 36 |
| 142 | Homosassa Springs | A- | 89 | 900 | 9 |
| 143 | Ramsay | A- | 89 | 551 | 10 |
| 144 | Brownstown Twp | A- | 88.9 | 33K | 1 |
| 145 | New Boston | A- | 88.9 | 16K | 1 |
| 146 | Fraser | A- | 88.9 | 14K | 14 |
| 147 | Gibraltar | A- | 88.9 | 5K | 8 |
| 148 | Concord | A- | 88.9 | 1K | 14 |
| 149 | Sarasota | A- | 88.8 | 4K | 4 |
| 150 | Harbor Beach | A- | 88.8 | 2K | 11 |
| 151 | Union City | A- | 88.7 | 2K | 4 |
| 152 | Plymouth | A- | 88.6 | 37K | 10 |
| 153 | Swartz Creek | A- | 88.6 | 6K | 14 |
| 154 | Athens | A- | 88.6 | 956 | 10 |
| 155 | Manistique | A- | 88.5 | 3K | 10 |
| 156 | Highland Park | A- | 88.4 | 9K | 13 |
| 157 | White Pigeon | A- | 88.4 | 2K | 10 |
| 158 | Farwell | A- | 88.4 | 942 | 23 |
| 159 | Grand Ledge | A- | 88.3 | 9K | 7 |
| 160 | Kingsford | A- | 88.3 | 5K | 9 |
| 161 | Morenci | A- | 88.3 | 2K | 13 |
| 162 | Trenton | A- | 88.2 | 19K | 7 |
| 163 | Genesee | A- | 88.2 | 8K | 3 |
| 164 | Sylvan Lake | A- | 88.2 | 2K | 16 |
| 165 | Saranac | A- | 88.2 | 1K | 10 |
| 166 | Northport | A- | 88.2 | 766 | 17 |
| 167 | Charlotte | A- | 88.1 | 9K | 5 |
| 168 | Ludington | A- | 88.1 | 9K | 12 |
| 169 | Kalkaska | A- | 88.1 | 2K | 3 |
| 170 | Britton | A- | 88.1 | 611 | 12 |
| 171 | Vassar | A- | 88 | 3K | 4 |
| 172 | Mayville | A- | 88 | 950 | 17 |
| 173 | Ravenna | A- | 87.8 | 1K | 10 |
| 174 | New Lothrop | A- | 87.8 | 610 | 10 |
| 175 | Chesterfield Township | A- | 87.6 | 42K | 6 |
| 176 | Berkley | A- | 87.6 | 15K | 2 |
| 177 | Marshall | A- | 87.6 | 7K | 4 |
| 178 | Lathrup Village | A- | 87.6 | 4K | 8 |
| 179 | Shelbyville | A- | 87.6 | 540 | 73 |
| 180 | Sanford | A- | 87.5 | 11K | 10 |
| 181 | Fowler | A- | 87.5 | 1K | 8 |
| 182 | Haines City | A- | 87.5 | 600 | 29 |
| 183 | Allendale | A- | 87.4 | 20K | 1 |
| 184 | Cottrellville | A- | 87.4 | 3K | 4 |
| 185 | Reed City | A- | 87.4 | 2K | 5 |
| 186 | Deckerville | A- | 87.4 | 2K | 8 |
| 187 | Westphalia | A- | 87.4 | 925 | 6 |
| 188 | Metamora | A- | 87.4 | 565 | 7 |
| 189 | Marlette | A- | 87.3 | 2K | 65 |
| 190 | Wolverine Lake | A- | 87.3 | 1K | 12 |
| 191 | Oak Park | A- | 87.2 | 30K | 1 |
| 192 | Grandville | A- | 87.2 | 16K | 5 |
| 193 | Whittaker | A- | 87.2 | 4K | 4 |
| 194 | Port Austin | A- | 87.2 | 1K | 20 |
| 195 | Beverly Hills | A- | 87.1 | 10K | 6 |
| 196 | Byron | A- | 86.9 | 581 | 13 |
| 197 | Grawn | A- | 86.8 | 3K | 2 |
| 198 | Lawton | A- | 86.8 | 2K | 15 |
| 199 | Elk Rapids | A- | 86.8 | 2K | 19 |
| 200 | Forestville | A- | 86.8 | 836 | 3 |
| 201 | Camden | A- | 86.8 | 512 | 7 |
| 202 | Grosse Pointe Farms | A- | 86.7 | 10K | 24 |
| 203 | Gwinn | A- | 86.7 | 6K | 35 |
| 204 | Hancock | A- | 86.7 | 5K | 20 |
| 205 | Jamestown | A- | 86.7 | 3K | 2 |
| 206 | Harrison | A- | 86.7 | 1K | 7 |
| 207 | Scottville | A- | 86.6 | 2K | 12 |
| 208 | O Fallon | A- | 86.6 | 580 | 2 |
| 209 | Milan | A- | 86.5 | 7K | 12 |
| 210 | Armada | A- | 86.5 | 2K | 7 |
| 211 | Jenison | A- | 86.4 | 41K | 1 |
| 212 | Paw Paw | A- | 86.4 | 3K | 15 |
| 213 | St. Ignace | A- | 86.4 | 3K | 8 |
| 214 | Augusta | A- | 86.4 | 885 | 9 |
| 215 | Harbert | A- | 86.3 | 3K | 33 |
| 216 | Grand Haven | A- | 86.2 | 25K | 6 |
| 217 | Auburn | A- | 86.2 | 2K | 8 |
| 218 | Dearborn | A- | 86.1 | 110K | 2 |
| 219 | Rochester Hills | A- | 86.1 | 74K | 17 |
| 220 | Dundee | A- | 86.1 | 5K | 8 |
| 221 | Springport | A- | 86.1 | 800 | 10 |
| 222 | Barnegat Twp.-1533 | A- | 86 | 1K | 101 |
| 223 | Alma | A- | 85.9 | 9K | 1 |
| 224 | Port Sanilac | A- | 85.8 | 1K | 15 |
| 225 | Port Huron | A- | 85.7 | 44K | 10 |
| 226 | Three Oaks | A- | 85.7 | 2K | 9 |
| 227 | Kawkawlin | A- | 85.7 | 1K | 1 |
| 228 | Waldron | A- | 85.7 | 538 | 5 |
| 229 | Martin | A- | 85.6 | 785 | 9 |
| 230 | Southgate | A- | 85.5 | 30K | 4 |
| 231 | St. Louis | A- | 85.5 | 7K | 4 |
| 232 | Versailles | A- | 85.5 | 2K | 77 |
| 233 | Versailles | A- | 85.5 | 2K | 77 |
| 234 | Onaway | A- | 85.5 | 880 | 17 |
| 235 | Hillsdale | A- | 85.4 | 9K | 15 |
| 236 | Gladstone | A- | 85.4 | 5K | 12 |
| 237 | East Tawas | A- | 85.3 | 3K | 4 |
| 238 | Hillman | A- | 85.3 | 697 | 21 |
| 239 | Saginaw | A- | 85.2 | 122K | 26 |
| 240 | Chassell | A- | 85.2 | 800 | 9 |
| 241 | Wayland | A- | 85.1 | 5K | 14 |
| 242 | Essexville | A- | 85.1 | 3K | 1 |
| 243 | Roscommon | A- | 85.1 | 1K | 21 |
| 244 | Tampa | A- | 85.1 | 720 | 49 |
| 245 | Caro | A- | 85 | 5K | 11 |
| 246 | West Branch | A- | 85 | 2K | 13 |
| 247 | L'Anse | A- | 85 | 2K | 12 |
| 248 | Petersburg | B+ | 84.9 | 1K | 18 |
| 249 | Pentwater | B+ | 84.9 | 857 | 13 |
| 250 | Jasper | B+ | 84.9 | 717 | 2 |
| 251 | Coopersville | B+ | 84.8 | 5K | 6 |
| 252 | St. Charles | B+ | 84.8 | 4K | 11 |
| 253 | Clio | B+ | 84.8 | 3K | 28 |
| 254 | Grant | B+ | 84.8 | 959 | 20 |
| 255 | Ubly | B+ | 84.8 | 858 | 12 |
| 256 | Marine City | B+ | 84.7 | 5K | 6 |
| 257 | Beaverton | B+ | 84.7 | 1K | 35 |
| 258 | Lakeview | B+ | 84.7 | 1K | 1 |
| 259 | Mamakating (T) | B+ | 84.7 | 900 | 11 |
| 260 | Clinton Township | B+ | 84.6 | 101K | 67 |
| 261 | Big Rapids | B+ | 84.6 | 11K | 16 |
| 262 | Ferrysburg | B+ | 84.6 | 3K | 1 |
| 263 | Mattawan | B+ | 84.6 | 3K | 17 |
| 264 | South Range | B+ | 84.6 | 745 | 10 |
| 265 | Buchanan | B+ | 84.5 | 5K | 21 |
| 266 | Hemlock | B+ | 84.5 | 2K | 4 |
| 267 | Fremont | B+ | 84.4 | 5K | 12 |
| 268 | Covert | B+ | 84.4 | 2K | 2 |
| 269 | Benzonia | B+ | 84.4 | 591 | 19 |
| 270 | Allegan | B+ | 84.3 | 6K | 38 |
| 271 | Westland | B+ | 84.3 | 1K | 10 |
| 272 | Romulus | B+ | 84.2 | 24K | 10 |
| 273 | Mount Clemens | B+ | 84.2 | 16K | 33 |
| 274 | Center Line | B+ | 84.2 | 8K | 11 |
| 275 | Mackinac Island | B+ | 84.2 | 583 | 8 |
| 276 | Detroit | B+ | 84.1 | 633K | 13 |
| 277 | Iron Mountain | B+ | 84.1 | 8K | 43 |
| 278 | Montrose | B+ | 84.1 | 2K | 23 |
| 279 | Webberville | B+ | 84.1 | 2K | 15 |
| 280 | Saline | B+ | 84 | 9K | 12 |
| 281 | Mason | B+ | 84 | 9K | 17 |
| 282 | Justice | B+ | 84 | 2K | 22 |
| 283 | Sheridan | B+ | 84 | 649 | 6 |
| 284 | Ironwood | B+ | 83.9 | 6K | 10 |
| 285 | Alton | B+ | 83.9 | 858 | 9 |
| 286 | Vermontville | B+ | 83.9 | 780 | 25 |
| 287 | Calumet | B+ | 83.8 | 9K | 6 |
| 288 | Sparta | B+ | 83.8 | 4K | 20 |
| 289 | Sebewaing | B+ | 83.8 | 2K | 8 |
| 290 | Bellevue | B+ | 83.8 | 2K | 22 |
| 291 | New Buffalo | B+ | 83.7 | 5K | 4 |
| 292 | Galesburg | B+ | 83.7 | 2K | 14 |
| 293 | Mancelona | B+ | 83.6 | 4K | 62 |
| 294 | Pigeon | B+ | 83.6 | 1K | 7 |
| 295 | Dollar Bay | B+ | 83.5 | 1K | 11 |
| 296 | Elsie | B+ | 83.4 | 966 | 15 |
| 297 | Grand Island | B+ | 83.3 | 751 | 11 |
| 298 | Lincoln Park | B+ | 83.2 | 38K | 11 |
| 299 | Allen Park | B+ | 83.2 | 28K | 26 |
| 300 | Hartford | B+ | 83.2 | 3K | 22 |
| 301 | Watersmeet | B+ | 83.2 | 2K | 65 |
| 302 | Onsted | B+ | 83.2 | 907 | 8 |
| 303 | Arcadia | B+ | 83.2 | 560 | 20 |
| 304 | Grosse Pointe Park | B+ | 83.1 | 12K | 24 |
| 305 | Croswell | B+ | 83.1 | 2K | 11 |
| 306 | Ecorse | B+ | 83 | 10K | 10 |
| 307 | Columbiaville | B+ | 83 | 787 | 10 |
| 308 | Utica | B+ | 82.9 | 5K | 3 |
| 309 | Frankfort | B+ | 82.9 | 1K | 14 |
| 310 | Muskegon Heights | B+ | 82.8 | 10K | 19 |
| 311 | Charlevoix | B+ | 82.8 | 5K | 50 |
| 312 | Lake Odessa | B+ | 82.8 | 2K | 11 |
| 313 | Painesdale | B+ | 82.8 | 2K | 3 |
| 314 | Grass Lake | B+ | 82.8 | 2K | 4 |
| 315 | Lawrence | B+ | 82.8 | 1K | 14 |
| 316 | Three Rivers | B+ | 82.7 | 8K | 30 |
| 317 | North Muskegon | B+ | 82.7 | 4K | 3 |
| 318 | Perry | B+ | 82.7 | 2K | 1 |
| 319 | Baldwin | B+ | 82.7 | 1K | 12 |
| 320 | Hudson | B+ | 82.6 | 3K | 11 |
| 321 | Spring Lake | B+ | 82.5 | 12K | 8 |
| 322 | Iron River | B+ | 82.5 | 5K | 57 |
| 323 | Clarkston | B+ | 82.4 | 14K | 27 |
| 324 | Mackinaw City | B+ | 82.4 | 982 | 20 |
| 325 | Wyandotte | B+ | 82.2 | 26K | 1 |
| 326 | Fruitport | B+ | 82.2 | 9K | 4 |
| 327 | Edmore | B+ | 82.2 | 1K | 8 |
| 328 | Au Gres | B+ | 82.2 | 1K | 3 |
| 329 | Hudsonville | B+ | 82.1 | 8K | 17 |
| 330 | Mendon | B+ | 82.1 | 920 | 19 |
| 331 | Northville | B+ | 81.8 | 38K | 16 |
| 332 | Chesaning | B+ | 81.7 | 3K | 17 |
| 333 | Madison Heights | B+ | 81.6 | 30K | 7 |
| 334 | Gaylord | B+ | 81.5 | 4K | 87 |
| 335 | Portage | B+ | 81.4 | 47K | 44 |
| 336 | Marion | B+ | 81.4 | 800 | 8 |
| 337 | Midland | B+ | 81.3 | 50K | 47 |
| 338 | Saugatuck | B+ | 81.3 | 5K | 26 |
| 339 | Auburn Hills | B+ | 81.2 | 23K | 12 |
| 340 | East Grand Rapids | B+ | 81.2 | 12K | 2 |
| 341 | Burtchville Township | B+ | 81.2 | 3K | 8 |
| 342 | Capac | B+ | 81.1 | 2K | 46 |
| 343 | Edwardsburg | B+ | 81 | 2K | 29 |
| 344 | Carson City | B+ | 80.8 | 3K | 10 |
| 345 | Fennville | B+ | 80.8 | 3K | 18 |
| 346 | Hart | B+ | 80.8 | 2K | 6 |
| 347 | White Cloud | B+ | 80.6 | 1K | 10 |
| 348 | Kimball | B+ | 80.5 | 6K | 27 |
| 349 | Ypsilanti | B+ | 80.4 | 61K | 14 |
| 350 | Whitehall | B+ | 80.4 | 3K | 14 |
| 351 | Pleasant Ridge | B+ | 80.4 | 3K | 6 |
| 352 | St. Clair | B+ | 80.3 | 9K | 15 |
| 353 | Suttons Bay | B+ | 80.2 | 10K | 73 |
| 354 | Glen Arbor | B+ | 80.1 | 1K | 61 |
| 355 | Clawson | B+ | 80 | 12K | 8 |
| 356 | Redford | B | 79.9 | 50K | 6 |
| 357 | Interlochen | B | 79.7 | 750 | 1 |
| 358 | Maple Rapids | B | 79.7 | 643 | 32 |
| 359 | Watervliet | B | 79.6 | 3K | 44 |
| 360 | Constantine | B | 79.6 | 2K | 104 |
| 361 | New Haven | B | 79.5 | 6K | 17 |
| 362 | Borculo | B | 79.5 | 544 | 6 |
| 363 | New Hudson | B | 79.4 | 9K | 31 |
| 364 | Garden City | B | 79.3 | 28K | 4 |
| 365 | Mamakating (T) | B | 79.3 | 2K | 68 |
| 366 | Marcellus | B | 79.3 | 1K | 2 |
| 367 | Mount Pleasant | B | 79.2 | 32K | 36 |
| 368 | Coloma | B | 79.2 | 3K | 110 |
| 369 | Stockbridge | B | 79.2 | 1K | 12 |
| 370 | Bangor | B | 79.1 | 2K | 15 |
| 371 | Manhattan | B | 79.1 | 2K | 32 |
| 372 | Kentwood | B | 79 | 36K | 10 |
| 373 | Marysville | B | 79 | 10K | 80 |
| 374 | Ishpeming | B | 78.9 | 9K | 34 |
| 375 | Nashville | B | 78.9 | 2K | 13 |
| 376 | Colon | B | 78.8 | 1K | 28 |
| 377 | Lowell | B | 78.7 | 6K | 57 |
| 378 | Royal Oak | B | 78.6 | 58K | 45 |
| 379 | Crystal Falls | B | 78.5 | 3K | 32 |
| 380 | Cassopolis | B | 78.4 | 2K | 61 |
| 381 | Bessemer | B | 78.4 | 2K | 12 |
| 382 | West Olive | B | 78.3 | 647 | 3 |
| 383 | Ferndale | B | 78.1 | 22K | 14 |
| 384 | Springfield | B | 78.1 | 4K | 11 |
| 385 | South Lyon | B | 78 | 12K | 11 |
| 386 | Boyne City | B | 77.9 | 4K | 27 |
| 387 | Newberry | B | 77.7 | 4K | 89 |
| 388 | Ada | B | 77.6 | 7K | 45 |
| 389 | Lexington | B | 77.6 | 5K | 31 |
| 390 | Bancroft | B | 77.4 | 616 | 22 |
| 391 | Caseville | B | 77 | 3K | 8 |
| 392 | Muskegon | B | 76.7 | 40K | 57 |
| 393 | Grosse Pointe Woods | B | 76.5 | 16K | 1 |
| 394 | Buckley | B | 76.4 | 529 | 31 |
| 395 | Harper Woods | B | 76.2 | 14K | 9 |
| 396 | Cheboygan | B | 76.2 | 6K | 19 |
| 397 | Chelsea | B | 76.1 | 6K | 19 |
| 398 | Oxford | B | 76.1 | 4K | 45 |
| 399 | Waterford | B | 76 | 99K | 24 |
| 400 | Greenville | B | 75.9 | 9K | 33 |
| 401 | Bellaire | B | 75.9 | 3K | 45 |
| 402 | Brooklyn | B | 75.9 | 2K | 28 |
| 403 | Homosassa Springs | B | 75.9 | 2K | 50 |
| 404 | Thompsonville | B | 75.9 | 1K | 51 |
| 405 | St. Johns | B | 75.8 | 8K | 28 |
| 406 | Manton | B | 75.8 | 1K | 44 |
| 407 | Caspian | B | 75.7 | 2K | 38 |
| 408 | Albion | B | 75.6 | 10K | 24 |
| 409 | Brimley | B | 75.6 | 2K | 112 |
| 410 | Bay City | B | 75.5 | 90K | 39 |
| 411 | Dover | B | 75.4 | 3K | 149 |
| 412 | Leslie | B | 75.4 | 2K | 17 |
| 413 | Inkster | B | 75 | 25K | 10 |
| 414 | Tucson | B- | 74.9 | 960 | 187 |
| 415 | East Moline | B- | 74.8 | 503 | 8 |
| 416 | Wyoming | B- | 74.5 | 73K | 27 |
| 417 | Otsego | B- | 74.4 | 5K | 10 |
| 418 | White Lake | B- | 74.2 | 6K | 32 |
| 419 | Hastings | B- | 74.1 | 8K | 34 |
| 420 | Wayne | B- | 73.3 | 102K | 14 |
| 421 | Caledonia | B- | 73.3 | 5K | 29 |
| 422 | Yale | B- | 73.3 | 2K | 44 |
| 423 | Kingsley | B- | 73.3 | 2K | 76 |
| 424 | Okemos | B- | 73.1 | 26K | 40 |
| 425 | Michigan Center | B- | 73.1 | 3K | 8 |
| 426 | Hesperia | B- | 73.1 | 1K | 22 |
| 427 | Newaygo | B- | 73 | 3K | 22 |
| 428 | Eaton Rapids | B- | 72.9 | 5K | 53 |
| 429 | Burr Oak | B- | 72.8 | 828 | 77 |
| 430 | Grosse Ile | B- | 72.6 | 10K | 6 |
| 431 | Troy | B- | 72.5 | 87K | 60 |
| 432 | Homer | B- | 72.2 | 2K | 24 |
| 433 | Holland | B- | 72.1 | 80K | 35 |
| 434 | Belding | B- | 72.1 | 6K | 27 |
| 435 | South Haven | B- | 71.7 | 10K | 70 |
| 436 | Middleville | B- | 71.7 | 4K | 50 |
| 437 | Vicksburg | B- | 71.5 | 4K | 27 |
| 438 | River Rouge | B- | 71.4 | 7K | 13 |
| 439 | Petoskey | B- | 71.3 | 11K | 90 |
| 440 | Houghton | B- | 71.2 | 10K | 49 |
| 441 | Plainwell | B- | 70.4 | 6K | 59 |
| 442 | Hamtramck | B- | 70.3 | 22K | 15 |
| 443 | Sault Ste. Marie | B- | 70.3 | 15K | 54 |
| 444 | Grand Rapids | B- | 70.2 | 316K | 28 |
| 445 | Shepherd | B- | 70.2 | 2K | 30 |
| 446 | Lake Linden | B- | 70.1 | 1K | 15 |
| 447 | Baraga | B- | 70 | 4K | 142 |
| 448 | Addison | C+ | 69.8 | 605 | 21 |
| 449 | Portland | C+ | 69.2 | 4K | 18 |
| 450 | Warsaw | C+ | 69.1 | 692 | 227 |
| 451 | Dearborn Heights | C+ | 68.9 | 58K | 17 |
| 452 | Lake City | C+ | 68.7 | 836 | 67 |
| 453 | Negaunee | C+ | 68.5 | 6K | 71 |
| 454 | Richmond | C+ | 67.5 | 6K | 49 |
| 455 | Lyons | C+ | 67.1 | 789 | 44 |
| 456 | Evart | C+ | 66.9 | 2K | 32 |
| 457 | Owosso | C+ | 65.5 | 17K | 34 |
| 458 | Berrien Springs | C+ | 65.5 | 7K | 47 |
| 459 | Boyne Falls | C+ | 65.3 | 2K | 22 |
| 460 | Harrisville | C+ | 65.3 | 532 | 63 |
| 461 | Davenport | C+ | 65.2 | 650 | 68 |
| 462 | Sebring | C | 64.3 | 2K | 48 |
| 463 | Orchard Lake | C | 63.8 | 2K | 19 |
| 464 | Belleville | C | 63.7 | 831 | 19 |
| 465 | Ithaca | C | 63.5 | 3K | 22 |
| 466 | Clinton | C | 62.8 | 3K | 311 |
| 467 | Mt Pleasant | C | 62.3 | 14K | 33 |
| 468 | Rockford | C | 62.1 | 13K | 62 |
| 469 | Monroe | C | 61.5 | 100K | 66 |
| 470 | Novi | C | 61.5 | 61K | 32 |
| 471 | Deerfield | C | 61.2 | 943 | 131 |
| 472 | Niles | C | 60.8 | 17K | 62 |
| 473 | Taylor | C | 60.6 | 63K | 16 |
| 474 | Eau Claire | C | 60.3 | 610 | 13 |
| 475 | Cedar Springs | C- | 59.9 | 4K | 146 |
| 476 | Holt | C- | 59.9 | 1K | 5 |
| 477 | Flushing | C- | 59.3 | 9K | 29 |
| 478 | Gladwin | C- | 58.4 | 4K | 66 |
| 479 | Standish | C- | 58.2 | 2K | 60 |
| 480 | Lansing | C- | 57.3 | 194K | 127 |
| 481 | Alpena | C- | 56.5 | 16K | 71 |
| 482 | Holly | C- | 56.2 | 9K | 38 |
| 483 | Dowagiac | C- | 55.4 | 8K | 115 |
| 484 | Indiantown | D+ | 53.9 | 750 | 153 |
| 485 | Traverse City | D+ | 53.2 | 36K | 116 |
| 486 | Otisville | D+ | 52.6 | 864 | 88 |
| 487 | Ann Arbor | D+ | 51.5 | 279K | 94 |
| 488 | Benton Harbor | D+ | 50.5 | 16K | 228 |
| 489 | Ruskin | D+ | 50 | 4K | 533 |
| 490 | Frostproof | D+ | 50 | 2K | 79 |
| 491 | Fenton | D | 49.2 | 13K | 61 |
| 492 | Jackson | D | 48.7 | 88K | 106 |
| 493 | Oscoda | D | 47.9 | 9K | 38 |
| 494 | Milford | D | 47.4 | 10K | 301 |
| 495 | Shelby Township | D | 47 | 72K | 107 |
| 496 | Fowlerville | D | 47 | 4K | 184 |
| 497 | Quincy | D | 47 | 2K | 125 |
| 498 | Whitmore Lake | D | 47 | 2K | 73 |
| 499 | Mt Clemens | D | 47 | 596 | 138 |
| 500 | Keego Harbor | D | 46.8 | 3K | 80 |
| 501 | Belleville | D | 46.5 | 41K | 45 |
| 502 | Linden | D | 46.2 | 4K | 147 |
| 503 | Harbor Springs | D | 46 | 7K | 323 |
| 504 | Flint | D | 45.8 | 165K | 138 |
| 505 | Freeland | F | 44.5 | 10K | 210 |
| 506 | Howell | F | 44 | 12K | 62 |
| 507 | Coldwater | F | 43.6 | 14K | 143 |
| 508 | Bloomfield Hills | F | 43.5 | 10K | 132 |
| 509 | Lapeer | F | 43.5 | 9K | 145 |
| 510 | Battle Creek | F | 42.2 | 51K | 58 |
| 511 | Southfield | F | 41.2 | 91K | 227 |
| 512 | Farmington Hills | F | 41 | 81K | 916 |
| 513 | West Bloomfield | F | 41 | 52K | 248 |
| 514 | Adrian | F | 40.5 | 29K | 100 |
| 515 | East Lansing | F | 39.3 | 46K | 82 |
| 516 | Birmingham | F | 39 | 22K | 239 |
| 517 | Brighton | F | 38.8 | 37K | 149 |
| 518 | Marquette | F | 36 | 23K | 158 |
| 519 | Kalamazoo | F | 35 | 194K | 175 |
| 520 | Grand Blanc | F | 28.2 | 30K | 130 |
Browse Michigan counties
Browse Michigan by ZIP code
Look up water quality by ZIP code to find the systems serving your area.
View all Michigan ZIP codes →Frequently asked questions about Michigan's water
Is Michigan's tap water safe to drink?
Michigan's water quality varies by city. The statewide average grade is B+ (81/100). 86% of cities scored an A or B, while 7% received a D or F. Check your specific city for detailed results.
Which Michigan cities have the best water quality?
The top-rated cities are Commerce Township (A+), Frankenmuth (A+), Bridgeport (A+). These cities scored highest based on violation history, lead levels, PFAS contamination, and regulatory compliance.
Which Michigan cities have the worst water quality?
The lowest-rated cities are Grand Blanc (F), Kalamazoo (F), Marquette (F). We recommend residents in these areas consider water filtration and review their city's specific contaminant data.
How many Michigan cities have PFAS in their water?
76 out of 520 cities tested positive for PFAS "forever chemicals" (15%). 8 cities exceed the 2024 EPA maximum contaminant levels. Reverse osmosis or activated carbon filters can help reduce PFAS exposure.
Do any Michigan cities have dangerous lead levels?
13 cities exceed the EPA lead action level of 15 ppb. Lead contamination typically comes from aging pipes and lead service lines rather than the water source itself. An NSF 53-certified filter can effectively remove lead from tap water.