Skip to main content
💧 TapWaterData

Water Hardness in North Dakota

Across 6 measured cities — with 96 more covered by labeled county-level estimates — North Dakota's median tap water hardness is 105.9 mg/L (6.2 gpg): moderately hard on the USGS scale. Below: every covered city, the state's hardest and softest water, and the geology that explains it.

Data updated July 6, 2026. Sources: utility-reported water quality data and USGS/EPA Water Quality Portal samples.

State Median
105.9
mg/L (6.2 gpg), measured cities
Measured Range
78.7-307.1
mg/L across measured cities
Measured Cities
6
utility-reported or computed values
County Estimates
96
94% of covered cities

North Dakota Cities by Hardness Category

Measured cities only — labeled county estimates never enter the category counts or the median.

CategoryRangeMeasured citiesShare
Soft0-60 mg/L00.0%
Moderately hard60-120 mg/L350.0%
Hard120-180 mg/L233.3%
Very hard>180 mg/L116.7%

Hardest and Softest Water in North Dakota

Measured values only; labeled county estimates and values under active dispute never rank.

Hardest water in North Dakota

  1. Fessenden 307.1 mg/L (18.0 gpg), very hard
  2. Cathay 163.6 mg/L (9.6 gpg), hard
  3. Bismarck 133.2 mg/L (7.8 gpg), hard
  4. Fargo 78.7 mg/L (4.6 gpg), moderately hard
  5. Frontier 78.7 mg/L (4.6 gpg), moderately hard

Softest water in North Dakota

  1. Fargo 78.7 mg/L (4.6 gpg), moderately hard
  2. Frontier 78.7 mg/L (4.6 gpg), moderately hard
  3. Prairie Rose 78.7 mg/L (4.6 gpg), moderately hard
  4. Bismarck 133.2 mg/L (7.8 gpg), hard
  5. Cathay 163.6 mg/L (9.6 gpg), hard

Every Covered City in North Dakota

All 102 covered North Dakota cities, sorted by population served. "County estimate" rows are labeled context values from USGS/EPA Water Quality Portal county sampling — they never enter the median above. City names link to each city's full water quality page.

CityHardness (mg/L)gpgCategoryData
Fargo78.74.6Moderately hardComputed from Ca+Mg
Frontier78.74.6Moderately hardComputed from Ca+Mg
Prairie Rose78.74.6Moderately hardComputed from Ca+Mg
Bismarck133.27.8HardComputed from Ca+Mg
Grand Forks390.022.8Very hardCounty estimate
West Fargo392.022.9Very hardCounty estimate
Dickinson320.018.7Very hardCounty estimate
Mandan337.019.7Very hardCounty estimate
Jamestown384.022.5Very hardCounty estimate
Belcourt314.518.4Very hardCounty estimate
Kindred392.022.9Very hardCounty estimate
Thompson390.022.8Very hardCounty estimate
Fessenden307.118.0Very hardComputed from Ca+Mg
Gilby390.022.8Very hardCounty estimate
Beulah234.013.7Very hardCounty estimate
Grafton437.025.6Very hardCounty estimate
Rugby469.027.4Very hardCounty estimate
Hillsboro520.030.4Very hardCounty estimate
New Town362.021.2Very hardCounty estimate
Casselton392.022.9Very hardCounty estimate
Langdon329.019.2Very hardCounty estimate
Hazen234.013.7Very hardCounty estimate
Bottineau417.024.4Very hardCounty estimate
Tioga427.025.0Very hardCounty estimate
Lisbon435.025.4Very hardCounty estimate
Carrington389.022.8Very hardCounty estimate
Mayville520.030.4Very hardCounty estimate
Oakes469.527.5Very hardCounty estimate
Garrison255.014.9Very hardCounty estimate
Harvey376.022.0Very hardCounty estimate
Horace392.022.9Very hardCounty estimate
Bowman445.026.0Very hardCounty estimate
Crosby422.024.7Very hardCounty estimate
Park River437.025.6Very hardCounty estimate
Ellendale469.527.5Very hardCounty estimate
New Rockford412.524.1Very hardCounty estimate
Surrey395.523.1Very hardCounty estimate
Larimore390.022.8Very hardCounty estimate
Alexander224.513.1Very hardCounty estimate
Mapleton392.022.9Very hardCounty estimate
Cavalier340.019.9Very hardCounty estimate
Rolla314.518.4Very hardCounty estimate
Washburn255.014.9Very hardCounty estimate
Hettinger573.033.5Very hardCounty estimate
Stanley362.021.2Very hardCounty estimate
Cando477.027.9Very hardCounty estimate
Velva413.024.1Very hardCounty estimate
Burlington395.523.1Very hardCounty estimate
Belfield232.513.6Very hardCounty estimate
Ray427.025.0Very hardCounty estimate
Northwood390.022.8Very hardCounty estimate
Glen Ullin337.019.7Very hardCounty estimate
Hatton612.035.8Very hardCounty estimate
Dunseith314.518.4Very hardCounty estimate
Hebron337.019.7Very hardCounty estimate
Harwood392.022.9Very hardCounty estimate
Wilton365.021.4Very hardCounty estimate
Portland612.035.8Very hardCounty estimate
Minto437.025.6Very hardCounty estimate
Pembina340.019.9Very hardCounty estimate
Center453.026.5Very hardCounty estimate
Edgeley406.023.7Very hardCounty estimate
Rolette314.518.4Very hardCounty estimate
Argusville392.022.9Very hardCounty estimate
Leeds431.025.2Very hardCounty estimate
Emerado390.022.8Very hardCounty estimate
Valley City394.023.0Very hardCounty estimate
Maddock431.025.2Very hardCounty estimate
Neche340.019.9Very hardCounty estimate
Stanton234.013.7Very hardCounty estimate
St. John314.518.4Very hardCounty estimate
St. Thomas340.019.9Very hardCounty estimate
Gackle349.020.4Very hardCounty estimate
Zap234.013.7Very hardCounty estimate
Wimbledon394.023.0Very hardCounty estimate
Sanborn394.023.0Very hardCounty estimate
Golden Valley234.013.7Very hardCounty estimate
Arvilla390.022.8Very hardCounty estimate
Litchville394.023.0Very hardCounty estimate
Kensal384.022.5Very hardCounty estimate
Willow City417.024.4Very hardCounty estimate
Wing365.021.4Very hardCounty estimate
Bowdon376.022.0Very hardCounty estimate
Bisbee477.027.9Very hardCounty estimate
Sykeston376.022.0Very hardCounty estimate
Oberon431.025.2Very hardCounty estimate
Rocklake477.027.9Very hardCounty estimate
Mountain340.019.9Very hardCounty estimate
Dodge245.014.3Very hardCounty estimate
Montpelier384.022.5Very hardCounty estimate
Cleveland384.022.5Very hardCounty estimate
Solen337.019.7Very hardCounty estimate
Jud406.023.7Very hardCounty estimate
Cathay163.69.6HardComputed from Ca+Mg
Cooperstown381.522.3Very hardCounty estimate
Finley612.035.8Very hardCounty estimate
Fullerton469.527.5Very hardCounty estimate
Hankinson413.524.2Very hardCounty estimate
Kenmare395.523.1Very hardCounty estimate
Petersburg851.049.8Very hardCounty estimate
Turtle Lake255.014.9Very hardCounty estimate
Walhalla340.019.9Very hardCounty estimate

Above 120 mg/L (7 gpg), scale is usually worth treating — see our water softener guide, or size a system with the hardness calculator & converter.

The Geology Behind North Dakota's Water Hardness

North Dakota sits in the Great Plains and interior lowlands region.

The Great Plains and interior lowlands are underlain by carbonate rock, gypsum, and other evaporite deposits, and the semi-arid climate concentrates dissolved minerals rather than flushing them out. Aquifers like the High Plains (Ogallala) yield water the USGS classifies as hard to very hard across most of the region, from the Dakotas down through Texas. Surface-water systems fed by plains rivers carry much of the same mineral load.

Source: USGS - High Plains aquifer

North Dakota Water Hardness FAQ

Does North Dakota have hard water?

On the whole, no — North Dakota's statewide median sits below the hard threshold, though some cities run harder. The median is 105.9 mg/L (6.2 gpg) — moderately hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 3 of North Dakota's 6 measured cities fall in the hard or very hard bands (50%), so check your own city rather than the state average.

How hard is tap water in North Dakota?

Across the 6 North Dakota cities with measured values in our index, the median hardness is 105.9 mg/L (6.2 gpg) — moderately hard on the USGS scale. Individual cities range from 78.7 to 307.1 mg/L, so check your own city rather than assuming the state number.

Which city in North Dakota has the hardest water?

Fessenden has the hardest measured tap water in our North Dakota index at 307.1 mg/L (18.0 gpg) — very hard on the USGS scale. Rankings use measured utility values only; labeled county estimates and values under active dispute are excluded.

Do I need a water softener in North Dakota?

3 of North Dakota's 6 measured cities (50%) fall in the hard or very hard bands — above 120 mg/L (7 gpg), the level where most water treatment professionals suggest considering an ion-exchange softener. Hardness varies utility to utility, so look up your own city's value before sizing equipment.

How do I find my city's exact water hardness?

Enter your ZIP code in our free lookup at tapwaterdata.com/zip to see the value we hold for your North Dakota city from utility-reported water quality data, check your water utility's annual Consumer Confidence Report (CCR), or use a home test-strip kit.

Stay Informed About Your Water Quality

Get EPA reports, filter recommendations, and safety alerts for your area.

Join 10,000+ people protecting their families. Unsubscribe anytime.