Skip to main content
💧 TapWaterData

Water Hardness in Colorado

Across 110 measured cities — with 162 more covered by labeled county-level estimates — Colorado's median tap water hardness is 96.0 mg/L (5.6 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
96.0
mg/L (5.6 gpg), measured cities
Measured Range
20.5-335.0
mg/L across measured cities
Measured Cities
110
utility-reported or computed values
County Estimates
162
60% of covered cities

Colorado Cities by Hardness Category

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

CategoryRangeMeasured citiesShare
Soft0-60 mg/L2421.8%
Moderately hard60-120 mg/L7164.5%
Hard120-180 mg/L98.2%
Very hard>180 mg/L65.5%

Hardest and Softest Water in Colorado

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

Hardest water in Colorado

  1. Fort Carson 335.0 mg/L (19.6 gpg), very hard
  2. Fountain 335.0 mg/L (19.6 gpg), very hard
  3. Security-Widefield 335.0 mg/L (19.6 gpg), very hard
  4. Eagle 226.0 mg/L (13.2 gpg), very hard
  5. Wellington 218.0 mg/L (12.8 gpg), very hard

Softest water in Colorado

  1. Longmont 20.5 mg/L (1.2 gpg), soft
  2. Floyd Hill 25.9 mg/L (1.5 gpg), soft
  3. Loveland 27.9 mg/L (1.6 gpg), soft
  4. Windsor 30.8 mg/L (1.8 gpg), soft
  5. Louisville 32.2 mg/L (1.9 gpg), soft

Every Covered City in Colorado

All 272 covered Colorado 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
Aurora99.95.8Moderately hardUtility-reported
Twin Lakes99.35.8Moderately hardUtility-reported
Westminster100.05.8Moderately hardUtility-reported
Sherrelwood100.05.8Moderately hardUtility-reported
Arvada93.45.5Moderately hardUtility-reported
Inverness95.75.6Moderately hardUtility-reported
Denver97.35.7Moderately hardUtility-reported
Thornton98.55.8Moderately hardUtility-reported
Centennial95.75.6Moderately hardUtility-reported
Dove Valley95.75.6Moderately hardUtility-reported
Lakewood97.05.7Moderately hardUtility-reported
Sheridan100.65.9Moderately hardUtility-reported
Englewood100.65.9Moderately hardUtility-reported
Edgewater95.95.6Moderately hardUtility-reported
Commerce City95.15.6Moderately hardUtility-reported
Four Square Mile96.35.6Moderately hardUtility-reported
Glendale96.35.6Moderately hardUtility-reported
Holly Hills96.35.6Moderately hardUtility-reported
Cherry Creek96.05.6Moderately hardUtility-reported
Greenwood Village96.05.6Moderately hardUtility-reported
Wheat Ridge95.65.6Moderately hardUtility-reported
Bow Mar96.65.7Moderately hardUtility-reported
Littleton96.65.7Moderately hardUtility-reported
Acres Green96.05.6Moderately hardUtility-reported
Lone Tree96.05.6Moderately hardUtility-reported
Applewood96.05.6Moderately hardUtility-reported
Fairmount96.05.6Moderately hardUtility-reported
Highlands Ranch96.05.6Moderately hardUtility-reported
Cherry Hills Village96.05.6Moderately hardUtility-reported
Morrison96.05.6Moderately hardUtility-reported
Meridian96.05.6Moderately hardUtility-reported
North Washington96.05.6Moderately hardUtility-reported
Ken Caryl96.05.6Moderately hardUtility-reported
Dakota Ridge96.15.6Moderately hardUtility-reported
Columbine Valley95.95.6Moderately hardUtility-reported
Mountain View96.05.6Moderately hardUtility-reported
Berkley96.05.6Moderately hardUtility-reported
Columbine96.05.6Moderately hardUtility-reported
Lakeside96.05.6Moderately hardUtility-reported
Roxborough Park96.05.6Moderately hardUtility-reported
Welby96.05.6Moderately hardUtility-reported
Stratmoor49.62.9SoftUtility-reported
Colorado Springs35.82.1SoftUtility-reported
Cimarron Hills35.82.1SoftUtility-reported
Fort Collins42.22.5SoftUtility-reported
Northglenn118.06.9Moderately hardUtility-reported
Shaw Heights127.07.4HardUtility-reported
Laporte42.82.5SoftUtility-reported
Federal Heights119.07.0Moderately hardUtility-reported
Boulder41.42.4SoftUtility-reported
Loveland27.91.6SoftUtility-reported
Garden City36.62.1SoftUtility-reported
Greeley36.62.1SoftUtility-reported
Pueblo139.08.1HardUtility-reported
Broomfield45.92.7SoftUtility-reported
Longmont20.51.2SoftUtility-reported
Castle Rock134.07.8HardUtility-reported
Fruita328.019.2Very hardCounty estimate
Parker75.44.4Moderately hardUtility-reported
Derby78.94.6Moderately hardUtility-reported
Fort Carson335.019.6Very hardUtility-reported
Security-Widefield335.019.6Very hardUtility-reported
Timnath41.42.4SoftUtility-reported
Clifton110.06.4Moderately hardUtility-reported
Fruitvale110.06.4Moderately hardUtility-reported
Grand Junction110.06.4Moderately hardUtility-reported
Stepping Stone74.54.4Moderately hardUtility-reported
Brighton202.011.8Very hardUtility-reported
Golden90.45.3Moderately hardUtility-reported
West Pleasant View90.45.3Moderately hardUtility-reported
Vail96.05.6Moderately hardUtility-reported
Fountain335.019.6Very hardUtility-reported
Palisade328.019.2Very hardCounty estimate
Snowmass Village117.06.8Moderately hardUtility-reported
Cañon City132.07.7HardUtility-reported
Canon City132.07.7HardUtility-reported
Lincoln Park132.07.7HardUtility-reported
Erie33.41.9SoftUtility-reported
Pueblo West169.09.9HardUtility-reported
Lafayette91.15.3Moderately hardUtility-reported
Berthoud36.52.1SoftUtility-reported
Breckenridge83.04.8Moderately hardCounty estimate
Firestone415.024.3Very hardCounty estimate
Evans415.024.3Very hardCounty estimate
Delta410.024.0Very hardCounty estimate
Orchard Mesa110.06.4Moderately hardUtility-reported
Redlands110.06.4Moderately hardUtility-reported
Blanca88.35.2Moderately hardUtility-reported
The Pinery87.15.1Moderately hardUtility-reported
Windsor30.81.8SoftUtility-reported
Woodmoor104.06.1Moderately hardUtility-reported
Louisville32.21.9SoftUtility-reported
Mead35.62.1SoftUtility-reported
Niwot52.03.0SoftUtility-reported
Paragon Estates32.21.9SoftUtility-reported
Montrose111.06.5Moderately hardUtility-reported
Johnstown58.93.4SoftUtility-reported
Falcon88.35.2Moderately hardUtility-reported
Superior32.61.9SoftUtility-reported
Estes Park17.31.0SoftCounty estimate
Ordway454.526.6Very hardCounty estimate
Evergreen53.43.1SoftUtility-reported
Kittredge53.43.1SoftUtility-reported
Frederick415.024.3Very hardCounty estimate
Fort Lupton415.024.3Very hardCounty estimate
Black Hawk80.04.7Moderately hardCounty estimate
Sterling640.037.4Very hardCounty estimate
Grand View Estates92.45.4Moderately hardUtility-reported
Lucerne415.024.3Very hardCounty estimate
Fort Morgan540.031.6Very hardCounty estimate
Wellington218.012.8Very hardUtility-reported
Trinidad180.010.5HardCounty estimate
Silverthorne111.76.5Moderately hardUtility-reported
Alamosa68.14.0Moderately hardCounty estimate
Pagosa Springs53.03.1SoftCounty estimate
Sterling Ranch99.85.8Moderately hardUtility-reported
Steamboat Springs63.63.7Moderately hardUtility-reported
Indian Hills130.07.6HardCounty estimate
Glenwood Springs220.012.9Very hardCounty estimate
Gunnison72.24.2Moderately hardCounty estimate
Rifle270.515.8Very hardCounty estimate
Idaho Springs74.04.3Moderately hardCounty estimate
Cortez284.016.6Very hardCounty estimate
Milliken415.024.3Very hardCounty estimate
Redvale200.011.7Very hardCounty estimate
Peyton140.08.2HardCounty estimate
Severance415.024.3Very hardCounty estimate
Gypsum220.012.9Very hardCounty estimate
Leadville119.07.0Moderately hardCounty estimate
Sanford84.34.9Moderately hardCounty estimate
Winter Park31.71.9SoftCounty estimate
Eagle226.013.2Very hardUtility-reported
Manitou Springs140.08.2HardCounty estimate
Basalt98.05.7Moderately hardUtility-reported
Floyd Hill25.91.5SoftUtility-reported
Eaton415.024.3Very hardCounty estimate
Salida143.08.4HardUtility-reported
Dillon105.06.1Moderately hardUtility-reported
Dacono415.024.3Very hardCounty estimate
Fraser31.71.9SoftCounty estimate
Brush540.031.6Very hardCounty estimate
New Castle220.012.9Very hardCounty estimate
Monument140.08.2HardCounty estimate
Monte Vista46.02.7SoftCounty estimate
Frisco83.04.8Moderately hardCounty estimate
Genesee80.94.7Moderately hardUtility-reported
Hayden113.06.6Moderately hardCounty estimate
Buena Vista60.03.5SoftCounty estimate
Central City80.04.7Moderately hardCounty estimate
Burlington186.010.9Very hardCounty estimate
Keenesburg415.024.3Very hardCounty estimate
Lyons46.02.7SoftCounty estimate
Silt220.012.9Very hardCounty estimate
Palmer Lake140.08.2HardCounty estimate
Hudson415.024.3Very hardCounty estimate
Walsenburg175.010.2HardCounty estimate
Austin410.024.0Very hardCounty estimate
Platteville415.024.3Very hardCounty estimate
Cripple Creek130.07.6HardCounty estimate
Mancos81.44.8Moderately hardUtility-reported
Meeker270.515.8Very hardCounty estimate
Paonia410.024.0Very hardCounty estimate
Crested Butte72.24.2Moderately hardCounty estimate
Nederland46.02.7SoftCounty estimate
Center57.33.4SoftCounty estimate
Silverton138.08.1HardCounty estimate
Akron402.523.5Very hardCounty estimate
Wray180.010.5HardCounty estimate
Rangely270.515.8Very hardCounty estimate
Bayfield200.011.7Very hardCounty estimate
Towaoc284.016.6Very hardCounty estimate
Colorado City336.019.6Very hardCounty estimate
Flagler186.010.9Very hardCounty estimate
Kersey415.024.3Very hardCounty estimate
Cedaredge410.024.0Very hardCounty estimate
Hotchkiss410.024.0Very hardCounty estimate
Strasburg242.014.2Very hardCounty estimate
Grand Lake31.71.9SoftCounty estimate
La Salle415.024.3Very hardCounty estimate
Creede30.71.8SoftCounty estimate
Conifer130.07.6HardCounty estimate
Kremmling31.71.9SoftCounty estimate
Del Norte46.02.7SoftCounty estimate
Ault415.024.3Very hardCounty estimate
Granby31.71.9SoftCounty estimate
Olathe332.019.4Very hardCounty estimate
Dolores114.56.7Moderately hardCounty estimate
Avondale336.019.6Very hardCounty estimate
Crestone57.33.4SoftCounty estimate
Poncha Springs60.03.5SoftCounty estimate
Georgetown74.04.3Moderately hardCounty estimate
Watkins276.016.1Very hardCounty estimate
Springfield270.015.8Very hardCounty estimate
Parachute220.012.9Very hardCounty estimate
Julesburg716.041.9Very hardCounty estimate
Minturn129.07.5HardCounty estimate
Fowler336.019.6Very hardCounty estimate
Gilcrest415.024.3Very hardCounty estimate
Log Lane Village540.031.6Very hardCounty estimate
Byers242.014.2Very hardCounty estimate
Ridgway228.013.3Very hardCounty estimate
Manassa59.03.5SoftCounty estimate
Stratton186.010.9Very hardCounty estimate
Oak Creek113.06.6Moderately hardCounty estimate
Wiggins540.031.6Very hardCounty estimate
Fairplay110.06.4Moderately hardCounty estimate
Nucla332.019.4Very hardCounty estimate
Dove Creek114.56.7Moderately hardCounty estimate
La Veta175.010.2HardCounty estimate
Pierce415.024.3Very hardCounty estimate
La Jara59.03.5SoftCounty estimate
Ignacio200.011.7Very hardCounty estimate
Calhan140.08.2HardCounty estimate
Rye175.010.2HardCounty estimate
Collbran328.019.2Very hardCounty estimate
Aspen168.09.8HardUtility-reported
Kiowa214.012.5Very hardCounty estimate
Lake City65.33.8Moderately hardCounty estimate
Naturita332.019.4Very hardCounty estimate
Rockvale140.08.2HardCounty estimate
Aguilar180.010.5HardCounty estimate
Victor130.07.6HardCounty estimate
Yampa113.06.6Moderately hardCounty estimate
Red Cliff129.07.5HardCounty estimate
Romeo59.03.5SoftCounty estimate
Woodland Park130.07.6HardCounty estimate
Fleming640.037.4Very hardCounty estimate
Beulah336.019.6Very hardCounty estimate
Empire74.04.3Moderately hardCounty estimate
Clark113.06.6Moderately hardCounty estimate
Carbondale164.09.6HardCounty estimate
Hesperus200.011.7Very hardCounty estimate
Boone336.019.6Very hardCounty estimate
Coal Creek140.08.2HardCounty estimate
Idledale130.07.6HardCounty estimate
Allenspark46.02.7SoftCounty estimate
Briggsdale415.024.3Very hardCounty estimate
Iliff640.037.4Very hardCounty estimate
Florence140.08.2HardCounty estimate
Nathrop60.03.5SoftCounty estimate
Elbert214.012.5Very hardCounty estimate
Hillrose540.031.6Very hardCounty estimate
Seibert186.010.9Very hardCounty estimate
Peetz640.037.4Very hardCounty estimate
Eckley180.010.5HardCounty estimate
Jamestown46.02.7SoftCounty estimate
Larkspur124.07.3HardCounty estimate
Eldorado Springs46.02.7SoftCounty estimate
Capulin59.03.5SoftCounty estimate
Merino640.037.4Very hardCounty estimate
Ward46.02.7SoftCounty estimate
Ouray228.013.3Very hardCounty estimate
Bethune186.010.9Very hardCounty estimate
Crook640.037.4Very hardCounty estimate
Silver Plume74.04.3Moderately hardCounty estimate
Vona186.010.9Very hardCounty estimate
Sedalia124.07.3HardCounty estimate
Branson180.010.5HardCounty estimate
Coaldale140.08.2HardCounty estimate
South Fork46.02.7SoftCounty estimate
Durango200.011.7Very hardCounty estimate
Castle Pines69.24.0Moderately hardUtility-reported
Castle Pines Village69.24.0Moderately hardUtility-reported
Telluride200.011.7Very hardCounty estimate
Placerville200.011.7Very hardCounty estimate
Chromo53.03.1SoftCounty estimate
Elizabeth214.012.5Very hardCounty estimate
Antonito59.03.5SoftCounty estimate
Deer Trail276.016.1Very hardCounty estimate
Norwood200.011.7Very hardCounty estimate
Penrose140.08.2HardCounty estimate
Wiley722.042.2Very 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 Colorado's Water Hardness

Colorado 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.

Source: USGS Water Science School - Hardness of Water

Colorado Water Hardness FAQ

Does Colorado have hard water?

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

How hard is tap water in Colorado?

Across the 110 Colorado cities with measured values in our index, the median hardness is 96.0 mg/L (5.6 gpg) — moderately hard on the USGS scale. Individual cities range from 20.5 to 335.0 mg/L, so check your own city rather than assuming the state number.

Which city in Colorado has the hardest water?

Fort Carson has the hardest measured tap water in our Colorado index at 335.0 mg/L (19.6 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 Colorado?

15 of Colorado's 110 measured cities (14%) 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 Colorado 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.