Water Hardness in Utah
Across 49 measured cities — with 125 more covered by labeled county-level estimates — Utah's median tap water hardness is 190.0 mg/L (11.1 gpg): very 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.
Utah 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 | 1 | 2.0% |
| Moderately hard | 60-120 mg/L | 9 | 18.4% |
| Hard | 120-180 mg/L | 12 | 24.5% |
| Very hard | >180 mg/L | 27 | 55.1% |
Hardest and Softest Water in Utah
Measured values only; labeled county estimates and values under active dispute never rank.
Hardest water in Utah
- Bountiful — 462.8 mg/L (27.1 gpg), very hard
- Herriman — 424.0 mg/L (24.8 gpg), very hard
- Kearns — 365.0 mg/L (21.4 gpg), very hard
- Lake Point — 295.0 mg/L (17.3 gpg), very hard
- Stansbury Park — 295.0 mg/L (17.3 gpg), very hard
Softest water in Utah
- Fruitland — 0.6 mg/L (0.0 gpg), soft
- Mountain Green — 71.4 mg/L (4.2 gpg), moderately hard
- Draper — 93.9 mg/L (5.5 gpg), moderately hard
- Saratoga Springs — 95.9 mg/L (5.6 gpg), moderately hard
- Ogden — 103.9 mg/L (6.1 gpg), moderately hard
Every Covered City in Utah
All 174 covered Utah 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 |
|---|---|---|---|---|
| Murray | 215.6 | 12.6 | Very hard | Utility-reported |
| Cottonwood Heights | 213.9 | 12.5 | Very hard | Utility-reported |
| Riverton | 206.5 | 12.1 | Very hard | Utility-reported |
| South Salt Lake | 231.0 | 13.5 | Very hard | Utility-reported |
| Salt Lake City | 231.0 | 13.5 | Very hard | Utility-reported |
| Holladay | 231.0 | 13.5 | Very hard | Utility-reported |
| Millcreek | 231.0 | 13.5 | Very hard | Utility-reported |
| West Jordan | 242.9 | 14.2 | Very hard | Utility-reported |
| West Valley City | 237.2 | 13.9 | Very hard | Utility-reported |
| Sandy | 156.0 | 9.1 | Hard | Utility-reported |
| Provo | 256.2 | 15.0 | Very hard | County estimate |
| Ogden | 103.9 | 6.1 | Moderately hard | Computed from Ca+Mg |
| Lehi | 144.4 | 8.4 | Hard | Computed from Ca+Mg |
| Granite | 156.0 | 9.1 | Hard | Utility-reported |
| Orem | 140.0 | 8.2 | Hard | Utility-reported |
| St George | 138.0 | 8.1 | Hard | Utility-reported |
| St George City | 138.0 | 8.1 | Hard | Utility-reported |
| Layton | 190.0 | 11.1 | Very hard | Utility-reported |
| Taylorsville | 236.0 | 13.8 | Very hard | Utility-reported |
| Herriman | 424.0 | 24.8 | Very hard | Utility-reported |
| Roy | 199.1 | 11.6 | Very hard | County estimate |
| South Jordan | 142.0 | 8.3 | Hard | Utility-reported |
| North Logan | 194.0 | 11.3 | Very hard | Utility-reported |
| Clearfield | 330.1 | 19.3 | Very hard | County estimate |
| Kearns | 365.0 | 21.4 | Very hard | Utility-reported |
| Draper | 93.9 | 5.5 | Moderately hard | Utility-reported |
| Logan | 194.0 | 11.3 | Very hard | Utility-reported |
| Spanish Fork | 256.2 | 15.0 | Very hard | County estimate |
| Bountiful | 462.8 | 27.1 | Very hard | Computed from Ca+Mg |
| Eagle Mountain | 256.2 | 15.0 | Very hard | County estimate |
| Mapleton | 256.2 | 15.0 | Very hard | County estimate |
| Fruitland | 0.6 | 0.0 | Soft | Utility-reported |
| Cedar City | 224.0 | 13.1 | Very hard | County estimate |
| Pleasant Grove | 256.2 | 15.0 | Very hard | County estimate |
| Hurricane | 260.2 | 15.2 | Very hard | County estimate |
| Washington | 260.2 | 15.2 | Very hard | County estimate |
| Saratoga Springs | 95.9 | 5.6 | Moderately hard | Utility-reported |
| American Fork | 223.0 | 13.0 | Very hard | Utility-reported |
| Tooele | 333.0 | 19.5 | Very hard | County estimate |
| Midvale | 161.0 | 9.4 | Hard | Utility-reported |
| Magna | 340.5 | 19.9 | Very hard | County estimate |
| Springville | 256.2 | 15.0 | Very hard | County estimate |
| North Salt Lake | 358.4 | 21.0 | Very hard | Utility-reported |
| Syracuse | 330.1 | 19.3 | Very hard | County estimate |
| Kaysville | 134.0 | 7.8 | Hard | Utility-reported |
| Farmington | 330.1 | 19.3 | Very hard | County estimate |
| Heber | 196.2 | 11.5 | Very hard | Utility-reported |
| Highland | 195.0 | 11.4 | Very hard | Utility-reported |
| Summit Park | 116.0 | 6.8 | Moderately hard | Utility-reported |
| Hooper | 199.1 | 11.6 | Very hard | County estimate |
| Brigham City | 377.5 | 22.1 | Very hard | County estimate |
| Payson | 256.2 | 15.0 | Very hard | County estimate |
| Santaquin | 256.2 | 15.0 | Very hard | County estimate |
| East Basin | 119.8 | 7.0 | Moderately hard | Utility-reported |
| Centerville | 160.0 | 9.4 | Hard | Computed from Ca+Mg |
| Silver Summit | 119.8 | 7.0 | Moderately hard | Utility-reported |
| Snyderville | 119.8 | 7.0 | Moderately hard | Utility-reported |
| Tridell | 300.0 | 17.5 | Very hard | County estimate |
| Grantsville | 333.0 | 19.5 | Very hard | County estimate |
| Garland | 377.5 | 22.1 | Very hard | County estimate |
| Vernal | 300.0 | 17.5 | Very hard | County estimate |
| Tremonton | 377.5 | 22.1 | Very hard | County estimate |
| Woods Cross | 330.1 | 19.3 | Very hard | County estimate |
| Lindon | 118.0 | 6.9 | Moderately hard | Utility-reported |
| Ivins | 174.4 | 10.2 | Hard | Utility-reported |
| Lake Point | 295.0 | 17.3 | Very hard | Utility-reported |
| Smithfield | 240.7 | 14.1 | Very hard | County estimate |
| Erda | 280.5 | 16.4 | Very hard | Utility-reported |
| Alpine | 256.2 | 15.0 | Very hard | County estimate |
| Price | 300.4 | 17.6 | Very hard | County estimate |
| Helper | 300.4 | 17.6 | Very hard | County estimate |
| Wellington | 300.4 | 17.6 | Very hard | County estimate |
| Stansbury Park | 295.0 | 17.3 | Very hard | Utility-reported |
| Roosevelt | 219.2 | 12.8 | Very hard | County estimate |
| Santa Clara | 260.2 | 15.2 | Very hard | County estimate |
| Hyrum | 240.7 | 14.1 | Very hard | County estimate |
| Providence | 240.7 | 14.1 | Very hard | County estimate |
| Ephraim | 337.0 | 19.7 | Very hard | County estimate |
| Salem | 256.2 | 15.0 | Very hard | County estimate |
| Fruit Heights | 189.0 | 11.1 | Very hard | Utility-reported |
| Midway | 204.0 | 11.9 | Very hard | Utility-reported |
| Centerfield | 337.0 | 19.7 | Very hard | County estimate |
| Daniel | 207.0 | 12.1 | Very hard | Utility-reported |
| Toquerville | 260.2 | 15.2 | Very hard | County estimate |
| Virgin | 260.2 | 15.2 | Very hard | County estimate |
| Mountain Green | 71.4 | 4.2 | Moderately hard | Computed from Ca+Mg |
| Wellsville | 240.7 | 14.1 | Very hard | County estimate |
| Moab | 347.9 | 20.4 | Very hard | County estimate |
| Hyde Park | 240.7 | 14.1 | Very hard | County estimate |
| Blanding | 274.4 | 16.1 | Very hard | County estimate |
| Fort Duchesne | 300.0 | 17.5 | Very hard | County estimate |
| Mount Pleasant | 337.0 | 19.7 | Very hard | County estimate |
| Willard | 377.5 | 22.1 | Very hard | County estimate |
| Gunnison | 337.0 | 19.7 | Very hard | County estimate |
| Manti | 337.0 | 19.7 | Very hard | County estimate |
| Hill Afb | 330.1 | 19.3 | Very hard | County estimate |
| Beaver | 177.6 | 10.4 | Hard | County estimate |
| Hideout | 184.8 | 10.8 | Very hard | Utility-reported |
| Parowan | 224.0 | 13.1 | Very hard | County estimate |
| Monticello | 274.4 | 16.1 | Very hard | County estimate |
| Fillmore | 339.5 | 19.9 | Very hard | County estimate |
| Kamas | 190.9 | 11.2 | Very hard | County estimate |
| Monroe | 105.3 | 6.2 | Moderately hard | County estimate |
| Huntington | 653.6 | 38.2 | Very hard | County estimate |
| Bear River City | 377.5 | 22.1 | Very hard | County estimate |
| Mona | 281.1 | 16.4 | Very hard | County estimate |
| Salina | 105.3 | 6.2 | Moderately hard | County estimate |
| Talmage | 219.2 | 12.8 | Very hard | County estimate |
| Fairview | 337.0 | 19.7 | Very hard | County estimate |
| Lewiston | 240.7 | 14.1 | Very hard | County estimate |
| Cleveland | 653.6 | 38.2 | Very hard | County estimate |
| Coalville | 190.9 | 11.2 | Very hard | County estimate |
| Corinne | 377.5 | 22.1 | Very hard | County estimate |
| Park City | 166.0 | 9.7 | Hard | Utility-reported |
| Duchesne | 219.2 | 12.8 | Very hard | County estimate |
| Millville | 240.7 | 14.1 | Very hard | County estimate |
| Riverside | 377.5 | 22.1 | Very hard | County estimate |
| Myton | 219.2 | 12.8 | Very hard | County estimate |
| Ferron | 653.6 | 38.2 | Very hard | County estimate |
| Mendon | 240.7 | 14.1 | Very hard | County estimate |
| Oakley | 190.9 | 11.2 | Very hard | County estimate |
| East Carbon | 300.4 | 17.6 | Very hard | County estimate |
| Panguitch | 209.4 | 12.3 | Very hard | County estimate |
| Honeyville | 377.5 | 22.1 | Very hard | County estimate |
| Milford | 177.6 | 10.4 | Hard | County estimate |
| Wendover | 333.0 | 19.5 | Very hard | County estimate |
| Jensen | 300.0 | 17.5 | Very hard | County estimate |
| Moroni | 337.0 | 19.7 | Very hard | County estimate |
| Fielding | 377.5 | 22.1 | Very hard | County estimate |
| Altamont | 219.2 | 12.8 | Very hard | County estimate |
| Aurora | 105.3 | 6.2 | Moderately hard | County estimate |
| Paradise | 240.7 | 14.1 | Very hard | County estimate |
| Spring City | 337.0 | 19.7 | Very hard | County estimate |
| Minersville | 177.6 | 10.4 | Hard | County estimate |
| Dammeron Valley | 260.2 | 15.2 | Very hard | County estimate |
| Henefer | 190.9 | 11.2 | Very hard | County estimate |
| Redmond | 105.3 | 6.2 | Moderately hard | County estimate |
| Oak City | 339.5 | 19.9 | Very hard | County estimate |
| Mantua | 377.5 | 22.1 | Very hard | County estimate |
| Huntsville | 199.1 | 11.6 | Very hard | County estimate |
| Hinckley | 339.5 | 19.9 | Very hard | County estimate |
| Stockton | 333.0 | 19.5 | Very hard | County estimate |
| Delta | 339.5 | 19.9 | Very hard | County estimate |
| Mayfield | 337.0 | 19.7 | Very hard | County estimate |
| Morgan | 270.0 | 15.8 | Very hard | County estimate |
| Neola | 219.2 | 12.8 | Very hard | County estimate |
| Veyo | 260.2 | 15.2 | Very hard | County estimate |
| Trenton | 240.7 | 14.1 | Very hard | County estimate |
| Circleville | 163.2 | 9.5 | Hard | County estimate |
| Paragonah | 224.0 | 13.1 | Very hard | County estimate |
| Holden | 339.5 | 19.9 | Very hard | County estimate |
| Bluff | 274.4 | 16.1 | Very hard | County estimate |
| Enterprise | 260.2 | 15.2 | Very hard | County estimate |
| Deweyville | 377.5 | 22.1 | Very hard | County estimate |
| Marysvale | 163.2 | 9.5 | Hard | County estimate |
| Sterling | 337.0 | 19.7 | Very hard | County estimate |
| Axtell | 337.0 | 19.7 | Very hard | County estimate |
| Randlett | 300.0 | 17.5 | Very hard | County estimate |
| Wales | 337.0 | 19.7 | Very hard | County estimate |
| Heber City | 155.9 | 9.1 | Hard | County estimate |
| Leamington | 339.5 | 19.9 | Very hard | County estimate |
| Summit | 224.0 | 13.1 | Very hard | County estimate |
| Fayette | 337.0 | 19.7 | Very hard | County estimate |
| Montezuma Creek | 274.4 | 16.1 | Very hard | County estimate |
| Junction | 163.2 | 9.5 | Hard | County estimate |
| Kingston | 163.2 | 9.5 | Hard | County estimate |
| Lynndyl | 339.5 | 19.9 | Very hard | County estimate |
| Gunlock | 260.2 | 15.2 | Very hard | County estimate |
| Eden | 199.1 | 11.6 | Very hard | County estimate |
| Brian Head | 224.0 | 13.1 | Very hard | County estimate |
| Echo | 190.9 | 11.2 | Very hard | County estimate |
| Elsinore | 105.3 | 6.2 | Moderately hard | County estimate |
| Fountain Green | 337.0 | 19.7 | Very hard | County estimate |
| Torrey | 309.3 | 18.1 | 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 Utah's Water Hardness
Utah sits in the Mountain West basins and desert Southwest region.
Mountain snowmelt starts out soft, but across the interior West it drains into closed basins floored with carbonate and evaporite sediments, and the arid climate evaporates water faster than rain can dilute it. Rivers like the Colorado accumulate dissolved calcium and magnesium along their whole length, so the USGS maps most basin-and-range and desert-Southwest supplies as hard to very hard. Towns high in the mountains that capture snowmelt directly are the region's soft-water exceptions.
Utah Water Hardness FAQ
Does Utah have hard water?
Yes — across Utah's measured cities, typical tap water is hard. The median is 190.0 mg/L (11.1 gpg) — very hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 39 of Utah's 49 measured cities fall in the hard or very hard bands (80%), so check your own city rather than the state average.
How hard is tap water in Utah?
Across the 49 Utah cities with measured values in our index, the median hardness is 190.0 mg/L (11.1 gpg) — very hard on the USGS scale. Individual cities range from 0.6 to 462.8 mg/L, so check your own city rather than assuming the state number.
Which city in Utah has the hardest water?
Bountiful has the hardest measured tap water in our Utah index at 462.8 mg/L (27.1 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 Utah?
39 of Utah's 49 measured cities (80%) 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 Utah 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.