HardWaterLab

Water hardness in Iowa

Iowa has a median ambient water hardness of 310 mg/L, which is 18.1 grains per gallon and classes as very hard. That is the middle of 22,933 samples across 99 counties.

State median
18.1 gpg
310 mg/L
Hardest county
Osceola County
75.9 gpg
Softest county
Wayne County
8.2 gpg

This is ambient water, not tap water. These figures come from samples taken from wells, streams and springs by USGS, EPA and state agencies. Municipal utilities treat, blend and sometimes soften water before it reaches a tap, so a city supply can be considerably softer than the ground beneath it. Treat this as a good guide for a private well and an approximate one for city water. Your utility's annual water quality report gives the real number for a municipal tap, and a test strip gives it for yours.

Every monitored county in Iowa

Ranked hardest first. The middle 50% column shows how much the samples within a county vary, which matters more than the median where a county spans two geologies.

Ambient water hardness by county, Iowa
Countymg/LgpgClassMiddle 50%Samples
Osceola County1,30075.9Very hard609 to 1,50077
Emmet County76044.4Very hard590 to 865108
Pocahontas County71441.7Very hard600 to 80082
Palo Alto County69540.6Very hard412 to 80092
Buena Vista County58033.9Very hard485 to 740207
Calhoun County58033.9Very hard210 to 750101
Cherokee County52030.4Very hard350 to 710169
Clay County51530.1Very hard350 to 910110
Sac County49028.6Very hard410 to 770187
Sioux County49028.6Very hard416 to 580490
Webster County48028Very hard430 to 550335
O'Brien County47027.5Very hard410 to 1,100193
Keokuk County46026.9Very hard340 to 530122
Poweshiek County46026.9Very hard380 to 620111
Crawford County44025.7Very hard390 to 560248
Kossuth County44025.7Very hard380 to 530180
Lyon County44025.7Very hard360 to 508451
Woodbury County43025.1Very hard350 to 500337
Plymouth County42825Very hard340 to 520514
Monona County42724.9Very hard331 to 480218
Ida County42024.5Very hard370 to 520155
Greene County41024Very hard310 to 480144
Harrison County41024Very hard340 to 520218
Shelby County41024Very hard340 to 510110
Henry County40023.4Very hard310 to 450180
Humboldt County40023.4Very hard370 to 450153
Washington County40023.4Very hard300 to 460200
Audubon County38022.2Very hard320 to 43094
Marshall County38022.2Very hard350 to 600163
Hancock County37021.6Very hard340 to 400132
Story County37021.6Very hard329 to 460213
Winnebago County37021.6Very hard330 to 38469
Boone County36021Very hard296 to 420159
Carroll County36021Very hard320 to 450272
Grundy County36021Very hard308 to 635156
Hamilton County36021Very hard273 to 437539
Jasper County36021Very hard320 to 410123
Wright County36021Very hard335 to 390218
Hardin County35120.5Very hard306 to 388768
Franklin County35020.4Very hard300 to 370115
Mills County35020.4Very hard290 to 45094
Dallas County34720.3Very hard278 to 419258
Benton County34019.9Very hard280 to 441228
Cerro Gordo County34019.9Very hard270 to 360202
Mahaska County34019.9Very hard290 to 430122
Tama County34019.9Very hard270 to 520469
Worth County32418.9Very hard260 to 38370
Cedar County32018.7Very hard280 to 400134
Fayette County32018.7Very hard250 to 360161
Iowa County32018.7Very hard255 to 386521
Allamakee County31118.2Very hard280 to 340122
Jackson County31018.1Very hard280 to 350162
Jones County31018.1Very hard272 to 340134
Winneshiek County30717.9Very hard276 to 350111
Polk County30317.7Very hard264 to 341708
Clayton County30217.6Very hard250 to 360339
Guthrie County30017.5Very hard250 to 330176
Pottawattamie County30017.5Very hard210 to 390174
Jefferson County29317.1Very hard150 to 41092
Monroe County29016.9Very hard240 to 47084
Van Buren County28316.5Very hard228 to 336366
Mitchell County28116.4Very hard260 to 312204
Adams County28016.4Very hard240 to 31539
Buchanan County28016.4Very hard250 to 316137
Marion County28016.4Very hard240 to 330501
Fremont County27516.1Very hard245 to 310193
Wapello County27215.9Very hard150 to 390267
Howard County27015.8Very hard230 to 310105
Johnson County27015.8Very hard212 to 428387
Black Hawk County26015.2Very hard240 to 300375
Delaware County26015.2Very hard230 to 305132
Dubuque County26015.2Very hard188 to 320288
Linn County26015.2Very hard224 to 2901,847
Warren County26015.2Very hard200 to 310178
Decatur County25815.1Very hard210 to 298248
Floyd County25514.9Very hard232 to 286210
Chickasaw County25014.6Very hard230 to 30057
Lucas County25014.6Very hard170 to 380156
Bremer County24014Very hard189 to 290228
Butler County24014Very hard230 to 282161
Page County24014Very hard200 to 30059
Louisa County23813.9Very hard194 to 280638
Des Moines County23213.6Very hard170 to 311348
Montgomery County23013.4Very hard190 to 26077
Appanoose County22012.9Very hard160 to 300102
Dickinson County22012.9Very hard210 to 343131
Scott County20111.7Very hard177 to 246226
Cass County20011.7Very hard173 to 26483
Lee County20011.7Very hard170 to 260373
Madison County20011.7Very hard160 to 25070
Clinton County19011.1Very hard166 to 233762
Adair County18010.5Hard150 to 230132
Muscatine County18010.5Hard142 to 238361
Ringgold County1709.9Hard140 to 23068
Clarke County1609.3Hard130 to 270107
Union County1508.8Hard120 to 180127
Davis County1408.2Hard120 to 35053
Taylor County1408.2Hard120 to 21098
Wayne County1408.2Hard110 to 190165

Source: Water Quality Portal (USGS, EPA and state agencies), waterqualitydata.us, retrieved 2026-09-19. 2,904,346 samples across 3,110 counties.

What this means for a household in Iowa

At 18.1 grains per gallon, a family of four would need a softener of about 40,000 grains to regenerate roughly weekly, using around 744 lb of salt a year. Size it for your own household.

99 of these counties include well samples, so the figures are a reasonable guide for private well water there. Municipal supplies in the same counties may be softer, because utilities often blend or treat.

Hardness follows geology rather than borders. Where a county sits on limestone or dolomite the water is hard; on granite, basalt or sandstone it is soft. That is why neighbouring counties in this table can differ by a factor of several.

Frequently asked questions

Is the water hard in Iowa?
The median ambient sample in Iowa is 310 mg/L, 18.1 grains per gallon, which classes as very hard. It varies widely by county: Osceola County County measures 75.9 gpg and Wayne County County 8.2 gpg.
Which county in Iowa has the hardest water?
Osceola County, at a median of 1,300 mg/L (75.9 grains per gallon) across 77 samples.
Do I need a water softener in Iowa?
At the state median of 18.1 grains per gallon, most households do soften, because at this level scale shortens appliance life noticeably. Check your own county in the table above, then confirm with a test strip.

Related tools