Water Hardness in Oregon
Across 39 measured cities — with 180 more covered by labeled county-level estimates — Oregon's median tap water hardness is 22.6 mg/L (1.3 gpg): soft on the USGS scale. Below: every covered city, the state's hardest and softest water, and the geology that explains it.
Data updated September 13, 2026. Sources: utility-reported water quality data and USGS/EPA Water Quality Portal samples.
What it costs to soften Oregon water
Water softener cost in Oregon at 1.3 gpg prices the equipment and the installation labour against the plumber wages published for Oregon, and labels every range as modelled or measured rather than leaving you to guess which it is.
Oregon · 1.32 grains per gallon
$1,032–$1,452
installed, midpoint $1,219 — a 24,000-grain unit, the size 4 people at this hardness need.
Salt and drain water over 10 years: $386–$970 — the 1,445,400 grains of hardness this household removes, at the national salt price and water rate whose sources are named below. Filter changes and Service contract are omitted rather than assumed.
Sized for 4 people regenerating every 7 days: 2,772 grains of capacity needed, rounded up to the next common residential size. The median of 39 measured Oregon cities in our hardness dataset. Modelled: the standard build band published for that state at the size this hardness calls for, equipment priced 2026-10-04 against the May 2025 reference period (OEWS M2025). Salt: the median retailer price of 3 retailers, read 2026-10-04, at a declared salt dose per regeneration. Drain water: about 50 gallons per regeneration from a government extension estimate read 2026-10-04, at the 2024 national average water and sewer rate from a government source read 2026-10-04.
Deciding whether it is worth it at all? Start from how much a water softener costs nationally — the same equipment, installation and ten-year ownership breakdown before any state wage adjustment is applied.
Oregon 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 | 34 | 87.2% |
| Moderately hard | 60-120 mg/L | 5 | 12.8% |
| Hard | 120-180 mg/L | 0 | 0.0% |
| Very hard | >180 mg/L | 0 | 0.0% |
Hardest and Softest Water in Oregon
Measured values only; labeled county estimates and values under active dispute never rank.
Hardest water in Oregon
- Milwaukie — 120.0 mg/L (7.0 gpg), moderately hard
- Keizer — 95.2 mg/L (5.6 gpg), moderately hard
- The Dalles — 78.5 mg/L (4.6 gpg), moderately hard
- Gresham — 69.3 mg/L (4.0 gpg), moderately hard
- Beaverton — 67.2 mg/L (3.9 gpg), moderately hard
Softest water in Oregon
- Dunthorpe — 14.3 mg/L (0.8 gpg), soft
- Maywood Park — 14.3 mg/L (0.8 gpg), soft
- Portland — 14.3 mg/L (0.8 gpg), soft
- West Haven-Sylvan — 14.3 mg/L (0.8 gpg), soft
- Four Corners — 15.9 mg/L (0.9 gpg), soft
Every Covered City in Oregon
All 219 covered Oregon 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 |
|---|---|---|---|---|
| Dunthorpe | 14.3 | 0.8 | Soft | Utility-reported |
| Maywood Park | 14.3 | 0.8 | Soft | Utility-reported |
| Portland | 14.3 | 0.8 | Soft | Utility-reported |
| West Haven-Sylvan | 14.3 | 0.8 | Soft | Utility-reported |
| Aloha | 22.6 | 1.3 | Soft | Utility-reported |
| Bethany | 22.6 | 1.3 | Soft | Utility-reported |
| Cedar Hills | 22.6 | 1.3 | Soft | Utility-reported |
| Cedar Mill | 22.6 | 1.3 | Soft | Utility-reported |
| Garden Home-Whitford | 22.6 | 1.3 | Soft | Utility-reported |
| Marlene Village | 22.6 | 1.3 | Soft | Utility-reported |
| Oak Hills | 22.6 | 1.3 | Soft | Utility-reported |
| Raleigh Hills | 22.6 | 1.3 | Soft | Utility-reported |
| Rockcreek | 22.6 | 1.3 | Soft | Utility-reported |
| Four Corners | 15.9 | 0.9 | Soft | Utility-reported |
| Hayesville | 15.9 | 0.9 | Soft | Utility-reported |
| Salem | 15.9 | 0.9 | Soft | Utility-reported |
| Eugene | 19.0 | 1.1 | Soft | Utility-reported |
| River Road | 19.0 | 1.1 | Soft | Utility-reported |
| Santa Clara | 19.0 | 1.1 | Soft | Utility-reported |
| Central Point | 149.5 | 8.7 | Hard | County estimate |
| Medford | 149.5 | 8.7 | Hard | County estimate |
| White City | 149.5 | 8.7 | Hard | County estimate |
| Happy Valley | 24.2 | 1.4 | Soft | County estimate |
| Hillsboro | 28.6 | 1.7 | Soft | Utility-reported |
| Wilsonville | 24.2 | 1.4 | Soft | County estimate |
| Beaverton | 67.2 | 3.9 | Moderately hard | Utility-reported |
| Gresham | 69.3 | 4.0 | Moderately hard | Utility-reported |
| Bend | 32.1 | 1.9 | Soft | Utility-reported |
| Tetherow | 32.1 | 1.9 | Soft | Utility-reported |
| Bull Mountain | 21.9 | 1.3 | Soft | Utility-reported |
| Durham | 21.9 | 1.3 | Soft | Utility-reported |
| Metzger | 21.9 | 1.3 | Soft | Utility-reported |
| Tigard | 21.9 | 1.3 | Soft | Utility-reported |
| Albany | 24.9 | 1.5 | Soft | County estimate |
| Corvallis | 27.1 | 1.6 | Soft | Utility-reported |
| Damascus | 24.2 | 1.4 | Soft | County estimate |
| Lake Oswego | 22.7 | 1.3 | Soft | Utility-reported |
| Oak Grove | 22.7 | 1.3 | Soft | Utility-reported |
| Keizer | 95.2 | 5.6 | Moderately hard | Utility-reported |
| Coos Bay | 55.3 | 3.2 | Soft | County estimate |
| Oregon City | 24.2 | 1.4 | Soft | County estimate |
| Deschutes River Woods | 34.6 | 2.0 | Soft | Utility-reported |
| Roseburg | 65.5 | 3.8 | Moderately hard | County estimate |
| Tualatin | 77.0 | 4.5 | Moderately hard | County estimate |
| Newberg | 53.8 | 3.1 | Soft | County estimate |
| West Linn | 22.4 | 1.3 | Soft | Utility-reported |
| Woodburn | 84.4 | 4.9 | Moderately hard | County estimate |
| Forest Grove | 41.8 | 2.4 | Soft | Utility-reported |
| Milwaukie | 120.0 | 7.0 | Moderately hard | Utility-reported |
| Lincoln City | 34.3 | 2.0 | Soft | County estimate |
| Ashland | 30.7 | 1.8 | Soft | Utility-reported |
| Hermiston | 155.0 | 9.1 | Hard | County estimate |
| Sherwood | 77.0 | 4.5 | Moderately hard | County estimate |
| Canby | 24.2 | 1.4 | Soft | County estimate |
| Pendleton | 155.0 | 9.1 | Hard | County estimate |
| Dallas | 28.1 | 1.6 | Soft | County estimate |
| Troutdale | 32.6 | 1.9 | Soft | County estimate |
| Astoria | 36.0 | 2.1 | Soft | County estimate |
| Lebanon | 24.9 | 1.5 | Soft | County estimate |
| Winston | 65.5 | 3.8 | Moderately hard | County estimate |
| Florence | 18.3 | 1.1 | Soft | County estimate |
| Ontario | 278.0 | 16.3 | Very hard | County estimate |
| Beavercreek | 24.2 | 1.4 | Soft | County estimate |
| Monmouth | 28.1 | 1.6 | Soft | County estimate |
| La Grande | 45.0 | 2.6 | Soft | County estimate |
| Cornelius | 77.0 | 4.5 | Moderately hard | County estimate |
| The Dalles | 78.5 | 4.6 | Moderately hard | Utility-reported |
| Gladstone | 24.2 | 1.4 | Soft | County estimate |
| Sandy | 24.2 | 1.4 | Soft | County estimate |
| Prineville | 94.8 | 5.5 | Moderately hard | County estimate |
| Silverton | 84.4 | 4.9 | Moderately hard | County estimate |
| Cottage Grove | 18.3 | 1.1 | Soft | County estimate |
| Independence | 28.1 | 1.6 | Soft | County estimate |
| Newport | 34.3 | 2.0 | Soft | County estimate |
| Baker City | 117.0 | 6.8 | Moderately hard | County estimate |
| Eagle Point | 149.5 | 8.7 | Hard | County estimate |
| Sweet Home | 24.9 | 1.5 | Soft | County estimate |
| Molalla | 24.2 | 1.4 | Soft | County estimate |
| Fairview | 32.6 | 1.9 | Soft | County estimate |
| Warrenton | 36.0 | 2.1 | Soft | County estimate |
| Stayton | 84.4 | 4.9 | Moderately hard | County estimate |
| Umatilla | 155.0 | 9.1 | Hard | County estimate |
| Brookings | 26.5 | 1.6 | Soft | County estimate |
| Myrtle Creek | 65.5 | 3.8 | Moderately hard | County estimate |
| Seaside | 16.3 | 0.9 | Soft | Utility-reported |
| Springfield | 18.3 | 1.1 | Soft | County estimate |
| Talent | 149.5 | 8.7 | Hard | County estimate |
| Seal Rock | 34.3 | 2.0 | Soft | County estimate |
| Gleneden Beach | 34.3 | 2.0 | Soft | County estimate |
| Creswell | 18.3 | 1.1 | Soft | County estimate |
| Sisters | 24.9 | 1.5 | Soft | County estimate |
| Phoenix | 149.5 | 8.7 | Hard | County estimate |
| Reedsport | 65.5 | 3.8 | Moderately hard | County estimate |
| Philomath | 37.6 | 2.2 | Soft | County estimate |
| Aumsville | 84.4 | 4.9 | Moderately hard | County estimate |
| Coquille | 55.3 | 3.2 | Soft | County estimate |
| Madras | 48.0 | 2.8 | Soft | County estimate |
| Warm Springs | 82.4 | 4.8 | Moderately hard | County estimate |
| Harrisburg | 24.9 | 1.5 | Soft | County estimate |
| Mount Angel | 84.4 | 4.9 | Moderately hard | County estimate |
| Mt. Angel | 84.4 | 4.9 | Moderately hard | County estimate |
| Boring | 24.2 | 1.4 | Soft | County estimate |
| Toledo | 34.3 | 2.0 | Soft | County estimate |
| Hubbard | 84.4 | 4.9 | Moderately hard | County estimate |
| Oakridge | 18.3 | 1.1 | Soft | County estimate |
| Dundee | 53.8 | 3.1 | Soft | County estimate |
| Jefferson | 84.4 | 4.9 | Moderately hard | County estimate |
| Nyssa | 278.0 | 16.3 | Very hard | County estimate |
| Manzanita | 25.8 | 1.5 | Soft | County estimate |
| Junction City | 18.3 | 1.1 | Soft | County estimate |
| Bandon | 55.3 | 3.2 | Soft | County estimate |
| North Plains | 77.0 | 4.5 | Moderately hard | County estimate |
| Gold Beach | 26.5 | 1.6 | Soft | County estimate |
| Sublimity | 84.4 | 4.9 | Moderately hard | County estimate |
| Corbett | 32.6 | 1.9 | Soft | County estimate |
| Jacksonville | 149.5 | 8.7 | Hard | County estimate |
| Burns | 61.2 | 3.6 | Moderately hard | County estimate |
| Hines | 61.2 | 3.6 | Moderately hard | County estimate |
| Myrtle Point | 55.3 | 3.2 | Soft | County estimate |
| Dayton | 53.8 | 3.1 | Soft | County estimate |
| Gervais | 84.4 | 4.9 | Moderately hard | County estimate |
| Cave Junction | 73.4 | 4.3 | Moderately hard | County estimate |
| Rogue River | 149.5 | 8.7 | Hard | County estimate |
| Lakeview | 53.1 | 3.1 | Soft | County estimate |
| Nehalem | 25.8 | 1.5 | Soft | County estimate |
| Willamina | 53.8 | 3.1 | Soft | County estimate |
| Carlton | 53.8 | 3.1 | Soft | County estimate |
| Turner | 84.4 | 4.9 | Moderately hard | County estimate |
| Waldport | 34.3 | 2.0 | Soft | County estimate |
| Clatskanie | 50.3 | 2.9 | Soft | County estimate |
| Union | 45.0 | 2.6 | Soft | County estimate |
| Stanfield | 155.0 | 9.1 | Hard | County estimate |
| Vernonia | 50.3 | 2.9 | Soft | County estimate |
| Brownsville | 24.9 | 1.5 | Soft | County estimate |
| Banks | 77.0 | 4.5 | Moderately hard | County estimate |
| Irrigon | 231.0 | 13.5 | Very hard | County estimate |
| Columbia City | 50.3 | 2.9 | Soft | County estimate |
| Enterprise | 48.1 | 2.8 | Soft | County estimate |
| Rainier | 50.3 | 2.9 | Soft | County estimate |
| Vale | 278.0 | 16.3 | Very hard | County estimate |
| Mill City | 24.9 | 1.5 | Soft | County estimate |
| Lakeside | 55.3 | 3.2 | Soft | County estimate |
| John Day | 94.6 | 5.5 | Moderately hard | County estimate |
| Amity | 53.8 | 3.1 | Soft | County estimate |
| Elgin | 45.0 | 2.6 | Soft | County estimate |
| Cannon Beach | 36.0 | 2.1 | Soft | County estimate |
| Rickreall | 28.1 | 1.6 | Soft | County estimate |
| La Pine | 32.4 | 1.9 | Soft | County estimate |
| Terrebonne | 32.4 | 1.9 | Soft | County estimate |
| Canyonville | 65.5 | 3.8 | Moderately hard | County estimate |
| Colton | 24.2 | 1.4 | Soft | County estimate |
| Welches | 24.2 | 1.4 | Soft | County estimate |
| Siletz | 34.3 | 2.0 | Soft | County estimate |
| Bay City | 25.8 | 1.5 | Soft | County estimate |
| Rockaway Beach | 25.8 | 1.5 | Soft | County estimate |
| Cascade Locks | 33.3 | 1.9 | Soft | County estimate |
| Depoe Bay | 34.3 | 2.0 | Soft | County estimate |
| Riddle | 65.5 | 3.8 | Moderately hard | County estimate |
| Pilot Rock | 155.0 | 9.1 | Hard | County estimate |
| Lowell | 18.3 | 1.1 | Soft | County estimate |
| Gold Hill | 149.5 | 8.7 | Hard | County estimate |
| Glide | 65.5 | 3.8 | Moderately hard | County estimate |
| Neskowin | 25.8 | 1.5 | Soft | County estimate |
| Heppner | 231.0 | 13.5 | Very hard | County estimate |
| Athena | 155.0 | 9.1 | Hard | County estimate |
| Joseph | 48.1 | 2.8 | Soft | County estimate |
| Drain | 65.5 | 3.8 | Moderately hard | County estimate |
| Yamhill | 53.8 | 3.1 | Soft | County estimate |
| Yoncalla | 65.5 | 3.8 | Moderately hard | County estimate |
| Falls City | 28.1 | 1.6 | Soft | County estimate |
| Pacific City | 25.8 | 1.5 | Soft | County estimate |
| Yachats | 18.3 | 1.1 | Soft | County estimate |
| Port Orford | 26.5 | 1.6 | Soft | County estimate |
| Scio | 24.9 | 1.5 | Soft | County estimate |
| Garibaldi | 25.8 | 1.5 | Soft | County estimate |
| Halsey | 24.9 | 1.5 | Soft | County estimate |
| Mulino | 24.2 | 1.4 | Soft | County estimate |
| Marcola | 18.3 | 1.1 | Soft | County estimate |
| Dufur | 82.4 | 4.8 | Moderately hard | County estimate |
| Mapleton | 18.3 | 1.1 | Soft | County estimate |
| Tygh Valley | 82.4 | 4.8 | Moderately hard | County estimate |
| Clackamas | 24.2 | 1.4 | Soft | County estimate |
| Cove | 45.0 | 2.6 | Soft | County estimate |
| St. Paul | 84.4 | 4.9 | Moderately hard | County estimate |
| Mosier | 82.4 | 4.8 | Moderately hard | County estimate |
| Huntington | 117.0 | 6.8 | Moderately hard | County estimate |
| North Powder | 45.0 | 2.6 | Soft | County estimate |
| Scotts Mills | 84.4 | 4.9 | Moderately hard | County estimate |
| Haines | 117.0 | 6.8 | Moderately hard | County estimate |
| Shady Cove | 149.5 | 8.7 | Hard | County estimate |
| Arch Cape | 36.0 | 2.1 | Soft | County estimate |
| Kerby | 73.4 | 4.3 | Moderately hard | County estimate |
| Wheeler | 25.8 | 1.5 | Soft | County estimate |
| Lyons | 84.4 | 4.9 | Moderately hard | County estimate |
| Dorena | 18.3 | 1.1 | Soft | County estimate |
| Westfir | 18.3 | 1.1 | Soft | County estimate |
| Redmond | 32.4 | 1.9 | Soft | County estimate |
| Imbler | 45.0 | 2.6 | Soft | County estimate |
| Camp Sherman | 48.0 | 2.8 | Soft | County estimate |
| Halfway | 117.0 | 6.8 | Moderately hard | County estimate |
| Langlois | 26.5 | 1.6 | Soft | County estimate |
| Tangent | 24.9 | 1.5 | Soft | County estimate |
| Dexter | 18.3 | 1.1 | Soft | County estimate |
| Sumpter | 94.6 | 5.5 | Moderately hard | County estimate |
| Gaston | 77.0 | 4.5 | Moderately hard | County estimate |
| Adrian | 278.0 | 16.3 | Very hard | County estimate |
| Jordan Valley | 278.0 | 16.3 | Very hard | County estimate |
| Richland | 117.0 | 6.8 | Moderately hard | County estimate |
| Otis | 34.3 | 2.0 | Soft | County estimate |
| Scappoose | 50.3 | 2.9 | Soft | County estimate |
| Elmira | 18.3 | 1.1 | Soft | County estimate |
| Oxbow | 117.0 | 6.8 | Moderately hard | County estimate |
| Unity | 117.0 | 6.8 | Moderately hard | County estimate |
| St. Helens | 50.3 | 2.9 | Soft | County estimate |
| Aurora | 84.4 | 4.9 | Moderately hard | County estimate |
| Eagle Creek | 24.2 | 1.4 | Soft | County estimate |
| Prospect | 149.5 | 8.7 | Hard | County estimate |
| Donald | 84.4 | 4.9 | Moderately hard | County estimate |
| Grand Ronde | 53.8 | 3.1 | Soft | 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 Oregon's Water Hardness
Oregon sits in the Pacific maritime volcanic terrain region.
The Pacific Northwest, Alaska, and Hawaii share young volcanic bedrock - basalt and other igneous rock with little carbonate to dissolve - and most supplies come from heavy rainfall, snowmelt, or fast-recharging volcanic aquifers. Water simply does not stay in contact with soluble carbonate long enough to harden. That is why the USGS maps these states among the softest in the nation.
Oregon Water Hardness FAQ
Does Oregon have hard water?
On the whole, no — Oregon's statewide median sits below the hard threshold, though some cities run harder. The median is 22.6 mg/L (1.3 gpg) — soft on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 0 of Oregon's 39 measured cities fall in the hard or very hard bands (0%), so check your own city rather than the state average.
How hard is tap water in Oregon?
Across the 39 Oregon cities with measured values in our index, the median hardness is 22.6 mg/L (1.3 gpg) — soft on the USGS scale. Individual cities range from 14.3 to 120.0 mg/L, so check your own city rather than assuming the state number.
Which city in Oregon has the hardest water?
Milwaukie has the hardest measured tap water in our Oregon index at 120.0 mg/L (7.0 gpg) — moderately 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 Oregon?
0 of Oregon's 39 measured cities (0%) 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 Oregon city from utility-reported water quality data, check your water utility's annual Consumer Confidence Report (CCR), or use a home test-strip kit.
Need whole-house or professional water treatment?
For the problems a pitcher or under-sink filter cannot fix — scale, rust and black staining, sulfur smell, well contamination, or test results you cannot explain. Tell us what is happening and we will connect you with a local water-treatment professional.
Get the Weekly Water Brief
One email a week on water testing, treatment, and what water-quality data means for your home.
One email a week. Unsubscribe anytime.