Nitrate in Iowa Drinking Water
Ranked by nitrate violation count · Data from EPA SDWIS & UCMR
Nitrate in Iowa: what the data shows
Iowa has 282 cities with nitrate-related violations. The EPA MCL for nitrate is 10 mg/L (measured as nitrogen). The state has 282 cities with at least one nitrate violation. Nitrate is the most common groundwater contaminant in the United States. It enters water supplies primarily through agricultural fertilizer runoff, septic system leaching, and animal feedlot operations. Rural and agricultural communities face the highest risk. The primary acute health concern is methemoglobinemia ("blue baby syndrome") in infants under six months. Emerging research also links chronic nitrate exposure to thyroid disease, certain cancers, and adverse birth outcomes. Reverse osmosis, ion exchange, and distillation can remove nitrate from drinking water — standard carbon filters do not.
Cities exceeding 10 mg/L EPA MCL
Nitrate data across Iowa
Each dot is a city with nitrate violation data. Cities with at least one nitrate-related violation are highlighted. Size reflects population served.
Top 10 cities by nitrate level in Iowa
Highest Nitrate levels (violations)
All Iowa cities ranked by nitrate level
| # | City | Level | Level | Violations? | Violations | Grade |
|---|---|---|---|---|---|---|
| 1 | Monticello | 70 violations | Yes | 22 | D | |
| 2 | Blue Grass | 39 violations | Yes | 43 | C | |
| 3 | Doon | 35 violations | Yes | 32 | B+ | |
| 4 | Iowa City | 33 violations | Yes | 171 | F | |
| 5 | Muscatine | 32 violations | Yes | 46 | F | |
| 6 | Everly | 30 violations | Yes | 26 | A- | |
| 7 | Dubuque | 28 violations | Yes | 30 | F | |
| 8 | Moville | 27 violations | Yes | 11 | A- | |
| 9 | Early | 26 violations | Yes | 23 | B+ | |
| 10 | Cedar Rapids | 24 violations | Yes | 31 | D | |
| 11 | Wellman | 24 violations | Yes | 24 | A- | |
| 12 | Essex | 22 violations | Yes | 15 | A- | |
| 13 | Fort Dodge | 21 violations | Yes | 19 | D+ | |
| 14 | Schleswig | 20 violations | Yes | 14 | A | |
| 15 | Farmington | 20 violations | Yes | 20 | A | |
| 16 | George | 19 violations | Yes | 19 | A- | |
| 17 | Shellsburg | 19 violations | Yes | 12 | A- | |
| 18 | Earlville | 19 violations | Yes | 15 | A- | |
| 19 | Rock Rapids | 18 violations | Yes | 12 | B+ | |
| 20 | Keystone | 17 violations | Yes | 7 | A- | |
| 21 | Winterset | 16 violations | Yes | 20 | A- | |
| 22 | Panora | 16 violations | Yes | 26 | A- | |
| 23 | Marengo | 16 violations | Yes | 12 | B- | |
| 24 | Sioux Rapids | 16 violations | Yes | 13 | B+ | |
| 25 | Battle Creek | 14 violations | Yes | 13 | A- | |
| 26 | Waverly | 13 violations | Yes | 2 | B+ | |
| 27 | Rock Valley | 13 violations | Yes | 13 | B+ | |
| 28 | Jesup | 13 violations | Yes | 0 | A | |
| 29 | Atkins | 13 violations | Yes | 6 | A- | |
| 30 | Mapleton | 13 violations | Yes | 12 | A | |
| 31 | Clarinda | 12 violations | Yes | 48 | B | |
| 32 | Dyersville | 12 violations | Yes | 23 | A | |
| 33 | Solon | 12 violations | Yes | 157 | F | |
| 34 | Peosta | 12 violations | Yes | 7 | A- | |
| 35 | North Liberty | 11 violations | Yes | 29 | B- | |
| 36 | Holstein | 11 violations | Yes | 7 | A- | |
| 37 | Marion | 10 violations | Yes | 6 | A- | |
| 38 | Algona | 10 violations | Yes | 14 | B | |
| 39 | Rockwell City | 10 violations | Yes | 6 | B+ | |
| 40 | Wapello | 10 violations | Yes | 12 | B+ | |
| 41 | Delhi | 10 violations | Yes | 0 | B+ | |
| 42 | Davenport | 9 violations | Yes | 2 | C- | |
| 43 | Ames | 9 violations | Yes | 15 | B+ | |
| 44 | Cherokee | 9 violations | Yes | 2 | A- | |
| 45 | Princeton | 9 violations | Yes | 18 | B | |
| 46 | Coralville | 8 violations | Yes | 15 | B | |
| 47 | Williamsburg | 8 violations | Yes | 3 | A- | |
| 48 | Missouri Valley | 7 violations | Yes | 6 | C+ | |
| 49 | Lake City | 7 violations | Yes | 0 | A | |
| 50 | Janesville | 7 violations | Yes | 5 | A | |
| 51 | Newhall | 7 violations | Yes | 2 | A- | |
| 52 | Wall Lake | 7 violations | Yes | 4 | A- | |
| 53 | Schaller | 7 violations | Yes | 8 | A | |
| 54 | Ankeny | 6 violations | Yes | 15 | B | |
| 55 | Marshalltown | 6 violations | Yes | 4 | A- | |
| 56 | Boone | 6 violations | Yes | 9 | B | |
| 57 | Lisbon | 6 violations | Yes | 21 | B+ | |
| 58 | Oxford | 6 violations | Yes | 24 | C+ | |
| 59 | Griswold | 6 violations | Yes | 2 | A- | |
| 60 | Wheatland | 6 violations | Yes | 5 | A- | |
| 61 | Merrill | 6 violations | Yes | 4 | A | |
| 62 | Gilman | 6 violations | Yes | 7 | A+ | |
| 63 | Eldridge | 5 violations | Yes | 9 | B+ | |
| 64 | Hiawatha | 5 violations | Yes | 12 | B- | |
| 65 | Hospers | 5 violations | Yes | 5 | B+ | |
| 66 | Belle Plaine | 5 violations | Yes | 2 | B+ | |
| 67 | Kingsley | 5 violations | Yes | 3 | A- | |
| 68 | Buffalo | 5 violations | Yes | 12 | A- | |
| 69 | Saint Ansgar | 5 violations | Yes | 2 | A | |
| 70 | Riverside | 5 violations | Yes | 6 | A- | |
| 71 | Malvern | 5 violations | Yes | 2 | B+ | |
| 72 | Dunkerton | 5 violations | Yes | 6 | A- | |
| 73 | Shelby | 5 violations | Yes | 3 | A- | |
| 74 | Alburnett | 5 violations | Yes | 3 | A | |
| 75 | Minden | 5 violations | Yes | 3 | A- | |
| 76 | Des Moines | 4 violations | Yes | 7 | B+ | |
| 77 | Waterloo | 4 violations | Yes | 3 | A- | |
| 78 | Council Bluffs | 4 violations | Yes | 8 | B+ | |
| 79 | Grimes | 4 violations | Yes | 13 | A- | |
| 80 | Maquoketa | 4 violations | Yes | 18 | A- | |
| 81 | Red Oak | 4 violations | Yes | 9 | A- | |
| 82 | Manning | 4 violations | Yes | 4 | A- | |
| 83 | Forest City | 4 violations | Yes | 8 | B | |
| 84 | Woodward | 4 violations | Yes | 17 | B | |
| 85 | Prairie City | 4 violations | Yes | 3 | A | |
| 86 | Akron | 4 violations | Yes | 4 | A- | |
| 87 | Slater | 4 violations | Yes | 2 | B+ | |
| 88 | Strawberry Point | 4 violations | Yes | 1 | A | |
| 89 | Lake View | 4 violations | Yes | 1 | A | |
| 90 | Van Meter | 4 violations | Yes | 6 | A- | |
| 91 | Inwood | 4 violations | Yes | 2 | A | |
| 92 | Keota | 4 violations | Yes | 4 | A | |
| 93 | Elkhart | 4 violations | Yes | 0 | A- | |
| 94 | Gilbertville | 4 violations | Yes | 0 | A- | |
| 95 | Dayton | 4 violations | Yes | 7 | A | |
| 96 | Fonda | 4 violations | Yes | 1 | B+ | |
| 97 | Brighton | 4 violations | Yes | 0 | A | |
| 98 | Elma | 4 violations | Yes | 0 | A | |
| 99 | Altoona | 3 violations | Yes | 20 | B+ | |
| 100 | Bondurant | 3 violations | Yes | 1 | A | |
| 101 | Washington | 3 violations | Yes | 13 | B+ | |
| 102 | Camanche | 3 violations | Yes | 0 | A | |
| 103 | Carlisle | 3 violations | Yes | 0 | A- | |
| 104 | Fairfax | 3 violations | Yes | 2 | A- | |
| 105 | Kalona | 3 violations | Yes | 3 | B+ | |
| 106 | West Union | 3 violations | Yes | 3 | A | |
| 107 | Lamoni | 3 violations | Yes | 5 | B+ | |
| 108 | Corning | 3 violations | Yes | 2 | A- | |
| 109 | Granger | 3 violations | Yes | 1 | A- | |
| 110 | Traer | 3 violations | Yes | 0 | A | |
| 111 | Bedford | 3 violations | Yes | 19 | A- | |
| 112 | Gilbert | 3 violations | Yes | 1 | B+ | |
| 113 | Sheffield | 3 violations | Yes | 2 | A- | |
| 114 | Aplington | 3 violations | Yes | 1 | A- | |
| 115 | Conrad | 3 violations | Yes | 1 | A | |
| 116 | Dunlap | 3 violations | Yes | 3 | A- | |
| 117 | Paullina | 3 violations | Yes | 3 | A | |
| 118 | Fredericksburg | 3 violations | Yes | 0 | A | |
| 119 | Neola | 3 violations | Yes | 8 | B+ | |
| 120 | Donnellson | 3 violations | Yes | 20 | B+ | |
| 121 | Armstrong | 3 violations | Yes | 1 | B+ | |
| 122 | Okoboji | 3 violations | Yes | 1 | A | |
| 123 | Blairstown | 3 violations | Yes | 3 | A- | |
| 124 | Montrose | 3 violations | Yes | 1 | A | |
| 125 | Coggon | 3 violations | Yes | 0 | A- | |
| 126 | Pomeroy | 3 violations | Yes | 1 | A- | |
| 127 | Olin | 3 violations | Yes | 2 | A | |
| 128 | Sutherland | 3 violations | Yes | 3 | A- | |
| 129 | Badger | 3 violations | Yes | 6 | A | |
| 130 | Anthon | 3 violations | Yes | 0 | A | |
| 131 | Charter Oak | 3 violations | Yes | 3 | A | |
| 132 | Ottumwa | 2 violations | Yes | 6 | B+ | |
| 133 | Cedar Falls | 2 violations | Yes | 4 | A- | |
| 134 | Creston | 2 violations | Yes | 9 | A- | |
| 135 | Mason City | 2 violations | Yes | 18 | A- | |
| 136 | Burlington | 2 violations | Yes | 7 | B+ | |
| 137 | Johnston | 2 violations | Yes | 6 | B+ | |
| 138 | Storm Lake | 2 violations | Yes | 1 | A- | |
| 139 | Fort Madison | 2 violations | Yes | 6 | A | |
| 140 | Denison | 2 violations | Yes | 0 | A | |
| 141 | Mount Pleasant | 2 violations | Yes | 2 | A | |
| 142 | Decorah | 2 violations | Yes | 11 | B+ | |
| 143 | Sioux Center | 2 violations | Yes | 0 | A- | |
| 144 | Perry | 2 violations | Yes | 3 | A | |
| 145 | Independence | 2 violations | Yes | 4 | A | |
| 146 | Oelwein | 2 violations | Yes | 2 | A | |
| 147 | Avoca | 2 violations | Yes | 6 | A | |
| 148 | Anamosa | 2 violations | Yes | 5 | B- | |
| 149 | Manchester | 2 violations | Yes | 1 | A | |
| 150 | Shenandoah | 2 violations | Yes | 2 | A | |
| 151 | Story City | 2 violations | Yes | 0 | A | |
| 152 | Hawarden | 2 violations | Yes | 4 | A | |
| 153 | Center Point | 2 violations | Yes | 3 | B | |
| 154 | Mitchellville | 2 violations | Yes | 1 | A | |
| 155 | South Amana | 2 violations | Yes | 1 | A- | |
| 156 | Ely | 2 violations | Yes | 0 | A | |
| 157 | Colfax | 2 violations | Yes | 2 | A- | |
| 158 | Lake Mills | 2 violations | Yes | 3 | A | |
| 159 | Ida Grove | 2 violations | Yes | 2 | A- | |
| 160 | Sumner | 2 violations | Yes | 0 | A+ | |
| 161 | Epworth | 2 violations | Yes | 0 | A | |
| 162 | Durant | 2 violations | Yes | 2 | A | |
| 163 | Columbus Junction | 2 violations | Yes | 0 | A- | |
| 164 | Remsen | 2 violations | Yes | 2 | A- | |
| 165 | Reinbeck | 2 violations | Yes | 1 | B+ | |
| 166 | Woodbine | 2 violations | Yes | 3 | B+ | |
| 167 | Ackley | 2 violations | Yes | 1 | A- | |
| 168 | Palo | 2 violations | Yes | 4 | A | |
| 169 | Dike | 2 violations | Yes | 2 | A | |
| 170 | Clarksville | 2 violations | Yes | 1 | A | |
| 171 | Middle Amana | 2 violations | Yes | 1 | B+ | |
| 172 | Jewell | 2 violations | Yes | 0 | B | |
| 173 | Glidden | 2 violations | Yes | 0 | A- | |
| 174 | Fairbank | 2 violations | Yes | 7 | A | |
| 175 | Sidney | 2 violations | Yes | 1 | B | |
| 176 | North English | 2 violations | Yes | 0 | A | |
| 177 | Treynor | 2 violations | Yes | 0 | A- | |
| 178 | Mechanicsville | 2 violations | Yes | 0 | A- | |
| 179 | Tabor | 2 violations | Yes | 0 | A- | |
| 180 | Larchwood | 2 violations | Yes | 1 | A | |
| 181 | Primghar | 2 violations | Yes | 0 | A- | |
| 182 | Hamburg | 2 violations | Yes | 0 | A | |
| 183 | Victor | 2 violations | Yes | 1 | C+ | |
| 184 | Cambridge | 2 violations | Yes | 1 | A- | |
| 185 | Correctionville | 2 violations | Yes | 1 | A | |
| 186 | Morning Sun | 2 violations | Yes | 1 | A | |
| 187 | Mcgregor | 2 violations | Yes | 6 | B+ | |
| 188 | Elgin | 2 violations | Yes | 0 | A- | |
| 189 | Hopkinton | 2 violations | Yes | 0 | A | |
| 190 | Clermont | 2 violations | Yes | 4 | B+ | |
| 191 | Richland | 2 violations | Yes | 5 | A | |
| 192 | Zearing | 2 violations | Yes | 2 | A- | |
| 193 | Whittemore | 2 violations | Yes | 0 | A- | |
| 194 | Breda | 2 violations | Yes | 0 | A | |
| 195 | Sioux City | 1 violations | Yes | 14 | B | |
| 196 | Centerville | 1 violations | Yes | 4 | B+ | |
| 197 | Waukee | 1 violations | Yes | 13 | A- | |
| 198 | Oskaloosa | 1 violations | Yes | 11 | A- | |
| 199 | Knoxville | 1 violations | Yes | 2 | B | |
| 200 | Fairfield | 1 violations | Yes | 15 | A- | |
| 201 | Keokuk | 1 violations | Yes | 0 | A- | |
| 202 | Tama | 1 violations | Yes | 1 | A- | |
| 203 | Clear Lake | 1 violations | Yes | 2 | A- | |
| 204 | May City | 1 violations | Yes | 0 | A- | |
| 205 | Ireton | 1 violations | Yes | 4 | A- | |
| 206 | Osceola | 1 violations | Yes | 21 | B | |
| 207 | Luther | 1 violations | Yes | 8 | A | |
| 208 | Evansdale | 1 violations | Yes | 0 | A+ | |
| 209 | Hampton | 1 violations | Yes | 10 | A- | |
| 210 | West Burlington | 1 violations | Yes | 17 | B+ | |
| 211 | Chariton | 1 violations | Yes | 64 | B- | |
| 212 | Huxley | 1 violations | Yes | 1 | A | |
| 213 | Jefferson | 1 violations | Yes | 2 | A | |
| 214 | West Liberty | 1 violations | Yes | 6 | A | |
| 215 | Carter Lake | 1 violations | Yes | 6 | A- | |
| 216 | Osage | 1 violations | Yes | 9 | B+ | |
| 217 | Milford | 1 violations | Yes | 0 | A | |
| 218 | Montezuma | 1 violations | Yes | 0 | A- | |
| 219 | Wilton | 1 violations | Yes | 0 | A- | |
| 220 | Onawa | 1 violations | Yes | 0 | A- | |
| 221 | Sibley | 1 violations | Yes | 0 | A- | |
| 222 | Bloomfield | 1 violations | Yes | 41 | A- | |
| 223 | Postville | 1 violations | Yes | 0 | A- | |
| 224 | West Branch | 1 violations | Yes | 0 | B | |
| 225 | Belmond | 1 violations | Yes | 0 | A | |
| 226 | Ogden | 1 violations | Yes | 3 | A- | |
| 227 | Toledo | 1 violations | Yes | 8 | A | |
| 228 | Cascade | 1 violations | Yes | 0 | A | |
| 229 | Bellevue | 1 violations | Yes | 18 | A- | |
| 230 | Northwood | 1 violations | Yes | 3 | A | |
| 231 | Audubon | 1 violations | Yes | 2 | A | |
| 232 | Pocahontas | 1 violations | Yes | 5 | A | |
| 233 | Leon | 1 violations | Yes | 20 | A- | |
| 234 | Stuart | 1 violations | Yes | 17 | A | |
| 235 | Mount Ayr | 1 violations | Yes | 10 | A | |
| 236 | Corydon | 1 violations | Yes | 0 | A- | |
| 237 | Guthrie Center | 1 violations | Yes | 1 | A- | |
| 238 | Nashua | 1 violations | Yes | 0 | A- | |
| 239 | Walcott | 1 violations | Yes | 0 | A | |
| 240 | Logan | 1 violations | Yes | 0 | A | |
| 241 | Roland | 1 violations | Yes | 4 | A | |
| 242 | Sanborn | 1 violations | Yes | 0 | A | |
| 243 | New Sharon | 1 violations | Yes | 0 | A | |
| 244 | Laurens | 1 violations | Yes | 0 | A | |
| 245 | Central City | 1 violations | Yes | 3 | A | |
| 246 | Springville | 1 violations | Yes | 0 | A | |
| 247 | Alton | 1 violations | Yes | 1 | A | |
| 248 | Elkader | 1 violations | Yes | 0 | B+ | |
| 249 | Melcher-Dallas | 1 violations | Yes | 3 | A | |
| 250 | Marcus | 1 violations | Yes | 10 | A | |
| 251 | Rockwell | 1 violations | Yes | 4 | A | |
| 252 | Clarence | 1 violations | Yes | 3 | A | |
| 253 | Winfield | 1 violations | Yes | 0 | A | |
| 254 | Baxter | 1 violations | Yes | 0 | A- | |
| 255 | Preston | 1 violations | Yes | 1 | A | |
| 256 | Lawton | 1 violations | Yes | 3 | A | |
| 257 | Eldon | 1 violations | Yes | 10 | A- | |
| 258 | Le Grand | 1 violations | Yes | 2 | A | |
| 259 | Newell | 1 violations | Yes | 0 | A | |
| 260 | Graettinger | 1 violations | Yes | 4 | A | |
| 261 | Sully | 1 violations | Yes | 8 | A | |
| 262 | Buffalo Center | 1 violations | Yes | 0 | A | |
| 263 | Winthrop | 1 violations | Yes | 0 | A | |
| 264 | Long Grove | 1 violations | Yes | 6 | A | |
| 265 | Riceville | 1 violations | Yes | 0 | A | |
| 266 | Gladbrook | 1 violations | Yes | 1 | A | |
| 267 | Milo | 1 violations | Yes | 4 | A | |
| 268 | Dakota City | 1 violations | Yes | 0 | A | |
| 269 | Garnavillo | 1 violations | Yes | 0 | A | |
| 270 | Whiting | 1 violations | Yes | 0 | A | |
| 271 | Grand Junction | 1 violations | Yes | 2 | A | |
| 272 | Wellsburg | 1 violations | Yes | 16 | A | |
| 273 | Stratford | 1 violations | Yes | 6 | A- | |
| 274 | Albert City | 1 violations | Yes | 0 | A | |
| 275 | Kellogg | 1 violations | Yes | 1 | A | |
| 276 | Grand Mound | 1 violations | Yes | 0 | A | |
| 277 | Radcliffe | 1 violations | Yes | 3 | A | |
| 278 | Wyoming | 1 violations | Yes | 0 | A | |
| 279 | Ellsworth | 1 violations | Yes | 9 | A- | |
| 280 | Titonka | 1 violations | Yes | 0 | A- | |
| 281 | Rolfe | 1 violations | Yes | 0 | A+ | |
| 282 | Scranton | 1 violations | Yes | 6 | B |
Frequently asked questions about nitrate in Iowa
Is nitrate in Iowa tap water dangerous?
Yes — 282 cities in Iowa have nitrate-related violations. The EPA MCL is 10 mg/L. Nitrate is especially dangerous for infants under six months, where it can cause methemoglobinemia ("blue baby syndrome"). Adults face lower acute risk, but chronic exposure is linked to thyroid disease and certain cancers.
How can I remove nitrate from my drinking water?
Reverse osmosis, ion exchange, and distillation are effective at removing nitrate. Standard carbon filters (including most pitcher and faucet-mount filters) do NOT remove nitrate. If you rely on a private well in an agricultural area, have your water tested annually for nitrate.
What causes high nitrate levels in Iowa water?
Nitrate contamination comes primarily from agricultural fertilizer runoff, septic system leaching, and animal feedlot operations. Rural communities near intensive farming are most at risk. Shallow wells are particularly vulnerable. Heavy rainfall can spike nitrate levels as it washes fertilizer into groundwater and surface water supplies.