HardWaterLab

Water hardness in Minnesota

Minnesota has a median ambient water hardness of 140 mg/L, which is 8.2 grains per gallon and classes as hard. That is the middle of 63,339 samples across 87 counties.

State median
8.2 gpg
140 mg/L
Hardest county
Lyon County
33.1 gpg
Softest county
Cook County
1.1 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 Minnesota

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, Minnesota
Countymg/LgpgClassMiddle 50%Samples
Lyon County56733.1Very hard479 to 698157
Redwood County55832.6Very hard480 to 680426
Grant County54031.5Very hard370 to 72057
Lac qui Parle County54031.5Very hard460 to 640200
Nobles County50129.3Very hard380 to 70082
Yellow Medicine County50029.2Very hard410 to 640445
Renville County49028.6Very hard430 to 537282
Lincoln County48728.4Very hard380 to 70598
Brown County48028Very hard410 to 550317
Nicollet County44025.7Very hard380 to 490278
Traverse County43525.4Very hard290 to 68056
Big Stone County43025.1Very hard360 to 550167
Swift County43025.1Very hard360 to 493199
Jackson County42024.5Very hard350 to 519327
Stevens County42024.5Very hard340 to 61033
Chippewa County41024Very hard360 to 470285
Carver County40023.4Very hard330 to 458454
McLeod County40023.4Very hard270 to 490143
Sibley County39022.8Very hard336 to 450140
Murray County38822.7Very hard330 to 48780
Le Sueur County38022.2Very hard320 to 440258
Pipestone County37521.9Very hard310 to 424369
Scott County37021.6Very hard290 to 440306
Cottonwood County36521.3Very hard290 to 478116
Faribault County36421.3Very hard319 to 420653
Blue Earth County36021Very hard308 to 440932
Martin County35220.6Very hard290 to 420247
Rock County35120.5Very hard300 to 416134
Clay County35020.4Very hard270 to 420455
Steele County34019.9Very hard310 to 36479
Waseca County33519.6Very hard286 to 38562
Rice County32519Very hard230 to 354110
Meeker County32018.7Very hard253 to 385428
Pope County31318.3Very hard274 to 360135
Watonwan County31018.1Very hard240 to 42076
Olmsted County30417.8Very hard280 to 325284
Dodge County30017.5Very hard260 to 36017
Norman County30017.5Very hard251 to 360467
Fillmore County29317.1Very hard270 to 320167
Red Lake County28916.9Very hard240 to 31992
Freeborn County28016.4Very hard240 to 330328
Houston County28016.4Very hard250 to 298328
Marshall County28016.4Very hard220 to 370376
Wabasha County27015.8Very hard200 to 295191
Mower County26815.7Very hard240 to 290425
Kittson County26015.2Very hard209 to 340415
Dakota County25915.1Very hard201 to 2971,321
Kandiyohi County25014.6Very hard210 to 328156
Stearns County25014.6Very hard204 to 300703
Wadena County25014.6Very hard200 to 280185
Goodhue County24314.2Very hard198 to 300518
Polk County24114.1Very hard197 to 312695
Wilkin County24014Very hard217 to 340334
Wright County24014Very hard184 to 3081,025
Mahnomen County23513.7Very hard202 to 270102
Otter Tail County23313.6Very hard199 to 300457
Winona County23113.5Very hard160 to 290772
Roseau County23013.4Very hard190 to 280157
Pennington County22913.4Very hard172 to 30627
Hennepin County22112.9Very hard142 to 3502,843
Todd County22012.9Very hard170 to 270123
Becker County21512.6Very hard180 to 295224
Douglas County20712.1Very hard185 to 270132
Anoka County18710.9Very hard156 to 2182,331
Beltrami County18210.6Very hard160 to 230369
Clearwater County1709.9Hard150 to 223263
Sherburne County1709.9Hard150 to 240471
Chisago County1609.3Hard120 to 190290
Isanti County1508.8Hard127 to 20090
Morrison County1508.8Hard110 to 174968
Benton County1468.5Hard130 to 170175
Cass County1347.8Hard100 to 180477
Ramsey County1237.2Hard94 to 14816,064
Itasca County1207Moderately hard13 to 147907
Aitkin County1106.4Moderately hard79 to 140437
Crow Wing County1056.1Moderately hard78 to 120425
Washington County1056.1Moderately hard98 to 1302,120
Hubbard County1026Moderately hard90 to 192699
Mille Lacs County1005.8Moderately hard89 to 182117
Kanabec County784.6Moderately hard9 to 13092
Pine County643.7Moderately hard30 to 85677
St. Louis County623.6Moderately hard38 to 976,615
Carlton County593.4Soft37 to 763,498
Lake of the Woods County482.8Soft37 to 92301
Koochiching County432.5Soft27 to 87944
Lake County211.2Soft14 to 402,371
Cook County191.1Soft12 to 341,188

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 Minnesota

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

87 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 Minnesota?
The median ambient sample in Minnesota is 140 mg/L, 8.2 grains per gallon, which classes as hard. It varies widely by county: Lyon County County measures 33.1 gpg and Cook County County 1.1 gpg.
Which county in Minnesota has the hardest water?
Lyon County, at a median of 567 mg/L (33.1 grains per gallon) across 157 samples.
Do I need a water softener in Minnesota?
At the state median of 8.2 grains per gallon, it is a judgement call, and depends more on your own county and tap than on the state figure. Check your own county in the table above, then confirm with a test strip.

Related tools