B68/100
Iowa Tap Water Quality Rankings 2026
268 cities · 2,762,707 people served
Top Contaminant Concerns
Copper (90th percentile)PFOAPFHxS
All Cities in Iowa
| # | City | Score | Population | Violations |
|---|---|---|---|---|
| 1 | Des Moines | D (36) | 253,620 | 39 |
| 2 | Davenport | A (81) | 147,720 | 4 |
| 3 | Cedar Rapids | B (77) | 141,831 | 8 |
| 4 | Ames | A (81) | 97,177 | 19 |
| 5 | Iowa City | C (56) | 95,437 | 72 |
| 6 | Sioux City | F (0) | 85,791 | 34 |
| 7 | Ankeny | C (52) | 78,007 | 60 |
| 8 | Waterloo | B (60) | 69,504 | 22 |
| 9 | West Des Moines | A (98) | 68,723 | 2 |
| 10 | Council Bluffs | A (94) | 64,447 | 3 |
| 11 | Centerville | B (74) | 60,024 | 87 |
| 12 | Dubuque | A (94) | 59,667 | 3 |
| 13 | Newton | A (89) | 55,370 | 17 |
| 14 | Urbandale | A (98) | 45,605 | 2 |
| 15 | Ottumwa | B (70) | 42,792 | 29 |
| 16 | Marion | A (89) | 42,628 | 7 |
| 17 | Cedar Falls | B (79) | 40,713 | 7 |
| 18 | Creston | B (63) | 38,079 | 58 |
| 19 | Indianola | B (77) | 35,928 | 15 |
| 20 | Waukee | D (23) | 31,823 | 25 |
| 21 | Marshalltown | A (88) | 30,444 | 17 |
| 22 | Bouton | B (67) | 29,057 | 50 |
| 23 | Mason City | F (0) | 27,338 | 142 |
| 24 | Muscatine | A (82) | 26,873 | 17 |
| 25 | Spencer | A (88) | 26,580 | 16 |
| 26 | Tama | B (79) | 26,305 | 51 |
| 27 | Burlington | A (84) | 26,015 | 2 |
| 28 | Fort Dodge | B (79) | 25,874 | 15 |
| 29 | Johnston | B (61) | 25,233 | 43 |
| 30 | Clinton | A (93) | 24,769 | 1 |
| 31 | Oskaloosa | B (69) | 23,994 | 46 |
| 32 | Coralville | B (75) | 22,318 | 15 |
| 33 | North Liberty | A (81) | 20,491 | 7 |
| 34 | Altoona | C (59) | 19,565 | 18 |
| 35 | Clive | A (91) | 19,010 | 5 |
| 36 | Grimes | C (49) | 15,392 | 15 |
| 37 | Norwalk | A (88) | 14,334 | 8 |
| 38 | Knoxville | A (90) | 14,087 | 5 |
| 39 | Boone | C (54) | 12,704 | 23 |
| 40 | Clarinda | D (32) | 12,253 | 84 |
| 41 | Storm Lake | A (93) | 11,431 | 4 |
| 42 | Fort Madison | C (41) | 11,087 | 32 |
| 43 | Pella | F (0) | 11,052 | 81 |
| 44 | Grinnell | C (52) | 10,864 | 45 |
| 45 | Lemars | B (65) | 10,571 | 16 |
| 46 | Waverly | B (76) | 10,394 | 5 |
| 47 | Carroll | A (88) | 10,184 | 1 |
| 48 | Cherokee | A (93) | 9,965 | 10 |
| 49 | Keokuk | A (87) | 9,900 | 7 |
| 50 | Fairfield | D (25) | 9,821 | 19 |
| 51 | Bondurant | A (88) | 9,393 | 5 |
| 52 | Denison | A (94) | 9,381 | 3 |
| 53 | Mount Pleasant | B (66) | 9,274 | 26 |
| 54 | Eldridge | B (67) | 9,115 | 19 |
| 55 | May City | A (85) | 9,114 | 7 |
| 56 | Manning | B (79) | 9,108 | 59 |
| 57 | Sioux Center | A (94) | 8,231 | 3 |
| 58 | Perry | B (69) | 7,836 | 16 |
| 59 | Webster City | A (81) | 7,825 | 7 |
| 60 | Clear Lake | A (89) | 7,687 | 8 |
| 61 | Decorah | A (92) | 7,615 | 5 |
| 62 | Charles City | A (94) | 7,446 | 3 |
| 63 | Avoca | A (81) | 7,387 | 18 |
| 64 | Washington | C (59) | 7,362 | 13 |
| 65 | Atlantic | A (96) | 7,252 | 1 |
| 66 | Hiawatha | A (91) | 7,183 | 1 |
| 67 | Rock Rapids | A (81) | 7,093 | 23 |
| 68 | Nevada | C (43) | 6,925 | 21 |
| 69 | Polk City | A (88) | 6,533 | 1 |
| 70 | Adel | B (72) | 6,461 | 12 |
| 71 | Rock Valley | C (51) | 6,289 | 32 |
| 72 | Orange City | A (88) | 6,267 | 4 |
| 73 | Spirit Lake | B (77) | 6,167 | 4 |
| 74 | Maquoketa | F (0) | 6,128 | 37 |
| 75 | Independence | A (89) | 6,064 | 4 |
| 76 | Asbury | A (100) | 5,943 | 0 |
| 77 | Oelwein | A (81) | 5,920 | 8 |
| 78 | Estherville | A (96) | 5,904 | 1 |
| 79 | Anamosa | B (73) | 5,687 | 23 |
| 80 | Red Oak | F (16) | 5,596 | 69 |
| 81 | Dewitt | A (85) | 5,514 | 4 |
| 82 | Sheldon | A (85) | 5,512 | 4 |
| 83 | Osceola | F (13) | 5,503 | 28 |
| 84 | Algona | A (80) | 5,487 | 9 |
| 85 | Glenwood | F (19) | 5,449 | 26 |
| 86 | Winterset | F (0) | 5,428 | 31 |
| 87 | Ireton | B (68) | 5,420 | 13 |
| 88 | Iowa Falls | B (66) | 5,146 | 7 |
| 89 | Manchester | A (91) | 5,077 | 2 |
| 90 | Harlan | A (100) | 5,067 | 0 |
| 91 | Sergeant Bluff | A (81) | 5,015 | 4 |
| 92 | Vinton | B (77) | 4,938 | 7 |
| 93 | Shenandoah | B (73) | 4,925 | 16 |
| 94 | Humboldt | A (91) | 4,792 | 2 |
| 95 | Camanche | A (81) | 4,570 | 16 |
| 96 | Evansdale | A (93) | 4,561 | 4 |
| 97 | Mount Vernon | A (89) | 4,527 | 8 |
| 98 | Tiffin | A (87) | 4,512 | 5 |
| 99 | Dyersville | F (0) | 4,477 | 42 |
| 100 | Chariton | F (0) | 4,381 | 97 |
| 101 | Hampton | A (91) | 4,337 | 2 |
| 102 | Forest City | B (78) | 4,285 | 3 |
| 103 | Huxley | A (90) | 4,244 | 3 |
| 104 | Jefferson | B (73) | 4,182 | 8 |
| 105 | Carlisle | B (79) | 4,170 | 10 |
| 106 | Monticello | B (70) | 4,040 | 11 |
| 107 | Panora | F (13) | 3,991 | 98 |
| 108 | Cresco | A (83) | 3,913 | 14 |
| 109 | West Liberty | B (76) | 3,858 | 8 |
| 110 | Waukon | A (94) | 3,827 | 3 |
| 111 | Carter Lake | C (55) | 3,791 | 18 |
| 112 | Emmetsburg | A (83) | 3,733 | 2 |
| 113 | West Burlington | C (46) | 3,728 | 11 |
| 114 | Albia | C (54) | 3,721 | 23 |
| 115 | Osage | C (49) | 3,637 | 12 |
| 116 | Eagle Grove | A (96) | 3,601 | 4 |
| 117 | New Hampton | A (92) | 3,494 | 5 |
| 118 | Hospers | C (59) | 3,428 | 14 |
| 119 | Story City | A (94) | 3,357 | 6 |
| 120 | Williamsburg | B (63) | 3,345 | 14 |
| 121 | Milford | A (89) | 3,321 | 8 |
| 122 | Montezuma | A (91) | 3,295 | 12 |
| 123 | Tipton | A (96) | 3,149 | 1 |
| 124 | Madrid | A (85) | 3,090 | 3 |
| 125 | Garner | A (95) | 3,065 | 2 |
| 126 | Solon | A (83) | 3,018 | 6 |
| 127 | Wilton | A (94) | 2,924 | 3 |
| 128 | Onawa | A (96) | 2,906 | 1 |
| 129 | Sibley | A (86) | 2,860 | 3 |
| 130 | Fairfax | B (78) | 2,828 | 7 |
| 131 | Clarion | A (90) | 2,810 | 3 |
| 132 | Grundy Center | A (91) | 2,796 | 2 |
| 133 | Hawarden | C (54) | 2,700 | 30 |
| 134 | Missouri Valley | A (92) | 2,684 | 5 |
| 135 | Bloomfield | F (0) | 2,682 | 87 |
| 136 | Eldora | A (86) | 2,664 | 3 |
| 137 | Manly | A (91) | 2,635 | 3 |
| 138 | Kalona | A (86) | 2,630 | 3 |
| 139 | Center Point | A (98) | 2,579 | 2 |
| 140 | Hudson | A (94) | 2,546 | 3 |
| 141 | West Union | A (82) | 2,540 | 3 |
| 142 | Mitchellville | A (87) | 2,515 | 9 |
| 143 | Postville | A (90) | 2,513 | 7 |
| 144 | West Branch | B (76) | 2,509 | 13 |
| 145 | Jesup | B (79) | 2,508 | 18 |
| 146 | Belmond | A (85) | 2,463 | 15 |
| 147 | Marengo | B (69) | 2,435 | 20 |
| 148 | Ogden | B (64) | 2,419 | 13 |
| 149 | Toledo | C (50) | 2,399 | 18 |
| 150 | Cascade | A (88) | 2,386 | 12 |
| 151 | Hull | A (83) | 2,384 | 2 |
| 152 | Belle Plaine | B (72) | 2,380 | 9 |
| 153 | Bellevue | C (42) | 2,363 | 11 |
| 154 | Ely | A (91) | 2,328 | 6 |
| 155 | Colfax | B (70) | 2,305 | 11 |
| 156 | Laporte City | B (79) | 2,284 | 10 |
| 157 | Peosta | B (76) | 2,278 | 17 |
| 158 | Rockwell City | A (92) | 2,250 | 5 |
| 159 | Lisbon | C (57) | 2,233 | 16 |
| 160 | Greenfield | B (77) | 2,227 | 8 |
| 161 | Lake Mills | B (79) | 2,158 | 6 |
| 162 | Lamoni | C (51) | 2,104 | 26 |
| 163 | Wapello | B (79) | 2,096 | 6 |
| 164 | Alta | A (95) | 2,087 | 1 |
| 165 | Northwood | B (79) | 2,072 | 9 |
| 166 | Britt | A (98) | 2,064 | 2 |
| 167 | Sac City | A (98) | 2,063 | 2 |
| 168 | Mechanicsville | B (75) | 2,059 | 31 |
| 169 | Atkins | C (42) | 2,056 | 31 |
| 170 | Audubon | A (86) | 2,053 | 3 |
| 171 | Ida Grove | B (64) | 2,051 | 17 |
| 172 | Sumner | B (62) | 2,030 | 38 |
| 173 | Epworth | A (93) | 2,023 | 4 |
| 174 | Parkersburg | A (95) | 2,019 | 2 |
| 175 | Monroe | A (84) | 2,007 | 5 |
| 176 | Sigourney | A (95) | 2,004 | 2 |
| 177 | Denver | A (86) | 1,919 | 3 |
| 178 | New London | B (62) | 1,910 | 11 |
| 179 | Dallas Center | A (99) | 1,901 | 1 |
| 180 | Pocahontas | B (71) | 1,877 | 6 |
| 181 | Durant | A (85) | 1,871 | 4 |
| 182 | Columbus Junction | A (86) | 1,830 | 6 |
| 183 | Leon | F (0) | 1,830 | 26 |
| 184 | Guttenberg | A (82) | 1,817 | 7 |
| 185 | Stuart | F (8) | 1,814 | 21 |
| 186 | Farley | B (61) | 1,766 | 8 |
| 187 | Corning | F (0) | 1,735 | 128 |
| 188 | Lake City | C (50) | 1,731 | 47 |
| 189 | Manson | D (37) | 1,709 | 32 |
| 190 | Prairie City | A (81) | 1,703 | 7 |
| 191 | Mediapolis | B (70) | 1,688 | 7 |
| 192 | Moville | C (57) | 1,687 | 20 |
| 193 | Mount Ayr | F (0) | 1,683 | 62 |
| 194 | Remsen | B (70) | 1,678 | 11 |
| 195 | Pleasantville | A (90) | 1,676 | 2 |
| 196 | Gladbrook | A (86) | 1,662 | 7 |
| 197 | Granger | A (82) | 1,654 | 6 |
| 198 | Woodbine | B (70) | 1,622 | 7 |
| 199 | Corydon | F (0) | 1,610 | 148 |
| 200 | Hartley | A (100) | 1,605 | 0 |
| 201 | Guthrie Center | A (83) | 1,593 | 2 |
| 202 | Traer | A (89) | 1,583 | 11 |
| 203 | Akron | B (67) | 1,558 | 14 |
| 204 | Urbana | A (100) | 1,554 | 0 |
| 205 | Nashua | B (77) | 1,551 | 20 |
| 206 | Walcott | A (95) | 1,551 | 5 |
| 207 | Slater | B (70) | 1,548 | 11 |
| 208 | Oakland | A (95) | 1,524 | 2 |
| 209 | Wellman | F (0) | 1,524 | 44 |
| 210 | Bedford | F (0) | 1,508 | 38 |
| 211 | Brooklyn | A (83) | 1,505 | 5 |
| 212 | Holstein | C (58) | 1,501 | 11 |
| 213 | Monona | A (94) | 1,471 | 3 |
| 214 | Earlham | D (27) | 1,446 | 22 |
| 215 | State Center | C (53) | 1,411 | 12 |
| 216 | Palo | A (80) | 1,407 | 9 |
| 217 | Logan | A (91) | 1,397 | 6 |
| 218 | Kingsley | B (67) | 1,396 | 10 |
| 219 | Roland | B (71) | 1,394 | 5 |
| 220 | Sanborn | B (60) | 1,392 | 32 |
| 221 | Woodward | C (59) | 1,346 | 14 |
| 222 | Lenox | A (92) | 1,339 | 5 |
| 223 | Dike | B (76) | 1,306 | 5 |
| 224 | Laurens | A (98) | 1,301 | 2 |
| 225 | Coon Rapids | A (91) | 1,300 | 1 |
| 226 | Dysart | A (97) | 1,281 | 3 |
| 227 | Shell Rock | A (96) | 1,269 | 1 |
| 228 | Central City | B (74) | 1,264 | 11 |
| 229 | Fayette | A (96) | 1,256 | 1 |
| 230 | Alton | B (74) | 1,248 | 11 |
| 231 | Amana | A (82) | 1,248 | 6 |
| 232 | Elkader | B (72) | 1,219 | 25 |
| 233 | Jewell | A (86) | 1,216 | 3 |
| 234 | Melcher Dallas | B (78) | 1,213 | 7 |
| 235 | Gilbert | C (49) | 1,211 | 39 |
| 236 | Tripoli | A (87) | 1,191 | 1 |
| 237 | Buffalo | A (84) | 1,176 | 12 |
| 238 | Lake Park | B (75) | 1,167 | 10 |
| 239 | Springville | A (96) | 1,164 | 4 |
| 240 | St. Ansgar | B (78) | 1,161 | 11 |
| 241 | Strawberry Point | A (88) | 1,155 | 5 |
| 242 | Glidden | A (91) | 1,151 | 6 |
| 243 | Lake View | A (83) | 1,133 | 10 |
| 244 | Villisca | A (88) | 1,132 | 5 |
| 245 | Sheffield | B (74) | 1,130 | 7 |
| 246 | Aplington | B (75) | 1,126 | 10 |
| 247 | Calmar | B (74) | 1,125 | 7 |
| 248 | Mapleton | D (27) | 1,124 | 22 |
| 249 | Fairbank | C (58) | 1,111 | 11 |
| 250 | Arnolds Park | A (100) | 1,110 | 0 |
| 251 | Conrad | A (89) | 1,098 | 4 |
| 252 | Marcus | C (43) | 1,079 | 14 |
| 253 | George | F (0) | 1,077 | 25 |
| 254 | Sidney | B (65) | 1,077 | 20 |
| 255 | Van Meter | A (90) | 1,074 | 10 |
| 256 | Rockwell | B (70) | 1,071 | 11 |
| 257 | Elk Run Heights | A (91) | 1,069 | 5 |
| 258 | North English | A (85) | 1,065 | 15 |
| 259 | Riverside | A (91) | 1,060 | 5 |
| 260 | Treynor | A (82) | 1,049 | 7 |
| 261 | Malvern | B (65) | 1,046 | 16 |
| 262 | Sloan | A (90) | 1,042 | 7 |
| 263 | Dunlap | B (70) | 1,035 | 15 |
| 264 | Winfield | A (95) | 1,035 | 5 |
| 265 | Janesville | B (66) | 1,034 | 11 |
| 266 | Tabor | A (87) | 1,014 | 5 |
| 267 | Griswold | B (69) | 1,008 | 12 |
| 268 | Baxter | A (93) | 1,002 | 7 |