Iowa Tap Water Quality Report
612 cities analyzed • 2,332,665 people served
Updated March 2026 • Data from EWG & EPA SDWIS
Most Common Contaminants in Iowa
| Contaminant | Found In | % of Cities |
|---|---|---|
| Chloroform carcinogen | 533 of 612 | 87% |
| Total trihalomethanes (TTHMs) carcinogen | 516 of 612 | 84% |
| Bromodichloromethane carcinogen | 494 of 612 | 81% |
| Dichloroacetic acid carcinogen | 466 of 612 | 76% |
| Dibromochloromethane carcinogen | 464 of 612 | 76% |
| Trichloroacetic acid carcinogen | 428 of 612 | 70% |
| Haloacetic acids (HAA5) carcinogen | 416 of 612 | 68% |
| Nitrate carcinogen | 407 of 612 | 67% |
| Dibromoacetic acid | 384 of 612 | 63% |
| Fluoride | 380 of 612 | 62% |
City-by-City Water Quality Rankings
Ranked by number of contaminants above EWG health guidelines (most to fewest).
| # | City | Detected | Above Guidelines | Above Legal | People Served |
|---|---|---|---|---|---|
| 1 | Waterloo | 33 | 19 | 0 | 69,504 |
| 2 | Elk Run Heights | 33 | 19 | 0 | 1,069 |
| 3 | Sioux City | 40 | 18 | 1 | 85,791 |
| 4 | Hudson | 37 | 18 | 0 | 2,546 |
| 5 | Davenport | 23 | 15 | 0 | 147,720 |
| 6 | Ankeny | 33 | 15 | 0 | 68,090 |
| 7 | Waukee | 32 | 15 | 0 | 23,940 |
| 8 | Muscatine | 29 | 15 | 0 | 23,797 |
| 9 | Tama | 25 | 15 | 0 | 13,920 |
| 10 | Keokuk | 28 | 15 | 0 | 9,900 |
| 11 | Rock Valley | 21 | 15 | 0 | 4,059 |
| 12 | Carter Lake | 30 | 15 | 0 | 3,796 |
| 13 | West Burlington | 33 | 15 | 0 | 3,728 |
| 14 | Brooklyn | 26 | 15 | 0 | 1,505 |
| 15 | Dysart | 25 | 15 | 0 | 1,281 |
| 16 | Malcom | 26 | 15 | 0 | 270 |
| 17 | Deep River | 29 | 15 | 0 | 249 |
| 18 | Chelsea | 25 | 15 | 0 | 229 |
| 19 | Clutier | 25 | 15 | 0 | 213 |
| 20 | Millersburg | 25 | 15 | 0 | 135 |
| 21 | Barnes City | 26 | 15 | 0 | 0 |
| 22 | West Des Moines | 37 | 14 | 0 | 68,723 |
| 23 | Dubuque | 23 | 14 | 0 | 59,667 |
| 24 | Burlington | 28 | 14 | 1 | 26,015 |
| 25 | Altoona | 23 | 14 | 0 | 19,565 |
| 26 | Oskaloosa | 30 | 14 | 0 | 11,558 |
| 27 | May City | 26 | 14 | 0 | 6,940 |
| 28 | Orange City | 24 | 14 | 0 | 6,267 |
| 29 | Harlan | 18 | 14 | 0 | 5,067 |
| 30 | Osage | 16 | 14 | 0 | 3,637 |
| 31 | Sibley | 27 | 14 | 0 | 2,860 |
| 32 | Lamoni | 28 | 14 | 0 | 2,104 |
| 33 | Sioux Rapids | 20 | 14 | 0 | 920 |
| 34 | Denver | 25 | 14 | 0 | 548 |
| 35 | Scranton | 25 | 14 | 0 | 504 |
| 36 | Little Rock | 26 | 14 | 0 | 439 |
| 37 | Ashton | 26 | 14 | 0 | 436 |
| 38 | Oto | 22 | 14 | 0 | 72 |
| 39 | Colfax | 26 | 14 | 0 | 0 |
| 40 | Buffalo | 20 | 14 | 0 | 0 |
| 41 | Baxter | 28 | 14 | 0 | 0 |
| 42 | Lake Park | 29 | 14 | 0 | 0 |
| 43 | Alton | 24 | 14 | 0 | 0 |
| 44 | Cedar Falls | 26 | 13 | 0 | 40,713 |
| 45 | Ottumwa | 29 | 13 | 0 | 25,529 |
| 46 | Bondurant | 31 | 13 | 0 | 7,690 |
| 47 | Red Oak | 24 | 13 | 0 | 5,596 |
| 48 | Carlisle | 21 | 13 | 0 | 4,160 |
| 49 | Epworth | 23 | 13 | 0 | 2,023 |
| 50 | Slater | 22 | 13 | 0 | 1,548 |
| 51 | Fairbank | 25 | 13 | 0 | 1,111 |
| 52 | Tabor | 17 | 13 | 0 | 1,014 |
| 53 | Adel | 17 | 13 | 0 | 960 |
| 54 | Readlyn | 20 | 13 | 0 | 845 |
| 55 | Mcgregor | 20 | 13 | 0 | 747 |
| 56 | Hedrick | 26 | 13 | 0 | 728 |
| 57 | Boyden | 25 | 13 | 0 | 701 |
| 58 | South English | 26 | 13 | 0 | 252 |
| 59 | Maharishi Vedic City | 26 | 13 | 0 | 68 |
| 60 | Ida Grove | 23 | 13 | 0 | 0 |
| 61 | Nashua | 20 | 13 | 0 | 0 |
| 62 | Shenandoah | 20 | 13 | 0 | 0 |
| 63 | Agency | 27 | 13 | 0 | 0 |
| 64 | Sutherland | 20 | 13 | 0 | 0 |
| 65 | Des Moines | 29 | 12 | 0 | 245,123 |
| 66 | Iowa City | 22 | 12 | 0 | 68,753 |
| 67 | Urbandale | 29 | 12 | 0 | 45,600 |
| 68 | Newton | 24 | 12 | 0 | 37,820 |
| 69 | Johnston | 30 | 12 | 0 | 24,064 |
| 70 | Coralville | 18 | 12 | 0 | 22,318 |
| 71 | Indianola | 31 | 12 | 0 | 20,095 |
| 72 | Clive | 30 | 12 | 0 | 18,601 |
| 73 | Norwalk | 29 | 12 | 0 | 12,799 |
| 74 | Boone | 23 | 12 | 0 | 12,460 |
| 75 | Lemars | 23 | 12 | 0 | 10,571 |
| 76 | Waverly | 22 | 12 | 0 | 10,394 |
| 77 | Hiawatha | 18 | 12 | 0 | 7,183 |
| 78 | Independence | 18 | 12 | 0 | 6,064 |
| 79 | Polk City | 35 | 12 | 0 | 5,543 |
| 80 | Vinton | 23 | 12 | 0 | 4,938 |
| 81 | Camanche | 23 | 12 | 0 | 4,570 |
| 82 | Jefferson | 23 | 12 | 0 | 4,182 |
| 83 | Manning | 21 | 12 | 0 | 3,573 |
| 84 | Hospers | 25 | 12 | 0 | 3,400 |
| 85 | Cherokee | 20 | 12 | 0 | 3,315 |
| 86 | Madrid | 20 | 12 | 0 | 2,802 |
| 87 | Jesup | 22 | 12 | 0 | 2,508 |
| 88 | Monroe | 24 | 12 | 0 | 2,007 |
| 89 | Sigourney | 13 | 12 | 0 | 2,004 |
| 90 | Montezuma | 26 | 12 | 0 | 1,700 |
| 91 | Remsen | 18 | 12 | 0 | 1,678 |
| 92 | State Center | 18 | 12 | 0 | 1,411 |
| 93 | Sanborn | 18 | 12 | 0 | 1,392 |
| 94 | Aplington | 20 | 12 | 0 | 1,126 |
| 95 | Odebolt | 20 | 12 | 0 | 994 |
| 96 | Larchwood | 17 | 12 | 0 | 926 |
| 97 | Neola | 20 | 12 | 0 | 918 |
| 98 | Sully | 24 | 12 | 0 | 881 |
| 99 | Melbourne | 24 | 12 | 0 | 786 |
| 100 | Gilman | 24 | 12 | 0 | 542 |
| 101 | Spillville | 19 | 12 | 0 | 385 |
| 102 | Lynnville | 24 | 12 | 0 | 380 |
| 103 | Pleasant Hill | 30 | 12 | 0 | 350 |
| 104 | Brandon | 20 | 12 | 0 | 341 |
| 105 | Williams | 19 | 12 | 0 | 315 |
| 106 | Ridgeway | 23 | 12 | 0 | 275 |
| 107 | Rhodes | 24 | 12 | 0 | 271 |
| 108 | Mallard | 15 | 12 | 1 | 257 |
| 109 | Riverton | 14 | 12 | 0 | 250 |
| 110 | Luxemburg | 20 | 12 | 0 | 245 |
| 111 | Halbur | 21 | 12 | 0 | 243 |
| 112 | Laurel | 24 | 12 | 0 | 220 |
| 113 | Pilot Mound | 16 | 12 | 0 | 163 |
| 114 | Gilbertville | 23 | 12 | 0 | 0 |
| 115 | Galva | 20 | 12 | 0 | 0 |
| 116 | Colo | 25 | 12 | 0 | 0 |
| 117 | Pocahontas | 20 | 12 | 0 | 0 |
| 118 | Hawarden | 17 | 12 | 0 | 0 |
| 119 | Castana | 21 | 12 | 0 | 0 |
| 120 | Linn Grove | 15 | 12 | 0 | 0 |
| 121 | Conrad | 24 | 12 | 0 | 0 |
| 122 | Pomeroy | 17 | 12 | 0 | 0 |
| 123 | Dedham | 22 | 12 | 0 | 0 |
| 124 | Irwin | 22 | 12 | 0 | 0 |
| 125 | Clemons | 25 | 12 | 0 | 0 |
| 126 | Denison | 24 | 12 | 0 | 0 |
| 127 | Paullina | 23 | 12 | 0 | 0 |
| 128 | Ute | 17 | 12 | 0 | 0 |
| 129 | Beaman | 25 | 12 | 0 | 0 |
| 130 | Collins | 24 | 12 | 0 | 0 |
| 131 | Granville | 25 | 12 | 0 | 0 |
| 132 | Maxwell | 21 | 12 | 0 | 0 |
| 133 | Montour | 24 | 12 | 0 | 0 |
| 134 | Council Bluffs | 21 | 11 | 0 | 64,447 |
| 135 | Spencer | 20 | 11 | 0 | 11,325 |
| 136 | Pella | 23 | 11 | 0 | 11,052 |
| 137 | Carroll | 24 | 11 | 0 | 10,321 |
| 138 | Grinnell | 23 | 11 | 0 | 9,564 |
| 139 | Sioux Center | 19 | 11 | 0 | 8,231 |
| 140 | Perry | 21 | 11 | 0 | 7,836 |
| 141 | Estherville | 12 | 11 | 0 | 5,904 |
| 142 | Winterset | 17 | 11 | 0 | 5,428 |
| 143 | Iowa Falls | 14 | 11 | 0 | 5,106 |
| 144 | Dyersville | 23 | 11 | 0 | 4,477 |
| 145 | Avoca | 15 | 11 | 0 | 4,250 |
| 146 | Huxley | 19 | 11 | 0 | 4,244 |
| 147 | Clarinda | 12 | 11 | 0 | 3,225 |
| 148 | Rock Rapids | 19 | 11 | 0 | 2,611 |
| 149 | West Branch | 14 | 11 | 0 | 2,509 |
| 150 | Marengo | 13 | 11 | 0 | 2,435 |
| 151 | Toledo | 21 | 11 | 0 | 2,369 |
| 152 | Dallas Center | 13 | 11 | 0 | 1,901 |
| 153 | Leon | 19 | 11 | 0 | 1,822 |
| 154 | Corning | 23 | 11 | 0 | 1,735 |
| 155 | Mediapolis | 21 | 11 | 0 | 1,688 |
| 156 | Hartley | 19 | 11 | 0 | 1,605 |
| 157 | Guthrie Center | 19 | 11 | 0 | 1,593 |
| 158 | Traer | 19 | 11 | 0 | 1,583 |
| 159 | Corydon | 24 | 11 | 0 | 1,526 |
| 160 | Monona | 21 | 11 | 0 | 1,471 |
| 161 | Earlham | 22 | 11 | 0 | 1,420 |
| 162 | Shellsburg | 19 | 11 | 0 | 1,407 |
| 163 | Logan | 14 | 11 | 0 | 1,397 |
| 164 | Nora Springs | 21 | 11 | 0 | 1,369 |
| 165 | Lake View | 19 | 11 | 0 | 1,133 |
| 166 | Sloan | 15 | 11 | 0 | 1,042 |
| 167 | Janesville | 24 | 11 | 0 | 1,034 |
| 168 | Lansing | 20 | 11 | 0 | 983 |
| 169 | Legrand | 25 | 11 | 0 | 905 |
| 170 | Gladbrook | 25 | 11 | 0 | 799 |
| 171 | West Bend | 24 | 11 | 0 | 791 |
| 172 | Milo | 22 | 11 | 0 | 788 |
| 173 | Wheatland | 13 | 11 | 0 | 775 |
| 174 | Decorah | 19 | 11 | 0 | 775 |
| 175 | Wall Lake | 17 | 11 | 0 | 755 |
| 176 | Grand Junction | 13 | 11 | 0 | 725 |
| 177 | Oxford | 15 | 11 | 0 | 722 |
| 178 | Wellsburg | 24 | 11 | 0 | 720 |
| 179 | Elgin | 12 | 11 | 0 | 685 |
| 180 | Moravia | 23 | 11 | 0 | 637 |
| 181 | Seymour | 23 | 11 | 0 | 637 |
| 182 | Kellogg | 21 | 11 | 0 | 617 |
| 183 | Moulton | 23 | 11 | 0 | 607 |
| 184 | Elk Horn | 15 | 11 | 0 | 601 |
| 185 | Everly | 16 | 11 | 0 | 575 |
| 186 | Zearing | 25 | 11 | 0 | 528 |
| 187 | Truro | 22 | 11 | 0 | 525 |
| 188 | Humeston | 23 | 11 | 0 | 522 |
| 189 | New Virginia | 22 | 11 | 0 | 498 |
| 190 | Garwin | 25 | 11 | 0 | 481 |
| 191 | Russell | 23 | 11 | 0 | 477 |
| 192 | Batavia | 22 | 11 | 0 | 430 |
| 193 | Martensdale | 21 | 11 | 0 | 421 |
| 194 | Earling | 15 | 11 | 0 | 397 |
| 195 | Washinginton | 24 | 11 | 0 | 390 |
| 196 | Livermore | 16 | 11 | 0 | 383 |
| 197 | New Vienna | 20 | 11 | 0 | 382 |
| 198 | Massena | 14 | 11 | 0 | 364 |
| 199 | Pierson | 20 | 11 | 0 | 337 |
| 200 | Mystic | 22 | 11 | 0 | 322 |
| 201 | Rockwell City | 18 | 11 | 0 | 300 |
| 202 | Milton | 23 | 11 | 0 | 264 |
| 203 | Defiance | 19 | 11 | 0 | 250 |
| 204 | Lineville | 22 | 11 | 0 | 243 |
| 205 | Panama | 15 | 11 | 0 | 235 |
| 206 | Allerton | 24 | 11 | 0 | 179 |
| 207 | Wallingford | 12 | 11 | 0 | 165 |
| 208 | Bristow | 19 | 11 | 0 | 145 |
| 209 | Superior | 17 | 11 | 0 | 132 |
| 210 | Saint Charles | 21 | 11 | 0 | 108 |
| 211 | Clayton | 19 | 11 | 0 | 45 |
| 212 | Chariton | 23 | 11 | 0 | 0 |
| 213 | Blakesburg | 22 | 11 | 0 | 0 |
| 214 | Grundy Center | 24 | 11 | 0 | 0 |
| 215 | Kingsley | 18 | 11 | 0 | 0 |
| 216 | Albia | 24 | 11 | 0 | 0 |
| 217 | Elma | 12 | 11 | 0 | 0 |
| 218 | Preston | 20 | 11 | 0 | 0 |
| 219 | Inwood | 23 | 11 | 0 | 0 |
| 220 | Gilmore City | 18 | 11 | 0 | 0 |
| 221 | Akron | 20 | 11 | 0 | 0 |
| 222 | Cincinnati | 22 | 11 | 0 | 0 |
| 223 | Cantril | 23 | 11 | 0 | 0 |
| 224 | Dike | 24 | 11 | 0 | 0 |
| 225 | Hanlontown | 20 | 11 | 0 | 0 |
| 226 | Onawa | 19 | 11 | 0 | 0 |
| 227 | Atlantic | 17 | 11 | 0 | 0 |
| 228 | Templeton | 21 | 11 | 0 | 0 |
| 229 | Lester | 18 | 11 | 0 | 0 |
| 230 | Keosauqua | 24 | 11 | 0 | 0 |
| 231 | Doon | 23 | 11 | 0 | 0 |
| 232 | Brayton | 15 | 11 | 0 | 0 |
| 233 | Exira | 15 | 11 | 0 | 0 |
| 234 | Lovilia | 23 | 11 | 0 | 0 |
| 235 | Alvord | 23 | 11 | 0 | 0 |
| 236 | Holstein | 12 | 11 | 0 | 0 |
| 237 | Bloomfield | 22 | 11 | 0 | 0 |
| 238 | Bancroft | 14 | 11 | 0 | 0 |
| 239 | Centerville | 21 | 10 | 0 | 32,000 |
| 240 | Mason City | 19 | 10 | 0 | 27,338 |
| 241 | Spirit Lake | 18 | 10 | 0 | 6,167 |
| 242 | Sheldon | 14 | 10 | 0 | 5,512 |
| 243 | Osceola | 17 | 10 | 0 | 5,503 |
| 244 | Sergeant Bluff | 14 | 10 | 0 | 5,015 |
| 245 | Monticello | 12 | 10 | 0 | 4,040 |
| 246 | Eldora | 11 | 10 | 0 | 2,663 |
| 247 | West Union | 13 | 10 | 0 | 2,540 |
| 248 | Mitchellville | 17 | 10 | 0 | 2,515 |
| 249 | Ogden | 13 | 10 | 0 | 2,419 |
| 250 | Bellevue | 22 | 10 | 0 | 2,363 |
| 251 | Greenfield | 16 | 10 | 0 | 2,227 |
| 252 | Alta | 18 | 10 | 0 | 2,087 |
| 253 | Sumner | 14 | 10 | 0 | 2,030 |
| 254 | Parkersburg | 19 | 10 | 0 | 2,019 |
| 255 | New London | 20 | 10 | 0 | 1,910 |
| 256 | Stuart | 14 | 10 | 0 | 1,814 |
| 257 | Prairie City | 13 | 10 | 0 | 1,703 |
| 258 | Woodbine | 15 | 10 | 0 | 1,622 |
| 259 | Woodward | 13 | 10 | 0 | 1,346 |
| 260 | Shell Rock | 19 | 10 | 0 | 1,268 |
| 261 | Fayette | 19 | 10 | 0 | 1,256 |
| 262 | Glidden | 12 | 10 | 0 | 1,151 |
| 263 | Villisca | 21 | 10 | 0 | 1,132 |
| 264 | Sheffield | 16 | 10 | 0 | 1,130 |
| 265 | George | 11 | 10 | 0 | 1,077 |
| 266 | Allison | 18 | 10 | 0 | 966 |
| 267 | Primghar | 18 | 10 | 0 | 896 |
| 268 | Whittemore | 13 | 10 | 0 | 875 |
| 269 | Victor | 18 | 10 | 0 | 875 |
| 270 | Cambridge | 14 | 10 | 0 | 827 |
| 271 | Fontanelle | 17 | 10 | 0 | 676 |
| 272 | Goldfield | 11 | 10 | 0 | 622 |
| 273 | Clermont | 11 | 10 | 0 | 586 |
| 274 | New Hartford | 13 | 10 | 0 | 570 |
| 275 | Ocheyedan | 11 | 10 | 0 | 439 |
| 276 | Delhi | 20 | 10 | 0 | 420 |
| 277 | Worthington | 19 | 10 | 0 | 382 |
| 278 | Churdan | 17 | 10 | 0 | 375 |
| 279 | Kelley | 18 | 10 | 0 | 304 |
| 280 | Amana | 12 | 10 | 0 | 300 |
| 281 | Salem | 21 | 10 | 0 | 272 |
| 282 | Harvey | 17 | 10 | 0 | 236 |
| 283 | Renwick | 12 | 10 | 0 | 234 |
| 284 | Randolph | 11 | 10 | 0 | 189 |
| 285 | Randall | 13 | 10 | 0 | 154 |
| 286 | Geneva | 11 | 10 | 0 | 136 |
| 287 | Somers | 11 | 10 | 0 | 128 |
| 288 | Battle Creek | 15 | 10 | 0 | 0 |
| 289 | Lenox | 21 | 10 | 0 | 0 |
| 290 | Rolfe | 24 | 10 | 0 | 0 |
| 291 | Tripoli | 18 | 10 | 0 | 0 |
| 292 | Central City | 17 | 10 | 0 | 0 |
| 293 | Blairstown | 18 | 10 | 0 | 0 |
| 294 | Floyd | 22 | 10 | 0 | 0 |
| 295 | Algona | 13 | 10 | 0 | 0 |
| 296 | Fonda | 18 | 10 | 0 | 0 |
| 297 | Early | 16 | 10 | 0 | 0 |
| 298 | Wapello | 17 | 10 | 0 | 0 |
| 299 | Birmingham | 21 | 10 | 0 | 0 |
| 300 | Audubon | 16 | 10 | 0 | 0 |
| 301 | Farragut | 13 | 10 | 0 | 0 |
| 302 | Charter Oak | 13 | 10 | 0 | 0 |
| 303 | Garnavillo | 18 | 10 | 0 | 0 |
| 304 | Donnellson | 16 | 10 | 0 | 0 |
| 305 | Northwood | 13 | 10 | 0 | 0 |
| 306 | Fort Dodge | 18 | 9 | 0 | 25,874 |
| 307 | Creston | 21 | 9 | 0 | 19,488 |
| 308 | Storm Lake | 23 | 9 | 0 | 11,431 |
| 309 | Bouton | 13 | 9 | 0 | 9,447 |
| 310 | Ireton | 19 | 9 | 0 | 5,170 |
| 311 | Manchester | 11 | 9 | 0 | 5,065 |
| 312 | Humboldt | 12 | 9 | 0 | 4,792 |
| 313 | Hampton | 15 | 9 | 0 | 4,337 |
| 314 | Waukon | 12 | 9 | 0 | 3,827 |
| 315 | Emmetsburg | 17 | 9 | 0 | 3,706 |
| 316 | Williamsburg | 12 | 9 | 0 | 3,345 |
| 317 | Milford | 16 | 9 | 0 | 3,321 |
| 318 | Solon | 11 | 9 | 0 | 3,018 |
| 319 | Hull | 11 | 9 | 0 | 2,384 |
| 320 | Peosta | 16 | 9 | 0 | 2,278 |
| 321 | Guttenberg | 20 | 9 | 0 | 1,817 |
| 322 | Mount Ayr | 22 | 9 | 0 | 1,683 |
| 323 | Granger | 11 | 9 | 0 | 1,654 |
| 324 | Walcott | 9 | 9 | 0 | 1,551 |
| 325 | Winfield | 11 | 9 | 0 | 1,035 |
| 326 | Lawton | 11 | 9 | 0 | 943 |
| 327 | Van Horne | 17 | 9 | 0 | 881 |
| 328 | Dunkerton | 21 | 9 | 0 | 842 |
| 329 | Schleswig | 11 | 9 | 0 | 830 |
| 330 | Glenwood | 12 | 9 | 0 | 823 |
| 331 | Rockford | 15 | 9 | 0 | 758 |
| 332 | Redfield | 13 | 9 | 0 | 744 |
| 333 | Shelby | 12 | 9 | 0 | 727 |
| 334 | Murray | 21 | 9 | 0 | 684 |
| 335 | Radcliffe | 11 | 9 | 0 | 561 |
| 336 | Thompson | 12 | 9 | 0 | 499 |
| 337 | Marquette | 17 | 9 | 0 | 429 |
| 338 | Oxford Junction | 11 | 9 | 0 | 424 |
| 339 | Vail | 21 | 9 | 0 | 396 |
| 340 | Plainfield | 15 | 9 | 0 | 393 |
| 341 | Diagonal | 21 | 9 | 0 | 344 |
| 342 | Westside | 20 | 9 | 0 | 285 |
| 343 | Macedonia | 9 | 9 | 0 | 275 |
| 344 | Auburn | 18 | 9 | 0 | 265 |
| 345 | Maurice | 19 | 9 | 0 | 265 |
| 346 | Lu Verne | 10 | 9 | 0 | 258 |
| 347 | Cumberland | 13 | 9 | 0 | 256 |
| 348 | Leland | 13 | 9 | 0 | 255 |
| 349 | Quimby | 17 | 9 | 0 | 249 |
| 350 | Hancock | 12 | 9 | 0 | 200 |
| 351 | Lidderdale | 20 | 9 | 0 | 166 |
| 352 | Woolstock | 11 | 9 | 0 | 144 |
| 353 | Monmouth | 11 | 9 | 0 | 129 |
| 354 | Craig | 20 | 9 | 0 | 79 |
| 355 | Swan | 12 | 9 | 0 | 76 |
| 356 | Mapleton | 11 | 9 | 0 | 0 |
| 357 | Correctionville | 17 | 9 | 0 | 0 |
| 358 | Bedford | 23 | 9 | 0 | 0 |
| 359 | Roland | 13 | 9 | 0 | 0 |
| 360 | Hamburg | 11 | 9 | 0 | 0 |
| 361 | Manilla | 14 | 9 | 0 | 0 |
| 362 | Deloit | 9 | 9 | 0 | 0 |
| 363 | Dakota City | 14 | 9 | 0 | 0 |
| 364 | Nevada | 11 | 9 | 0 | 0 |
| 365 | Swea City | 10 | 9 | 0 | 0 |
| 366 | Kanawha | 11 | 9 | 0 | 0 |
| 367 | Fenton | 12 | 9 | 0 | 0 |
| 368 | Marathon | 12 | 9 | 0 | 0 |
| 369 | Elkader | 13 | 9 | 0 | 0 |
| 370 | Lakota | 10 | 9 | 0 | 0 |
| 371 | Carson | 12 | 9 | 0 | 0 |
| 372 | Wilton | 12 | 9 | 0 | 0 |
| 373 | Alden | 13 | 9 | 0 | 0 |
| 374 | Pacific Junction | 11 | 9 | 0 | 0 |
| 375 | Anita | 10 | 9 | 0 | 0 |
| 376 | Essex | 13 | 9 | 0 | 0 |
| 377 | Kiron | 11 | 9 | 0 | 0 |
| 378 | Lytton | 11 | 9 | 0 | 0 |
| 379 | Merrill | 14 | 9 | 0 | 0 |
| 380 | Anthon | 12 | 9 | 0 | 0 |
| 381 | Story City | 11 | 9 | 0 | 0 |
| 382 | Cedar Rapids | 21 | 8 | 0 | 141,420 |
| 383 | Fort Madison | 14 | 8 | 0 | 11,087 |
| 384 | Maquoketa | 11 | 8 | 0 | 6,128 |
| 385 | Asbury | 9 | 8 | 0 | 5,943 |
| 386 | Knoxville | 12 | 8 | 0 | 5,687 |
| 387 | Evansdale | 20 | 8 | 0 | 4,561 |
| 388 | Mount Vernon | 14 | 8 | 0 | 4,527 |
| 389 | Eagle Grove | 9 | 8 | 0 | 3,601 |
| 390 | Belmond | 9 | 8 | 0 | 2,463 |
| 391 | Eldridge | 11 | 8 | 0 | 2,389 |
| 392 | Columbus Junction | 10 | 8 | 0 | 1,830 |
| 393 | Urbana | 18 | 8 | 0 | 1,554 |
| 394 | Oakland | 11 | 8 | 0 | 1,524 |
| 395 | St. Ansgar | 10 | 8 | 0 | 1,161 |
| 396 | Riverside | 11 | 8 | 0 | 1,060 |
| 397 | Aurelia | 17 | 8 | 0 | 968 |
| 398 | Gowrie | 9 | 8 | 0 | 952 |
| 399 | West Point | 15 | 8 | 0 | 921 |
| 400 | Ossian | 16 | 8 | 0 | 802 |
| 401 | Okoboji | 15 | 8 | 0 | 768 |
| 402 | Montrose | 13 | 8 | 0 | 738 |
| 403 | Stanton | 11 | 8 | 0 | 683 |
| 404 | Olin | 12 | 8 | 0 | 651 |
| 405 | Dexter | 12 | 8 | 0 | 640 |
| 406 | Farmington | 14 | 8 | 0 | 579 |
| 407 | Wyoming | 11 | 8 | 0 | 523 |
| 408 | Dows | 12 | 8 | 0 | 521 |
| 409 | Dow City | 8 | 8 | 0 | 485 |
| 410 | Casey | 12 | 8 | 0 | 387 |
| 411 | New Market | 11 | 8 | 0 | 385 |
| 412 | Duncombe | 9 | 8 | 0 | 384 |
| 413 | Plymouth | 10 | 8 | 0 | 378 |
| 414 | Orient | 9 | 8 | 0 | 368 |
| 415 | Lacona | 14 | 8 | 0 | 361 |
| 416 | Middletown | 12 | 8 | 0 | 336 |
| 417 | Peterson | 14 | 8 | 0 | 322 |
| 418 | Sheldahl | 12 | 8 | 0 | 307 |
| 419 | Newell | 10 | 8 | 0 | 295 |
| 420 | Yale | 12 | 8 | 0 | 267 |
| 421 | Oakville | 12 | 8 | 0 | 200 |
| 422 | Stout | 8 | 8 | 0 | 191 |
| 423 | Shambaugh | 12 | 8 | 1 | 159 |
| 424 | Swaledale | 10 | 8 | 0 | 144 |
| 425 | Ft Dodge | 12 | 8 | 0 | 136 |
| 426 | Kansas City | 11 | 8 | 0 | 100 |
| 427 | Morley | 16 | 8 | 0 | 98 |
| 428 | Alta Vista | 8 | 8 | 0 | 55 |
| 429 | St. Olaf | 13 | 8 | 0 | 27 |
| 430 | Corwith | 8 | 8 | 0 | 0 |
| 431 | Dunlap | 9 | 8 | 0 | 0 |
| 432 | Washta | 16 | 8 | 0 | 0 |
| 433 | Center Point | 20 | 8 | 0 | 0 |
| 434 | Danbury | 8 | 8 | 0 | 0 |
| 435 | Whiting | 12 | 8 | 0 | 0 |
| 436 | Calmar | 13 | 8 | 0 | 0 |
| 437 | Lost Nation | 10 | 8 | 0 | 0 |
| 438 | Grafton | 13 | 8 | 0 | 0 |
| 439 | Laurens | 14 | 8 | 0 | 0 |
| 440 | Emerson | 12 | 8 | 0 | 0 |
| 441 | Wayland | 9 | 8 | 0 | 0 |
| 442 | Adair | 17 | 8 | 0 | 0 |
| 443 | Arnolds Park | 13 | 8 | 0 | 0 |
| 444 | Mount Pleasant | 16 | 8 | 1 | 0 |
| 445 | Melcher Dallas | 16 | 8 | 0 | 0 |
| 446 | Pleasantville | 17 | 8 | 0 | 0 |
| 447 | Coon Rapids | 14 | 8 | 0 | 0 |
| 448 | Hinton | 8 | 8 | 0 | 0 |
| 449 | Arlington | 16 | 8 | 0 | 0 |
| 450 | Garner | 11 | 8 | 0 | 0 |
| 451 | Klemme | 13 | 8 | 0 | 0 |
| 452 | Van Meter | 11 | 8 | 0 | 0 |
| 453 | Webster City | 11 | 7 | 0 | 7,825 |
| 454 | Postville | 12 | 7 | 0 | 2,503 |
| 455 | Moville | 7 | 7 | 0 | 1,687 |
| 456 | North English | 10 | 7 | 0 | 1,065 |
| 457 | Treynor | 9 | 7 | 0 | 1,049 |
| 458 | Eddyville | 7 | 7 | 0 | 1,029 |
| 459 | Griswold | 11 | 7 | 0 | 1,017 |
| 460 | Greene | 16 | 7 | 0 | 990 |
| 461 | Princeton | 10 | 7 | 0 | 923 |
| 462 | Winthrop | 15 | 7 | 0 | 840 |
| 463 | Riceville | 17 | 7 | 0 | 816 |
| 464 | Ruthven | 10 | 7 | 0 | 779 |
| 465 | Schaller | 18 | 7 | 0 | 729 |
| 466 | Earlville | 7 | 7 | 0 | 724 |
| 467 | Badger | 11 | 7 | 0 | 561 |
| 468 | Ainsworth | 12 | 7 | 0 | 511 |
| 469 | Maynard | 15 | 7 | 0 | 476 |
| 470 | Hawkeye | 14 | 7 | 0 | 438 |
| 471 | New Albin | 14 | 7 | 0 | 432 |
| 472 | Lewis | 7 | 7 | 0 | 357 |
| 473 | Elliott | 8 | 7 | 0 | 345 |
| 474 | Terril | 9 | 7 | 0 | 334 |
| 475 | Marble Rock | 12 | 7 | 0 | 271 |
| 476 | Protivin | 17 | 7 | 0 | 269 |
| 477 | Wadena | 12 | 7 | 0 | 209 |
| 478 | Jamaica | 10 | 7 | 0 | 195 |
| 479 | Westgate | 9 | 7 | 0 | 192 |
| 480 | Mechanicsville | 9 | 7 | 0 | 0 |
| 481 | Durant | 11 | 7 | 0 | 0 |
| 482 | Fertile | 7 | 7 | 0 | 0 |
| 483 | New Hampton | 11 | 7 | 0 | 0 |
| 484 | Lime Springs | 9 | 7 | 0 | 0 |
| 485 | Atkins | 12 | 7 | 0 | 0 |
| 486 | Palmer | 10 | 7 | 0 | 0 |
| 487 | Kensett | 10 | 7 | 0 | 0 |
| 488 | Alburnett | 18 | 7 | 0 | 0 |
| 489 | Little Sioux | 11 | 7 | 0 | 0 |
| 490 | Soldier | 7 | 7 | 0 | 0 |
| 491 | Jewell | 10 | 7 | 0 | 0 |
| 492 | Ames | 14 | 6 | 0 | 55,177 |
| 493 | West Liberty | 8 | 6 | 0 | 3,858 |
| 494 | Clarion | 10 | 6 | 0 | 2,810 |
| 495 | Laporte City | 7 | 6 | 0 | 2,284 |
| 496 | Reinbeck | 14 | 6 | 0 | 1,662 |
| 497 | Sidney | 10 | 6 | 0 | 1,070 |
| 498 | Graettinger | 7 | 6 | 0 | 897 |
| 499 | Keota | 7 | 6 | 0 | 897 |
| 500 | Walnut | 8 | 6 | 0 | 747 |
| 501 | Ventura | 11 | 6 | 0 | 716 |
| 502 | Grand Mound | 7 | 6 | 0 | 615 |
| 503 | Norway | 8 | 6 | 0 | 466 |
| 504 | Grandview | 9 | 6 | 0 | 437 |
| 505 | Holy Cross | 9 | 6 | 0 | 356 |
| 506 | Manly | 9 | 6 | 0 | 222 |
| 507 | Smithland | 10 | 6 | 0 | 181 |
| 508 | Keystone | 16 | 6 | 0 | 0 |
| 509 | Moorhead | 9 | 6 | 0 | 0 |
| 510 | Hornick | 9 | 6 | 0 | 0 |
| 511 | Clarence | 8 | 6 | 0 | 0 |
| 512 | Pisgah | 13 | 6 | 0 | 0 |
| 513 | Ellsworth | 8 | 6 | 0 | 0 |
| 514 | North Liberty | 10 | 5 | 0 | 20,491 |
| 515 | Clear Lake | 8 | 5 | 0 | 7,777 |
| 516 | Panora | 7 | 5 | 0 | 2,900 |
| 517 | Ely | 8 | 5 | 0 | 2,328 |
| 518 | Sac City | 17 | 5 | 0 | 2,063 |
| 519 | Wellman | 9 | 5 | 0 | 1,524 |
| 520 | Volga | 7 | 5 | 0 | 203 |
| 521 | Vincent | 7 | 5 | 0 | 181 |
| 522 | Rowan | 10 | 5 | 0 | 121 |
| 523 | Miles | 6 | 5 | 0 | 109 |
| 524 | Springville | 13 | 5 | 0 | 85 |
| 525 | Forest City | 6 | 5 | 0 | 0 |
| 526 | Britt | 8 | 5 | 0 | 0 |
| 527 | Blencoe | 7 | 5 | 0 | 0 |
| 528 | Sabula | 9 | 5 | 0 | 0 |
| 529 | Bode | 8 | 5 | 0 | 0 |
| 530 | Charles City | 14 | 4 | 0 | 7,448 |
| 531 | Washington | 7 | 4 | 0 | 7,352 |
| 532 | Lake Mills | 8 | 4 | 0 | 2,158 |
| 533 | Farley | 15 | 4 | 0 | 1,766 |
| 534 | Dumont | 8 | 4 | 0 | 1,269 |
| 535 | Anamosa | 5 | 4 | 0 | 1,230 |
| 536 | Edgewood | 13 | 4 | 0 | 909 |
| 537 | Hubbard | 7 | 4 | 0 | 860 |
| 538 | Calamus | 6 | 4 | 0 | 156 |
| 539 | Varina | 9 | 4 | 0 | 68 |
| 540 | Breda | 5 | 4 | 0 | 0 |
| 541 | Cresco | 5 | 4 | 0 | 0 |
| 542 | Manson | 6 | 4 | 0 | 0 |
| 543 | Olds | 5 | 4 | 0 | 0 |
| 544 | Marcus | 11 | 4 | 0 | 0 |
| 545 | Marion | 12 | 3 | 0 | 41,623 |
| 546 | Marshalltown | 9 | 3 | 0 | 27,591 |
| 547 | Grimes | 9 | 3 | 0 | 15,392 |
| 548 | Strawberry Point | 6 | 3 | 0 | 1,155 |
| 549 | Lawler | 4 | 3 | 0 | 406 |
| 550 | Fort Atkinson | 14 | 3 | 0 | 365 |
| 551 | Rudd | 9 | 3 | 0 | 358 |
| 552 | Ryan | 6 | 3 | 0 | 350 |
| 553 | Kimballton | 5 | 3 | 0 | 287 |
| 554 | Springbrook | 10 | 3 | 0 | 143 |
| 555 | Hazleton | 6 | 3 | 0 | 90 |
| 556 | Goodell | 7 | 3 | 0 | 0 |
| 557 | Titonka | 6 | 3 | 0 | 0 |
| 558 | Ringsted | 6 | 3 | 0 | 0 |
| 559 | Dewitt | 5 | 2 | 0 | 5,514 |
| 560 | Leclaire | 4 | 2 | 0 | 860 |
| 561 | Morning Sun | 7 | 2 | 0 | 752 |
| 562 | Stratford | 3 | 2 | 0 | 707 |
| 563 | Coggon | 2 | 2 | 0 | 701 |
| 564 | Walker | 2 | 2 | 0 | 688 |
| 565 | Hopkinton | 10 | 2 | 0 | 622 |
| 566 | Walford | 2 | 2 | 0 | 413 |
| 567 | Colesburg | 2 | 2 | 0 | 386 |
| 568 | Tipton | 2 | 2 | 0 | 340 |
| 569 | Luana | 10 | 2 | 0 | 301 |
| 570 | Coulter | 5 | 2 | 0 | 219 |
| 571 | West Chester | 7 | 2 | 0 | 144 |
| 572 | Wiota | 3 | 2 | 0 | 95 |
| 573 | Fredericksburg | 10 | 2 | 0 | 78 |
| 574 | Belle Plaine | 3 | 2 | 0 | 28 |
| 575 | Vermillion | 4 | 2 | 0 | 25 |
| 576 | Fairfax | 4 | 2 | 0 | 25 |
| 577 | Stanwood | 4 | 2 | 0 | 0 |
| 578 | Burt | 5 | 2 | 0 | 0 |
| 579 | Woden | 6 | 2 | 0 | 0 |
| 580 | Bronson | 7 | 2 | 0 | 0 |
| 581 | Lowden | 6 | 2 | 0 | 0 |
| 582 | Fairfield | 2 | 1 | 0 | 9,416 |
| 583 | Oelwein | 4 | 1 | 0 | 5,920 |
| 584 | Tiffin | 4 | 1 | 0 | 4,512 |
| 585 | Rockwell | 4 | 1 | 0 | 1,071 |
| 586 | Brighton | 2 | 1 | 0 | 584 |
| 587 | Lamont | 2 | 1 | 0 | 429 |
| 588 | Harcourt | 4 | 1 | 0 | 265 |
| 589 | Goose Lake | 2 | 1 | 0 | 239 |
| 590 | Blue Grass | 3 | 1 | 0 | 209 |
| 591 | Missouri Valley | 1 | 1 | 0 | 190 |
| 592 | Prairieburg | 3 | 1 | 0 | 160 |
| 593 | Swisher | 3 | 1 | 0 | 134 |
| 594 | New Providence | 3 | 1 | 0 | 100 |
| 595 | Long Grove | 1 | 1 | 0 | 83 |
| 596 | Bettendorf | 4 | 1 | 0 | 80 |
| 597 | Oviedo | 3 | 1 | 0 | 72 |
| 598 | Kalona | 3 | 1 | 0 | 67 |
| 599 | Lisbon | 3 | 1 | 0 | 60 |
| 600 | Seattle | 3 | 1 | 0 | 60 |
| 601 | Le Claire | 1 | 1 | 0 | 57 |
| 602 | New Liberty | 2 | 1 | 0 | 48 |
| 603 | De Witt | 3 | 1 | 0 | 25 |
| 604 | Wesley | 2 | 1 | 0 | 0 |
| 605 | Hills | 2 | 1 | 0 | 0 |
| 606 | Magnolia | 1 | 1 | 0 | 0 |
| 607 | Cascade | 2 | 1 | 0 | 0 |
| 608 | Bernard | 2 | 1 | 0 | 0 |
| 609 | Stacyville | 2 | 0 | 0 | 465 |
| 610 | Stanhope | 4 | 0 | 0 | 364 |
| 611 | Low Moor | 7 | 0 | 0 | 250 |
| 612 | Los Angeles | 2 | 0 | 0 | 245 |
Recommended Filtration for Iowa
Based on the most common contaminants found across Iowa (Chloroform, Total trihalomethanes (TTHMs), Bromodichloromethane), we recommend a reverse osmosis system or high-quality carbon block filter to remove disinfection byproducts and their precursors.
Echo RO System
Removes up to 99.9% of contaminants. The gold standard for drinking water in Iowa homes.
View RO SystemsEcho Whole-Home Filter
Protect every tap in your home from chlorine, VOCs, and disinfection byproducts.
View Whole-Home FiltersEcho Hydrogen Water Flask
Once your water is clean, supercharge it with molecular hydrogen for antioxidant and anti-inflammatory benefits.
Shop Hydrogen FlaskFrequently Asked Questions
Is Iowa tap water safe to drink?
Water quality varies significantly across Iowa. Of the 612 cities analyzed, the average city has 8.9 contaminants above EWG health guidelines. The best water quality was found in Stacyville. We recommend checking your specific city's report for detailed information.
What city has the best water in Iowa?
Based on our analysis, Stacyville has the fewest contaminants above EWG health guidelines in Iowa, with 0 above guideline levels.
What city has the worst water in Iowa?
Based on our analysis, Elk Run Heights has the most contaminants above EWG health guidelines in Iowa, with 19 above guideline levels.
What's the best water filter for Iowa residents?
For most Iowa households, we recommend a reverse osmosis (RO) system for drinking water and a whole-home filter for showers and baths. The specific recommendation depends on your city's contaminant profile — check your city's report for personalized guidance.
National Water Quality Reports
Data sources: Environmental Working Group (EWG) Tap Water Database, U.S. EPA Safe Drinking Water Information System (SDWIS)
Last updated: March 2026
Methodology: Contaminant levels are compared against both EPA legal limits (Maximum Contaminant Levels) and EWG health guidelines, which are often stricter and based on the latest scientific research.