Skip to main content
WaterVerge

Iowa Water Quality Rankings

430 cities ranked · Data from EPA SDWIS

87.8
State avg score
430
Cities ranked
97%
A or B grade
2%
D or F grade
297
Health violations
111
PFAS detected

Iowa water quality overview

Iowa's drinking water quality is excellent overall, with a state average score of 87.8 out of 100 — 13.3 points above the national average of 74.5. The median city score is 89.7, reflecting how water quality is distributed across the state's 430 ranked cities. 97% of Iowa cities earned an A or B grade, indicating broadly strong water quality infrastructure. Only 4 cities received a failing grade. PFAS "forever chemicals" were detected in 111 of 430 cities (26%). Of those, 7 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 2 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. 297 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 Iowa cities scored

80%
17%
A
342
80%
Excellent
B
75
17%
Good
C
5
1%
Fair
D
4
1%
Poor
F
4
1%
Failing

Score distribution by range

199 100 0
1
5
3
4
24
194
199
0–9
10–19
20–29
30–39
40–49
50–59
60–69
70–79
80–89
90–100

State vs national average

A-
Iowa
87.8/100
B-
National avg
74.5/100
▲ 13.3 pts above national average

Water quality across Iowa

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

All 430 cities in Iowa

# City Grade Score Score Population Violations Issues
1 Asbury
A+
97.8
6K 0 Zero violations
2 Cresco
A+
97
4K 15 Unresolved
3 Rockford
A+
95.9
762 5 Health Unresolved
4 Gilman
A+
95.9
582 8 Health
5 Brooklyn
A+
95.8
2K 13 Health Unresolved
6 Bancroft
A+
95.7
711 8 Unresolved
7 Evansdale
A+
95.4
5K 5 Unresolved
8 Glenwood
A+
95.2
5K 27 Health Unresolved
9 West Bend
A+
95.2
791 9 Health Unresolved
10 Brooks
A+
95.1
3K 6 Health
11 Sumner
A+
95.1
2K 38
12 Hartley
A+
95
2K 0 Zero violations
13 Rolfe
A+
95
509 35 Unresolved
14 Charter Oak
A
94.8
522 24 Health Unresolved
15 Lenox
A
94.7
1K 6 Unresolved
16 Winfield
A
94.7
1K 5 Unresolved
17 Fairbank
A
94.5
1K 11 Health
18 Dakota City
A
94.5
769 6 Unresolved
19 Montrose
A
94.5
738 7 Health
20 Strawberry Point
A
94.4
1K 6 Health Unresolved
21 Villisca
A
94.4
1K 6 Health Unresolved
22 Redfield
A
94.4
744 8 Unresolved
23 Eagle Grove
A
94.3
4K 5 Unresolved
24 Monroe
A
94.3
2K 6 Health Unresolved
25 Dexter
A
94.3
693 9 Unresolved
26 Hopkinton
A
94.3
622 9 Unresolved
27 Melcher-Dallas
A
94.2
1K 8 Health Unresolved
28 Graettinger
A
94.2
897 9 Health Unresolved
29 Colo
A
94.2
853 7 Unresolved
30 Ainsworth
A
94.2
511 6 Health Unresolved
31 Cascade
A
94.1
2K 13 Unresolved
32 Prairie City
A
94.1
2K 8 Health Unresolved
33 Dows
A
94
526 7 Health Unresolved
34 Pocahontas
A
93.9
2K 7 Health Unresolved
35 Central City
A
93.9
1K 12 Health Unresolved
36 North English
A
93.9
1K 16 Unresolved
37 Lansing
A
93.9
983 6 Health Unresolved
38 Riceville
A
93.9
816 43 Unresolved
39 Jesup
A
93.8
3K 19 Unresolved
40 New Hartford
A
93.8
570 6 Health Unresolved
41 Collins
A
93.8
505 13 Health Unresolved
42 Elma
A
93.8
505 20 Unresolved
43 Keota
A
93.7
897 11 Health Unresolved
44 Northwood
A
93.6
2K 10 Health Unresolved
45 Carson
A
93.6
766 7 Health Unresolved
46 Murray
A
93.6
684 20 Health Unresolved
47 Huxley
A
93.5
4K 4 Health Unresolved
48 Logan
A
93.5
1K 7 Unresolved
49 New Sharon
A
93.5
1K 12 Unresolved
50 Saint Ansgar
A
93.5
1K 12 Health Unresolved
51 Hamburg
A
93.5
890 25 Unresolved
52 What Cheer
A
93.5
607 10 Health Unresolved
53 Story City
A
93.4
3K 7 Unresolved
54 Hubbard
A
93.4
860 10 Health Unresolved
55 Manilla
A
93.4
758 9 Unresolved
56 Badger
A
93.4
561 13 Health Unresolved
57 Milford
A
93.3
3K 9 Unresolved
58 Walcott
A
93.3
2K 6 Unresolved
59 Inwood
A
93.3
928 10 Health Unresolved
60 Norwalk
A
93.2
14K 10 Health Unresolved
61 Denison
A
93.2
9K 8 Unresolved
62 Spirit Lake
A
93.2
6K 5 Health Unresolved
63 Vinton
A
93.2
5K 8 Health Unresolved
64 Belmond
A
93.2
2K 16 Unresolved
65 Farley
A
93.2
2K 9 Health Unresolved
66 State Center
A
93.2
1K 13 Health Unresolved
67 Clarence
A
93.2
1K 20 Health Unresolved
68 Sabula
A
93.2
506 12 Health Unresolved
69 Durant
A
93.1
2K 4 Health
70 Van Horne
A
93.1
779 11 Health Unresolved
71 Shenandoah
A
93
5K 17 Health Unresolved
72 West Liberty
A
93
4K 15 Health Unresolved
73 New London
A
93
2K 12 Health Unresolved
74 Stuart
A
93
2K 22 Health Unresolved
75 Coon Rapids
A
93
1K 1
76 Odebolt
A
93
994 14 Health Unresolved
77 Walnut
A
93
768 16 Health Unresolved
78 Breda
A
93
500 15 Unresolved
79 Eldora
A
92.9
3K 3
80 Grand Junction
A
92.9
725 7 Health Unresolved
81 Radcliffe
A
92.9
561 28 Health Unresolved
82 Marcus
A
92.8
1K 15 Health Unresolved
83 Clive
A
92.7
19K 6 Health Unresolved
84 Toledo
A
92.7
2K 19 Health Unresolved
85 Rockwell
A
92.6
1K 12 Health Unresolved
86 Sully
A
92.6
881 26 Health Unresolved
87 Richland
A
92.6
542 17 Health Unresolved
88 Anita
A
92.5
972 7 Health Unresolved
89 Conrad
A
92.4
1K 5 Health Unresolved
90 Melbourne
A
92.4
765 5 Health Unresolved
91 Alburnett
A
92.4
675 25 Health Unresolved
92 Ely
A
92.3
2K 7 Unresolved
93 Epworth
A
92.3
2K 5 Unresolved
94 Walker
A
92.3
688 8 Unresolved
95 Bondurant
A
92.2
9K 6 Health Unresolved
96 Nevada
A
92.2
7K 22 Health Unresolved
97 Mount Vernon
A
92.2
5K 9 Unresolved
98 New Hampton
A
92.2
3K 6 Unresolved
99 Hawarden
A
92.2
3K 31 Health Unresolved
100 Winthrop
A
92.2
840 10 Unresolved
101 Lake View
A
92.1
1K 11 Health Unresolved
102 Gladbrook
A
92.1
799 10 Health Unresolved
103 Dayton
A
92.1
772 14 Health Unresolved
104 Brighton
A
92.1
600 11 Unresolved
105 Palo
A
92
1K 14 Health Unresolved
106 Calmar
A
92
1K 8 Health Unresolved
107 Wayland
A
92
966 19 Health Unresolved
108 Olin
A
92
651 12 Health Unresolved
109 Lake Park
A
91.9
1K 11 Health Unresolved
110 Sloan
A
91.9
1K 8 Unresolved
111 Wellsburg
A
91.9
721 25 Health Unresolved
112 Sheldon
A
91.8
6K 5 Unresolved
113 Sergeant Bluff
A
91.8
5K 5 Health Unresolved
114 Larchwood
A
91.8
926 19 Health Unresolved
115 Janesville
A
91.7
1K 12 Health Unresolved
116 Jefferson
A
91.6
4K 9 Health Unresolved
117 Albia
A
91.6
4K 24 Health Unresolved
118 Garner
A
91.6
3K 3 Unresolved
119 Sac City
A
91.6
2K 3 Unresolved
120 Sigourney
A
91.6
2K 3 Unresolved
121 Oakland
A
91.6
2K 3 Unresolved
122 Aurelia
A
91.6
968 3 Unresolved
123 Garnavillo
A
91.6
763 4 Unresolved
124 Schaller
A
91.6
729 9 Health Unresolved
125 Whiting
A
91.6
727 4 Unresolved
126 Lakeside
A
91.6
700 3 Unresolved
127 Goldfield
A
91.6
634 3 Unresolved
128 Grundy Center
A
91.5
3K 3 Health Unresolved
129 Traer
A
91.5
2K 12 Unresolved
130 Buffalo Center
A
91.5
857 4 Unresolved
131 Correctionville
A
91.5
766 4 Health Unresolved
132 Morning Sun
A
91.5
752 4 Health Unresolved
133 Audubon
A
91.4
2K 4 Health Unresolved
134 Earlham
A
91.4
1K 23 Health Unresolved
135 Schleswig
A
91.4
803 36 Health Unresolved
136 Mount Pleasant
A
91.3
9K 27 Health Unresolved
137 Perry
A
91.3
8K 17 Health Unresolved
138 Oelwein
A
91.3
6K 9 Health Unresolved
139 West Union
A
91.3
3K 4 Health Unresolved
140 Elk Run Heights
A
91.3
1K 6 Health Unresolved
141 Keosauqua
A
91.3
961 11 Health Unresolved
142 Adair
A
91.3
809 41 Health Unresolved
143 Anthon
A
91.3
545 7 Unresolved
144 Newton
A
91.2
17K 8 Health Unresolved
145 Humboldt
A
91.2
5K 3 Health Unresolved
146 Mount Ayr
A
91.2
2K 63 Health Unresolved
147 Crescent
A
91.2
778 14 Health Unresolved
148 Grand Mound
A
91.2
615 6 Unresolved
149 Delmar
A
91.2
542 3 Health Unresolved
150 Lake Mills
A
91.1
2K 7 Health Unresolved
151 Lake City
A
91.1
2K 48 Unresolved
152 Sanborn
A
91.1
1K 33 Unresolved
153 Fredericksburg
A
91.1
987 7 Unresolved
154 Le Grand
A
91.1
910 9 Health Unresolved
155 Merrill
A
91.1
717 58 Health Unresolved
156 Wyoming
A
91.1
523 8 Unresolved
157 Estherville
A
91
6K 2 Unresolved
158 Pleasantville
A
91
2K 4 Health Unresolved
159 Laurens
A
91
1K 3 Unresolved
160 Mapleton
A
91
1K 23 Health Unresolved
161 Lawton
A
91
943 10 Health Unresolved
162 Kellogg
A
91
617 7 Health Unresolved
163 Adel
A
90.9
6K 13 Health Unresolved
164 Preston
A
90.9
949 3 Health Unresolved
165 Fort Madison
A
90.8
11K 37 Health Unresolved
166 Independence
A
90.8
6K 11 Health Unresolved
167 Long Grove
A
90.8
838 61 Health Unresolved
168 Okoboji
A
90.7
793 18 Health Unresolved
169 Hinton
A
90.6
935 13 Health Unresolved
170 Le Mars
A
90.5
11K 17 Health Unresolved
171 Manchester
A
90.5
5K 3 Health Unresolved
172 Camanche
A
90.5
5K 17 Unresolved
173 Waukon
A
90.5
4K 4 Unresolved
174 Denver
A
90.5
2K 14 Health Unresolved
175 Dallas Center
A
90.5
2K 2 Unresolved
176 Clarksville
A
90.5
1K 8 Health Unresolved
177 Arcadia
A
90.5
525 6 Unresolved
178 Mitchellville
A
90.4
3K 11 Health Unresolved
179 Guttenberg
A
90.4
2K 8 Unresolved
180 Dike
A
90.4
1K 5 Health Unresolved
181 Paullina
A
90.4
996 6 Health Unresolved
182 Milo
A
90.4
788 25 Health Unresolved
183 La Porte City
A
90.3
2K 11 Health Unresolved
184 Greenfield
A
90.3
2K 23 Health Unresolved
185 Truro
A
90.3
525 18 Health Unresolved
186 Spencer
A
90.2
18K 16 Health Unresolved
187 Dyersville
A
90.2
4K 43 Health Unresolved
188 Decatur City
A
90.2
1K 5 Health Unresolved
189 Newell
A
90.2
906 10 Unresolved
190 Farmington
A
90.2
601 30 Health Unresolved
191 Roland
A
90.1
1K 6 Health Unresolved
192 Alden
A
90.1
763 11 Health Unresolved
193 Albert City
A
90.1
677 12 Unresolved
194 Webster City
A
90
8K 8 Health Unresolved
195 Avoca
A
90
6K 15 Health Unresolved
196 Luther
A
90
5K 20 Health Unresolved
197 Onawa
A-
90
3K 2 Unresolved
198 Springville
A
90
1K 18 Unresolved
199 Alton
A
90
1K 12 Health Unresolved
200 Kingsley
A-
89.9
1K 11 Health Unresolved
201 Gowrie
A-
89.9
954 7 Health Unresolved
202 Newhall
A-
89.9
881 15 Health Unresolved
203 Exira
A-
89.9
764 7 Health Unresolved
204 Hedrick
A-
89.9
728 9 Unresolved
205 Moulton
A-
89.9
607 2 Health Unresolved
206 Waukee
A-
89.8
32K 26 Health Unresolved
207 Clear Lake
A-
89.8
8K 22 Health Unresolved
208 May City
A-
89.8
7K 3 Unresolved
209 South Amana
A-
89.8
2K 15 Health Unresolved
210 Ogden
A-
89.8
2K 14 Health Unresolved
211 Van Meter
A-
89.8
1K 46 Health Unresolved
212 Wall Lake
A-
89.8
780 30 Health Unresolved
213 Essex
A-
89.8
722 27 Health Unresolved
214 Battle Creek
A-
89.8
700 33 Health Unresolved
215 Harlan
A-
89.7
5K 1 Unresolved
216 Ida Grove
A-
89.7
2K 18 Health Unresolved
217 Wheatland
A-
89.7
775 12 Health Unresolved
218 Kanawha
A-
89.7
658 2 Unresolved
219 Storm Lake
A-
89.6
12K 8 Health Unresolved
220 Tipton
A-
89.6
3K 2 Unresolved
221 Wilton
A-
89.6
3K 4 Unresolved
222 Hudson
A-
89.6
3K 4 Unresolved
223 Alta
A-
89.6
2K 2 Health Unresolved
224 Manly
A-
89.6
1K 2 Health Unresolved
225 George
A-
89.6
1K 26 Health Unresolved
226 Mechanicsville
A-
89.6
1K 13 Unresolved
227 Eldon
A-
89.6
927 28 Health Unresolved
228 West Point
A-
89.6
921 37 Health Unresolved
229 Earlville
A-
89.6
724 31 Health Unresolved
230 Nashua
A-
89.5
2K 21 Unresolved
231 Holstein
A-
89.5
2K 12 Health Unresolved
232 Greene
A-
89.5
994 3 Unresolved
233 Edgewood
A-
89.5
939 3 Health Unresolved
234 Cambridge
A-
89.5
832 10 Health Unresolved
235 Lowden
A-
89.4
807 4 Unresolved
236 Ossian
A-
89.4
802 3 Unresolved
237 Fairfax
A-
89.3
3K 12 Health Unresolved
238 Gilbertville
A-
89.3
794 20 Unresolved
239 Wellman
A-
89.2
2K 45 Health Unresolved
240 Bedford
A-
89.2
2K 39 Health Unresolved
241 Winterset
A-
89.1
5K 31 Health
242 Danville
A-
89.1
923 26 Health Unresolved
243 Cedar Falls
A-
89
41K 14 Health Unresolved
244 Manning
A-
89
5K 38 Health Unresolved
245 Clarion
A-
89
3K 4 Health Unresolved
246 Bellevue
A-
89
2K 36 Health Unresolved
247 Coggon
A-
89
701 41 Unresolved
248 Indianola
A-
88.9
36K 18 Health Unresolved
249 Charles City
A-
88.9
7K 4 Unresolved
250 Columbus Junction
A-
88.9
2K 7 Unresolved
251 Remsen
A-
88.9
2K 12 Health Unresolved
252 Shellsburg
A-
88.9
961 53 Health Unresolved
253 Primghar
A-
88.9
896 4 Unresolved
254 Peosta
A-
88.8
3K 65 Health Unresolved
255 Atkins
A-
88.7
2K 32 Health Unresolved
256 Tabor
A-
88.7
1K 6 Unresolved
257 Elkhart
A-
88.7
882 12 Unresolved
258 Fontanelle
A-
88.7
670 2 Unresolved
259 Seymour
A-
88.6
637 4 Unresolved
260 Red Oak
A-
88.5
6K 79 Health Unresolved
261 Shelby
A-
88.5
727 18 Health Unresolved
262 Everly
A-
88.5
575 66 Health Unresolved
263 Marshalltown
A-
88.4
28K 45 Health Unresolved
264 Emmetsburg
A-
88.3
4K 3 Health Unresolved
265 Akron
A-
88.3
2K 15 Health Unresolved
266 Maquoketa
A-
88.2
6K 38 Health Unresolved
267 Ackley
A-
88.2
2K 8 Health Unresolved
268 Dysart
A-
88.2
1K 4 Unresolved
269 Fayette
A-
88.2
1K 2 Unresolved
270 Blairstown
A-
88.1
738 9 Health Unresolved
271 Williamsburg
A-
88
3K 15 Health Unresolved
272 Dumont
A-
88
635 4 Health Unresolved
273 Colfax
A-
87.9
2K 12 Health Unresolved
274 Baxter
A-
87.9
1K 8 Unresolved
275 Sutherland
A-
87.9
629 21 Health Unresolved
276 Montezuma
A-
87.8
3K 14 Unresolved
277 Aplington
A-
87.8
1K 11 Health Unresolved
278 Minden
A-
87.8
598 10 Health Unresolved
279 Ireton
A-
87.7
6K 19 Health Unresolved
280 Shell Rock
A-
87.7
1K 2 Unresolved
281 Glidden
A-
87.7
1K 7 Unresolved
282 Waterloo
A-
87.6
70K 23 Health Unresolved
283 Sibley
A-
87.6
3K 4 Unresolved
284 Minburn
A-
87.5
13K 14 Health Unresolved
285 Cherokee
A-
87.5
10K 45 Health Unresolved
286 Hampton
A-
87.5
4K 36 Health Unresolved
287 Hull
A-
87.5
2K 3 Health Unresolved
288 Monona
A-
87.5
1K 4 Unresolved
289 Treynor
A-
87.5
1K 7
290 Allison
A-
87.5
966 4 Unresolved
291 Boyden
A-
87.5
701 5 Unresolved
292 Keokuk
A-
87.4
10K 8 Unresolved
293 Sioux Center
A-
87.4
8K 4 Unresolved
294 Corydon
A-
87.4
2K 149 Unresolved
295 Elgin
A-
87.4
685 7 Unresolved
296 Atlantic
A-
87.3
7K 2 Unresolved
297 Ventura
A-
87.3
716 3 Unresolved
298 Stratford
A-
87.3
707 13 Health Unresolved
299 Keystone
A-
87.3
599 33 Health Unresolved
300 Pella
A-
87.2
11K 85 Health Unresolved
301 Corning
A-
87.2
2K 129 Health Unresolved
302 Dunkerton
A-
87.2
842 30 Health Unresolved
303 Sheffield
A-
87.1
1K 8 Health Unresolved
304 Maxwell
A-
87.1
859 10 Unresolved
305 Whittemore
A-
87.1
522 10 Unresolved
306 Grimes
A-
87
16K 24 Health Unresolved
307 Orange City
A-
87
6K 5 Unresolved
308 Carlisle
A-
87
4K 11 Unresolved
309 Titonka
A-
87
511 4 Unresolved
310 Panora
A-
86.9
4K 100 Health Unresolved
311 Manson
A-
86.9
2K 33 Health Unresolved
312 Urbana
A-
86.7
2K 1 Unresolved
313 Griswold
A-
86.7
1K 13 Health Unresolved
314 Readlyn
A-
86.7
845 1 Unresolved
315 Agency
A-
86.7
620 1 Unresolved
316 Swea City
A-
86.7
584 1 Unresolved
317 Postville
A-
86.6
3K 8 Unresolved
318 Dunlap
A-
86.6
1K 16 Health Unresolved
319 Carter Lake
A-
86.5
4K 20 Health Unresolved
320 Bloomfield
A-
86.4
3K 88 Health Unresolved
321 Leon
A-
86.4
2K 27 Health Unresolved
322 Hills
A-
86.4
863 2 Unresolved
323 Ellsworth
A-
86.3
514 14 Health Unresolved
324 Buffalo
A-
86.2
1K 74 Health Unresolved
325 Oskaloosa
A-
86
23K 37 Health Unresolved
326 Tama
A-
86
8K 44 Health Unresolved
327 Mediapolis
A-
86
2K 15 Health Unresolved
328 Marion
A-
85.9
43K 98 Health Unresolved
329 Zearing
A-
85.9
528 28 Health Unresolved
330 Granger
A-
85.8
2K 7 Health Unresolved
331 Arnolds Park
A-
85.7
1K 1 Unresolved
332 Moville
A-
85.6
2K 75 Health Unresolved
333 Tripoli
A-
85.6
1K 2 Health Unresolved
334 Riverside
A-
85.6
1K 31 Health Unresolved
335 Guthrie Center
A-
85.5
2K 3 Health Unresolved
336 Clinton
A-
85.4
25K 2 Unresolved
337 Madrid
A-
85.4
3K 7 Health Unresolved
338 Ruthven
A-
85.4
779 1 Unresolved
339 Mason City
A-
85.3
27K 143 Health Unresolved
340 Fairfield
A-
85.3
10K 28 Health Unresolved
341 Creston
A-
85.1
28K 27 Health Unresolved
342 Des Moines
B+
85
247K 35 Health Unresolved
343 Pomeroy
A-
85
671 9 Health Unresolved
344 Middle Amana
B+
84.9
1K 6 Health Unresolved
345 Armstrong
B+
84.9
875 26 Health Unresolved
346 Rock Valley
B+
84.8
6K 34 Health Unresolved
347 Gilbert
B+
84.8
1K 40 Health Unresolved
348 Mcgregor
B+
84.8
747 21 Health Unresolved
349 Tiffin
B+
84.7
5K 25 Health Unresolved
350 Kalona
B+
84.7
3K 26 Health Unresolved
351 Elk Horn
B+
84.7
631 9 Unresolved
352 Malvern
B+
84.6
1K 17 Health Unresolved
353 Centerville
B+
84.5
38K 75 Health Unresolved
354 Burlington
B+
84.5
26K 26 Health Unresolved
355 Polk City
B+
84.5
7K 2 Unresolved
356 Nora Springs
B+
84.5
1K 3 Health Unresolved
357 Lamoni
B+
84.4
2K 27 Health Unresolved
358 Fonda
B+
84.3
636 6 Health Unresolved
359 Moravia
B+
84.1
637 15 Unresolved
360 Ottumwa
B+
84
43K 31 Health Unresolved
361 Osage
B+
84
4K 13 Health PFAS Unresolved
362 Britt
B+
84
2K 3 Unresolved
363 Altoona
B+
83.9
20K 37 Health Unresolved
364 Waverly
B+
83.7
11K 30 Health PFAS Unresolved
365 West Burlington
B+
83.7
4K 31 Health PFAS Unresolved
366 Stanwood
B+
83.6
637 4 Unresolved
367 Woodbine
B+
83.5
2K 8 Health Unresolved
368 Sioux Rapids
B+
83.4
920 25 Health Unresolved
369 Eldridge
B+
83.2
9K 51 Health Unresolved
370 Doon
B+
83.1
619 69 Health Unresolved
371 Clermont
B+
83.1
586 31 Health Unresolved
372 Delhi
B+
83
509 110 Unresolved
373 Council Bluffs
B+
82.9
64K 45 Health Unresolved
374 Donnellson
B+
82.7
885 48 Health Unresolved
375 Elkader
B+
82.6
1K 36 Unresolved
376 Slater
B+
82.5
2K 11 Health Unresolved
377 Rockwell City
B+
82.4
3K 22 Health Unresolved
378 Washington
B+
82.2
7K 96 Health Unresolved
379 Rock Rapids
B+
82.2
6K 36 Health Unresolved
380 Neola
B+
81.8
906 35 Health Unresolved
381 West Des Moines
B+
81.6
69K 31 Health Unresolved
382 Parkersburg
B+
81.6
2K 3 Unresolved
383 Ames
B+
81.5
97K 70 Health Unresolved
384 Johnston
B+
80.9
25K 45 Health Unresolved
385 Hospers
B+
80.8
4K 25 Health Unresolved
386 Lisbon
B+
80.8
2K 86 Health Unresolved
387 Lone Tree
B+
80.6
1K 17 Health Unresolved
388 Decorah
B+
80.5
8K 82 Health Unresolved
389 Wapello
B+
80.5
2K 94 Health Unresolved
390 Early
B+
80.5
587 30 Health Unresolved
391 Reinbeck
B+
80.4
2K 8 Health Unresolved
392 Urbandale
B+
80.2
46K 8 Unresolved
393 Belle Plaine
B+
80.1
2K 10 Health Unresolved
394 Carroll
B
79.8
10K 2 Unresolved
395 Forest City
B
79.8
4K 94 Health Unresolved
396 Center Point
B
79.8
3K 43 Health Unresolved
397 Woodward
B
79.8
2K 46 Health Unresolved
398 Iowa Falls
B
79.7
5K 15 Health Unresolved
399 West Branch
B
79.3
3K 18 Unresolved
400 Knoxville
B
79.2
15K 8 Health Unresolved
401 Jewell
B
79.2
1K 4 Unresolved
402 Clarinda
B
78.8
9K 78 Health Unresolved
403 Algona
B
78.8
5K 67 Health Unresolved
404 Princeton
B
78.8
923 67 Health Unresolved
405 Boone
B
78.7
13K 44 Health Unresolved
406 Sidney
B
78.4
1K 21 Health Unresolved
407 Osceola
B
78.2
6K 39 Health Unresolved
408 De Soto
B
78.2
960 25 Health Unresolved
409 Ankeny
B
77.7
77K 99 Health Unresolved
410 Sioux City
B
77.3
86K 35 Health PFAS Unresolved
411 Coralville
B
77.3
22K 104 Health Unresolved
412 Scranton
B
76.2
504 21 Health Lead Unresolved
413 Anamosa
B-
74.8
6K 35 Health Unresolved
414 Chariton
B-
74.4
4K 98 Health Unresolved
415 Hiawatha
B-
73.2
7K 64 Health Unresolved
416 Marengo
B-
71.1
2K 55 Health Unresolved
417 North Liberty
B-
70
21K 120 Health Unresolved
418 Victor
C+
68.7
875 19 Health Lead Unresolved
419 Missouri Valley
C+
66.3
3K 79 Health Unresolved
420 Oxford
C+
65.2
1K 114 Health Unresolved
421 Blue Grass
C
60.6
920 363 Health Unresolved
422 Davenport
C-
55
148K 143 Health PFAS Unresolved
423 Grinnell
D+
54.5
10K 23 Health Unresolved
424 Fort Dodge
D+
50.4
27K 271 Health Unresolved
425 Monticello
D
46
4K 265 Health Unresolved
426 Cedar Rapids
D
45.5
142K 365 Health Unresolved
427 Solon
F
44
4K 364 Health Unresolved
428 Dubuque
F
42.5
60K 354 Health PFAS Unresolved
429 Iowa City
F
42
97K 691 Health Unresolved
430 Muscatine
F
36.9
27K 320 Health PFAS Unresolved