Skip to main content
💧 TapWaterData

Water Hardness in Oregon

Across 49 measured cities — with 176 more covered by labeled county-level estimates — Oregon's median tap water hardness is 22.7 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 July 6, 2026. Sources: utility-reported water quality data and USGS/EPA Water Quality Portal samples.

State Median
22.7
mg/L (1.3 gpg), measured cities
Measured Range
14.3-120.0
mg/L across measured cities
Measured Cities
49
utility-reported or computed values
County Estimates
176
78% of covered cities

Oregon Cities by Hardness Category

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

CategoryRangeMeasured citiesShare
Soft0-60 mg/L4285.7%
Moderately hard60-120 mg/L714.3%
Hard120-180 mg/L00.0%
Very hard>180 mg/L00.0%

Hardest and Softest Water in Oregon

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

Hardest water in Oregon

  1. Milwaukie 120.0 mg/L (7.0 gpg), moderately hard
  2. Keizer 95.2 mg/L (5.6 gpg), moderately hard
  3. The Dalles 78.5 mg/L (4.6 gpg), moderately hard
  4. Fairview 69.8 mg/L (4.1 gpg), moderately hard
  5. Troutdale 69.8 mg/L (4.1 gpg), moderately hard

Softest water in Oregon

  1. Maywood Park 14.3 mg/L (0.8 gpg), soft
  2. Four Corners 15.9 mg/L (0.9 gpg), soft
  3. Hayesville 15.9 mg/L (0.9 gpg), soft
  4. Salem 15.9 mg/L (0.9 gpg), soft
  5. Seaside 16.3 mg/L (0.9 gpg), soft

Every Covered City in Oregon

All 225 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.

CityHardness (mg/L)gpgCategoryData
West Haven-Sylvan20.91.2SoftUtility-reported
Portland19.61.1SoftUtility-reported
Dunthorpe17.81.0SoftUtility-reported
Maywood Park14.30.8SoftUtility-reported
West Slope34.62.0SoftUtility-reported
Hillsboro24.41.4SoftUtility-reported
Raleigh Hills34.62.0SoftUtility-reported
Beaverton34.62.0SoftUtility-reported
Cedar Hills34.62.0SoftUtility-reported
Marlene Village34.62.0SoftUtility-reported
Oak Hills34.62.0SoftUtility-reported
Garden Home-Whitford22.61.3SoftUtility-reported
Aloha22.61.3SoftUtility-reported
Bethany22.61.3SoftUtility-reported
Cedar Mill22.61.3SoftUtility-reported
Rockcreek22.61.3SoftUtility-reported
Four Corners15.90.9SoftUtility-reported
Hayesville15.90.9SoftUtility-reported
Salem15.90.9SoftUtility-reported
Eugene19.01.1SoftUtility-reported
River Road19.01.1SoftUtility-reported
Santa Clara19.01.1SoftUtility-reported
Gresham69.54.1Moderately hardUtility-reported
Oatfield56.23.3SoftUtility-reported
Gladstone22.71.3SoftUtility-reported
Central Point145.08.5HardCounty estimate
Johnson City22.71.3SoftUtility-reported
Bend32.11.9SoftUtility-reported
Tetherow32.91.9SoftUtility-reported
Medford145.08.5HardCounty estimate
White City145.08.5HardCounty estimate
Wood Village69.84.1Moderately hardUtility-reported
Jennings Lodge22.71.3SoftUtility-reported
Happy Valley24.21.4SoftCounty estimate
Durham21.91.3SoftUtility-reported
Wilsonville24.21.4SoftCounty estimate
Troutdale69.84.1Moderately hardUtility-reported
Oregon City22.71.3SoftUtility-reported
Fairview69.84.1Moderately hardUtility-reported
Metzger21.91.3SoftUtility-reported
West Linn22.61.3SoftUtility-reported
Bull Mountain21.91.3SoftUtility-reported
Tigard21.91.3SoftUtility-reported
Corvallis27.11.6SoftUtility-reported
Albany24.91.5SoftCounty estimate
Damascus24.21.4SoftCounty estimate
Deschutes River Woods32.21.9SoftUtility-reported
Oak Grove22.71.3SoftUtility-reported
Keizer95.25.6Moderately hardUtility-reported
Coos Bay55.33.2SoftCounty estimate
Rivergrove26.31.5SoftUtility-reported
Roseburg65.53.8Moderately hardCounty estimate
Tualatin77.04.5Moderately hardCounty estimate
Newberg53.83.1SoftCounty estimate
Woodburn84.44.9Moderately hardCounty estimate
Forest Grove41.82.4SoftUtility-reported
Ashland30.71.8SoftUtility-reported
Milwaukie120.07.0Moderately hardUtility-reported
Lincoln City34.32.0SoftCounty estimate
Hermiston155.09.1HardCounty estimate
Sherwood77.04.5Moderately hardCounty estimate
Canby24.21.4SoftCounty estimate
Pendleton155.09.1HardCounty estimate
The Dalles78.54.6Moderately hardUtility-reported
Dallas28.11.6SoftCounty estimate
Astoria36.02.1SoftCounty estimate
Lebanon24.91.5SoftCounty estimate
Winston65.53.8Moderately hardCounty estimate
Florence18.31.1SoftCounty estimate
Ontario278.016.3Very hardCounty estimate
Beavercreek24.21.4SoftCounty estimate
Monmouth28.11.6SoftCounty estimate
La Grande45.12.6SoftCounty estimate
St. Helens50.32.9SoftCounty estimate
Cornelius77.04.5Moderately hardCounty estimate
Sandy24.21.4SoftCounty estimate
Prineville94.85.5Moderately hardCounty estimate
Silverton84.44.9Moderately hardCounty estimate
Cottage Grove18.31.1SoftCounty estimate
Independence28.11.6SoftCounty estimate
Newport34.32.0SoftCounty estimate
Baker City117.06.8Moderately hardCounty estimate
Eagle Point145.08.5HardCounty estimate
Sweet Home24.91.5SoftCounty estimate
Molalla24.21.4SoftCounty estimate
Warrenton36.02.1SoftCounty estimate
Stayton84.44.9Moderately hardCounty estimate
Umatilla155.09.1HardCounty estimate
Brookings26.51.6SoftCounty estimate
Myrtle Creek65.53.8Moderately hardCounty estimate
Seaside16.30.9SoftUtility-reported
Springfield18.31.1SoftCounty estimate
Talent145.08.5HardCounty estimate
Seal Rock34.32.0SoftCounty estimate
Gleneden Beach34.32.0SoftCounty estimate
Creswell18.31.1SoftCounty estimate
Sisters24.91.5SoftCounty estimate
Phoenix145.08.5HardCounty estimate
Reedsport65.53.8Moderately hardCounty estimate
Philomath37.62.2SoftCounty estimate
Aumsville84.44.9Moderately hardCounty estimate
Coquille55.33.2SoftCounty estimate
Madras48.02.8SoftCounty estimate
Warm Springs82.44.8Moderately hardCounty estimate
Harrisburg24.91.5SoftCounty estimate
Mount Angel84.44.9Moderately hardCounty estimate
Mt. Angel84.44.9Moderately hardCounty estimate
Boring24.21.4SoftCounty estimate
Toledo34.32.0SoftCounty estimate
Hubbard84.44.9Moderately hardCounty estimate
Oakridge18.31.1SoftCounty estimate
Dundee53.83.1SoftCounty estimate
Jefferson84.44.9Moderately hardCounty estimate
Nyssa278.016.3Very hardCounty estimate
Manzanita25.81.5SoftCounty estimate
Junction City18.31.1SoftCounty estimate
Bandon55.33.2SoftCounty estimate
North Plains77.04.5Moderately hardCounty estimate
Gold Beach26.51.6SoftCounty estimate
Sublimity84.44.9Moderately hardCounty estimate
Corbett32.61.9SoftCounty estimate
Jacksonville145.08.5HardCounty estimate
Burns61.23.6Moderately hardCounty estimate
Hines61.23.6Moderately hardCounty estimate
Myrtle Point55.33.2SoftCounty estimate
Dayton53.83.1SoftCounty estimate
Gervais84.44.9Moderately hardCounty estimate
Cave Junction73.44.3Moderately hardCounty estimate
Rogue River145.08.5HardCounty estimate
Lakeview53.13.1SoftCounty estimate
Nehalem25.81.5SoftCounty estimate
Willamina53.83.1SoftCounty estimate
Carlton53.83.1SoftCounty estimate
Turner84.44.9Moderately hardCounty estimate
Waldport34.32.0SoftCounty estimate
Clatskanie50.32.9SoftCounty estimate
Union45.12.6SoftCounty estimate
Stanfield155.09.1HardCounty estimate
Vernonia50.32.9SoftCounty estimate
Brownsville24.91.5SoftCounty estimate
Banks77.04.5Moderately hardCounty estimate
Irrigon231.013.5Very hardCounty estimate
Columbia City50.32.9SoftCounty estimate
Enterprise48.12.8SoftCounty estimate
Rainier50.32.9SoftCounty estimate
Vale278.016.3Very hardCounty estimate
Mill City24.91.5SoftCounty estimate
Lakeside55.33.2SoftCounty estimate
John Day94.65.5Moderately hardCounty estimate
Amity53.83.1SoftCounty estimate
Elgin45.12.6SoftCounty estimate
Cannon Beach36.02.1SoftCounty estimate
Rickreall28.11.6SoftCounty estimate
La Pine32.41.9SoftCounty estimate
Terrebonne32.41.9SoftCounty estimate
Canyonville65.53.8Moderately hardCounty estimate
Colton24.21.4SoftCounty estimate
Welches24.21.4SoftCounty estimate
Lake Oswego26.31.5SoftUtility-reported
Siletz34.32.0SoftCounty estimate
Bay City25.81.5SoftCounty estimate
Rockaway Beach25.81.5SoftCounty estimate
Cascade Locks33.31.9SoftCounty estimate
Depoe Bay34.32.0SoftCounty estimate
Riddle65.53.8Moderately hardCounty estimate
Pilot Rock155.09.1HardCounty estimate
Lowell18.31.1SoftCounty estimate
Gold Hill145.08.5HardCounty estimate
Glide65.53.8Moderately hardCounty estimate
Neskowin25.81.5SoftCounty estimate
Heppner231.013.5Very hardCounty estimate
Athena155.09.1HardCounty estimate
Joseph48.12.8SoftCounty estimate
Drain65.53.8Moderately hardCounty estimate
Yamhill53.83.1SoftCounty estimate
Yoncalla65.53.8Moderately hardCounty estimate
Falls City28.11.6SoftCounty estimate
Pacific City25.81.5SoftCounty estimate
Yachats18.31.1SoftCounty estimate
Port Orford26.51.6SoftCounty estimate
Scio24.91.5SoftCounty estimate
Garibaldi25.81.5SoftCounty estimate
Halsey24.91.5SoftCounty estimate
Mulino24.21.4SoftCounty estimate
Marcola18.31.1SoftCounty estimate
Dufur82.44.8Moderately hardCounty estimate
Mapleton18.31.1SoftCounty estimate
Tygh Valley82.44.8Moderately hardCounty estimate
Clackamas24.21.4SoftCounty estimate
Cove45.12.6SoftCounty estimate
St. Paul84.44.9Moderately hardCounty estimate
Mosier82.44.8Moderately hardCounty estimate
Huntington117.06.8Moderately hardCounty estimate
North Powder45.12.6SoftCounty estimate
Scotts Mills84.44.9Moderately hardCounty estimate
Haines117.06.8Moderately hardCounty estimate
Shady Cove145.08.5HardCounty estimate
Arch Cape36.02.1SoftCounty estimate
Kerby73.44.3Moderately hardCounty estimate
Wheeler25.81.5SoftCounty estimate
Lyons84.44.9Moderately hardCounty estimate
Dorena18.31.1SoftCounty estimate
Westfir18.31.1SoftCounty estimate
Redmond32.41.9SoftCounty estimate
Imbler45.12.6SoftCounty estimate
Camp Sherman48.02.8SoftCounty estimate
Halfway117.06.8Moderately hardCounty estimate
Langlois26.51.6SoftCounty estimate
Tangent24.91.5SoftCounty estimate
Dexter18.31.1SoftCounty estimate
Sumpter94.65.5Moderately hardCounty estimate
Gaston77.04.5Moderately hardCounty estimate
Adrian278.016.3Very hardCounty estimate
Jordan Valley278.016.3Very hardCounty estimate
Richland117.06.8Moderately hardCounty estimate
Otis34.32.0SoftCounty estimate
Scappoose50.32.9SoftCounty estimate
Elmira18.31.1SoftCounty estimate
Oxbow117.06.8Moderately hardCounty estimate
Unity117.06.8Moderately hardCounty estimate
Aurora84.44.9Moderately hardCounty estimate
Eagle Creek24.21.4SoftCounty estimate
Prospect145.08.5HardCounty estimate
Donald84.44.9Moderately hardCounty estimate
Grand Ronde53.83.1SoftCounty 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.

Source: USGS Water Science School - Hardness of Water

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.7 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 49 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 49 Oregon cities with measured values in our index, the median hardness is 22.7 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 49 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.

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.