WaterVerge

Iowa Water Quality Rankings

436 cities ranked · Data from EPA SDWIS

87.5
State avg score
436
Cities ranked
96%
A or B grade
2%
D or F grade
303
Health violations
112
PFAS detected

Iowa water quality overview

Iowa's drinking water quality is excellent overall, with a state average score of 87.5 out of 100 — 13.3 points above the national average of 74.2. The median city score is 89.6, reflecting how water quality is distributed across the state's 436 ranked cities. 96% of Iowa cities earned an A or B grade, indicating broadly strong water quality infrastructure. Only 5 cities received a failing grade. PFAS "forever chemicals" were detected in 112 of 436 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. 303 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

79%
17%
A
344
79%
Excellent
B
76
17%
Good
C
6
1%
Fair
D
5
1%
Poor
F
5
1%
Failing

Score distribution by range

198 99 0
1
7
3
5
24
198
198
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.5/100
B-
National avg
74.2/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 436 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
15K 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 Colo
A
94.2
853 7 Unresolved
29 Ainsworth
A
94.2
511 6 Health Unresolved
30 Cascade
A
94.1
2K 13 Unresolved
31 Prairie City
A
94.1
2K 8 Health Unresolved
32 Dows
A
94
526 7 Health Unresolved
33 Pocahontas
A
93.9
2K 7 Health Unresolved
34 Central City
A
93.9
1K 12 Health Unresolved
35 North English
A
93.9
1K 16 Unresolved
36 Lansing
A
93.9
983 6 Health Unresolved
37 Riceville
A
93.9
816 43 Unresolved
38 Jesup
A
93.8
3K 19 Unresolved
39 New Hartford
A
93.8
570 6 Health Unresolved
40 Collins
A
93.8
505 13 Health Unresolved
41 Elma
A
93.8
505 20 Unresolved
42 Keota
A
93.7
897 11 Health Unresolved
43 Northwood
A
93.6
2K 10 Health Unresolved
44 Carson
A
93.6
766 7 Health Unresolved
45 Murray
A
93.6
684 20 Health Unresolved
46 Huxley
A
93.5
5K 4 Health Unresolved
47 Logan
A
93.5
1K 7 Unresolved
48 New Sharon
A
93.5
1K 12 Unresolved
49 Saint Ansgar
A
93.5
1K 12 Health Unresolved
50 Hamburg
A
93.5
890 25 Unresolved
51 What Cheer
A
93.5
607 10 Health Unresolved
52 Story City
A
93.4
3K 7 Unresolved
53 Hubbard
A
93.4
860 10 Health Unresolved
54 Manilla
A
93.4
758 9 Unresolved
55 Badger
A
93.4
561 13 Health Unresolved
56 Milford
A
93.3
3K 9 Unresolved
57 Walcott
A
93.3
2K 6 Unresolved
58 Inwood
A
93.3
928 10 Health Unresolved
59 Norwalk
A
93.2
15K 10 Health Unresolved
60 Denison
A
93.2
12K 8 Unresolved
61 Graettinger
A
93.2
9K 9 Health 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
2K 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
11K 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 Independence
A
90.8
6K 11 Health Unresolved
166 Long Grove
A
90.8
988 61 Health Unresolved
167 Okoboji
A
90.7
793 18 Health Unresolved
168 Hinton
A
90.6
935 13 Health Unresolved
169 Le Mars
A
90.5
11K 17 Health Unresolved
170 Manchester
A
90.5
5K 3 Health Unresolved
171 Camanche
A
90.5
5K 17 Unresolved
172 Waukon
A
90.5
4K 4 Unresolved
173 Denver
A
90.5
2K 14 Health Unresolved
174 Dallas Center
A
90.5
2K 2 Unresolved
175 Clarksville
A
90.5
1K 8 Health Unresolved
176 Arcadia
A
90.5
525 6 Unresolved
177 Mitchellville
A
90.4
3K 11 Health Unresolved
178 Guttenberg
A
90.4
2K 8 Unresolved
179 Dike
A
90.4
1K 5 Health Unresolved
180 Paullina
A
90.4
996 6 Health Unresolved
181 Milo
A
90.4
788 25 Health Unresolved
182 Greenfield
A
90.3
4K 23 Health Unresolved
183 La Porte City
A
90.3
2K 11 Health Unresolved
184 Truro
A
90.3
525 18 Health Unresolved
185 Spencer
A
90.2
18K 16 Health Unresolved
186 Dyersville
A
90.2
4K 43 Health Unresolved
187 Decatur City
A
90.2
1K 5 Health Unresolved
188 Newell
A
90.2
906 10 Unresolved
189 Farmington
A
90.2
601 30 Health Unresolved
190 Roland
A
90.1
1K 6 Health Unresolved
191 Alden
A
90.1
763 11 Health Unresolved
192 Albert City
A
90.1
677 12 Unresolved
193 Webster City
A
90
8K 8 Health Unresolved
194 Avoca
A
90
6K 15 Health Unresolved
195 Luther
A
90
5K 20 Health Unresolved
196 Onawa
A-
90
3K 2 Unresolved
197 Springville
A
90
1K 18 Unresolved
198 Alton
A
90
1K 12 Health Unresolved
199 Kingsley
A-
89.9
1K 11 Health Unresolved
200 Gowrie
A-
89.9
954 7 Health Unresolved
201 Newhall
A-
89.9
881 15 Health Unresolved
202 Exira
A-
89.9
764 7 Health Unresolved
203 Hedrick
A-
89.9
728 9 Unresolved
204 Moulton
A-
89.9
607 2 Health Unresolved
205 Waukee
A-
89.8
33K 26 Health Unresolved
206 Fort Madison
A-
89.8
23K 37 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
3K 15 Health Unresolved
210 Wall Lake
A-
89.8
2K 30 Health Unresolved
211 Ogden
A-
89.8
2K 14 Health Unresolved
212 Van Meter
A-
89.8
2K 46 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
3K 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
1K 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
9K 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
29K 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 Sutherland
A-
87.9
3K 21 Health Unresolved
274 Colfax
A-
87.9
2K 12 Health Unresolved
275 Baxter
A-
87.9
1K 8 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 Hazleton
A-
87.4
803 37 Health Unresolved
296 Elgin
A-
87.4
685 7 Unresolved
297 Atlantic
A-
87.3
7K 2 Unresolved
298 Stratford
A-
87.3
7K 13 Health Unresolved
299 Ventura
A-
87.3
716 3 Unresolved
300 Keystone
A-
87.3
599 33 Health Unresolved
301 Pella
A-
87.2
11K 85 Health Unresolved
302 Corning
A-
87.2
2K 129 Health Unresolved
303 Dunkerton
A-
87.2
1K 30 Health Unresolved
304 Sheffield
A-
87.1
1K 8 Health Unresolved
305 Maxwell
A-
87.1
859 10 Unresolved
306 Whittemore
A-
87.1
522 10 Unresolved
307 Grimes
A-
87
17K 24 Health Unresolved
308 Orange City
A-
87
6K 5 Unresolved
309 Carlisle
A-
87
4K 11 Unresolved
310 Titonka
A-
87
511 4 Unresolved
311 Panora
A-
86.9
4K 100 Health Unresolved
312 Norway
A-
86.9
2K 20 Health Unresolved
313 Manson
A-
86.9
2K 33 Health Unresolved
314 Urbana
A-
86.7
2K 1 Unresolved
315 Griswold
A-
86.7
1K 13 Health Unresolved
316 Readlyn
A-
86.7
845 1 Unresolved
317 Agency
A-
86.7
620 1 Unresolved
318 Swea City
A-
86.7
584 1 Unresolved
319 Postville
A-
86.6
3K 8 Unresolved
320 Dunlap
A-
86.6
1K 16 Health Unresolved
321 Carter Lake
A-
86.5
5K 20 Health Unresolved
322 Bloomfield
A-
86.4
3K 88 Health Unresolved
323 Leon
A-
86.4
2K 27 Health Unresolved
324 Hills
A-
86.4
863 2 Unresolved
325 Ellsworth
A-
86.3
514 14 Health Unresolved
326 Buffalo
A-
86.2
1K 74 Health Unresolved
327 Oskaloosa
A-
86
23K 37 Health Unresolved
328 Tama
A-
86
8K 44 Health Unresolved
329 Mediapolis
A-
86
2K 15 Health Unresolved
330 Marion
A-
85.9
44K 98 Health Unresolved
331 Zearing
A-
85.9
528 28 Health Unresolved
332 Granger
A-
85.8
2K 7 Health Unresolved
333 Arnolds Park
A-
85.7
1K 1 Unresolved
334 Moville
A-
85.6
2K 75 Health Unresolved
335 Riverside
A-
85.6
1K 31 Health Unresolved
336 Tripoli
A-
85.6
1K 2 Health Unresolved
337 Guthrie Center
A-
85.5
2K 3 Health Unresolved
338 Clinton
A-
85.4
25K 2 Unresolved
339 Madrid
A-
85.4
5K 7 Health Unresolved
340 Ruthven
A-
85.4
779 1 Unresolved
341 Mason City
A-
85.3
27K 143 Health Unresolved
342 Fairfield
A-
85.3
10K 28 Health Unresolved
343 Creston
A-
85.1
28K 27 Health Unresolved
344 Des Moines
B+
85
250K 35 Health Unresolved
345 Pomeroy
A-
85
671 9 Health Unresolved
346 Middle Amana
B+
84.9
1K 6 Health Unresolved
347 Armstrong
B+
84.9
930 26 Health Unresolved
348 Rock Valley
B+
84.8
6K 34 Health Unresolved
349 Gilbert
B+
84.8
1K 40 Health Unresolved
350 Mcgregor
B+
84.8
902 21 Health Unresolved
351 Tiffin
B+
84.7
5K 25 Health Unresolved
352 Kalona
B+
84.7
3K 26 Health Unresolved
353 Elk Horn
B+
84.7
631 9 Unresolved
354 Malvern
B+
84.6
1K 17 Health Unresolved
355 Centerville
B+
84.5
38K 75 Health Unresolved
356 Burlington
B+
84.5
35K 26 Health Unresolved
357 Polk City
B+
84.5
7K 2 Unresolved
358 Nora Springs
B+
84.5
1K 3 Health Unresolved
359 Lamoni
B+
84.4
2K 27 Health Unresolved
360 Fonda
B+
84.3
636 6 Health Unresolved
361 Moravia
B+
84.1
637 15 Unresolved
362 Ottumwa
B+
84
43K 31 Health Unresolved
363 Osage
B+
84
4K 13 Health PFAS Unresolved
364 Britt
B+
84
2K 3 Unresolved
365 Altoona
B+
83.9
27K 37 Health Unresolved
366 Waverly
B+
83.7
48K 30 Health PFAS Unresolved
367 West Burlington
B+
83.7
4K 31 Health PFAS Unresolved
368 Stanwood
B+
83.6
637 4 Unresolved
369 Woodbine
B+
83.5
2K 8 Health Unresolved
370 Sioux Rapids
B+
83.4
920 25 Health Unresolved
371 Eldridge
B+
83.2
9K 51 Health Unresolved
372 Doon
B+
83.1
2K 69 Health Unresolved
373 Clermont
B+
83.1
586 31 Health Unresolved
374 Delhi
B+
83
509 110 Unresolved
375 Council Bluffs
B+
82.9
66K 45 Health Unresolved
376 Donnellson
B+
82.7
885 48 Health Unresolved
377 Elkader
B+
82.6
1K 36 Unresolved
378 Slater
B+
82.5
2K 11 Health Unresolved
379 Rockwell City
B+
82.4
3K 22 Health Unresolved
380 Washington
B+
82.2
7K 96 Health Unresolved
381 Rock Rapids
B+
82.2
6K 36 Health Unresolved
382 De Witt
B+
81.8
6K 123 Health Unresolved
383 Neola
B+
81.8
906 35 Health Unresolved
384 West Des Moines
B+
81.6
70K 31 Health Unresolved
385 Parkersburg
B+
81.6
2K 3 Unresolved
386 Ames
B+
81.5
97K 70 Health Unresolved
387 Johnston
B+
80.9
25K 45 Health Unresolved
388 Hospers
B+
80.8
4K 25 Health Unresolved
389 Lisbon
B+
80.8
2K 86 Health Unresolved
390 Lone Tree
B+
80.6
1K 17 Health Unresolved
391 Decorah
B+
80.5
9K 82 Health Unresolved
392 Wapello
B+
80.5
2K 94 Health Unresolved
393 Early
B+
80.5
587 30 Health Unresolved
394 Reinbeck
B+
80.4
2K 8 Health Unresolved
395 Urbandale
B+
80.2
46K 8 Unresolved
396 Belle Plaine
B+
80.1
2K 10 Health Unresolved
397 Carroll
B
79.8
10K 2 Unresolved
398 Forest City
B
79.8
4K 94 Health Unresolved
399 Center Point
B
79.8
3K 43 Health Unresolved
400 Iowa Falls
B
79.7
5K 15 Health Unresolved
401 West Branch
B
79.3
3K 18 Unresolved
402 Knoxville
B
79.2
15K 8 Health Unresolved
403 Jewell
B
79.2
1K 4 Unresolved
404 Clarinda
B
78.8
9K 78 Health Unresolved
405 Algona
B
78.8
6K 67 Health Unresolved
406 Woodward
B
78.8
6K 46 Health Unresolved
407 Princeton
B
78.8
981 67 Health Unresolved
408 Boone
B
78.7
13K 44 Health Unresolved
409 Sidney
B
78.4
1K 21 Health Unresolved
410 Osceola
B
78.2
10K 39 Health Unresolved
411 De Soto
B
78.2
960 25 Health Unresolved
412 Ankeny
B
77.7
78K 99 Health Unresolved
413 Sioux City
B
77.3
86K 35 Health PFAS Unresolved
414 Coralville
B
77.3
24K 104 Health Unresolved
415 Scranton
B
76.2
504 21 Health Lead Unresolved
416 Anamosa
B-
74.8
6K 35 Health Unresolved
417 Chariton
B-
74.4
4K 98 Health Unresolved
418 Hiawatha
B-
73.2
7K 64 Health Unresolved
419 Marengo
B-
71.1
2K 55 Health Unresolved
420 North Liberty
B-
70
21K 120 Health Unresolved
421 Victor
C+
68.7
875 19 Health Lead Unresolved
422 Missouri Valley
C+
66.3
3K 79 Health Unresolved
423 Bettendorf
C+
65.6
929 173 Health Unresolved
424 Oxford
C+
65.2
1K 114 Health Unresolved
425 Blue Grass
C
60.6
2K 363 Health Unresolved
426 Davenport
C-
55
148K 143 Health PFAS Unresolved
427 Grinnell
D+
54.5
10K 23 Health Unresolved
428 Fort Dodge
D+
50.4
27K 271 Health Unresolved
429 Monticello
D
46
4K 265 Health Unresolved
430 Cedar Rapids
D
45.5
144K 365 Health Unresolved
431 Walford
D
45
728 98 Health Unresolved
432 Solon
F
44
4K 364 Health Unresolved
433 Swisher
F
43.1
724 119 Health Unresolved
434 Dubuque
F
42.5
63K 354 Health PFAS Unresolved
435 Iowa City
F
42
101K 691 Health Unresolved
436 Muscatine
F
36.9
28K 320 Health PFAS Unresolved