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.
Colorado 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 | 24 | 21.8% |
| Moderately hard | 60-120 mg/L | 71 | 64.5% |
| Hard | 120-180 mg/L | 9 | 8.2% |
| Very hard | >180 mg/L | 6 | 5.5% |
Hardest and Softest Water in Colorado
Measured values only; labeled county estimates and values under active dispute never rank.
Hardest water in Colorado
- Fort Carson — 335.0 mg/L (19.6 gpg), very hard
- Fountain — 335.0 mg/L (19.6 gpg), very hard
- Security-Widefield — 335.0 mg/L (19.6 gpg), very hard
- Eagle — 226.0 mg/L (13.2 gpg), very hard
- Wellington — 218.0 mg/L (12.8 gpg), very hard
Softest water in Colorado
- Longmont — 20.5 mg/L (1.2 gpg), soft
- Floyd Hill — 25.9 mg/L (1.5 gpg), soft
- Loveland — 27.9 mg/L (1.6 gpg), soft
- Windsor — 30.8 mg/L (1.8 gpg), soft
- 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.
| City | Hardness (mg/L) | gpg | Category | Data |
|---|---|---|---|---|
| Aurora | 99.9 | 5.8 | Moderately hard | Utility-reported |
| Twin Lakes | 99.3 | 5.8 | Moderately hard | Utility-reported |
| Westminster | 100.0 | 5.8 | Moderately hard | Utility-reported |
| Sherrelwood | 100.0 | 5.8 | Moderately hard | Utility-reported |
| Arvada | 93.4 | 5.5 | Moderately hard | Utility-reported |
| Inverness | 95.7 | 5.6 | Moderately hard | Utility-reported |
| Denver | 97.3 | 5.7 | Moderately hard | Utility-reported |
| Thornton | 98.5 | 5.8 | Moderately hard | Utility-reported |
| Centennial | 95.7 | 5.6 | Moderately hard | Utility-reported |
| Dove Valley | 95.7 | 5.6 | Moderately hard | Utility-reported |
| Lakewood | 97.0 | 5.7 | Moderately hard | Utility-reported |
| Sheridan | 100.6 | 5.9 | Moderately hard | Utility-reported |
| Englewood | 100.6 | 5.9 | Moderately hard | Utility-reported |
| Edgewater | 95.9 | 5.6 | Moderately hard | Utility-reported |
| Commerce City | 95.1 | 5.6 | Moderately hard | Utility-reported |
| Four Square Mile | 96.3 | 5.6 | Moderately hard | Utility-reported |
| Glendale | 96.3 | 5.6 | Moderately hard | Utility-reported |
| Holly Hills | 96.3 | 5.6 | Moderately hard | Utility-reported |
| Cherry Creek | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Greenwood Village | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Wheat Ridge | 95.6 | 5.6 | Moderately hard | Utility-reported |
| Bow Mar | 96.6 | 5.7 | Moderately hard | Utility-reported |
| Littleton | 96.6 | 5.7 | Moderately hard | Utility-reported |
| Acres Green | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Lone Tree | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Applewood | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Fairmount | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Highlands Ranch | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Cherry Hills Village | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Morrison | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Meridian | 96.0 | 5.6 | Moderately hard | Utility-reported |
| North Washington | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Ken Caryl | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Dakota Ridge | 96.1 | 5.6 | Moderately hard | Utility-reported |
| Columbine Valley | 95.9 | 5.6 | Moderately hard | Utility-reported |
| Mountain View | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Berkley | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Columbine | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Lakeside | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Roxborough Park | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Welby | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Stratmoor | 49.6 | 2.9 | Soft | Utility-reported |
| Colorado Springs | 35.8 | 2.1 | Soft | Utility-reported |
| Cimarron Hills | 35.8 | 2.1 | Soft | Utility-reported |
| Fort Collins | 42.2 | 2.5 | Soft | Utility-reported |
| Northglenn | 118.0 | 6.9 | Moderately hard | Utility-reported |
| Shaw Heights | 127.0 | 7.4 | Hard | Utility-reported |
| Laporte | 42.8 | 2.5 | Soft | Utility-reported |
| Federal Heights | 119.0 | 7.0 | Moderately hard | Utility-reported |
| Boulder | 41.4 | 2.4 | Soft | Utility-reported |
| Loveland | 27.9 | 1.6 | Soft | Utility-reported |
| Garden City | 36.6 | 2.1 | Soft | Utility-reported |
| Greeley | 36.6 | 2.1 | Soft | Utility-reported |
| Pueblo | 139.0 | 8.1 | Hard | Utility-reported |
| Broomfield | 45.9 | 2.7 | Soft | Utility-reported |
| Longmont | 20.5 | 1.2 | Soft | Utility-reported |
| Castle Rock | 134.0 | 7.8 | Hard | Utility-reported |
| Fruita | 328.0 | 19.2 | Very hard | County estimate |
| Parker | 75.4 | 4.4 | Moderately hard | Utility-reported |
| Derby | 78.9 | 4.6 | Moderately hard | Utility-reported |
| Fort Carson | 335.0 | 19.6 | Very hard | Utility-reported |
| Security-Widefield | 335.0 | 19.6 | Very hard | Utility-reported |
| Timnath | 41.4 | 2.4 | Soft | Utility-reported |
| Clifton | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Fruitvale | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Grand Junction | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Stepping Stone | 74.5 | 4.4 | Moderately hard | Utility-reported |
| Brighton | 202.0 | 11.8 | Very hard | Utility-reported |
| Golden | 90.4 | 5.3 | Moderately hard | Utility-reported |
| West Pleasant View | 90.4 | 5.3 | Moderately hard | Utility-reported |
| Vail | 96.0 | 5.6 | Moderately hard | Utility-reported |
| Fountain | 335.0 | 19.6 | Very hard | Utility-reported |
| Palisade | 328.0 | 19.2 | Very hard | County estimate |
| Snowmass Village | 117.0 | 6.8 | Moderately hard | Utility-reported |
| Cañon City | 132.0 | 7.7 | Hard | Utility-reported |
| Canon City | 132.0 | 7.7 | Hard | Utility-reported |
| Lincoln Park | 132.0 | 7.7 | Hard | Utility-reported |
| Erie | 33.4 | 1.9 | Soft | Utility-reported |
| Pueblo West | 169.0 | 9.9 | Hard | Utility-reported |
| Lafayette | 91.1 | 5.3 | Moderately hard | Utility-reported |
| Berthoud | 36.5 | 2.1 | Soft | Utility-reported |
| Breckenridge | 83.0 | 4.8 | Moderately hard | County estimate |
| Firestone | 415.0 | 24.3 | Very hard | County estimate |
| Evans | 415.0 | 24.3 | Very hard | County estimate |
| Delta | 410.0 | 24.0 | Very hard | County estimate |
| Orchard Mesa | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Redlands | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Blanca | 88.3 | 5.2 | Moderately hard | Utility-reported |
| The Pinery | 87.1 | 5.1 | Moderately hard | Utility-reported |
| Windsor | 30.8 | 1.8 | Soft | Utility-reported |
| Woodmoor | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Louisville | 32.2 | 1.9 | Soft | Utility-reported |
| Mead | 35.6 | 2.1 | Soft | Utility-reported |
| Niwot | 52.0 | 3.0 | Soft | Utility-reported |
| Paragon Estates | 32.2 | 1.9 | Soft | Utility-reported |
| Montrose | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Johnstown | 58.9 | 3.4 | Soft | Utility-reported |
| Falcon | 88.3 | 5.2 | Moderately hard | Utility-reported |
| Superior | 32.6 | 1.9 | Soft | Utility-reported |
| Estes Park | 17.3 | 1.0 | Soft | County estimate |
| Ordway | 454.5 | 26.6 | Very hard | County estimate |
| Evergreen | 53.4 | 3.1 | Soft | Utility-reported |
| Kittredge | 53.4 | 3.1 | Soft | Utility-reported |
| Frederick | 415.0 | 24.3 | Very hard | County estimate |
| Fort Lupton | 415.0 | 24.3 | Very hard | County estimate |
| Black Hawk | 80.0 | 4.7 | Moderately hard | County estimate |
| Sterling | 640.0 | 37.4 | Very hard | County estimate |
| Grand View Estates | 92.4 | 5.4 | Moderately hard | Utility-reported |
| Lucerne | 415.0 | 24.3 | Very hard | County estimate |
| Fort Morgan | 540.0 | 31.6 | Very hard | County estimate |
| Wellington | 218.0 | 12.8 | Very hard | Utility-reported |
| Trinidad | 180.0 | 10.5 | Hard | County estimate |
| Silverthorne | 111.7 | 6.5 | Moderately hard | Utility-reported |
| Alamosa | 68.1 | 4.0 | Moderately hard | County estimate |
| Pagosa Springs | 53.0 | 3.1 | Soft | County estimate |
| Sterling Ranch | 99.8 | 5.8 | Moderately hard | Utility-reported |
| Steamboat Springs | 63.6 | 3.7 | Moderately hard | Utility-reported |
| Indian Hills | 130.0 | 7.6 | Hard | County estimate |
| Glenwood Springs | 220.0 | 12.9 | Very hard | County estimate |
| Gunnison | 72.2 | 4.2 | Moderately hard | County estimate |
| Rifle | 270.5 | 15.8 | Very hard | County estimate |
| Idaho Springs | 74.0 | 4.3 | Moderately hard | County estimate |
| Cortez | 284.0 | 16.6 | Very hard | County estimate |
| Milliken | 415.0 | 24.3 | Very hard | County estimate |
| Redvale | 200.0 | 11.7 | Very hard | County estimate |
| Peyton | 140.0 | 8.2 | Hard | County estimate |
| Severance | 415.0 | 24.3 | Very hard | County estimate |
| Gypsum | 220.0 | 12.9 | Very hard | County estimate |
| Leadville | 119.0 | 7.0 | Moderately hard | County estimate |
| Sanford | 84.3 | 4.9 | Moderately hard | County estimate |
| Winter Park | 31.7 | 1.9 | Soft | County estimate |
| Eagle | 226.0 | 13.2 | Very hard | Utility-reported |
| Manitou Springs | 140.0 | 8.2 | Hard | County estimate |
| Basalt | 98.0 | 5.7 | Moderately hard | Utility-reported |
| Floyd Hill | 25.9 | 1.5 | Soft | Utility-reported |
| Eaton | 415.0 | 24.3 | Very hard | County estimate |
| Salida | 143.0 | 8.4 | Hard | Utility-reported |
| Dillon | 105.0 | 6.1 | Moderately hard | Utility-reported |
| Dacono | 415.0 | 24.3 | Very hard | County estimate |
| Fraser | 31.7 | 1.9 | Soft | County estimate |
| Brush | 540.0 | 31.6 | Very hard | County estimate |
| New Castle | 220.0 | 12.9 | Very hard | County estimate |
| Monument | 140.0 | 8.2 | Hard | County estimate |
| Monte Vista | 46.0 | 2.7 | Soft | County estimate |
| Frisco | 83.0 | 4.8 | Moderately hard | County estimate |
| Genesee | 80.9 | 4.7 | Moderately hard | Utility-reported |
| Hayden | 113.0 | 6.6 | Moderately hard | County estimate |
| Buena Vista | 60.0 | 3.5 | Soft | County estimate |
| Central City | 80.0 | 4.7 | Moderately hard | County estimate |
| Burlington | 186.0 | 10.9 | Very hard | County estimate |
| Keenesburg | 415.0 | 24.3 | Very hard | County estimate |
| Lyons | 46.0 | 2.7 | Soft | County estimate |
| Silt | 220.0 | 12.9 | Very hard | County estimate |
| Palmer Lake | 140.0 | 8.2 | Hard | County estimate |
| Hudson | 415.0 | 24.3 | Very hard | County estimate |
| Walsenburg | 175.0 | 10.2 | Hard | County estimate |
| Austin | 410.0 | 24.0 | Very hard | County estimate |
| Platteville | 415.0 | 24.3 | Very hard | County estimate |
| Cripple Creek | 130.0 | 7.6 | Hard | County estimate |
| Mancos | 81.4 | 4.8 | Moderately hard | Utility-reported |
| Meeker | 270.5 | 15.8 | Very hard | County estimate |
| Paonia | 410.0 | 24.0 | Very hard | County estimate |
| Crested Butte | 72.2 | 4.2 | Moderately hard | County estimate |
| Nederland | 46.0 | 2.7 | Soft | County estimate |
| Center | 57.3 | 3.4 | Soft | County estimate |
| Silverton | 138.0 | 8.1 | Hard | County estimate |
| Akron | 402.5 | 23.5 | Very hard | County estimate |
| Wray | 180.0 | 10.5 | Hard | County estimate |
| Rangely | 270.5 | 15.8 | Very hard | County estimate |
| Bayfield | 200.0 | 11.7 | Very hard | County estimate |
| Towaoc | 284.0 | 16.6 | Very hard | County estimate |
| Colorado City | 336.0 | 19.6 | Very hard | County estimate |
| Flagler | 186.0 | 10.9 | Very hard | County estimate |
| Kersey | 415.0 | 24.3 | Very hard | County estimate |
| Cedaredge | 410.0 | 24.0 | Very hard | County estimate |
| Hotchkiss | 410.0 | 24.0 | Very hard | County estimate |
| Strasburg | 242.0 | 14.2 | Very hard | County estimate |
| Grand Lake | 31.7 | 1.9 | Soft | County estimate |
| La Salle | 415.0 | 24.3 | Very hard | County estimate |
| Creede | 30.7 | 1.8 | Soft | County estimate |
| Conifer | 130.0 | 7.6 | Hard | County estimate |
| Kremmling | 31.7 | 1.9 | Soft | County estimate |
| Del Norte | 46.0 | 2.7 | Soft | County estimate |
| Ault | 415.0 | 24.3 | Very hard | County estimate |
| Granby | 31.7 | 1.9 | Soft | County estimate |
| Olathe | 332.0 | 19.4 | Very hard | County estimate |
| Dolores | 114.5 | 6.7 | Moderately hard | County estimate |
| Avondale | 336.0 | 19.6 | Very hard | County estimate |
| Crestone | 57.3 | 3.4 | Soft | County estimate |
| Poncha Springs | 60.0 | 3.5 | Soft | County estimate |
| Georgetown | 74.0 | 4.3 | Moderately hard | County estimate |
| Watkins | 276.0 | 16.1 | Very hard | County estimate |
| Springfield | 270.0 | 15.8 | Very hard | County estimate |
| Parachute | 220.0 | 12.9 | Very hard | County estimate |
| Julesburg | 716.0 | 41.9 | Very hard | County estimate |
| Minturn | 129.0 | 7.5 | Hard | County estimate |
| Fowler | 336.0 | 19.6 | Very hard | County estimate |
| Gilcrest | 415.0 | 24.3 | Very hard | County estimate |
| Log Lane Village | 540.0 | 31.6 | Very hard | County estimate |
| Byers | 242.0 | 14.2 | Very hard | County estimate |
| Ridgway | 228.0 | 13.3 | Very hard | County estimate |
| Manassa | 59.0 | 3.5 | Soft | County estimate |
| Stratton | 186.0 | 10.9 | Very hard | County estimate |
| Oak Creek | 113.0 | 6.6 | Moderately hard | County estimate |
| Wiggins | 540.0 | 31.6 | Very hard | County estimate |
| Fairplay | 110.0 | 6.4 | Moderately hard | County estimate |
| Nucla | 332.0 | 19.4 | Very hard | County estimate |
| Dove Creek | 114.5 | 6.7 | Moderately hard | County estimate |
| La Veta | 175.0 | 10.2 | Hard | County estimate |
| Pierce | 415.0 | 24.3 | Very hard | County estimate |
| La Jara | 59.0 | 3.5 | Soft | County estimate |
| Ignacio | 200.0 | 11.7 | Very hard | County estimate |
| Calhan | 140.0 | 8.2 | Hard | County estimate |
| Rye | 175.0 | 10.2 | Hard | County estimate |
| Collbran | 328.0 | 19.2 | Very hard | County estimate |
| Aspen | 168.0 | 9.8 | Hard | Utility-reported |
| Kiowa | 214.0 | 12.5 | Very hard | County estimate |
| Lake City | 65.3 | 3.8 | Moderately hard | County estimate |
| Naturita | 332.0 | 19.4 | Very hard | County estimate |
| Rockvale | 140.0 | 8.2 | Hard | County estimate |
| Aguilar | 180.0 | 10.5 | Hard | County estimate |
| Victor | 130.0 | 7.6 | Hard | County estimate |
| Yampa | 113.0 | 6.6 | Moderately hard | County estimate |
| Red Cliff | 129.0 | 7.5 | Hard | County estimate |
| Romeo | 59.0 | 3.5 | Soft | County estimate |
| Woodland Park | 130.0 | 7.6 | Hard | County estimate |
| Fleming | 640.0 | 37.4 | Very hard | County estimate |
| Beulah | 336.0 | 19.6 | Very hard | County estimate |
| Empire | 74.0 | 4.3 | Moderately hard | County estimate |
| Clark | 113.0 | 6.6 | Moderately hard | County estimate |
| Carbondale | 164.0 | 9.6 | Hard | County estimate |
| Hesperus | 200.0 | 11.7 | Very hard | County estimate |
| Boone | 336.0 | 19.6 | Very hard | County estimate |
| Coal Creek | 140.0 | 8.2 | Hard | County estimate |
| Idledale | 130.0 | 7.6 | Hard | County estimate |
| Allenspark | 46.0 | 2.7 | Soft | County estimate |
| Briggsdale | 415.0 | 24.3 | Very hard | County estimate |
| Iliff | 640.0 | 37.4 | Very hard | County estimate |
| Florence | 140.0 | 8.2 | Hard | County estimate |
| Nathrop | 60.0 | 3.5 | Soft | County estimate |
| Elbert | 214.0 | 12.5 | Very hard | County estimate |
| Hillrose | 540.0 | 31.6 | Very hard | County estimate |
| Seibert | 186.0 | 10.9 | Very hard | County estimate |
| Peetz | 640.0 | 37.4 | Very hard | County estimate |
| Eckley | 180.0 | 10.5 | Hard | County estimate |
| Jamestown | 46.0 | 2.7 | Soft | County estimate |
| Larkspur | 124.0 | 7.3 | Hard | County estimate |
| Eldorado Springs | 46.0 | 2.7 | Soft | County estimate |
| Capulin | 59.0 | 3.5 | Soft | County estimate |
| Merino | 640.0 | 37.4 | Very hard | County estimate |
| Ward | 46.0 | 2.7 | Soft | County estimate |
| Ouray | 228.0 | 13.3 | Very hard | County estimate |
| Bethune | 186.0 | 10.9 | Very hard | County estimate |
| Crook | 640.0 | 37.4 | Very hard | County estimate |
| Silver Plume | 74.0 | 4.3 | Moderately hard | County estimate |
| Vona | 186.0 | 10.9 | Very hard | County estimate |
| Sedalia | 124.0 | 7.3 | Hard | County estimate |
| Branson | 180.0 | 10.5 | Hard | County estimate |
| Coaldale | 140.0 | 8.2 | Hard | County estimate |
| South Fork | 46.0 | 2.7 | Soft | County estimate |
| Durango | 200.0 | 11.7 | Very hard | County estimate |
| Castle Pines | 69.2 | 4.0 | Moderately hard | Utility-reported |
| Castle Pines Village | 69.2 | 4.0 | Moderately hard | Utility-reported |
| Telluride | 200.0 | 11.7 | Very hard | County estimate |
| Placerville | 200.0 | 11.7 | Very hard | County estimate |
| Chromo | 53.0 | 3.1 | Soft | County estimate |
| Elizabeth | 214.0 | 12.5 | Very hard | County estimate |
| Antonito | 59.0 | 3.5 | Soft | County estimate |
| Deer Trail | 276.0 | 16.1 | Very hard | County estimate |
| Norwood | 200.0 | 11.7 | Very hard | County estimate |
| Penrose | 140.0 | 8.2 | Hard | County estimate |
| Wiley | 722.0 | 42.2 | 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 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.
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.