Water Hardness in West Virginia
Across 23 measured cities — with 170 more covered by labeled county-level estimates — West Virginia's median tap water hardness is 104.0 mg/L (6.1 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.
West Virginia 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 | 6 | 26.1% |
| Moderately hard | 60-120 mg/L | 10 | 43.5% |
| Hard | 120-180 mg/L | 5 | 21.7% |
| Very hard | >180 mg/L | 2 | 8.7% |
Hardest and Softest Water in West Virginia
Measured values only; labeled county estimates and values under active dispute never rank.
Hardest water in West Virginia
- Martinsburg — 387.0 mg/L (22.6 gpg), very hard
- New Martinsville — 228.0 mg/L (13.3 gpg), very hard
- Westover — 128.0 mg/L (7.5 gpg), hard
- Star City — 127.0 mg/L (7.4 gpg), hard
- Morgantown — 122.7 mg/L (7.2 gpg), hard
Softest water in West Virginia
- Old Fields — 22.9 mg/L (1.3 gpg), soft
- Charleston — 41.4 mg/L (2.4 gpg), soft
- South Charleston — 41.4 mg/L (2.4 gpg), soft
- Maidesville — 52.1 mg/L (3.0 gpg), soft
- Pleasant Valley — 54.0 mg/L (3.2 gpg), soft
Every Covered City in West Virginia
All 193 covered West Virginia 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 |
|---|---|---|---|---|
| Charleston | 41.4 | 2.4 | Soft | Computed from Ca+Mg |
| South Charleston | 41.4 | 2.4 | Soft | Computed from Ca+Mg |
| Huntington | 136.7 | 8.0 | Hard | County estimate |
| Martinsburg | 387.0 | 22.6 | Very hard | Utility-reported |
| Morgantown | 122.7 | 7.2 | Hard | Utility-reported |
| Star City | 127.0 | 7.4 | Hard | Utility-reported |
| Maidsville | 121.2 | 7.1 | Hard | County estimate |
| Parkersburg | 114.0 | 6.7 | Moderately hard | County estimate |
| Blacksville | 121.2 | 7.1 | Hard | County estimate |
| Weirton | 103.0 | 6.0 | Moderately hard | Utility-reported |
| Fairmont | 55.0 | 3.2 | Soft | Utility-reported |
| Davisville | 114.0 | 6.7 | Moderately hard | County estimate |
| Vienna | 114.0 | 6.7 | Moderately hard | County estimate |
| Hurricane | 69.6 | 4.1 | Moderately hard | County estimate |
| Wheeling | 106.0 | 6.2 | Moderately hard | County estimate |
| Logan | 190.5 | 11.1 | Very hard | County estimate |
| Point Pleasant | 100.0 | 5.8 | Moderately hard | County estimate |
| Talcott | 67.1 | 3.9 | Moderately hard | County estimate |
| Tornado | 79.5 | 4.7 | Moderately hard | County estimate |
| Nutter Fort | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Anmoore | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Henderson | 100.0 | 5.8 | Moderately hard | County estimate |
| Clarksburg | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Despard | 104.0 | 6.1 | Moderately hard | Utility-reported |
| East View | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Charles Town | 158.0 | 9.2 | Hard | Utility-reported |
| Mineral Wells | 114.0 | 6.7 | Moderately hard | County estimate |
| Brookhaven | 90.7 | 5.3 | Moderately hard | Utility-reported |
| Weston | 81.7 | 4.8 | Moderately hard | County estimate |
| Elkins | 27.9 | 1.6 | Soft | County estimate |
| Saint Albans | 79.5 | 4.7 | Moderately hard | County estimate |
| St. Albans | 79.5 | 4.7 | Moderately hard | County estimate |
| Buckhannon | 16.3 | 0.9 | Soft | County estimate |
| Washington | 114.0 | 6.7 | Moderately hard | County estimate |
| Ripley | 53.2 | 3.1 | Soft | County estimate |
| Bridgeport | 122.0 | 7.1 | Hard | Utility-reported |
| West Liberty | 106.0 | 6.2 | Moderately hard | County estimate |
| Lewisburg | 117.0 | 6.8 | Moderately hard | County estimate |
| Kenova | 179.0 | 10.5 | Hard | County estimate |
| Lavalette | 179.0 | 10.5 | Hard | County estimate |
| Cheat Lake | 90.7 | 5.3 | Moderately hard | Utility-reported |
| Philippi | 37.3 | 2.2 | Soft | County estimate |
| Bruceton Mills | 43.2 | 2.5 | Soft | County estimate |
| Follansbee | 298.5 | 17.5 | Very hard | County estimate |
| Grafton | 165.4 | 9.7 | Hard | County estimate |
| Ravenswood | 53.2 | 3.1 | Soft | County estimate |
| New Martinsville | 228.0 | 13.3 | Very hard | Utility-reported |
| Wellsburg | 298.5 | 17.5 | Very hard | County estimate |
| Waverly | 114.0 | 6.7 | Moderately hard | County estimate |
| Williamstown | 114.0 | 6.7 | Moderately hard | County estimate |
| White Sulphur Springs | 117.0 | 6.8 | Moderately hard | County estimate |
| Kingwood | 43.2 | 2.5 | Soft | County estimate |
| West Milford | 240.0 | 14.0 | Very hard | County estimate |
| Pleasant Valley | 54.0 | 3.2 | Soft | Utility-reported |
| Kenna | 53.2 | 3.1 | Soft | County estimate |
| Keyser | 132.3 | 7.7 | Hard | County estimate |
| Wayne | 179.0 | 10.5 | Hard | County estimate |
| Summersville | 35.3 | 2.1 | Soft | County estimate |
| Flemington | 165.4 | 9.7 | Hard | County estimate |
| French Creek | 16.3 | 0.9 | Soft | County estimate |
| New Creek | 132.3 | 7.7 | Hard | County estimate |
| Shinnston | 240.0 | 14.0 | Very hard | County estimate |
| Craigsville | 35.3 | 2.1 | Soft | County estimate |
| Reynoldsville | 240.0 | 14.0 | Very hard | County estimate |
| Sutton | 33.1 | 1.9 | Soft | County estimate |
| Westover | 128.0 | 7.5 | Hard | Utility-reported |
| Mount Nebo | 35.3 | 2.1 | Soft | County estimate |
| Shepherdstown | 300.8 | 17.6 | Very hard | County estimate |
| Old Fields | 22.9 | 1.3 | Soft | Utility-reported |
| Glen Dale | 115.9 | 6.8 | Moderately hard | County estimate |
| Moundsville | 115.9 | 6.8 | Moderately hard | County estimate |
| Alum Creek | 79.5 | 4.7 | Moderately hard | County estimate |
| Oceana | 66.6 | 3.9 | Moderately hard | County estimate |
| Mullens | 66.6 | 3.9 | Moderately hard | County estimate |
| Amherstdale | 190.5 | 11.1 | Very hard | County estimate |
| Man | 190.5 | 11.1 | Very hard | County estimate |
| Reedsville | 43.2 | 2.5 | Soft | County estimate |
| Crum | 179.0 | 10.5 | Hard | County estimate |
| Welch | 66.6 | 3.9 | Moderately hard | County estimate |
| Nettie | 35.3 | 2.1 | Soft | County estimate |
| Cottageville | 53.2 | 3.1 | Soft | County estimate |
| Chester | 100.0 | 5.8 | Moderately hard | County estimate |
| Glen Fork | 66.6 | 3.9 | Moderately hard | County estimate |
| Williamson | 243.9 | 14.3 | Very hard | County estimate |
| Cowen | 13.4 | 0.8 | Soft | County estimate |
| Paden City | 117.0 | 6.8 | Moderately hard | Utility-reported |
| Pineville | 66.6 | 3.9 | Moderately hard | County estimate |
| Wallace | 240.0 | 14.0 | Very hard | County estimate |
| Sandyville | 53.2 | 3.1 | Soft | County estimate |
| Alderson | 117.0 | 6.8 | Moderately hard | County estimate |
| Richwood | 117.0 | 6.8 | Moderately hard | County estimate |
| Masontown | 43.2 | 2.5 | Soft | County estimate |
| St. Marys | 97.0 | 5.7 | Moderately hard | County estimate |
| Branchland | 198.5 | 11.6 | Very hard | County estimate |
| West Hamlin | 198.5 | 11.6 | Very hard | County estimate |
| Moorefield | 49.6 | 2.9 | Soft | County estimate |
| Elizabeth | 58.8 | 3.4 | Soft | County estimate |
| Gauley Bridge | 64.9 | 3.8 | Moderately hard | County estimate |
| Harrisville | 60.2 | 3.5 | Moderately hard | County estimate |
| Maidesville | 52.1 | 3.0 | Soft | Utility-reported |
| McMechen | 115.9 | 6.8 | Moderately hard | County estimate |
| Kimberly | 64.9 | 3.8 | Moderately hard | County estimate |
| Beverly | 27.9 | 1.6 | Soft | County estimate |
| Glenville | 63.3 | 3.7 | Moderately hard | County estimate |
| Harpers Ferry | 300.8 | 17.6 | Very hard | County estimate |
| Windsor Heights | 298.5 | 17.5 | Very hard | County estimate |
| Enterprise | 240.0 | 14.0 | Very hard | County estimate |
| Belington | 37.3 | 2.2 | Soft | County estimate |
| Mt Storm | 90.1 | 5.3 | Moderately hard | Utility-reported |
| Ronceverte | 117.0 | 6.8 | Moderately hard | County estimate |
| Grant Town | 55.0 | 3.2 | Soft | County estimate |
| Matewan | 243.9 | 14.3 | Very hard | County estimate |
| Varney | 243.9 | 14.3 | Very hard | County estimate |
| Gassaway | 33.1 | 1.9 | Soft | County estimate |
| Walton | 58.4 | 3.4 | Soft | County estimate |
| Rivesville | 55.0 | 3.2 | Soft | County estimate |
| Mannington | 55.0 | 3.2 | Soft | County estimate |
| Proctor | 115.9 | 6.8 | Moderately hard | County estimate |
| West Union | 68.3 | 4.0 | Moderately hard | County estimate |
| Sistersville | 76.8 | 4.5 | Moderately hard | County estimate |
| Terra Alta | 43.2 | 2.5 | Soft | County estimate |
| Chapmanville | 190.5 | 11.1 | Very hard | County estimate |
| Hedgesville | 93.1 | 5.4 | Moderately hard | County estimate |
| Gilbert | 243.9 | 14.3 | Very hard | County estimate |
| Fort Gay | 179.0 | 10.5 | Hard | County estimate |
| Rainelle | 64.9 | 3.8 | Moderately hard | County estimate |
| Mason | 100.0 | 5.8 | Moderately hard | County estimate |
| Gary | 236.1 | 13.8 | Very hard | County estimate |
| Norton | 27.9 | 1.6 | Soft | County estimate |
| Salem | 68.3 | 4.0 | Moderately hard | County estimate |
| Parsons | 43.9 | 2.6 | Soft | County estimate |
| New Haven | 100.0 | 5.8 | Moderately hard | County estimate |
| Lumberport | 240.0 | 14.0 | Very hard | County estimate |
| Wyatt | 240.0 | 14.0 | Very hard | County estimate |
| Benwood | 115.9 | 6.8 | Moderately hard | County estimate |
| Tunnelton | 43.2 | 2.5 | Soft | County estimate |
| Hendricks | 43.9 | 2.6 | Soft | County estimate |
| Kermit | 243.9 | 14.3 | Very hard | County estimate |
| Ceredo | 179.0 | 10.5 | Hard | County estimate |
| Frametown | 33.1 | 1.9 | Soft | County estimate |
| Franklin | 28.9 | 1.7 | Soft | County estimate |
| Reader | 106.0 | 6.2 | Moderately hard | County estimate |
| Newell | 100.0 | 5.8 | Moderately hard | County estimate |
| Buckeye | 33.8 | 2.0 | Soft | County estimate |
| Marlinton | 33.8 | 2.0 | Soft | County estimate |
| Jane Lew | 81.7 | 4.8 | Moderately hard | County estimate |
| New Cumberland | 100.0 | 5.8 | Moderately hard | County estimate |
| Middlebourne | 76.8 | 4.5 | Moderately hard | County estimate |
| Pennsboro | 60.2 | 3.5 | Moderately hard | County estimate |
| Triadelphia | 106.0 | 6.2 | Moderately hard | County estimate |
| Dille | 35.3 | 2.1 | Soft | County estimate |
| Quinwood | 117.0 | 6.8 | Moderately hard | County estimate |
| Rupert | 117.0 | 6.8 | Moderately hard | County estimate |
| Burnsville | 33.1 | 1.9 | Soft | County estimate |
| Grantsville | 53.1 | 3.1 | Soft | County estimate |
| Clay | 191.7 | 11.2 | Very hard | County estimate |
| Gallipolis Ferry | 100.0 | 5.8 | Moderately hard | County estimate |
| Belmont | 97.0 | 5.7 | Moderately hard | County estimate |
| Worthington | 55.0 | 3.2 | Soft | County estimate |
| Junior | 37.3 | 2.2 | Soft | County estimate |
| Kearneysville | 300.8 | 17.6 | Very hard | County estimate |
| War | 236.1 | 13.8 | Very hard | County estimate |
| Newburg | 43.2 | 2.5 | Soft | County estimate |
| Mill Creek | 27.9 | 1.6 | Soft | County estimate |
| Piedmont | 132.3 | 7.7 | Hard | County estimate |
| Farmington | 55.0 | 3.2 | Soft | County estimate |
| Lester | 66.4 | 3.9 | Moderately hard | County estimate |
| Hartford | 100.0 | 5.8 | Moderately hard | County estimate |
| Hartford City | 100.0 | 5.8 | Moderately hard | County estimate |
| Valley Grove | 106.0 | 6.2 | Moderately hard | County estimate |
| Friendly | 76.8 | 4.5 | Moderately hard | County estimate |
| Beech Bottom | 298.5 | 17.5 | Very hard | County estimate |
| Arthurdale | 43.2 | 2.5 | Soft | County estimate |
| Fenwick | 35.3 | 2.1 | Soft | County estimate |
| Paw Paw | 55.3 | 3.2 | Soft | County estimate |
| Kimball | 236.1 | 13.8 | Very hard | County estimate |
| Naugatuck | 243.9 | 14.3 | Very hard | County estimate |
| Gap Mills | 5.3 | 0.3 | Soft | County estimate |
| Augusta | 55.3 | 3.2 | Soft | County estimate |
| Romney | 55.3 | 3.2 | Soft | County estimate |
| Davy | 236.1 | 13.8 | Very hard | County estimate |
| Albright | 43.2 | 2.5 | Soft | County estimate |
| Glen Rogers | 66.6 | 3.9 | Moderately hard | County estimate |
| Delbarton | 243.9 | 14.3 | Very hard | County estimate |
| Hillsboro | 33.8 | 2.0 | Soft | County estimate |
| Brenton | 66.6 | 3.9 | Moderately hard | County estimate |
| Chattaroy | 243.9 | 14.3 | Very hard | County estimate |
| Huttonsville | 27.9 | 1.6 | Soft | County estimate |
| Montgomery | 64.9 | 3.8 | Moderately hard | County estimate |
| Wyoming | 66.6 | 3.9 | Moderately hard | County estimate |
| Berkeley Springs | 57.2 | 3.4 | Soft | County estimate |
| Danese | 64.9 | 3.8 | Moderately hard | County estimate |
| Procious | 191.7 | 11.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 West Virginia's Water Hardness
West Virginia sits in the Appalachian and Mid-Atlantic mixed terrain region.
The Mid-Atlantic and Appalachian states sit on a patchwork of sandstone, shale, and crystalline rock that yields mostly soft to moderately hard water. The big exception is the region's limestone and dolomite valleys - including the carbonate belt running from Pennsylvania down through the Shenandoah Valley - where groundwater dissolves calcium and magnesium readily and comes out distinctly hard. A city's number here depends heavily on whether its supply draws from upland rivers and reservoirs or from carbonate-valley wells.
West Virginia Water Hardness FAQ
Does West Virginia have hard water?
On the whole, no — West Virginia's statewide median sits below the hard threshold, though some cities run harder. The median is 104.0 mg/L (6.1 gpg) — moderately hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 7 of West Virginia's 23 measured cities fall in the hard or very hard bands (30%), so check your own city rather than the state average.
How hard is tap water in West Virginia?
Across the 23 West Virginia cities with measured values in our index, the median hardness is 104.0 mg/L (6.1 gpg) — moderately hard on the USGS scale. Individual cities range from 22.9 to 387.0 mg/L, so check your own city rather than assuming the state number.
Which city in West Virginia has the hardest water?
Martinsburg has the hardest measured tap water in our West Virginia index at 387.0 mg/L (22.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 West Virginia?
7 of West Virginia's 23 measured cities (30%) 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 West Virginia 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.