Is North Carolina Tap Water Safe to Drink?
Water quality data for 25 cities across North Carolina. Find your city below.
Water quality in North Carolina varies significantly from city to city. Across 25 cities we track, hardness ranges from 10 PPM in Marion to 90 PPM in Asheville, with a statewide average of 41 PPM. Most cities in North Carolina have relatively soft water, so a softener is generally unnecessary.
9 North Carolina cities have forever chemicals (PFAS) above the EPA's 2024 limit of 4 parts per trillion: Greensboro (72.57 ppt), High Point (34.65 ppt), Raleigh (23.52 ppt), Kannapolis (4.73 ppt), Durham (20.33 ppt), and 4 more. A reverse osmosis system or NSF P473-certified filter can reduce PFAS to safe levels.
Complete North Carolina Guide
Statewide water quality overview, costs, and treatment recommendations.
Well Water in North Carolina
Testing, treatment, and common issues for private wells.
Hardest Water Rankings
North Carolina cities ranked by water hardness level.
City Treatment Guides
Sized recommendations based on each city's specific water data.
Charlotte
🔬 Best FilterRaleigh
🔬 Best FilterIndian Trail
🔬 Best FilterRaleigh South
🔬 Best FilterCity Comparisons
Asheville vs Marion
Side-by-side water quality comparison.
Asheville vs Gastonia
Side-by-side water quality comparison.
Gastonia vs Charlotte
Side-by-side water quality comparison.
North Carolina Cities by Water Hardness
| City | Hardness (PPM) | Level | PFAS (ppt) | Source |
|---|---|---|---|---|
| Asheville | 90 | Moderately Hard | 0 | North Fork Reservoir, Bee Tree Reservoir |
| Gastonia | 53 | Slightly Hard | 0 | Mountain Island Lake |
| Charlotte | 50 | Slightly Hard | 10.85 | Mountain Island Lake + Catawba River |
| Winston-Salem | 49 | Slightly Hard | 0 | Salem Lake, Yadkin River |
| Wilmington | 49 | Slightly Hard | 4.4 | Cape Fear River |
| Cary | 49 | Slightly Hard | 20.86 | Jordan Lake |
| Greensboro | 46 | Slightly Hard | 72.57 | Lake Brandt, Lake Townsend |
| High Point | 46 | Slightly Hard | 34.65 | City Lake, Oak Hollow Lake |
| Raleigh | 45 | Slightly Hard | 23.52 | Falls Lake + Jordan Lake |
| Hickory | 45 | Slightly Hard | 0 | Lake Hickory & Henry Fork River |
| Indian Trail | 44 | Slightly Hard | 10.85 | Catawba River via CMUD |
| Huntersville | 42 | Slightly Hard | 0 | Mountain Island Lake |
| Kannapolis | 41 | Slightly Hard | 4.73 | Second Creek watershed |
| Apex | 40 | Slightly Hard | 22.01 | Jordan Lake |
| Mooresville | 40 | Slightly Hard | 0 | Lake Norman |
| Wake Forest | 38 | Slightly Hard | 0 | Falls Lake |
| Durham | 35 | Slightly Hard | 20.33 | Lake Michie, Little River |
| Raleigh South | 35 | Slightly Hard | 23.52 | Falls Lake |
| Fayetteville | 32 | Slightly Hard | 77.06 | Cape Fear River |
| Concord | 32 | Slightly Hard | 12.52 | Coddle Creek Reservoir |
| Durham South | 30 | Slightly Hard | 20.33 | Lake Michie + Little River |
| Jacksonville | 28 | Slightly Hard | 0 | New River & Castle Hayne aquifer |
| Chapel Hill | 25 | Slightly Hard | 0 | Cane Creek Reservoir |
| Winston-Salem Downtown | 20 | Slightly Hard | 0 | Salem Lake + Yadkin River |
| Marion | 10 | Soft | 0 | Catawba River |