WaterVerge

Minnesota Water Quality Report

466 cities tested · Average grade: A- · 4.7M people served

Cities Tested
466
Avg Score
87.5
Population Served
4.7M
Avg Grade
A-
Live Water Alerts for Minnesota →
Analysis

Minnesota water quality overview

Minnesota's drinking water quality is excellent overall, with an average score of 87.5 out of 100 across 466 cities tested. The median score is 89.5, serving a total population of 4,658,468 residents. 94% of cities earned an A or B grade, indicating broadly strong water quality infrastructure across the state. PFAS "forever chemicals" were detected in 144 of 466 cities tested (31%). 16 cities exceed the 2024 EPA maximum contaminant levels. 6 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: 428 cities use groundwater while 38 draw from surface water such as rivers, lakes, and reservoirs.

Key Concerns

Issues to watch in Minnesota

144 cities
PFAS Detected
31% of tested cities have PFAS in their water supply.
6 cities
Lead Exceedances
Lead levels above the EPA action level of 15 ppb (90th percentile).
217 cities
Health Violations
6,531 total violations recorded, 375 with unresolved issues.
2 cities
Failing Systems
Received a grade of F, indicating serious water quality issues.
State context
25
Superfund sites in Minnesota
EPA National Priorities List
98.8%
of Minnesota residents on fluoridated water
CDC, 2020
1,315,889
lbs released to surface water
Top 10 TRI facilities, 2023
17.7%
of Minnesota domestic wells exceed EPA arsenic limit
USGS, 1,195 samples · 10 µg/L MCL
Domestic well chemistry

Private-well water in Minnesota

Based on USGS Powell Domestic-Well Database — 3,805 private wells sampled across Minnesota. 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.

2.8 µg/L
Median arsenic in domestic wells
P90 16.3 µg/L · max 340.0 µg/L
110 µg/L
Median manganese in domestic wells
28.5% exceed 300 µg/L aesthetic limit
Industrial pollution

Top industrial water polluters in Minnesota

Industrial polluters nearby

The 10 facilities reporting the most pounds released to surface water in Minnesota, 2023.

Total reported releases to surface water: 1,315,889 lbs

FacilityTop chemicalTo surface water (lbs/yr)
3M CHEMICAL OPERATIONS' COTTAGE GROVE FACILITY
Chemicals · 3M CO
COTTAGE GROVE, MN55016
Nitrate compounds (water dissociable; reportable only when in aqueous solution)579,662
FLINT HILLS RESOURCES PINE BEND LLC
Petroleum · KOCH INC
ROSEMOUNT, MN55068
Nitrate compounds (water dissociable; reportable only when in aqueous solution)220,055
SOUTHERN MINNESOTA BEET SUGAR COOPERATIVE
Food · SOUTHERN MINNESOTA BEET SUGAR COOPERATIVE
RENVILLE, MN56284
Nitrate compounds (water dissociable; reportable only when in aqueous solution)166,013
ST PAUL PARK REFINING CO LLC
Petroleum · MARATHON PETROLEUM CORP
SAINT PAUL PARK, MN55071
Nitrate compounds (water dissociable; reportable only when in aqueous solution)120,920
M G WALDBAUM
Food · MICHAEL FOODS INC
GAYLORD, MN55334
Nitrate compounds (water dissociable; reportable only when in aqueous solution)88,060

+ 5 more facilities

Source: EPA Toxic Release Inventory (TRI) 2023

Grade Distribution

How Minnesota cities scored

A: 357 B: 83 C: 15 D: 9 F: 2
City Map

Water quality across Minnesota

Each dot is a city, colored by its water quality grade. Size reflects population served. Click any city to view its full water report.

All Cities

466 cities in Minnesota

# City Grade Score Population Violations
1 St. Francis A+
99.6
5K 5
2 Otsego A+
99.4
19K 4
3 Floodwood A+
99.3
501 5
4 Isanti A+
99
7K 6
5 Hermantown A+
98.5
7K 0
6 Elgin A+
98.5
1K 6
7 Montevideo A+
98
5K 5
8 Ranier A+
97.9
565 2
9 Hugo A+
97.7
12K 0
10 St. Peter A+
97.7
12K 4
11 Elko-New Market A+
97.2
5K 10
12 Ramsey A+
97.1
18K 2
13 Lakeland A+
97.1
4K 1
14 Corcoran A+
97
3K 0
15 Mantorville A+
97
1K 1
16 Walnut Grove A+
97
825 1
17 Ottertail A+
97
694 0
18 Adams A+
97
672 0
19 Ivanhoe A+
97
559 0
20 Wyoming A+
96.9
4K 6
21 Cohasset A+
96.9
1K 2
22 Richfield A+
96.8
37K 1
23 Andover A+
96.8
21K 4
24 Atwater A+
96.8
1K 4
25 Hallock A+
96.7
850 5
26 Cleveland A+
96.7
719 2
27 Brownsdale A+
96.7
682 4
28 Mcintosh A+
96.7
584 2
29 Stephen A+
96.7
568 7
30 East Bethel A+
96.7
500 2
31 Rockville A+
96.6
765 4
32 Rollingstone A+
96.5
664 1
33 Nicollet A+
96.4
1K 4
34 Houston A+
96.4
997 5
35 Verndale A+
96.4
506 3
36 Mabel A+
96.3
715 5
37 Marble A+
96.3
699 5
38 Taylors Falls A+
96.2
1K 6
39 Kerkhoven A+
96.1
806 3
40 Laprairie A+
96.1
520 2
41 Crystal A+
96
23K 1
42 Mounds View A+
96
13K 0
43 Belle Plaine A+
95.8
7K 5
44 Taconite A+
95.8
644 7
45 Zimmerman A+
95.7
7K 11
46 Rogers A+
95.3
15K 6
47 Baxter A+
95.3
9K 2
48 Wadena A+
95
4K 1
49 Carlton A+
95
1K 1
50 Leroy A+
95
959 0
51 Browerville A+
95
836 0
52 Dayton A
94.9
5K 4
53 Oronoco A
94.9
2K 6
54 Robbinsdale A
94.8
15K 0
55 Westbrook A
94.8
785 2
56 New Brighton A
94.6
23K 5
57 Elk River A
94.6
20K 4
58 Stewartville A
94.6
7K 4
59 Byron A
94.6
6K 4
60 Cannon Falls A
94.6
4K 3
61 Red Wing A
94.5
17K 7
62 Mapleton A
94.5
2K 6
63 Walker A
94.5
1K 6
64 Cokato A
94.4
3K 7
65 Birchwood A
94.4
864 8
66 Lacrescent A
94.3
5K 4
67 Barnesville A
94.3
3K 8
68 Spring Valley A
94.3
3K 6
69 Lake Crystal A
94.3
3K 5
70 Ada A
94.3
2K 8
71 Dassel A
94.3
2K 5
72 Deer River A
94.2
942 5
73 Dodge Center A
94.1
3K 13
74 Clara City A
94.1
1K 7
75 Red Lake Falls A
94.1
1K 13
76 Adrian A
94.1
1K 8
77 Browns Valley A
94.1
566 5
78 Glencoe A
94
6K 2
79 Pipestone A
94
4K 3
80 Two Harbors A
94
4K 5
81 Sleepy Eye A
94
4K 0
82 Perham A
94
3K 4
83 Tyler A
94
1K 11
84 Norwood Young America A
93.9
4K 3
85 Hinckley A
93.9
2K 13
86 Hayfield A
93.9
1K 5
87 Roseville A
93.8
36K 0
88 Melrose A
93.8
4K 11
89 Mountain Iron A
93.8
3K 5
90 Winsted A
93.8
2K 5
91 Cottonwood A
93.8
1K 9
92 Green Isle A
93.8
599 7
93 Excelsior A
93.7
5K 11
94 Richmond A
93.7
1K 5
95 Bloomington A
93.6
91K 5
96 Jordan A
93.5
7K 10
97 Lonsdale A
93.5
4K 11
98 Sebeka A
93.4
939 16
99 Littlefork A
93.4
542 5
100 New London A
93.3
1K 10
101 Oak Park Heights A
93.2
5K 5
102 Bird Island A
93.2
1K 9
103 Claremont A
93.2
773 10
104 Lake City A
93.1
5K 11
105 Bayport A
93.1
3K 13
106 Spring Grove A
93.1
1K 3
107 Holdingford A
93.1
770 2
108 Brooklyn Center A
93
34K 0
109 Arden Hills A
93
10K 14
110 Cold Spring A
93
4K 15
111 Wells A
93
2K 1
112 Cologne A
93
2K 0
113 Eden Valley A
93
1K 0
114 Twin Valley A
93
707 1
115 Clarks Grove A
93
695 0
116 Minnesota Lake A
93
683 0
117 Evansville A
93
603 0
118 Waverly A
92.9
2K 1
119 Menahga A
92.9
1K 3
120 New Richland A
92.9
1K 13
121 Watkins A
92.9
958 2
122 Fertile A
92.9
789 1
123 Freeport A
92.9
685 2
124 Hills A
92.9
685 1
125 Motley A
92.9
680 1
126 Randall A
92.9
650 1
127 Kasson A
92.8
7K 3
128 Chisago City A
92.8
4K 8
129 Annandale A
92.8
3K 3
130 New York Mills A
92.8
1K 4
131 Cambridge A
92.7
10K 2
132 North Branch A
92.7
6K 2
133 St. Charles A
92.7
4K 2
134 Lewiston A
92.7
2K 17
135 Glyndon A
92.7
1K 3
136 Anoka A
92.5
18K 23
137 Hamel A
92.5
4K 6
138 Kenyon A
92.5
2K 5
139 Owatonna A
92.4
26K 3
140 Hutchinson A
92.3
15K 6
141 Bagley A
92.3
1K 10
142 Deerwood A
92.3
805 13
143 Good Thunder A
92.3
583 6
144 Lesueur A
92.2
4K 4
145 Benson A
92.2
3K 3
146 Minnetonka A
92
54K 0
147 Henderson A
92
886 10
148 Cosmos A
92
513 5
149 Big Lake A
91.9
12K 6
150 Mahtomedi A
91.8
8K 3
151 Becker A
91.8
5K 4
152 Goodhue A
91.8
1K 3
153 Edgerton A
91.7
1K 10
154 Forest Lake A
91.6
12K 6
155 Montrose A
91.6
4K 3
156 Eyota A
91.6
2K 3
157 Waterville A
91.6
2K 4
158 Canby A
91.6
2K 4
159 Fosston A
91.6
1K 3
160 Mahnomen A
91.6
1K 3
161 Blooming Prairie A
91.5
2K 3
162 Wanamingo A
91.5
1K 3
163 Lanesboro A
91.5
727 4
164 Geneva A
91.5
538 5
165 Shoreview A
91.4
26K 4
166 Maple Lake A
91.4
2K 5
167 Springfield A
91.4
2K 4
168 Battle Lake A
91.4
918 4
169 Courtland A
91.4
635 3
170 Hamburg A
91.4
530 4
171 Brewster A
91.4
506 4
172 Dundas A
91.3
2K 9
173 Appleton A
91.3
1K 22
174 Grand Meadow A
91.3
1K 8
175 Altura A
91.3
553 5
176 Long Prairie A
91.2
4K 6
177 Long Lake A
91.2
2K 7
178 Champlin A
91.1
24K 2
179 Little Falls A
91.1
9K 3
180 Truman A
91.1
1K 8
181 Stockton A
91.1
697 3
182 Waseca A
91
9K 2
183 East Grand Forks A
91
9K 3
184 Delano A
91
7K 6
185 St. James A
91
5K 2
186 St. Clair A
91
846 2
187 Trimont A
91
734 0
188 Osseo A
90.9
3K 7
189 Keewatin A
90.9
1K 2
190 Morgan A
90.9
896 4
191 Kasota A
90.9
704 18
192 Grove City A
90.9
635 1
193 Audubon A
90.9
570 3
194 Hokah A
90.9
555 3
195 Minnetrista A
90.8
6K 6
196 Park Rapids A
90.8
4K 26
197 Mountain Lake A
90.8
2K 7
198 International Falls A
90.7
6K 2
199 Sherburn A
90.7
1K 6
200 Brooten A
90.6
646 5
201 Caledonia A
90.4
3K 5
202 Hoyt Lakes A
90.4
2K 3
203 Pine River A
90.4
939 5
204 Bovey A
90.4
821 5
205 Cook A
90.4
574 5
206 Coon Rapids A
90.3
64K 5
207 Jeffers A
90.3
6K 7
208 North St. Paul A
90.2
13K 5
209 Shafer A
90.2
1K 8
210 Silver Lake A
90.2
850 8
211 Madelia A
90.1
2K 6
212 Winona A
90
32K 25
213 New Prague A-
90
8K 5
214 Blue Earth A-
90
3K 2
215 Stacy A
90
2K 10
216 Spring Lake Park A-
89.9
7K 9
217 Sauk Centre A-
89.9
5K 6
218 Hampton A-
89.9
811 13
219 Balaton A-
89.9
639 2
220 Farmington A-
89.8
27K 4
221 Ortonville A-
89.8
2K 12
222 Biwabik A-
89.8
975 4
223 Plainview A-
89.7
3K 1
224 Staples A-
89.7
3K 2
225 Wabasha A-
89.7
3K 2
226 Collegeville A-
89.7
3K 7
227 Rice A-
89.7
2K 2
228 Nashwauk A-
89.7
971 2
229 Hancock A-
89.7
845 2
230 Dover A-
89.7
792 2
231 Minnetonka Beach A-
89.7
547 2
232 Harmony A-
89.6
1K 3
233 Maplewood A-
89.6
515 11
234 Aurora A-
89.5
3K 7
235 Wheaton A-
89.5
1K 7
236 Hector A-
89.5
1K 12
237 Warren A-
89.4
5K 18
238 Sabin A-
89.4
629 7
239 Circle Pines A-
89.3
6K 4
240 Halstad A-
89.3
550 4
241 Plymouth A-
89.2
81K 6
242 North Mankato A-
89.2
14K 4
243 Aitkin A-
89.2
2K 10
244 Burnsville A-
89.1
62K 2
245 Savage A-
89
30K 7
246 Luverne A-
89
8K 11
247 Willernie A-
89
525 11
248 Minneota A-
88.9
1K 4
249 Renville A-
88.9
1K 2
250 Barnum A-
88.9
621 13
251 Eagan A-
88.8
68K 2
252 Fairmont A-
88.8
10K 6
253 Slayton A-
88.8
2K 12
254 Silver Bay A-
88.8
2K 4
255 Northfield A-
88.7
23K 13
256 New Hope A-
88.7
21K 2
257 Buffalo A-
88.7
17K 2
258 Virginia A-
88.7
8K 1
259 Carver A-
88.7
7K 3
260 Blackduck A-
88.7
826 4
261 Duluth A-
88.6
88K 4
262 Sartell A-
88.6
20K 3
263 Lakeville A-
88.5
68K 22
264 Golden Valley A-
88.5
23K 4
265 Lakefield A-
88.5
2K 7
266 Dawson A-
88.5
2K 6
267 Grand Marais A-
88.5
1K 8
268 Oak Grove A-
88.5
623 4
269 Mazeppa A-
88.4
937 14
270 Wabasso A-
88.3
815 14
271 Hoffman A-
88.3
703 6
272 Fridley A-
88.2
29K 7
273 Medford A-
88.2
2K 13
274 Clearwater A-
88.1
2K 10
275 Starbuck A-
88.1
1K 5
276 Buhl A-
88.1
1K 6
277 Mora A-
88
4K 6
278 Cloquet A-
87.9
14K 40
279 Clarkfield A-
87.9
841 10
280 Blaine A-
87.8
72K 13
281 Albert Lea A-
87.8
19K 3
282 Lindstrom A-
87.8
5K 22
283 Pine Island A-
87.8
3K 4
284 Braham A-
87.8
2K 3
285 Pierz A-
87.8
2K 10
286 St. Cloud A-
87.7
72K 15
287 Lyle A-
87.7
521 7
288 Zumbrota A-
87.6
3K 4
289 Olivia A-
87.6
2K 4
290 Lester Prairie A-
87.6
2K 3
291 Lake Benton A-
87.5
14K 22
292 Shorewood A-
87.5
4K 1
293 Chatfield A-
87.5
3K 5
294 Maple Plain A-
87.5
2K 3
295 Winnebago A-
87.5
1K 3
296 Graceville A-
87.4
653 6
297 Butterfield A-
87.4
586 3
298 Centerville A-
87.3
4K 3
299 Pequot Lakes A-
87.3
1K 10
300 Watertown A-
87.2
5K 22
301 Foley A-
87.2
3K 9
302 Newport A-
87.1
4K 3
303 Baudette A-
87.1
1K 24
304 Clinton A-
87.1
520 8
305 Eden Prairie A-
87
64K 2
306 Princeton A-
87
5K 12
307 Dilworth A-
87
5K 8
308 Proctor A-
87
3K 3
309 Mayer A-
87
2K 3
310 Madison Lake A-
87
1K 7
311 Karlstad A-
87
713 6
312 St. Augusta A-
86.9
1K 2
313 Mound A-
86.8
9K 7
314 Litchfield A-
86.8
7K 11
315 Sandstone A-
86.8
3K 10
316 Chisholm A-
86.7
5K 1
317 Paynesville A-
86.7
3K 1
318 Brownton A-
86.7
722 1
319 Elmore A-
86.7
663 1
320 Loretto A-
86.7
637 1
321 Roseau A-
86.6
3K 14
322 Janesville A-
86.6
2K 3
323 Gilbert A-
86.6
2K 3
324 Henning A-
86.5
882 18
325 Tower A-
86.5
872 11
326 Victoria A-
86.3
11K 10
327 Hawley A-
86.3
3K 19
328 Welcome A-
86.3
653 3
329 Breckenridge A-
86.2
3K 3
330 Pillager A-
86.2
523 1
331 Rothsay A-
86.2
503 1
332 Cottage Grove A-
86.1
40K 14
333 Albertville A-
86.1
36K 4
334 Eveleth A-
86.1
4K 16
335 Willmar A-
86
21K 8
336 Wayzata A-
86
5K 2
337 Hilltop A-
85.9
880 1
338 Hill City A-
85.9
633 2
339 Parkers Prairie A-
85.8
1K 2
340 St. Louis Park A-
85.7
51K 26
341 White Bear Lake A-
85.7
37K 10
342 Spicer A-
85.7
3K 19
343 Gaylord A-
85.7
2K 2
344 Arlington A-
85.7
2K 7
345 Madison A-
85.7
2K 2
346 Babbitt A-
85.7
1K 3
347 Kimball A-
85.7
911 2
348 Belgrade A-
85.7
745 2
349 Lake Park A-
85.6
729 2
350 Clear Lake A-
85.6
669 14
351 Clarissa A-
85.6
662 2
352 Jasper A-
85.6
623 2
353 St. Joseph A-
85.4
9K 17
354 St. Paul Park A-
85.3
5K 2
355 Lamberton A-
85.3
828 8
356 Raymond A-
85.2
765 2
357 Windom B+
85
5K 8
358 St. Bonifacius A-
85
3K 14
359 Hopkins B+
84.9
19K 2
360 Chaska B+
84.8
31K 16
361 Vadnais Heights B+
84.8
13K 1
362 Redwood Falls B+
84.8
5K 4
363 Crosby B+
84.8
2K 15
364 Maple Grove B+
84.7
75K 2
365 Waconia B+
84.7
13K 3
366 Montgomery B+
84.6
3K 4
367 Apple Valley B+
84.5
50K 1
368 Faribault B+
84.5
26K 16
369 Columbia Heights B+
84.5
22K 4
370 Coleraine B+
84.4
2K 6
371 New Ulm B+
84.2
14K 10
372 Pine City B+
84.2
4K 14
373 Warroad B+
84.1
3K 69
374 Jackson B+
84
3K 2
375 Preston B+
84
1K 25
376 Buffalo Lake B+
84
703 10
377 Moose Lake B+
83.8
3K 29
378 Frazee B+
83.7
1K 2
379 Lake Bronson B+
83.5
3K 4
380 Edina B+
83.2
54K 23
381 Heron Lake B+
83.1
691 5
382 Oakdale B+
83
29K 4
383 Lexington B+
82.9
3K 28
384 Elysian B+
82.9
656 8
385 Brainerd B+
82.8
15K 50
386 Worthington B+
82.8
14K 1
387 Marshall B+
82.7
14K 2
388 Eagle Lake B+
82.7
3K 1
389 Elbow Lake B+
82.7
1K 1
390 Hendricks B+
82.7
650 1
391 Kandiyohi B+
82.7
560 1
392 Bertha B+
82.7
557 3
393 Eagle Bend B+
82.7
542 1
394 Milaca B+
82.6
3K 21
395 Brandon B+
82.6
501 2
396 Moorhead B+
82.5
45K 1
397 Argyle B+
82.5
533 3
398 Grand Rapids B+
82.4
12K 20
399 Orono B+
82.4
3K 3
400 West Concord B+
82.4
773 3
401 Greenbush B+
82.2
680 6
402 Rosemount B+
82
27K 3
403 Waite Park B+
81.7
8K 1
404 Brooklyn Park B+
81.5
91K 24
405 Prior Lake B+
81.5
51K 83
406 Fairfax B+
81.5
1K 6
407 South St. Paul B+
81.3
21K 10
408 Austin B+
81.2
26K 57
409 Rushford B+
81.1
2K 6
410 Winthrop B+
81.1
1K 4
411 Chanhassen B+
81
25K 2
412 Ulen B+
81
500 1
413 Ham Lake B+
80.6
1K 36
414 Woodbury B+
80.5
83K 5
415 Sauk Rapids B+
80.5
14K 25
416 Welch B+
80.5
7K 87
417 Albany B+
80.5
3K 12
418 Morristown B+
80.5
1K 8
419 Isle B+
80.4
845 26
420 Lafayette B+
80.4
504 5
421 Ironton B+
80.1
578 2
422 Tracy B+
80
2K 4
423 Lake Elmo B
79.8
13K 23
424 Alexandria B
79
15K 21
425 Spring Park B
78.4
2K 3
426 Shakopee B
77
48K 39
427 Howard Lake B
76.5
2K 9
428 Monticello B
75.8
16K 25
429 Ely B-
74.8
3K 8
430 Alden B-
74.6
661 6
431 Fulda B-
74.4
1K 7
432 Avon B-
73.9
2K 19
433 St. Paul B-
73.3
403K 37
434 Osakis B-
73.3
2K 15
435 Crookston B-
73
7K 1
436 Minneapolis B-
72.8
436K 43
437 Le Center B-
72.6
3K 26
438 Thief River Falls B-
72.2
9K 54
439 Granite Falls B-
72
5K 63
440 Royalton B-
70.2
1K 162
441 Rochester C+
69.7
125K 44
442 Glenville C+
69.7
566 23
443 Hastings C+
69.4
24K 24
444 Glenwood C+
68.6
3K 26
445 Morton C+
68
4K 138
446 Stillwater C+
67.6
21K 34
447 Amboy C+
67.2
535 20
448 Lino Lakes C+
66.8
19K 7
449 Ellendale C+
66.7
737 19
450 Gibbon C
64.9
890 21
451 Fergus Falls C
64.2
14K 18
452 Hibbing C
62.9
16K 11
453 Bemidji C
62.9
16K 66
454 Detroit Lakes C-
56.6
10K 75
455 Cass Lake C-
56.1
4K 142
456 Rush City D+
50.8
3K 38
457 Pelican Rapids D+
50.8
3K 36
458 Red Lake D+
50
2K 219
459 Inver Grove Heights D
47.2
35K 49
460 Lancaster D
47
511 55
461 Morris D
46
5K 25
462 Nett Lake D
46
3K 358
463 White Earth D
46
1K 767
464 Onamia D
45
6K 211
465 Mankato F
40.5
44K 83
466 Grand Portage F
35
820 513
Counties

Browse Minnesota counties

Aitkin 2 cities · avg 87.6 Anoka 17 cities · avg 88.5 Becker 4 cities · avg 79.2 Beltrami 2 cities · avg 75.8 Benton 3 cities · avg 85.8 Big Stone 3 cities · avg 88.1 Blue Earth 8 cities · avg 81.2 Brown 3 cities · avg 89.9 Carlton 4 cities · avg 88.9 Carver 10 cities · avg 87.8 Cass 4 cities · avg 81.8 Chippewa 2 cities · avg 96 Chisago 8 cities · avg 87.2 Clay 7 cities · avg 87.6 Clearwater 1 city · avg 92.3 Cook 1 city · avg 88.5 Cottonwood 4 cities · avg 90.2 Crow Wing 6 cities · avg 87.1 Dakota 10 cities · avg 81 Dodge 6 cities · avg 92.2 Douglas 4 cities · avg 82 Faribault 5 cities · avg 90 Fillmore 7 cities · avg 89.2 Freeborn 5 cities · avg 83.3 Goodhue 7 cities · avg 91.5 Grant 2 cities · avg 85.5 Hennepin 34 cities · avg 88.8 Houston 5 cities · avg 93 Hubbard 1 city · avg 90.8 Isanti 3 cities · avg 93.2 Itasca 10 cities · avg 91.7 Jackson 3 cities · avg 85.2 Kanabec 1 city · avg 88 Kandiyohi 6 cities · avg 88.3 Kittson 4 cities · avg 78.5 Koochiching 3 cities · avg 94 Lac Qui Parle 2 cities · avg 87.1 Lake 2 cities · avg 91.4 Lake Of The Woods 1 city · avg 87.1 Le Sueur 8 cities · avg 87.7 Lincoln 4 cities · avg 90.3 Lyon 5 cities · avg 87.1 Mahnomen 1 city · avg 91.6 Marshall 3 cities · avg 89.5 Martin 5 cities · avg 89.6 Mcleod 6 cities · avg 90.8 Meeker 6 cities · avg 91.6 Mille Lacs 4 cities · avg 73.8 Morrison 5 cities · avg 87 Mower 6 cities · avg 91.5 Murray 2 cities · avg 81.6 Nicollet 5 cities · avg 91 Nobles 3 cities · avg 89.4 Norman 3 cities · avg 92.2 Olmsted 6 cities · avg 89.2 Otter Tail 8 cities · avg 82.8 Pennington 1 city · avg 72.2 Pine 3 cities · avg 88.3 Pipestone 3 cities · avg 90.4 Polk 5 cities · avg 89 Pope 2 cities · avg 78.3 Ramsey 10 cities · avg 89.2 Red Lake 1 city · avg 94.1 Redwood 5 cities · avg 89.3 Renville 7 cities · avg 84.7 Rice 5 cities · avg 87.7 Rock 2 cities · avg 91 Roseau 3 cities · avg 84.3 Scott 6 cities · avg 89 Sherburne 5 cities · avg 91.9 Sibley 6 cities · avg 83.9 St. Louis 18 cities · avg 87.4 Stearns 19 cities · avg 88.2 Steele 4 cities · avg 84.7 Stevens 2 cities · avg 67.8 Swift 3 cities · avg 93.2 Todd 6 cities · avg 87.8 Traverse 2 cities · avg 91.8 Wabasha 5 cities · avg 91.9 Wadena 4 cities · avg 94.4 Waseca 3 cities · avg 90.2 Washington 15 cities · avg 87.8 Watonwan 3 cities · avg 89.5 Wilkin 2 cities · avg 86.2 Winona 6 cities · avg 92.4 Wright 12 cities · avg 89.1 Yellow Medicine 3 cities · avg 83.8
ZIP Codes

Browse Minnesota by ZIP code

Look up water quality by ZIP code to find the systems serving your area.

View all Minnesota ZIP codes →
FAQ

Frequently asked questions about Minnesota's water

Is Minnesota's tap water safe to drink?

Minnesota's water quality varies by city. The statewide average grade is A- (87.5/100). 94% of cities scored an A or B, while 2% received a D or F. Check your specific city for detailed results.

Which Minnesota cities have the best water quality?

The top-rated cities are St. Francis (A+), Otsego (A+), Floodwood (A+). These cities scored highest based on violation history, lead levels, PFAS contamination, and regulatory compliance.

Which Minnesota cities have the worst water quality?

The lowest-rated cities are Grand Portage (F), Mankato (F), Onamia (D). We recommend residents in these areas consider water filtration and review their city's specific contaminant data.

How many Minnesota cities have PFAS in their water?

144 out of 466 cities tested positive for PFAS "forever chemicals" (31%). 16 cities exceed the 2024 EPA maximum contaminant levels. Reverse osmosis or activated carbon filters can help reduce PFAS exposure.

Do any Minnesota cities have dangerous lead levels?

6 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.

Share this reportHelp others learn about their water quality
WhatsAppXFacebookLinkedInEmail