A90/100
Minnesota Tap Water Quality Rankings 2026
330 cities · 4,529,379 people served
Top Contaminant Concerns
Copper (90th percentile)PFOSPFOALead (90th percentile)PFHxS
All Cities in Minnesota
| # | City | Score | Population | Violations |
|---|---|---|---|---|
| 1 | Minneapolis | A (93) | 434,800 | 3 |
| 2 | St. Paul | A (92) | 402,729 | 13 |
| 3 | Rochester | A (100) | 123,624 | 0 |
| 4 | Bloomington | A (89) | 91,300 | 4 |
| 5 | Brooklyn Park | B (77) | 89,995 | 4 |
| 6 | Duluth | A (95) | 87,944 | 3 |
| 7 | Woodbury | A (93) | 82,643 | 4 |
| 8 | Plymouth | A (85) | 81,026 | 1 |
| 9 | Maple Grove | A (100) | 75,000 | 0 |
| 10 | Blaine | A (84) | 72,220 | 12 |
| 11 | St. Cloud | A (95) | 71,321 | 1 |
| 12 | Eagan | A (99) | 68,223 | 1 |
| 13 | Lakeville | A (98) | 67,300 | 2 |
| 14 | Coon Rapids | A (80) | 64,000 | 4 |
| 15 | Eden Prairie | A (98) | 63,726 | 2 |
| 16 | Burnsville | A (98) | 61,747 | 2 |
| 17 | Minnetonka | A (97) | 54,474 | 0 |
| 18 | Edina | A (91) | 53,494 | 1 |
| 19 | Apple Valley | A (100) | 50,300 | 0 |
| 20 | Prior Lake | B (77) | 50,241 | 38 |
| 21 | St. Louis Park | A (82) | 50,010 | 3 |
| 22 | Shakopee | A (100) | 47,000 | 0 |
| 23 | Moorhead | A (100) | 44,583 | 0 |
| 24 | Mankato | A (96) | 42,803 | 1 |
| 25 | Cottage Grove | A (99) | 39,712 | 0 |
| 26 | White Bear Lake | A (93) | 37,333 | 8 |
| 27 | Richfield | A (99) | 36,899 | 1 |
| 28 | Roseville | A (100) | 36,254 | 0 |
| 29 | Albertville | A (89) | 35,785 | 2 |
| 30 | Inver Grove Heights | A (81) | 35,374 | 15 |
| 31 | Brooklyn Center | A (97) | 33,782 | 0 |
| 32 | Winona | B (69) | 31,940 | 16 |
| 33 | Savage | B (76) | 30,285 | 5 |
| 34 | Chaska | A (93) | 30,000 | 1 |
| 35 | Fridley | A (96) | 28,776 | 4 |
| 36 | Oakdale | A (96) | 28,674 | 1 |
| 37 | Farmington | A (98) | 26,686 | 3 |
| 38 | Rosemount | A (96) | 26,500 | 1 |
| 39 | Owatonna | A (95) | 26,430 | 2 |
| 40 | Austin | A (100) | 26,174 | 0 |
| 41 | Shoreview | A (94) | 26,000 | 3 |
| 42 | Faribault | A (90) | 25,821 | 8 |
| 43 | Chanhassen | A (88) | 24,951 | 1 |
| 44 | Champlin | A (99) | 24,007 | 1 |
| 45 | Northfield | A (91) | 23,275 | 11 |
| 46 | Hastings | B (61) | 23,222 | 4 |
| 47 | Golden Valley | A (99) | 23,000 | 1 |
| 48 | Crystal | A (99) | 22,937 | 1 |
| 49 | New Brighton | A (85) | 22,902 | 5 |
| 50 | Columbia Heights | A (97) | 22,278 | 3 |
| 51 | Andover | A (81) | 21,455 | 4 |
| 52 | Willmar | A (88) | 21,045 | 1 |
| 53 | New Hope | A (96) | 20,963 | 1 |
| 54 | South St. Paul | C (56) | 20,664 | 9 |
| 55 | Sartell | A (87) | 20,300 | 2 |
| 56 | Elk River | A (94) | 19,532 | 3 |
| 57 | Hopkins | A (88) | 19,462 | 1 |
| 58 | Stillwater | A (86) | 19,462 | 3 |
| 59 | Lino Lakes | A (88) | 19,159 | 5 |
| 60 | Otsego | A (84) | 19,000 | 4 |
| 61 | Albert Lea | A (88) | 18,492 | 1 |
| 62 | Anoka | B (63) | 18,000 | 18 |
| 63 | Ramsey | A (98) | 17,705 | 2 |
| 64 | Buffalo | A (88) | 16,711 | 1 |
| 65 | Red Wing | A (83) | 16,459 | 3 |
| 66 | Hibbing | B (71) | 16,028 | 9 |
| 67 | Bemidji | A (99) | 15,147 | 1 |
| 68 | Monticello | A (93) | 15,087 | 1 |
| 69 | Alexandria | B (78) | 15,000 | 6 |
| 70 | Brainerd | B (79) | 14,670 | 2 |
| 71 | Robbinsdale | A (100) | 14,646 | 0 |
| 72 | Hutchinson | A (94) | 14,590 | 0 |
| 73 | North Mankato | A (90) | 14,448 | 3 |
| 74 | Rogers | A (99) | 14,430 | 1 |
| 75 | Fergus Falls | A (100) | 14,194 | 0 |
| 76 | New Ulm | A (85) | 14,052 | 4 |
| 77 | Worthington | A (97) | 14,052 | 0 |
| 78 | Marshall | A (94) | 13,890 | 0 |
| 79 | Cloquet | A (94) | 13,867 | 9 |
| 80 | Sauk Rapids | B (63) | 13,835 | 5 |
| 81 | Lake Benton | B (79) | 13,644 | 6 |
| 82 | Lake Elmo | B (73) | 13,378 | 21 |
| 83 | Waconia | A (87) | 13,277 | 2 |
| 84 | Mounds View | A (100) | 13,250 | 0 |
| 85 | North St. Paul | A (81) | 13,134 | 4 |
| 86 | Vadnais Heights | A (96) | 13,025 | 1 |
| 87 | Big Lake | A (80) | 12,413 | 5 |
| 88 | Hugo | A (100) | 12,047 | 0 |
| 89 | Forest Lake | A (93) | 11,800 | 4 |
| 90 | St. Peter | A (100) | 11,784 | 0 |
| 91 | Grand Rapids | A (87) | 11,346 | 2 |
| 92 | Victoria | A (97) | 10,546 | 3 |
| 93 | Fairmont | B (77) | 10,328 | 5 |
| 94 | Detroit Lakes | A (88) | 10,038 | 1 |
| 95 | Arden Hills | A (84) | 10,000 | 13 |
| 96 | Cambridge | A (96) | 9,862 | 1 |
| 97 | Mound | A (82) | 9,447 | 6 |
| 98 | Baxter | A (90) | 9,341 | 2 |
| 99 | Waseca | A (96) | 9,241 | 1 |
| 100 | East Grand Forks | A (95) | 9,206 | 2 |
| 101 | Little Falls | A (95) | 9,069 | 2 |
| 102 | Thief River Falls | F (4) | 8,701 | 21 |
| 103 | St. Joseph | A (83) | 8,700 | 15 |
| 104 | Virginia | A (100) | 8,361 | 0 |
| 105 | Waite Park | A (81) | 8,354 | 0 |
| 106 | New Prague | A (80) | 8,247 | 5 |
| 107 | Mahtomedi | A (98) | 8,134 | 2 |
| 108 | Luverne | A (86) | 7,865 | 9 |
| 109 | Belle Plaine | A (96) | 7,456 | 4 |
| 110 | Isanti | A (86) | 7,386 | 6 |
| 111 | Crookston | A (97) | 7,272 | 0 |
| 112 | Hermantown | A (100) | 7,215 | 0 |
| 113 | Spring Lake Park | B (74) | 7,200 | 7 |
| 114 | Kasson | A (98) | 6,850 | 2 |
| 115 | Stewartville | A (94) | 6,850 | 3 |
| 116 | Litchfield | A (87) | 6,786 | 2 |
| 117 | Zimmerman | A (87) | 6,772 | 10 |
| 118 | Carver | A (90) | 6,700 | 2 |
| 119 | Jordan | A (92) | 6,700 | 4 |
| 120 | Welch | F (11) | 6,699 | 86 |
| 121 | Delano | A (84) | 6,564 | 5 |
| 122 | Byron | A (94) | 6,312 | 3 |
| 123 | North Branch | A (96) | 6,190 | 1 |
| 124 | Minnetrista | A (86) | 5,888 | 6 |
| 125 | Jeffers | A (93) | 5,840 | 4 |
| 126 | International Falls | A (99) | 5,637 | 1 |
| 127 | Glencoe | A (84) | 5,607 | 1 |
| 128 | St. Paul Park | A (96) | 5,427 | 1 |
| 129 | Morris | A (89) | 5,351 | 3 |
| 130 | Montevideo | A (92) | 5,337 | 5 |
| 131 | Redwood Falls | A (86) | 5,254 | 3 |
| 132 | St. Francis | A (87) | 5,200 | 5 |
| 133 | Princeton | A (86) | 5,146 | 3 |
| 134 | Circle Pines | A (100) | 5,075 | 0 |
| 135 | Lake City | B (63) | 5,042 | 10 |
| 136 | Becker | A (88) | 5,034 | 4 |
| 137 | Lacrescent | A (82) | 5,029 | 3 |
| 138 | Elko-New Market | B (74) | 5,003 | 10 |
| 139 | Chisholm | A (100) | 4,940 | 0 |
| 140 | Lindstrom | A (86) | 4,938 | 7 |
| 141 | Dayton | A (98) | 4,930 | 2 |
| 142 | Dilworth | A (81) | 4,918 | 7 |
| 143 | Warren | A (81) | 4,846 | 16 |
| 144 | Oak Park Heights | A (92) | 4,776 | 4 |
| 145 | Granite Falls | B (66) | 4,743 | 62 |
| 146 | Windom | A (86) | 4,646 | 3 |
| 147 | St. James | A (96) | 4,611 | 1 |
| 148 | Wayzata | A (91) | 4,592 | 1 |
| 149 | Sauk Centre | A (91) | 4,573 | 1 |
| 150 | Watertown | A (83) | 4,550 | 6 |
| 151 | Wadena | A (97) | 4,332 | 0 |
| 152 | Park Rapids | B (71) | 4,298 | 10 |
| 153 | Pipestone | B (78) | 4,273 | 3 |
| 154 | Cannon Falls | A (98) | 4,237 | 2 |
| 155 | Onamia | B (62) | 4,220 | 35 |
| 156 | Hamel | A (87) | 4,205 | 5 |
| 157 | Cold Spring | C (43) | 4,201 | 14 |
| 158 | Lesueur | A (97) | 4,170 | 3 |
| 159 | Morton | F (0) | 4,000 | 134 |
| 160 | Newport | A (87) | 4,000 | 2 |
| 161 | Wyoming | A (87) | 3,990 | 6 |
| 162 | Centerville | A (98) | 3,962 | 2 |
| 163 | Excelsior | A (98) | 3,925 | 1 |
| 164 | Lonsdale | B (70) | 3,913 | 11 |
| 165 | Montrose | A (98) | 3,899 | 2 |
| 166 | Shorewood | A (100) | 3,890 | 0 |
| 167 | Norwood Young America | A (86) | 3,850 | 3 |
| 168 | St. Charles | A (99) | 3,825 | 1 |
| 169 | Mora | B (76) | 3,786 | 5 |
| 170 | Eveleth | B (69) | 3,770 | 12 |
| 171 | Chisago City | A (93) | 3,745 | 7 |
| 172 | Long Prairie | A (83) | 3,744 | 5 |
| 173 | Two Harbors | A (93) | 3,698 | 4 |
| 174 | Melrose | A (88) | 3,677 | 4 |
| 175 | Sleepy Eye | A (94) | 3,599 | 0 |
| 176 | Lakeland | A (96) | 3,500 | 1 |
| 177 | Pine City | A (86) | 3,458 | 6 |
| 178 | Benson | A (86) | 3,437 | 3 |
| 179 | Annandale | A (95) | 3,430 | 2 |
| 180 | Perham | A (90) | 3,421 | 3 |
| 181 | Montgomery | A (94) | 3,379 | 3 |
| 182 | Breckenridge | A (95) | 3,340 | 2 |
| 183 | Plainview | A (100) | 3,340 | 0 |
| 184 | Rush City | B (69) | 3,339 | 8 |
| 185 | Pine Island | A (86) | 3,324 | 3 |
| 186 | Aurora | A (97) | 3,323 | 5 |
| 187 | Jackson | A (96) | 3,323 | 1 |
| 188 | Eagle Lake | A (94) | 3,268 | 0 |
| 189 | Ely | A (84) | 3,258 | 5 |
| 190 | Blue Earth | A (95) | 3,174 | 2 |
| 191 | Zumbrota | A (86) | 3,172 | 3 |
| 192 | Proctor | A (94) | 3,099 | 3 |
| 193 | Orono | A (90) | 3,062 | 2 |
| 194 | Milaca | A (89) | 3,043 | 3 |
| 195 | Staples | A (99) | 3,030 | 1 |
| 196 | Sandstone | A (88) | 3,012 | 8 |
| 197 | Chatfield | A (93) | 3,005 | 4 |
| 198 | Corcoran | A (100) | 2,964 | 0 |
| 199 | Dodge Center | A (85) | 2,939 | 12 |
| 200 | Mountain Iron | A (96) | 2,880 | 4 |
| 201 | Caledonia | A (89) | 2,824 | 4 |
| 202 | Albany | A (86) | 2,805 | 2 |
| 203 | Cokato | A (91) | 2,792 | 6 |
| 204 | Barnesville | A (90) | 2,784 | 7 |
| 205 | Lake Bronson | A (91) | 2,752 | 1 |
| 206 | Lexington | A (90) | 2,738 | 6 |
| 207 | Roseau | A (81) | 2,729 | 11 |
| 208 | Foley | A (81) | 2,705 | 8 |
| 209 | Glenwood | A (89) | 2,705 | 3 |
| 210 | Bayport | A (90) | 2,700 | 6 |
| 211 | Osseo | A (90) | 2,650 | 6 |
| 212 | Spring Valley | A (95) | 2,580 | 5 |
| 213 | Pelican Rapids | A (88) | 2,577 | 1 |
| 214 | Spicer | A (95) | 2,560 | 3 |
| 215 | Lake Crystal | A (85) | 2,554 | 4 |
| 216 | Le Center | B (71) | 2,544 | 25 |
| 217 | Paynesville | A (100) | 2,530 | 0 |
| 218 | Wabasha | A (96) | 2,521 | 1 |
| 219 | Collegeville | B (67) | 2,500 | 6 |
| 220 | Nett Lake | F (0) | 2,486 | 97 |
| 221 | Crosby | A (91) | 2,377 | 1 |
| 222 | St. Bonifacius | A (99) | 2,374 | 1 |
| 223 | Olivia | A (89) | 2,353 | 3 |
| 224 | Wells | A (91) | 2,343 | 1 |
| 225 | Madelia | A (87) | 2,319 | 5 |
| 226 | Janesville | A (95) | 2,275 | 2 |
| 227 | Gaylord | A (88) | 2,269 | 1 |
| 228 | Hawley | A (95) | 2,267 | 5 |
| 229 | Arlington | B (79) | 2,230 | 6 |
| 230 | Winsted | A (96) | 2,226 | 4 |
| 231 | Maple Lake | A (89) | 2,215 | 4 |
| 232 | Howard Lake | B (77) | 2,180 | 8 |
| 233 | Maple Plain | A (83) | 2,174 | 2 |
| 234 | Aitkin | B (79) | 2,165 | 10 |
| 235 | Rice | A (99) | 2,161 | 1 |
| 236 | Tracy | A (86) | 2,154 | 3 |
| 237 | Clearwater | A (90) | 2,129 | 10 |
| 238 | Waverly | A (84) | 2,100 | 1 |
| 239 | Red Lake | F (7) | 2,099 | 73 |
| 240 | Cass Lake | A (93) | 2,086 | 4 |
| 241 | Springfield | A (94) | 2,070 | 3 |
| 242 | Eyota | A (95) | 2,043 | 2 |
| 243 | Oronoco | A (95) | 2,040 | 2 |
| 244 | Ortonville | A (81) | 2,021 | 11 |
| 245 | Hoyt Lakes | A (98) | 2,020 | 2 |
| 246 | Mountain Lake | A (98) | 2,018 | 2 |
| 247 | Coleraine | A (87) | 1,997 | 5 |
| 248 | Blooming Prairie | A (91) | 1,987 | 2 |
| 249 | Hinckley | D (35) | 1,964 | 13 |
| 250 | Slayton | A (95) | 1,964 | 2 |
| 251 | Lester Prairie | A (87) | 1,904 | 2 |
| 252 | Mayer | A (90) | 1,900 | 2 |
| 253 | Waterville | A (97) | 1,868 | 3 |
| 254 | Rushford | A (92) | 1,860 | 5 |
| 255 | Warroad | A (86) | 1,857 | 7 |
| 256 | Gilbert | A (98) | 1,829 | 2 |
| 257 | Silver Bay | A (96) | 1,826 | 4 |
| 258 | Kenyon | A (93) | 1,817 | 4 |
| 259 | Braham | A (89) | 1,789 | 3 |
| 260 | Moose Lake | B (74) | 1,782 | 15 |
| 261 | Osakis | B (75) | 1,780 | 9 |
| 262 | Canby | A (97) | 1,769 | 3 |
| 263 | Mapleton | A (92) | 1,756 | 5 |
| 264 | Spring Park | A (87) | 1,743 | 2 |
| 265 | Long Lake | A (94) | 1,729 | 6 |
| 266 | Ada | A (93) | 1,725 | 7 |
| 267 | Cologne | A (97) | 1,700 | 0 |
| 268 | Lakefield | A (86) | 1,694 | 6 |
| 269 | Avon | A (88) | 1,667 | 1 |
| 270 | Stacy | B (75) | 1,593 | 9 |
| 271 | Dawson | A (80) | 1,540 | 5 |
| 272 | Lewiston | B (60) | 1,520 | 16 |
| 273 | Madison | A (88) | 1,511 | 1 |
| 274 | Dassel | A (93) | 1,503 | 4 |
| 275 | Pierz | B (79) | 1,500 | 10 |
| 276 | Dundas | A (90) | 1,490 | 7 |
| 277 | Richmond | A (80) | 1,485 | 5 |
| 278 | Wheaton | A (86) | 1,465 | 6 |
| 279 | Starbuck | B (77) | 1,440 | 4 |
| 280 | St. Augusta | A (94) | 1,425 | 2 |
| 281 | Frazee | A (91) | 1,400 | 1 |
| 282 | Winnebago | A (91) | 1,391 | 2 |
| 283 | Glyndon | A (89) | 1,386 | 3 |
| 284 | Fosston | A (95) | 1,385 | 2 |
| 285 | Minneota | A (89) | 1,380 | 3 |
| 286 | Babbitt | A (90) | 1,379 | 2 |
| 287 | Appleton | B (71) | 1,376 | 21 |
| 288 | Hayfield | A (96) | 1,363 | 4 |
| 289 | Clara City | A (82) | 1,360 | 6 |
| 290 | Menahga | A (89) | 1,347 | 3 |
| 291 | Grand Marais | A (95) | 1,344 | 5 |
| 292 | Winthrop | A (90) | 1,330 | 3 |
| 293 | Red Lake Falls | A (88) | 1,328 | 12 |
| 294 | Preston | A (94) | 1,322 | 3 |
| 295 | Fulda | B (78) | 1,318 | 6 |
| 296 | Renville | A (87) | 1,301 | 2 |
| 297 | Fairfax | A (87) | 1,295 | 5 |
| 298 | Spring Grove | A (98) | 1,291 | 2 |
| 299 | Bagley | A (88) | 1,288 | 9 |
| 300 | New York Mills | A (88) | 1,287 | 4 |
| 301 | Elbow Lake | A (97) | 1,285 | 0 |
| 302 | Edgerton | B (64) | 1,281 | 9 |
| 303 | New London | A (87) | 1,277 | 9 |
| 304 | Royalton | A (93) | 1,266 | 4 |
| 305 | Cottonwood | A (88) | 1,212 | 9 |
| 306 | Adrian | A (86) | 1,211 | 7 |
| 307 | Mahnomen | A (98) | 1,210 | 2 |
| 308 | New Richland | A (84) | 1,201 | 12 |
| 309 | Goodhue | A (94) | 1,200 | 3 |
| 310 | Medford | B (75) | 1,200 | 5 |
| 311 | Pequot Lakes | A (97) | 1,200 | 3 |
| 312 | Mantorville | A (99) | 1,197 | 1 |
| 313 | Shafer | A (90) | 1,165 | 2 |
| 314 | Grand Meadow | A (93) | 1,154 | 7 |
| 315 | Carlton | A (96) | 1,146 | 1 |
| 316 | Atwater | A (93) | 1,133 | 4 |
| 317 | Hector | C (58) | 1,127 | 11 |
| 318 | Tyler | A (87) | 1,122 | 10 |
| 319 | Nicollet | A (85) | 1,117 | 4 |
| 320 | Elgin | A (83) | 1,115 | 6 |
| 321 | Truman | A (93) | 1,115 | 7 |
| 322 | Wanamingo | A (91) | 1,113 | 2 |
| 323 | Keewatin | A (92) | 1,068 | 1 |
| 324 | Taylors Falls | B (71) | 1,067 | 6 |
| 325 | Sherburn | A (92) | 1,058 | 5 |
| 326 | Eden Valley | A (94) | 1,042 | 0 |
| 327 | Harmony | A (95) | 1,042 | 2 |
| 328 | Bird Island | B (77) | 1,024 | 8 |
| 329 | Parkers Prairie | A (86) | 1,023 | 2 |
| 330 | Madison Lake | A (86) | 1,017 | 6 |