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