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.
North Dakota Cities by Hardness Category
Measured cities only — labeled county estimates never enter the category counts or the median.
| Category | Range | Measured cities | Share |
|---|---|---|---|
| Soft | 0-60 mg/L | 0 | 0.0% |
| Moderately hard | 60-120 mg/L | 3 | 50.0% |
| Hard | 120-180 mg/L | 2 | 33.3% |
| Very hard | >180 mg/L | 1 | 16.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
Softest water in North Dakota
- Fargo — 78.7 mg/L (4.6 gpg), moderately hard
- Frontier — 78.7 mg/L (4.6 gpg), moderately hard
- Prairie Rose — 78.7 mg/L (4.6 gpg), moderately hard
- Bismarck — 133.2 mg/L (7.8 gpg), hard
- 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.
| City | Hardness (mg/L) | gpg | Category | Data |
|---|---|---|---|---|
| Fargo | 78.7 | 4.6 | Moderately hard | Computed from Ca+Mg |
| Frontier | 78.7 | 4.6 | Moderately hard | Computed from Ca+Mg |
| Prairie Rose | 78.7 | 4.6 | Moderately hard | Computed from Ca+Mg |
| Bismarck | 133.2 | 7.8 | Hard | Computed from Ca+Mg |
| Grand Forks | 390.0 | 22.8 | Very hard | County estimate |
| West Fargo | 392.0 | 22.9 | Very hard | County estimate |
| Dickinson | 320.0 | 18.7 | Very hard | County estimate |
| Mandan | 337.0 | 19.7 | Very hard | County estimate |
| Jamestown | 384.0 | 22.5 | Very hard | County estimate |
| Belcourt | 314.5 | 18.4 | Very hard | County estimate |
| Kindred | 392.0 | 22.9 | Very hard | County estimate |
| Thompson | 390.0 | 22.8 | Very hard | County estimate |
| Fessenden | 307.1 | 18.0 | Very hard | Computed from Ca+Mg |
| Gilby | 390.0 | 22.8 | Very hard | County estimate |
| Beulah | 234.0 | 13.7 | Very hard | County estimate |
| Grafton | 437.0 | 25.6 | Very hard | County estimate |
| Rugby | 469.0 | 27.4 | Very hard | County estimate |
| Hillsboro | 520.0 | 30.4 | Very hard | County estimate |
| New Town | 362.0 | 21.2 | Very hard | County estimate |
| Casselton | 392.0 | 22.9 | Very hard | County estimate |
| Langdon | 329.0 | 19.2 | Very hard | County estimate |
| Hazen | 234.0 | 13.7 | Very hard | County estimate |
| Bottineau | 417.0 | 24.4 | Very hard | County estimate |
| Tioga | 427.0 | 25.0 | Very hard | County estimate |
| Lisbon | 435.0 | 25.4 | Very hard | County estimate |
| Carrington | 389.0 | 22.8 | Very hard | County estimate |
| Mayville | 520.0 | 30.4 | Very hard | County estimate |
| Oakes | 469.5 | 27.5 | Very hard | County estimate |
| Garrison | 255.0 | 14.9 | Very hard | County estimate |
| Harvey | 376.0 | 22.0 | Very hard | County estimate |
| Horace | 392.0 | 22.9 | Very hard | County estimate |
| Bowman | 445.0 | 26.0 | Very hard | County estimate |
| Crosby | 422.0 | 24.7 | Very hard | County estimate |
| Park River | 437.0 | 25.6 | Very hard | County estimate |
| Ellendale | 469.5 | 27.5 | Very hard | County estimate |
| New Rockford | 412.5 | 24.1 | Very hard | County estimate |
| Surrey | 395.5 | 23.1 | Very hard | County estimate |
| Larimore | 390.0 | 22.8 | Very hard | County estimate |
| Alexander | 224.5 | 13.1 | Very hard | County estimate |
| Mapleton | 392.0 | 22.9 | Very hard | County estimate |
| Cavalier | 340.0 | 19.9 | Very hard | County estimate |
| Rolla | 314.5 | 18.4 | Very hard | County estimate |
| Washburn | 255.0 | 14.9 | Very hard | County estimate |
| Hettinger | 573.0 | 33.5 | Very hard | County estimate |
| Stanley | 362.0 | 21.2 | Very hard | County estimate |
| Cando | 477.0 | 27.9 | Very hard | County estimate |
| Velva | 413.0 | 24.1 | Very hard | County estimate |
| Burlington | 395.5 | 23.1 | Very hard | County estimate |
| Belfield | 232.5 | 13.6 | Very hard | County estimate |
| Ray | 427.0 | 25.0 | Very hard | County estimate |
| Northwood | 390.0 | 22.8 | Very hard | County estimate |
| Glen Ullin | 337.0 | 19.7 | Very hard | County estimate |
| Hatton | 612.0 | 35.8 | Very hard | County estimate |
| Dunseith | 314.5 | 18.4 | Very hard | County estimate |
| Hebron | 337.0 | 19.7 | Very hard | County estimate |
| Harwood | 392.0 | 22.9 | Very hard | County estimate |
| Wilton | 365.0 | 21.4 | Very hard | County estimate |
| Portland | 612.0 | 35.8 | Very hard | County estimate |
| Minto | 437.0 | 25.6 | Very hard | County estimate |
| Pembina | 340.0 | 19.9 | Very hard | County estimate |
| Center | 453.0 | 26.5 | Very hard | County estimate |
| Edgeley | 406.0 | 23.7 | Very hard | County estimate |
| Rolette | 314.5 | 18.4 | Very hard | County estimate |
| Argusville | 392.0 | 22.9 | Very hard | County estimate |
| Leeds | 431.0 | 25.2 | Very hard | County estimate |
| Emerado | 390.0 | 22.8 | Very hard | County estimate |
| Valley City | 394.0 | 23.0 | Very hard | County estimate |
| Maddock | 431.0 | 25.2 | Very hard | County estimate |
| Neche | 340.0 | 19.9 | Very hard | County estimate |
| Stanton | 234.0 | 13.7 | Very hard | County estimate |
| St. John | 314.5 | 18.4 | Very hard | County estimate |
| St. Thomas | 340.0 | 19.9 | Very hard | County estimate |
| Gackle | 349.0 | 20.4 | Very hard | County estimate |
| Zap | 234.0 | 13.7 | Very hard | County estimate |
| Wimbledon | 394.0 | 23.0 | Very hard | County estimate |
| Sanborn | 394.0 | 23.0 | Very hard | County estimate |
| Golden Valley | 234.0 | 13.7 | Very hard | County estimate |
| Arvilla | 390.0 | 22.8 | Very hard | County estimate |
| Litchville | 394.0 | 23.0 | Very hard | County estimate |
| Kensal | 384.0 | 22.5 | Very hard | County estimate |
| Willow City | 417.0 | 24.4 | Very hard | County estimate |
| Wing | 365.0 | 21.4 | Very hard | County estimate |
| Bowdon | 376.0 | 22.0 | Very hard | County estimate |
| Bisbee | 477.0 | 27.9 | Very hard | County estimate |
| Sykeston | 376.0 | 22.0 | Very hard | County estimate |
| Oberon | 431.0 | 25.2 | Very hard | County estimate |
| Rocklake | 477.0 | 27.9 | Very hard | County estimate |
| Mountain | 340.0 | 19.9 | Very hard | County estimate |
| Dodge | 245.0 | 14.3 | Very hard | County estimate |
| Montpelier | 384.0 | 22.5 | Very hard | County estimate |
| Cleveland | 384.0 | 22.5 | Very hard | County estimate |
| Solen | 337.0 | 19.7 | Very hard | County estimate |
| Jud | 406.0 | 23.7 | Very hard | County estimate |
| Cathay | 163.6 | 9.6 | Hard | Computed from Ca+Mg |
| Cooperstown | 381.5 | 22.3 | Very hard | County estimate |
| Finley | 612.0 | 35.8 | Very hard | County estimate |
| Fullerton | 469.5 | 27.5 | Very hard | County estimate |
| Hankinson | 413.5 | 24.2 | Very hard | County estimate |
| Kenmare | 395.5 | 23.1 | Very hard | County estimate |
| Petersburg | 851.0 | 49.8 | Very hard | County estimate |
| Turtle Lake | 255.0 | 14.9 | Very hard | County estimate |
| Walhalla | 340.0 | 19.9 | Very hard | County 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.