Skip to main content
💧 TapWaterData

Water Hardness in North Carolina

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

State Median
29.5
mg/L (1.7 gpg), measured cities
Measured Range
3.6-180.0
mg/L across measured cities
Measured Cities
195
utility-reported or computed values
County Estimates
349
64% of covered cities

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/L17991.8%
Moderately hard60-120 mg/L157.7%
Hard120-180 mg/L10.5%
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. Wake Forest 106.0 mg/L (6.2 gpg), moderately hard
  3. Brogden 75.2 mg/L (4.4 gpg), moderately hard
  4. Dudley 75.2 mg/L (4.4 gpg), moderately hard
  5. Elroy 75.2 mg/L (4.4 gpg), moderately hard

Softest water in North Carolina

  1. Duck 3.6 mg/L (0.2 gpg), soft
  2. Kill Devil Hills 3.6 mg/L (0.2 gpg), soft
  3. Kitty Hawk 3.6 mg/L (0.2 gpg), soft
  4. Manns Harbor 3.6 mg/L (0.2 gpg), soft
  5. Manteo 3.6 mg/L (0.2 gpg), soft

Every Covered City in North Carolina

All 544 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
Mint Hill31.11.8SoftUtility-reported
Charlotte31.11.8SoftUtility-reported
Matthews31.11.8SoftUtility-reported
Huntersville31.31.8SoftUtility-reported
Davidson31.31.8SoftUtility-reported
Cornelius31.31.8SoftUtility-reported
Pineville31.31.8SoftUtility-reported
Raleigh25.11.5SoftUtility-reported
Garner25.11.5SoftUtility-reported
Knightdale25.11.5SoftUtility-reported
Rolesville25.11.5SoftUtility-reported
High Point32.51.9SoftUtility-reported
Tobaccoville23.91.4SoftUtility-reported
Kernersville23.91.4SoftUtility-reported
Germanton23.91.4SoftUtility-reported
Winston-Salem23.91.4SoftUtility-reported
Rural Hall23.91.4SoftUtility-reported
Bethania23.91.4SoftUtility-reported
Clemmons23.91.4SoftUtility-reported
Lewisville23.91.4SoftUtility-reported
Pfafftown23.91.4SoftUtility-reported
Walkertown23.91.4SoftUtility-reported
Durham29.71.7SoftUtility-reported
Gorman29.71.7SoftUtility-reported
Morrisville29.71.7SoftUtility-reported
Greensboro36.22.1SoftUtility-reported
Pleasant Garden36.22.1SoftUtility-reported
Forest Oaks36.22.1SoftUtility-reported
McLeansville36.22.1SoftUtility-reported
Sedalia36.22.1SoftUtility-reported
Fairview19.01.1SoftUtility-reported
Cary32.91.9SoftUtility-reported
Jacksonville51.63.0SoftUtility-reported
Fletcher7.80.5SoftUtility-reported
Mills River7.80.5SoftUtility-reported
Fayetteville29.11.7SoftUtility-reported
Eastover29.11.7SoftUtility-reported
Hope Mills29.11.7SoftUtility-reported
Stedman12.40.7SoftCounty estimate
Vander29.11.7SoftUtility-reported
Thomasville23.61.4SoftUtility-reported
Wrightsville Beach22.71.3SoftUtility-reported
Lexington23.61.4SoftUtility-reported
Monroe31.51.8SoftUtility-reported
Wilmington21.11.2SoftUtility-reported
Anderson Creek50.73.0SoftUtility-reported
Denton23.61.4SoftUtility-reported
Asheville9.20.5SoftUtility-reported
Black Mountain9.70.6SoftUtility-reported
Woodfin9.20.5SoftUtility-reported
Trinity23.61.4SoftUtility-reported
Midway23.61.4SoftUtility-reported
Southmont23.61.4SoftUtility-reported
Tyro23.61.4SoftUtility-reported
Wallburg23.61.4SoftUtility-reported
Welcome23.61.4SoftUtility-reported
Leland49.02.9SoftUtility-reported
Piney Green51.63.0SoftUtility-reported
Biltmore Forest9.20.5SoftUtility-reported
Avery Creek9.20.5SoftUtility-reported
Bent Creek9.20.5SoftUtility-reported
Emma9.20.5SoftUtility-reported
Royal Pines9.20.5SoftUtility-reported
Swannanoa9.20.5SoftUtility-reported
Wingate29.51.7SoftUtility-reported
Marshville29.51.7SoftUtility-reported
Winterville36.52.1SoftCounty estimate
Hemby Bridge29.51.7SoftUtility-reported
Indian Trail29.51.7SoftUtility-reported
Lake Park29.51.7SoftUtility-reported
Marvin29.51.7SoftUtility-reported
Mineral Springs29.51.7SoftUtility-reported
Stallings29.51.7SoftUtility-reported
Unionville29.51.7SoftUtility-reported
Waxhaw29.51.7SoftUtility-reported
Weddington29.51.7SoftUtility-reported
Wesley Chapel29.51.7SoftUtility-reported
Half Moon51.63.0SoftUtility-reported
Holly Ridge51.63.0SoftUtility-reported
Pumpkin Center51.63.0SoftUtility-reported
Richlands51.63.0SoftUtility-reported
Sneads Ferry51.63.0SoftUtility-reported
Swansboro51.63.0SoftUtility-reported
Greenville36.52.1SoftCounty estimate
Oak Island60.83.6Moderately hardUtility-reported
Apex27.21.6SoftUtility-reported
Dunn50.73.0SoftUtility-reported
Jamestown35.72.1SoftUtility-reported
Southport49.02.9SoftUtility-reported
Holden Beach49.02.9SoftUtility-reported
Concord34.52.0SoftUtility-reported
Angier50.73.0SoftUtility-reported
Lillington50.73.0SoftUtility-reported
Four Oaks28.01.6SoftCounty estimate
Boiling Spring Lakes49.02.9SoftUtility-reported
Bolivia49.02.9SoftUtility-reported
Calabash49.02.9SoftUtility-reported
Ocean Isle Beach49.02.9SoftUtility-reported
Shallotte49.02.9SoftUtility-reported
St. James49.02.9SoftUtility-reported
Sunset Beach49.02.9SoftUtility-reported
Varnamtown49.02.9SoftUtility-reported
Midland34.52.0SoftUtility-reported
Coats50.73.0SoftUtility-reported
Mount Pleasant34.52.0SoftUtility-reported
Smithfield28.01.6SoftCounty estimate
Barbecue50.73.0SoftUtility-reported
Buies Creek50.73.0SoftUtility-reported
Bunnlevel50.73.0SoftUtility-reported
Erwin50.73.0SoftUtility-reported
Mamers50.73.0SoftUtility-reported
Spout Springs50.73.0SoftUtility-reported
Lowell28.01.6SoftCounty estimate
Gastonia28.01.6SoftCounty estimate
Cramerton28.01.6SoftCounty estimate
Lumberton17.01.0SoftCounty estimate
Chapel Hill29.61.7SoftUtility-reported
Carrboro29.61.7SoftUtility-reported
Hendersonville4.90.3SoftUtility-reported
Flat Rock4.90.3SoftUtility-reported
Shelby20.01.2SoftCounty estimate
Fruitland4.90.3SoftUtility-reported
Mountain Home4.90.3SoftUtility-reported
Balfour4.90.3SoftUtility-reported
Barker Heights4.90.3SoftUtility-reported
Dana4.90.3SoftUtility-reported
East Flat Rock4.90.3SoftUtility-reported
Etowah4.90.3SoftUtility-reported
Hoopers Creek4.90.3SoftUtility-reported
Horse Shoe4.90.3SoftUtility-reported
Laurel Park4.90.3SoftUtility-reported
Valley Hill4.90.3SoftUtility-reported
Spring Lake27.01.6SoftCounty estimate
Hickory22.71.3SoftUtility-reported
Kings Mountain20.01.2SoftCounty estimate
Red Springs9.00.5SoftCounty estimate
Maxton17.01.0SoftCounty estimate
Havelock23.61.4SoftUtility-reported
Pembroke17.01.0SoftCounty estimate
Fairmont17.01.0SoftCounty estimate
Elon39.52.3SoftCounty estimate
St. Pauls17.01.0SoftCounty estimate
Rocky Mount27.61.6SoftCounty estimate
James City29.41.7SoftUtility-reported
New Bern29.41.7SoftUtility-reported
Rowland17.01.0SoftCounty estimate
Gibsonville39.62.3SoftCounty estimate
Brookford22.71.3SoftUtility-reported
Mountain View22.71.3SoftUtility-reported
St. Stephens22.71.3SoftUtility-reported
Lumber Bridge17.01.0SoftCounty estimate
Marietta17.01.0SoftCounty estimate
Orrum17.01.0SoftCounty estimate
Parkton17.01.0SoftCounty estimate
Proctorville17.01.0SoftCounty estimate
St. Pauls17.01.0SoftCounty estimate
Fort Bragg12.40.7SoftCounty estimate
Boiling Springs20.01.2SoftCounty estimate
Lincolnton14.40.8SoftUtility-reported
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
Wilson18.81.1SoftCounty estimate
Mooresville50.73.0SoftUtility-reported
Pinehurst33.82.0SoftUtility-reported
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
Broadway27.01.6SoftCounty estimate
Selma28.01.6SoftCounty estimate
Belville51.63.0SoftUtility-reported
Denver14.40.8SoftUtility-reported
Iron Station14.40.8SoftUtility-reported
Lowesville14.40.8SoftUtility-reported
Westport14.40.8SoftUtility-reported
Holly Springs41.32.4SoftUtility-reported
Washington42.92.5SoftUtility-reported
Roanoke Rapids31.81.9SoftCounty estimate
Fairfield Harbour23.61.4SoftUtility-reported
Kinston28.11.6SoftCounty estimate
Raeford9.00.5SoftCounty estimate
Ayden36.52.1SoftCounty estimate
Trent Woods36.62.1SoftUtility-reported
Weldon31.81.9SoftCounty estimate
Brices Creek23.61.4SoftUtility-reported
Cherry Branch23.61.4SoftUtility-reported
Dover23.61.4SoftUtility-reported
Neuse Forest23.61.4SoftUtility-reported
Vanceboro36.02.1SoftCounty estimate
Mount Olive75.24.4Moderately hardUtility-reported
Statesville19.01.1SoftCounty estimate
Boone28.01.6SoftUtility-reported
Rockingham13.00.8SoftCounty estimate
Mocksville45.62.7SoftCounty estimate
Walnut Creek75.24.4Moderately hardUtility-reported
Morganton19.01.1SoftUtility-reported
Brogden75.24.4Moderately hardUtility-reported
Dudley75.24.4Moderately hardUtility-reported
Elroy75.24.4Moderately hardUtility-reported
Eureka75.24.4Moderately hardUtility-reported
Fremont75.24.4Moderately hardUtility-reported
Goldsboro75.24.4Moderately hardUtility-reported
New Hope75.24.4Moderately hardUtility-reported
Pikeville75.24.4Moderately hardUtility-reported
Seven Springs75.24.4Moderately hardUtility-reported
Hamlet13.00.8SoftCounty estimate
Salem19.01.1SoftUtility-reported
Carthage33.82.0SoftUtility-reported
Southern Pines33.82.0SoftUtility-reported
Ahoskie28.01.6SoftCounty estimate
Rutherford College16.00.9SoftCounty estimate
Burgaw38.02.2SoftCounty estimate
Rocky Point38.02.2SoftCounty estimate
Kill Devil Hills3.60.2SoftUtility-reported
River Bend36.62.1SoftUtility-reported
Advance45.62.7SoftCounty estimate
Cooleemee45.62.7SoftCounty estimate
Elizabeth City76.04.4Moderately hardCounty estimate
Mebane39.52.3SoftCounty estimate
Waynesville9.90.6SoftCounty estimate
Asheboro42.02.5SoftCounty estimate
Graham39.52.3SoftCounty estimate
Eden27.01.6SoftCounty estimate
Lake Junaluska9.90.6SoftCounty estimate
Glen Alpine19.01.1SoftUtility-reported
Grimesland36.52.1SoftCounty estimate
Tarboro27.61.6SoftCounty estimate
Manteo3.60.2SoftUtility-reported
Lake Royale35.42.1SoftUtility-reported
Bunn35.42.1SoftUtility-reported
Franklinton35.42.1SoftUtility-reported
Louisburg35.42.1SoftUtility-reported
Youngsville35.42.1SoftUtility-reported
North Wilkesboro11.00.6SoftCounty estimate
Ellerbe13.00.8SoftCounty estimate
Pinnacle17.01.0SoftCounty estimate
King17.01.0SoftCounty estimate
Governors Club31.81.9SoftUtility-reported
Carolina Meadows31.41.8SoftUtility-reported
Fearrington Village31.41.8SoftUtility-reported
Governors Village31.41.8SoftUtility-reported
Kitty Hawk3.60.2SoftUtility-reported
Maiden15.00.9SoftCounty estimate
Duck3.60.2SoftUtility-reported
Manns Harbor3.60.2SoftUtility-reported
Southern Shores3.60.2SoftUtility-reported
Wanchese3.60.2SoftUtility-reported
Enfield31.81.9SoftCounty estimate
Belhaven42.92.5SoftUtility-reported
Pantego42.92.5SoftUtility-reported
River Road42.92.5SoftUtility-reported
Washington Park42.92.5SoftUtility-reported
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
Butner30.01.8SoftCounty 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
Harrisburg40.92.4SoftUtility-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
Kenansville44.02.6SoftCounty estimate
Wadesboro26.01.5SoftCounty estimate
Moyock439.025.7Very hardCounty estimate
Teachey44.02.6SoftCounty estimate
Calypso44.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
Mount Holly22.71.3SoftUtility-reported
Newton15.00.9SoftCounty estimate
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
Brevard3.90.2SoftUtility-reported
Clinton28.11.6SoftCounty estimate
Hillsborough28.61.7SoftCounty estimate
Belmont20.91.2SoftUtility-reported
Sharpsburg25.01.5SoftCounty estimate
Lilesville26.01.5SoftCounty estimate
Polkton26.01.5SoftCounty estimate
Morven26.01.5SoftCounty estimate
Peachland26.01.5SoftCounty estimate
Pinetops27.61.6SoftCounty estimate
Reidsville27.01.6SoftCounty estimate
Hertford57.83.4SoftUtility-reported
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
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
Carolina Beach180.010.5HardUtility-reported
Nashville25.01.5SoftCounty estimate
Millers Creek11.00.6SoftCounty estimate
Tar Heel22.01.3SoftCounty estimate
Chocowinity325.019.0Very hardCounty estimate
Oakboro32.01.9SoftCounty estimate
Gatesville27.01.6SoftCounty estimate
Murfreesboro28.01.6SoftCounty estimate
Winfall57.83.4SoftUtility-reported
Marion18.01.1SoftCounty estimate
Fountain36.52.1SoftCounty estimate
Roxboro33.01.9SoftCounty estimate
Norlina33.01.9SoftCounty estimate
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
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.61.7SoftCounty estimate
Maysville127.07.4HardCounty estimate
Pollocksville89.55.2Moderately hardCounty estimate
Trenton89.55.2Moderately hardCounty estimate
Winton28.01.6SoftCounty estimate
Oxford30.01.8SoftCounty estimate
Hudson14.00.8SoftCounty estimate
Locust32.01.9SoftCounty estimate
Hays11.00.6SoftCounty estimate
Siler City33.01.9SoftCounty 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
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 Creek18.81.1SoftCounty estimate
New London32.01.9SoftCounty estimate
Randleman42.02.5SoftCounty estimate
Conway33.31.9SoftCounty estimate
Woodland33.31.9SoftCounty estimate
Atlantic Beach336.019.6Very hardCounty estimate
Cherryville28.01.6SoftCounty estimate
Bridgeton36.02.1SoftCounty estimate
Lucama18.81.1SoftCounty 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
Kure Beach226.013.2Very hardCounty estimate
Tabor City63.43.7Moderately hardUtility-reported
Mars Hill14.00.8SoftCounty estimate
Newport336.019.6Very hardCounty estimate
Beaufort336.019.6Very hardCounty estimate
Chinquapin44.02.6SoftCounty estimate
Hampstead26.71.6SoftUtility-reported
Bryson City4.50.3SoftCounty estimate
Benson28.01.6SoftCounty estimate
Norwood32.01.9SoftCounty estimate
Misenheimer32.01.9SoftCounty estimate
Richfield32.01.9SoftCounty estimate
Wake Forest106.06.2Moderately hardUtility-reported
Elkin24.01.4SoftCounty estimate
Jonesville55.13.2SoftCounty estimate
Pleasant Hill33.31.9SoftCounty estimate
Robersonville38.52.3SoftCounty estimate
Camp Lejeune127.07.4HardCounty estimate
South Mills12.90.8SoftCounty estimate
Andrews10.00.6SoftCounty estimate
Stokes36.52.1SoftCounty estimate
Clyde9.90.6SoftCounty estimate
Columbia80.54.7Moderately hardCounty estimate
Drexel16.00.9SoftCounty estimate
Robbinsville9.10.5SoftCounty estimate
Moravian Falls11.00.6SoftCounty estimate
Ramseur42.02.5SoftCounty estimate
Wagram24.51.4SoftCounty estimate
Biscoe24.01.4SoftCounty estimate
Jamesville38.52.3SoftCounty estimate
Everetts38.52.3SoftCounty estimate
Liberty42.02.5SoftCounty estimate
Pine Level28.01.6SoftCounty estimate
Dobson24.01.4SoftCounty 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
Madison27.01.6SoftCounty estimate
Littleton31.81.9SoftCounty estimate
Linden12.40.7SoftCounty estimate
Pilot Mountain24.01.4SoftCounty estimate
Garysburg33.31.9SoftCounty estimate
Yanceyville29.01.7SoftCounty estimate
Sparta19.01.1SoftCounty estimate
Saluda11.30.7SoftCounty estimate
Boonville55.13.2SoftCounty 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 City18.81.1SoftCounty 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
Stantonsburg18.81.1SoftCounty estimate
Ansonville26.01.5SoftCounty estimate
Stokesdale27.01.6SoftCounty estimate
Alamance28.01.6SoftUtility-reported
Marble10.00.6SoftCounty estimate
Bostic20.01.2SoftCounty estimate
Pink Hill44.02.6SoftCounty estimate
Fair Bluff20.01.2SoftCounty 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
Sims18.81.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.71.6SoftCounty estimate
Banner Elk79.84.7Moderately hardUtility-reported
Evergreen20.01.2SoftCounty estimate
Oak Ridge39.62.3SoftCounty estimate
Barnardsville13.00.8SoftCounty estimate
Sophia42.02.5SoftCounty estimate
Wendell27.71.6SoftCounty estimate
Yadkinville55.13.2SoftCounty estimate
Sanford50.22.9SoftCounty estimate
Browns Summit39.62.3SoftCounty estimate
Newland8.50.5SoftCounty estimate
Salemburg28.11.6SoftCounty estimate
Saxapahaw39.52.3SoftCounty 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.5 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 195 measured cities fall in the hard or very hard bands (1%), so check your own city rather than the state average.

How hard is tap water in North Carolina?

Across the 195 North Carolina cities with measured values in our index, the median hardness is 29.5 mg/L (1.7 gpg) — soft on the USGS scale. Individual cities range from 3.6 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 195 measured cities (1%) 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.

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.