Skip to main content

Water Hardness in North Carolina

Across 35 measured cities — with 435 more covered by labeled county-level estimates — North Carolina's median tap water hardness is 29.7 mg/L (1.7 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.

State Median
29.7
mg/L (1.7 gpg), measured cities
Measured Range
3.9-180.0
mg/L across measured cities
Measured Cities
35
utility-reported or computed values
County Estimates
435
93% of covered cities

What it costs to soften North Carolina water

Water softener cost in North Carolina at 1.7 gpg prices the equipment and the installation labour against the plumber wages published for North Carolina, and labels every range as modelled or measured rather than leaving you to guess which it is.

North Carolina · 1.74 grains per gallon

$936–$1,183

installed, midpoint $1,046 — a 24,000-grain unit, the size 4 people at this hardness need.

Salt and drain water over 10 years: $411–$1,000 — the 1,905,300 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: 3,654 grains of capacity needed, rounded up to the next common residential size. The median of 35 measured North Carolina 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.

North Carolina Cities by Hardness Category

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

CategoryRangeMeasured citiesShare
Soft0-60 mg/L3291.4%
Moderately hard60-120 mg/L25.7%
Hard120-180 mg/L12.9%
Very hard>180 mg/L00.0%

Hardest and Softest Water in North Carolina

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

Hardest water in North Carolina

  1. Carolina Beach — 180.0 mg/L (10.5 gpg), hard
  2. Oak Island — 117.0 mg/L (6.8 gpg), moderately hard
  3. Wrightsville Beach — 75.7 mg/L (4.4 gpg), moderately hard
  4. Mooresville — 50.7 mg/L (3.0 gpg), soft
  5. Leland — 49.0 mg/L (2.9 gpg), soft

Softest water in North Carolina

  1. Brevard — 3.9 mg/L (0.2 gpg), soft
  2. Hendersonville — 4.9 mg/L (0.3 gpg), soft
  3. Asheville — 9.2 mg/L (0.5 gpg), soft
  4. Denver — 14.4 mg/L (0.8 gpg), soft
  5. Morganton — 19.0 mg/L (1.1 gpg), soft

Every Covered City in North Carolina

All 470 covered North Carolina 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
Charlotte31.31.8SoftUtility-reported
Raleigh25.11.5SoftUtility-reported
Clemmons23.91.4SoftUtility-reported
Winston-Salem23.91.4SoftUtility-reported
Durham29.71.7SoftUtility-reported
Greensboro36.22.1SoftUtility-reported
Fayetteville29.11.7SoftUtility-reported
Stedman12.40.7SoftCounty estimate
Cary35.52.1SoftUtility-reported
Wilmington21.11.2SoftUtility-reported
Asheville9.20.5SoftUtility-reported
Winterville36.52.1SoftCounty estimate
Greenville36.52.1SoftCounty estimate
High Point35.12.0SoftUtility-reported
Four Oaks28.01.6SoftCounty estimate
Leland49.02.9SoftUtility-reported
Concord34.52.0SoftUtility-reported
Smithfield28.01.6SoftCounty estimate
Lowell28.01.6SoftCounty estimate
Gastonia28.01.6SoftCounty estimate
Cramerton28.01.6SoftCounty estimate
Lumberton17.01.0SoftCounty estimate
Carrboro29.61.7SoftUtility-reported
Shelby20.01.2SoftCounty estimate
Hendersonville4.90.3SoftUtility-reported
Spring Lake27.01.6SoftCounty estimate
Apex30.41.8SoftUtility-reported
Kings Mountain20.01.2SoftCounty estimate
Red Springs9.00.5SoftCounty estimate
Maxton17.01.0SoftCounty estimate
Pembroke17.01.0SoftCounty estimate
Fairmont17.01.0SoftCounty estimate
Elon39.52.3SoftCounty estimate
St. Pauls17.01.0SoftCounty estimate
Rocky Mount27.61.6SoftCounty estimate
Rowland17.01.0SoftCounty estimate
Gibsonville39.62.3SoftCounty estimate
Hickory22.71.3SoftUtility-reported
Lumber Bridge17.01.0SoftCounty estimate
Marietta17.01.0SoftCounty estimate
Orrum17.01.0SoftCounty estimate
Parkton17.01.0SoftCounty estimate
Proctorville17.01.0SoftCounty estimate
Fort Bragg12.40.7SoftCounty estimate
Boiling Springs20.01.2SoftCounty estimate
Grifton36.52.1SoftCounty estimate
Whitsett39.62.3SoftCounty estimate
Grover20.01.2SoftCounty estimate
Lawndale20.01.2SoftCounty estimate
Fallston20.01.2SoftCounty estimate
Mooresboro20.01.2SoftCounty estimate
Burlington39.52.3SoftCounty estimate
Casar20.01.2SoftCounty estimate
Lattimore20.01.2SoftCounty estimate
Polkville20.01.2SoftCounty estimate
Waco20.01.2SoftCounty estimate
Wilson20.01.2SoftCounty estimate
East Spencer40.02.3SoftCounty estimate
Kannapolis58.53.4SoftCounty estimate
Spencer40.02.3SoftCounty estimate
Granite Quarry40.02.3SoftCounty estimate
Rockwell40.02.3SoftCounty estimate
Salisbury40.02.3SoftCounty estimate
Mooresville50.73.0SoftUtility-reported
Broadway27.01.6SoftCounty estimate
Selma28.01.6SoftCounty estimate
Denver14.40.8SoftUtility-reported
Holly Springs41.32.4SoftUtility-reported
Roanoke Rapids31.81.9SoftCounty estimate
Jacksonville127.07.4HardCounty estimate
Kinston28.11.6SoftCounty estimate
Raeford9.00.5SoftCounty estimate
Ayden36.52.1SoftCounty estimate
Weldon31.81.9SoftCounty estimate
Monroe39.52.3SoftUtility-reported
Vanceboro36.02.1SoftCounty estimate
Statesville19.01.1SoftCounty estimate
Goldsboro24.41.4SoftCounty estimate
Rockingham13.00.8SoftCounty estimate
Mocksville45.62.7SoftCounty estimate
Hamlet13.00.8SoftCounty estimate
Ahoskie28.01.6SoftCounty estimate
Rutherford College16.00.9SoftCounty estimate
Burgaw38.02.2SoftCounty estimate
Rocky Point38.02.2SoftCounty estimate
New Bern36.62.1SoftUtility-reported
Advance45.62.7SoftCounty estimate
Cooleemee45.62.7SoftCounty estimate
Elizabeth City76.04.4Moderately hardCounty estimate
Pinehurst18.51.1SoftCounty estimate
Mebane39.52.3SoftCounty estimate
Waynesville9.90.6SoftCounty estimate
Thomasville44.02.6SoftCounty estimate
Asheboro42.02.5SoftCounty estimate
Graham39.52.3SoftCounty estimate
Eden27.01.6SoftCounty estimate
Lake Junaluska9.90.6SoftCounty estimate
Morganton19.01.1SoftUtility-reported
Grimesland36.52.1SoftCounty estimate
Tarboro27.61.6SoftCounty estimate
North Wilkesboro11.00.6SoftCounty estimate
Oak Island117.06.8Moderately hardUtility-reported
Southern Pines33.82.0SoftUtility-reported
Ellerbe13.00.8SoftCounty estimate
Pinnacle17.01.0SoftCounty estimate
King17.01.0SoftCounty estimate
Maiden15.00.9SoftCounty estimate
Enfield31.81.9SoftCounty estimate
Simpson36.52.1SoftCounty estimate
Albemarle32.01.9SoftCounty estimate
Cordova13.00.8SoftCounty estimate
Hoffman13.00.8SoftCounty estimate
Norman13.00.8SoftCounty estimate
Warsaw44.02.6SoftCounty estimate
Laurinburg24.51.4SoftCounty estimate
Forest City20.01.2SoftCounty estimate
Butner28.61.7SoftCounty estimate
Oriental262.015.3Very hardCounty estimate
Halifax31.81.9SoftCounty estimate
Rose Hill44.02.6SoftCounty estimate
Hobgood27.61.6SoftCounty estimate
Hollister31.81.9SoftCounty estimate
Scotland Neck31.81.9SoftCounty estimate
Troy24.01.4SoftCounty estimate
Faison28.11.6SoftCounty estimate
Boone28.01.6SoftUtility-reported
Alliance262.015.3Very hardCounty estimate
Arapahoe262.015.3Very hardCounty estimate
Bayboro262.015.3Very hardCounty estimate
Grantsboro262.015.3Very hardCounty estimate
Vandemere262.015.3Very hardCounty estimate
Magnolia44.02.6SoftCounty estimate
Laurel Hill24.51.4SoftCounty estimate
Harrisburg40.92.4SoftUtility-reported
Kenansville44.02.6SoftCounty estimate
Wadesboro26.01.5SoftCounty estimate
Moyock439.025.7Very hardCounty estimate
Teachey44.02.6SoftCounty estimate
Calypso44.02.6SoftCounty estimate
Lexington44.02.6SoftCounty estimate
Weaverville13.00.8SoftCounty estimate
Wilkesboro11.00.6SoftCounty estimate
Wallace44.02.6SoftCounty estimate
Cherokee4.50.3SoftCounty estimate
La Grange28.11.6SoftCounty estimate
Claremont15.00.9SoftCounty estimate
Gaston33.31.9SoftCounty estimate
Newton15.00.9SoftCounty estimate
Mount Holly22.71.3SoftUtility-reported
Mt Holly22.71.3SoftUtility-reported
Henderson55.03.2SoftCounty estimate
Grandy439.025.7Very hardCounty estimate
Maple439.025.7Very hardCounty estimate
Elizabethtown22.01.3SoftCounty estimate
Cherry Point36.02.1SoftCounty estimate
Rutherfordton20.01.2SoftCounty estimate
Caroleen20.01.2SoftCounty estimate
Cliffside20.01.2SoftCounty estimate
Spindale20.01.2SoftCounty estimate
Snow Hill33.01.9SoftCounty estimate
Whiteville20.01.2SoftCounty estimate
Edenton31.01.8SoftCounty estimate
Taylorsville15.00.9SoftCounty estimate
Mount Gilead24.01.4SoftCounty estimate
Mt. Gilead24.01.4SoftCounty estimate
Valdese16.00.9SoftCounty estimate
Conover15.00.9SoftCounty estimate
Star24.01.4SoftCounty estimate
Clinton28.11.6SoftCounty estimate
Hillsborough28.51.7SoftCounty estimate
Belmont20.91.2SoftUtility-reported
Sharpsburg25.01.5SoftCounty estimate
Lilesville26.01.5SoftCounty estimate
Polkton26.01.5SoftCounty estimate
Havelock36.02.1SoftCounty estimate
Morven26.01.5SoftCounty estimate
Peachland26.01.5SoftCounty estimate
Pinetops27.61.6SoftCounty estimate
Reidsville27.01.6SoftCounty estimate
Brunswick20.01.2SoftCounty estimate
Conetoe27.61.6SoftCounty estimate
Bladenboro22.01.3SoftCounty estimate
Clarkton22.01.3SoftCounty estimate
Hiddenite15.00.9SoftCounty estimate
Powellsville33.01.9SoftCounty estimate
Deep Run28.11.6SoftCounty estimate
Icard16.00.9SoftCounty estimate
Washington325.019.0Very hardCounty estimate
Windsor33.01.9SoftCounty estimate
Aulander33.01.9SoftCounty estimate
Colerain33.01.9SoftCounty estimate
Kelford33.01.9SoftCounty estimate
Lewiston Woodville33.01.9SoftCounty estimate
Roxobel33.01.9SoftCounty estimate
Macclesfield27.61.6SoftCounty estimate
Speed27.61.6SoftCounty estimate
Williamston38.52.3SoftCounty estimate
Aberdeen18.51.1SoftCounty estimate
Dublin22.01.3SoftCounty estimate
Lincolnton24.01.4SoftCounty estimate
Carolina Beach180.010.5HardUtility-reported
Nashville25.01.5SoftCounty estimate
Millers Creek11.00.6SoftCounty estimate
Dunn28.11.6SoftCounty estimate
Erwin27.01.6SoftCounty estimate
Tar Heel22.01.3SoftCounty estimate
Chocowinity325.019.0Very hardCounty estimate
Oakboro32.01.9SoftCounty estimate
Gatesville27.01.6SoftCounty estimate
Murfreesboro28.01.6SoftCounty estimate
Marion18.01.1SoftCounty estimate
Fountain36.52.1SoftCounty estimate
Roxboro33.01.9SoftCounty estimate
Norlina33.01.9SoftCounty estimate
Brevard3.90.2SoftUtility-reported
Maury33.01.9SoftCounty estimate
Falkland36.52.1SoftCounty estimate
Hookerton33.01.9SoftCounty estimate
Walstonburg33.01.9SoftCounty estimate
Mount Airy24.01.4SoftCounty estimate
Franklin7.60.4SoftCounty estimate
Black Mountain13.00.8SoftCounty estimate
Aurora325.019.0Very hardCounty estimate
Plymouth87.05.1Moderately hardCounty estimate
Nebo18.01.1SoftCounty estimate
Maggie Valley9.90.6SoftCounty estimate
Badin32.01.9SoftCounty estimate
Macon33.01.9SoftCounty estimate
Warrenton33.01.9SoftCounty estimate
Lenoir14.00.8SoftCounty estimate
Stanfield32.01.9SoftCounty estimate
Morehead City336.019.6Very hardCounty estimate
Efland28.51.7SoftCounty estimate
Maysville127.07.4HardCounty estimate
Pollocksville89.55.2Moderately hardCounty estimate
Trenton89.55.2Moderately hardCounty estimate
Winton28.01.6SoftCounty estimate
Oxford28.61.7SoftCounty estimate
Hudson14.00.8SoftCounty estimate
Locust32.01.9SoftCounty estimate
Hays11.00.6SoftCounty estimate
Siler City33.01.9SoftCounty estimate
Angier27.01.6SoftCounty estimate
Farmville36.52.1SoftCounty estimate
Cofield28.01.6SoftCounty estimate
Corolla439.025.7Very hardCounty estimate
Cameron27.01.6SoftCounty estimate
Vass18.51.1SoftCounty estimate
Como28.01.6SoftCounty estimate
Ocean Isle Beach32.51.9SoftCounty estimate
Hildebran16.00.9SoftCounty estimate
Rhodhiss14.00.8SoftCounty estimate
Canton9.90.6SoftCounty estimate
Pittsboro33.01.9SoftCounty estimate
Webster5.00.3SoftCounty estimate
Dillsboro5.00.3SoftCounty estimate
Cullowhee5.00.3SoftCounty estimate
Sylva5.00.3SoftCounty estimate
Troutman19.01.1SoftCounty estimate
Dallas28.01.6SoftCounty estimate
Granite Falls14.00.8SoftCounty estimate
Roper87.05.1Moderately hardCounty estimate
Creswell87.05.1Moderately hardCounty estimate
Black Creek20.01.2SoftCounty estimate
New London32.01.9SoftCounty estimate
Randleman42.02.5SoftCounty estimate
Conway33.31.9SoftCounty estimate
Jamestown46.02.7SoftUtility-reported
Woodland33.31.9SoftCounty estimate
Southport32.51.9SoftCounty estimate
Atlantic Beach336.019.6Very hardCounty estimate
Cherryville28.01.6SoftCounty estimate
Bridgeton36.02.1SoftCounty estimate
Lucama20.01.2SoftCounty estimate
Severn33.31.9SoftCounty estimate
Beulaville44.02.6SoftCounty estimate
Camden12.90.8SoftCounty estimate
Jackson33.31.9SoftCounty estimate
Rich Square33.31.9SoftCounty estimate
Seaboard33.31.9SoftCounty estimate
Bessemer City28.01.6SoftCounty estimate
Columbus11.30.7SoftCounty estimate
Stanley28.01.6SoftCounty estimate
Wrightsville Beach75.74.4Moderately hardUtility-reported
Glen Alpine16.00.9SoftCounty estimate
Kure Beach226.013.2Very hardCounty estimate
Mars Hill14.00.8SoftCounty estimate
Newport336.019.6Very hardCounty estimate
Beaufort336.019.6Very hardCounty estimate
Chinquapin44.02.6SoftCounty estimate
Louisburg29.01.7SoftCounty estimate
Bryson City4.50.3SoftCounty estimate
Carthage18.51.1SoftCounty estimate
Benson28.01.6SoftCounty estimate
Norwood32.01.9SoftCounty estimate
Misenheimer32.01.9SoftCounty estimate
Richfield32.01.9SoftCounty estimate
Mount Olive44.02.6SoftCounty estimate
Elkin24.01.4SoftCounty estimate
Jonesville55.13.2SoftCounty estimate
Pleasant Hill33.31.9SoftCounty estimate
Wingate47.02.8SoftCounty estimate
Lillington27.01.6SoftCounty estimate
Robersonville38.52.3SoftCounty estimate
Camp Lejeune127.07.4HardCounty estimate
Hampstead38.02.2SoftCounty estimate
South Mills12.90.8SoftCounty estimate
Andrews10.00.6SoftCounty estimate
Stokes36.52.1SoftCounty estimate
Tabor City20.01.2SoftCounty estimate
Clyde9.90.6SoftCounty estimate
Columbia80.54.7Moderately hardCounty estimate
Marshville47.02.8SoftCounty estimate
Drexel16.00.9SoftCounty estimate
Robbinsville9.10.5SoftCounty estimate
Moravian Falls11.00.6SoftCounty estimate
Ramseur42.02.5SoftCounty estimate
Wagram24.51.4SoftCounty estimate
Coats27.01.6SoftCounty estimate
Biscoe24.01.4SoftCounty estimate
Franklinton29.01.7SoftCounty estimate
Jamesville38.52.3SoftCounty estimate
Everetts38.52.3SoftCounty estimate
Liberty42.02.5SoftCounty estimate
Pine Level28.01.6SoftCounty estimate
Dobson24.01.4SoftCounty estimate
Richlands127.07.4HardCounty estimate
Parmele38.52.3SoftCounty estimate
Lake Waccamaw20.01.2SoftCounty estimate
Haw River39.52.3SoftCounty estimate
Hayesville3.00.2SoftCounty estimate
Mayodan27.01.6SoftCounty estimate
Seagrove42.02.5SoftCounty estimate
Chadbourn20.01.2SoftCounty estimate
Kenly28.01.6SoftCounty estimate
Linville8.50.5SoftCounty estimate
Ellenboro20.01.2SoftCounty estimate
Hassell38.52.3SoftCounty estimate
Oak City38.52.3SoftCounty estimate
Pinebluff18.51.1SoftCounty estimate
Hertford115.06.7Moderately hardCounty estimate
Madison27.01.6SoftCounty estimate
Littleton31.81.9SoftCounty estimate
Linden12.40.7SoftCounty estimate
Pilot Mountain24.01.4SoftCounty estimate
Belhaven204.011.9Very hardCounty estimate
Garysburg33.31.9SoftCounty estimate
Yanceyville29.01.7SoftCounty estimate
Sparta19.01.1SoftCounty estimate
Saluda11.30.7SoftCounty estimate
Boonville55.13.2SoftCounty estimate
Mount Pleasant58.53.4SoftCounty estimate
Denton44.02.6SoftCounty estimate
Old Fort18.01.1SoftCounty estimate
Bethel36.52.1SoftCounty estimate
Blowing Rock21.01.2SoftCounty estimate
Harrells28.11.6SoftCounty estimate
Jefferson19.01.1SoftCounty estimate
West Jefferson19.01.1SoftCounty estimate
Robbins18.51.1SoftCounty estimate
East Bend55.13.2SoftCounty estimate
Stoneville27.01.6SoftCounty estimate
Elm City20.01.2SoftCounty estimate
Marshall14.00.8SoftCounty estimate
Franklinville42.02.5SoftCounty estimate
Kittrell55.03.2SoftCounty estimate
Princeton28.01.6SoftCounty estimate
Spring Hope25.01.5SoftCounty estimate
Faith40.02.3SoftCounty estimate
Goldston33.01.9SoftCounty estimate
Lake Lure20.01.2SoftCounty estimate
Stantonsburg20.01.2SoftCounty estimate
Fremont24.41.4SoftCounty estimate
Ansonville26.01.5SoftCounty estimate
Banner Elk21.01.2SoftCounty estimate
Stokesdale27.01.6SoftCounty estimate
Alamance28.01.6SoftUtility-reported
Marble10.00.6SoftCounty estimate
Bostic20.01.2SoftCounty estimate
Bunn29.01.7SoftCounty estimate
Pink Hill44.02.6SoftCounty estimate
Fair Bluff20.01.2SoftCounty estimate
Pikeville24.41.4SoftCounty estimate
Candor24.01.4SoftCounty estimate
Harrellsville28.01.6SoftCounty estimate
Montreat13.00.8SoftCounty estimate
Rosman4.90.3SoftCounty estimate
Murphy10.00.6SoftCounty estimate
High Shoals28.01.6SoftCounty estimate
Gibson24.51.4SoftCounty estimate
Whittier5.00.3SoftCounty estimate
Micro28.01.6SoftCounty estimate
Sims20.01.2SoftCounty estimate
Dover36.02.1SoftCounty estimate
Danbury17.01.0SoftCounty estimate
Walnut Cove17.01.0SoftCounty estimate
Landis40.02.3SoftCounty estimate
Barco439.025.7Very hardCounty estimate
Turkey28.11.6SoftCounty estimate
Summerfield39.62.3SoftCounty estimate
Rougemont33.01.9SoftCounty estimate
Cerro Gordo20.01.2SoftCounty estimate
Milton29.01.7SoftCounty estimate
Climax42.02.5SoftCounty estimate
Alexis28.01.6SoftCounty estimate
Pisgah Forest4.90.3SoftCounty estimate
Zebulon27.61.6SoftCounty estimate
Evergreen20.01.2SoftCounty estimate
Oak Ridge39.62.3SoftCounty estimate
Barnardsville13.00.8SoftCounty estimate
Sophia42.02.5SoftCounty estimate
Wendell27.61.6SoftCounty estimate
Yadkinville55.13.2SoftCounty estimate
Sanford50.22.9SoftCounty estimate
Browns Summit39.62.3SoftCounty estimate
Bolivia32.51.9SoftCounty estimate
Buies Creek27.01.6SoftCounty estimate
Bunnlevel27.01.6SoftCounty estimate
Calabash32.51.9SoftCounty estimate
Chapel Hill28.51.7SoftCounty estimate
Cornelius57.73.4SoftCounty estimate
Davidson57.73.4SoftCounty estimate
Dudley24.41.4SoftCounty estimate
East Flat Rock5.60.3SoftCounty estimate
Etowah5.60.3SoftCounty estimate
Fairview13.00.8SoftCounty estimate
Flat Rock5.60.3SoftCounty estimate
Fletcher5.60.3SoftCounty estimate
Garner27.61.6SoftCounty estimate
Germanton17.01.0SoftCounty estimate
Holly Ridge127.07.4HardCounty estimate
Hope Mills12.40.7SoftCounty estimate
Horse Shoe5.60.3SoftCounty estimate
Huntersville57.73.4SoftCounty estimate
Indian Trail47.02.8SoftCounty estimate
Iron Station24.01.4SoftCounty estimate
Kernersville36.02.1SoftCounty estimate
Knightdale27.61.6SoftCounty estimate
Lewisville36.02.1SoftCounty estimate
Matthews57.73.4SoftCounty estimate
Midland58.53.4SoftCounty estimate
Mills River5.60.3SoftCounty estimate
Mineral Springs47.02.8SoftCounty estimate
Morrisville27.61.6SoftCounty estimate
Mountain Home5.60.3SoftCounty estimate
Newland8.50.5SoftCounty estimate
Pantego325.019.0Very hardCounty estimate
Pfafftown36.02.1SoftCounty estimate
Pineville57.73.4SoftCounty estimate
Pleasant Garden39.62.3SoftCounty estimate
Rolesville27.61.6SoftCounty estimate
Rural Hall36.02.1SoftCounty estimate
Salemburg28.11.6SoftCounty estimate
Saxapahaw39.52.3SoftCounty estimate
Sedalia39.62.3SoftCounty estimate
Seven Springs24.41.4SoftCounty estimate
Shallotte32.51.9SoftCounty estimate
Sneads Ferry127.07.4HardCounty estimate
Southmont44.02.6SoftCounty estimate
Sunset Beach32.51.9SoftCounty estimate
Swannanoa13.00.8SoftCounty estimate
Swansboro336.019.6Very hardCounty estimate
Tobaccoville36.02.1SoftCounty estimate
Trinity42.02.5SoftCounty estimate
Wake Forest27.61.6SoftCounty estimate
Walkertown36.02.1SoftCounty estimate
Waxhaw47.02.8SoftCounty estimate
Welcome44.02.6SoftCounty estimate
Winfall115.06.7Moderately hardCounty estimate
Youngsville29.01.7SoftCounty 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 North Carolina's Water Hardness

North Carolina sits in the Southeastern Coastal Plain and Piedmont region.

Much of the Southeast draws its water from sandy Coastal Plain aquifers and from rivers draining crystalline Piedmont rock - neither contributes much dissolved calcium or magnesium. As a result the USGS maps most of the region as soft to moderately hard. Hardness climbs where supplies tap deeper limestone units near the Gulf and Atlantic coasts.

Source: USGS Water Science School - Hardness of Water

North Carolina Water Hardness FAQ

Does North Carolina have hard water?

On the whole, no — North Carolina's statewide median sits below the hard threshold, though some cities run harder. The median is 29.7 mg/L (1.7 gpg) — soft on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 1 of North Carolina's 35 measured cities fall in the hard or very hard bands (3%), so check your own city rather than the state average.

How hard is tap water in North Carolina?

Across the 35 North Carolina cities with measured values in our index, the median hardness is 29.7 mg/L (1.7 gpg) — soft on the USGS scale. Individual cities range from 3.9 to 180.0 mg/L, so check your own city rather than assuming the state number.

Which city in North Carolina has the hardest water?

Carolina Beach has the hardest measured tap water in our North Carolina index at 180.0 mg/L (10.5 gpg) — 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 North Carolina?

1 of North Carolina's 35 measured cities (3%) 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 North Carolina 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.

TapWaterData may be compensated when you are connected with a 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.