North Carolina Water Quality Report
417 cities tested · Average grade: C+ · 9.5M people served
Live Water Alerts for North Carolina →Latest water news in North Carolina
Recent reporting on North Carolina drinking water — boil-water advisories, regulatory action, and infrastructure events.
Camp Lejeune Update: $571M Paid, $795M in Offers — Resolution Still Under 1% of Claims
DOJ and Navy have paid $570.7M and offered $794.7M in Camp Lejeune settlements as of April 2026 — but just 2,686 of 407,000 claims have offers.
Read full story →Charlotte's Stage 2 Water Restrictions Take Effect Today — First Mandatory Cuts Since 2009
Charlotte Water's Stage 2 mandatory restrictions take effect today, May 15 — first since 2009. Cascade extends across the Catawba-Wateree basin.
Read full story →Concord and Kannapolis Impose Mandatory Level 2 Water Restrictions as Lake Fisher Drops
Concord and Kannapolis, NC imposed mandatory Level 2 water restrictions May 15, 2026 as Lake Fisher dropped and Cabarrus stayed in extreme drought.
Read full story →North Carolina water quality overview
North Carolina's drinking water quality is fair overall, with an average score of 68.6 out of 100 across 417 cities tested. The median score is 75.3, serving a total population of 9,530,099 residents. The state shows a mixed picture: 80 cities earned an A, while 67 cities received an F. PFAS "forever chemicals" were detected in 135 of 417 cities tested (32%). 91 cities exceed the 2024 EPA maximum contaminant levels. 7 cities have lead levels exceeding the EPA action level of 15 ppb, often indicating aging infrastructure with lead service lines or lead solder. The state relies on a mix of water sources: 176 cities use groundwater while 241 draw from surface water such as rivers, lakes, and reservoirs.
Issues to watch in North Carolina
Explore contaminants in North Carolina
More contaminants tested in North Carolina
Private-well water in North Carolina
Based on USGS Powell Domestic-Well Database — 1,300 private wells sampled across North Carolina. These wells are not regulated by the EPA; if you draw your tap from a private well, the public-system grade above does not apply to you.
Top industrial water polluters in North Carolina
Industrial polluters nearby
The 10 facilities reporting the most pounds released to surface water in North Carolina, 2023.
Total reported releases to surface water: 8,151,230 lbs
| Facility | Top chemical | To surface water (lbs/yr) |
|---|---|---|
SMITHFIELD FRESH MEATS CORP - TAR HEEL TAR HEEL, NC28392 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 3,568,128 |
PERDUE FOODS LLC - LEWISTON PROCESSING PLANT LEWISTON WOODVILLE, NC27849 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 2,109,368 |
MCIEAST-MCB CAMLEJ MAIN FACILITY CAMP LEJEUNE, NC28547 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 606,274 |
INTERNATIONAL PAPER RIEGELWOOD MILL RIEGELWOOD, NC28456 | Methanol | 495,769 |
INTERNATIONAL PAPER- NEW BERN MILL VANCEBORO, NC28586 | Methanol | 437,579 |
+ 5 more facilities
Source: EPA Toxic Release Inventory (TRI) 2023
How North Carolina cities scored
Best Cities
Worst Cities
Water quality across North Carolina
Each dot is a city, colored by its water quality grade. Size reflects population served. Click any city to view its full water report.
417 cities in North Carolina
| # | City | Grade | Score | Population | Violations |
|---|---|---|---|---|---|
| 1 | Wilkesboro | A+ | 99 | 4K | 0 |
| 2 | Nags Head | A+ | 96.4 | 3K | 13 |
| 3 | Swanquarter | A+ | 96.2 | 5K | 68 |
| 4 | Dunn | A+ | 95 | 4K | 1 |
| 5 | Bent Creek | A | 94.3 | 800 | 10 |
| 6 | Carrboro | A | 94.1 | 86K | 2 |
| 7 | Chinquapin | A | 93.8 | 5K | 33 |
| 8 | Edward | A | 93.5 | 9K | 47 |
| 9 | Beulaville | A | 92.2 | 1K | 23 |
| 10 | Shelby | A | 91.7 | 24K | 16 |
| 11 | Waxham | A | 91.7 | 625 | 52 |
| 12 | Camden | A | 91.3 | 10K | 50 |
| 13 | Ocracoke | A | 91.2 | 900 | 6 |
| 14 | Fontana | A | 91 | 950 | 44 |
| 15 | Huntersville | A | 90.9 | 783 | 67 |
| 16 | Ogden | A | 90.9 | 760 | 14 |
| 17 | Belhaven | A | 90.7 | 2K | 19 |
| 18 | Pikeville | A- | 89.8 | 896 | 11 |
| 19 | Rich Square | A- | 89.6 | 1K | 28 |
| 20 | Cherry Point | A- | 89.5 | 17K | 8 |
| 21 | Roxboro | A- | 89.5 | 11K | 21 |
| 22 | Farmville | A- | 89.5 | 9K | 29 |
| 23 | Haw River | A- | 89.5 | 3K | 36 |
| 24 | Stantonsburg | A- | 89.2 | 1K | 94 |
| 25 | Oriental | A- | 89.1 | 1K | 11 |
| 26 | Conway | A- | 89.1 | 887 | 15 |
| 27 | Woodland | A- | 89.1 | 747 | 5 |
| 28 | Micaville | A- | 89.1 | 650 | 29 |
| 29 | Winton | A- | 89 | 9K | 12 |
| 30 | Buxton | A- | 89 | 5K | 7 |
| 31 | Cape Carteret | A- | 88.9 | 2K | 19 |
| 32 | Black Creek | A- | 88.8 | 2K | 67 |
| 33 | Clarkton | A- | 88.5 | 1K | 22 |
| 34 | Ferguson | A- | 88.5 | 685 | 5 |
| 35 | Weldon | A- | 88.3 | 1K | 82 |
| 36 | Mt Holly | A- | 88.2 | 19K | 49 |
| 37 | Catawba | A- | 88.2 | 1K | 7 |
| 38 | Swepsonville | A- | 88.1 | 3K | 25 |
| 39 | Hildebran | A- | 88 | 8K | 6 |
| 40 | Glen Alpine | A- | 88 | 6K | 3 |
| 41 | Hiddenite | A- | 87.9 | 21K | 24 |
| 42 | Coats | A- | 87.8 | 3K | 11 |
| 43 | Salemburg | A- | 87.8 | 2K | 13 |
| 44 | Roseboro | A- | 87.7 | 1K | 27 |
| 45 | Longview | A- | 87.5 | 5K | 83 |
| 46 | Rose Hill | A- | 87.4 | 2K | 96 |
| 47 | East Spencer | A- | 87.4 | 2K | 18 |
| 48 | Kill Devil Hill | A- | 87.3 | 36K | 11 |
| 49 | Vanceboro | A- | 87.1 | 2K | 7 |
| 50 | Ahoskie | A- | 87 | 6K | 62 |
| 51 | Stoneville | A- | 87 | 2K | 49 |
| 52 | Lagrange | A- | 86.9 | 3K | 24 |
| 53 | Camp Lejeune | A- | 86.8 | 70K | 30 |
| 54 | Garland | A- | 86.8 | 1K | 31 |
| 55 | Harkers Island | A- | 86.7 | 3K | 50 |
| 56 | Elizabeth City | A- | 86.6 | 43K | 10 |
| 57 | Windsor | A- | 86.5 | 15K | 63 |
| 58 | Holden Beach | A- | 86.5 | 6K | 7 |
| 59 | Harrellsville | A- | 86.5 | 843 | 39 |
| 60 | Peachland | A- | 86.4 | 770 | 29 |
| 61 | Saint Pauls | A- | 86.3 | 3K | 62 |
| 62 | Rodanthe | A- | 86.3 | 2K | 6 |
| 63 | Ayden | A- | 86.2 | 6K | 7 |
| 64 | Newton Grove | A- | 86.2 | 913 | 24 |
| 65 | Seymour Johnson | A- | 86.1 | 7K | 13 |
| 66 | Clemmons | A- | 86 | 388K | 43 |
| 67 | Bethel | A- | 86 | 2K | 19 |
| 68 | Hudson | A- | 85.8 | 24K | 35 |
| 69 | Greenevers | A- | 85.6 | 1K | 75 |
| 70 | Boiling Springs | A- | 85.5 | 5K | 12 |
| 71 | Broadway | A- | 85.5 | 2K | 32 |
| 72 | Polkton | A- | 85.5 | 905 | 42 |
| 73 | High Shoals | A- | 85.4 | 729 | 60 |
| 74 | Chocowinity | A- | 85.3 | 3K | 37 |
| 75 | Badin | A- | 85.3 | 2K | 25 |
| 76 | Grifton | A- | 85.2 | 3K | 63 |
| 77 | Conetoe | A- | 85.2 | 1K | 64 |
| 78 | Thomasville | A- | 85.1 | 27K | 15 |
| 79 | Gibson | A- | 85.1 | 589 | 47 |
| 80 | Harrells | A- | 85 | 2K | 32 |
| 81 | Manteo | B+ | 84.9 | 3K | 34 |
| 82 | York | B+ | 84.9 | 1K | 5 |
| 83 | Clinton | B+ | 84.7 | 23K | 19 |
| 84 | Richlands | B+ | 84.5 | 3K | 19 |
| 85 | Drexel | B+ | 84.4 | 3K | 8 |
| 86 | Falcon | B+ | 84.4 | 714 | 35 |
| 87 | Havelock | B+ | 84.3 | 15K | 66 |
| 88 | Deep Run | B+ | 84.2 | 14K | 8 |
| 89 | Washington | B+ | 84 | 35K | 12 |
| 90 | Kure Beach | B+ | 84 | 5K | 87 |
| 91 | Richfield | B+ | 84 | 5K | 12 |
| 92 | Stedman | B+ | 84 | 2K | 50 |
| 93 | Fair Bluff | B+ | 84 | 800 | 51 |
| 94 | Trenton | B+ | 83.8 | 9K | 11 |
| 95 | Jamestown | B+ | 83.8 | 7K | 21 |
| 96 | Hobgood | B+ | 83.7 | 665 | 7 |
| 97 | Valdese | B+ | 83.5 | 14K | 48 |
| 98 | Ridgecrest | B+ | 83.5 | 950 | 28 |
| 99 | Rutherford Coll | B+ | 83.3 | 2K | 3 |
| 100 | Atlantic Beach | B+ | 83.2 | 6K | 12 |
| 101 | Claremont | B+ | 83.1 | 3K | 151 |
| 102 | Bostic | B+ | 83 | 953 | 31 |
| 103 | Morganton | B+ | 82.8 | 39K | 24 |
| 104 | Pollocksville | B+ | 82.8 | 858 | 33 |
| 105 | Elizabethtown | B+ | 82.6 | 20K | 83 |
| 106 | Ocean Isle Beach | B+ | 82.4 | 8K | 50 |
| 107 | Jonesville | B+ | 82.4 | 2K | 87 |
| 108 | Pink Hill | B+ | 82.4 | 950 | 73 |
| 109 | New Bern | B+ | 82.3 | 76K | 51 |
| 110 | Gatesville | B+ | 82.3 | 12K | 17 |
| 111 | Benson | B+ | 82.3 | 4K | 19 |
| 112 | Seaboard | B+ | 82.3 | 881 | 25 |
| 113 | Whitakers | B+ | 82.3 | 869 | 45 |
| 114 | Bald Head Island | B+ | 82.1 | 3K | 35 |
| 115 | Pembroke | B+ | 82 | 3K | 30 |
| 116 | Taylortown | B+ | 82 | 904 | 58 |
| 117 | Elkin | B+ | 81.9 | 4K | 139 |
| 118 | Maysville | B+ | 81.9 | 1K | 40 |
| 119 | Mebane | B+ | 81.8 | 39K | 34 |
| 120 | Mount Olive | B+ | 81.7 | 4K | 7 |
| 121 | Beech Mountain | B+ | 81.7 | 2K | 32 |
| 122 | Sharpsburg | B+ | 81.7 | 2K | 74 |
| 123 | Hays | B+ | 81.6 | 8K | 3 |
| 124 | Maple | B+ | 81.5 | 24K | 12 |
| 125 | Bridgeton | B+ | 81.5 | 12K | 9 |
| 126 | Plymouth | B+ | 81.5 | 3K | 50 |
| 127 | Mayodan | B+ | 81.5 | 2K | 19 |
| 128 | Clyde | B+ | 81.4 | 3K | 8 |
| 129 | Morven | B+ | 81.4 | 512 | 23 |
| 130 | N Wilkesboro | B+ | 81.3 | 16K | 79 |
| 131 | Miller Creek | B+ | 81.3 | 13K | 5 |
| 132 | Granite Falls | B+ | 81.2 | 46K | 52 |
| 133 | Oakboro | B+ | 81.2 | 3K | 128 |
| 134 | Grover | B+ | 81.2 | 805 | 35 |
| 135 | River Bend | B+ | 81 | 3K | 43 |
| 136 | Brunswick | B+ | 81 | 695 | 104 |
| 137 | Whispering Pines | B+ | 80.8 | 4K | 10 |
| 138 | Whittier | B+ | 80.8 | 570 | 60 |
| 139 | Aquadale | B+ | 80.6 | 4K | 48 |
| 140 | New London | B+ | 80.6 | 3K | 51 |
| 141 | Aurora | B+ | 80.6 | 805 | 56 |
| 142 | Murfreesboro | B+ | 80.5 | 4K | 24 |
| 143 | Marshville | B+ | 80.5 | 3K | 54 |
| 144 | Montreat | B+ | 80.5 | 798 | 66 |
| 145 | Eastover | B+ | 80.3 | 8K | 4 |
| 146 | Moravian Falls | B+ | 80.3 | 3K | 11 |
| 147 | Chadbourn | B+ | 80.3 | 2K | 19 |
| 148 | King | B+ | 80.2 | 23K | 34 |
| 149 | Green Level | B+ | 80.2 | 2K | 30 |
| 150 | Red Springs | B+ | 80.1 | 4K | 29 |
| 151 | Lake Junaluska | B+ | 80.1 | 2K | 19 |
| 152 | Rowland | B+ | 80.1 | 1K | 32 |
| 153 | Erwin | B+ | 80 | 12K | 5 |
| 154 | Robersonville | B+ | 80 | 1K | 87 |
| 155 | Enfield | B | 79.9 | 2K | 79 |
| 156 | Brown Summit | B | 79.8 | 686 | 68 |
| 157 | Ronda | B | 79.7 | 938 | 19 |
| 158 | Dublin | B | 79.7 | 603 | 17 |
| 159 | Delco | B | 79.6 | 3K | 20 |
| 160 | Mount Airy | B | 79.1 | 11K | 94 |
| 161 | Columbia | B | 79.1 | 4K | 142 |
| 162 | Lake Waccamaw | B | 79.1 | 3K | 24 |
| 163 | Tryon | B | 78.9 | 6K | 103 |
| 164 | Fairmont | B | 78.9 | 3K | 41 |
| 165 | Oak Island | B | 78.8 | 27K | 30 |
| 166 | Maiden | B | 78.8 | 6K | 99 |
| 167 | Maple Hill | B | 78.7 | 1K | 17 |
| 168 | Linden | B | 78.6 | 2K | 38 |
| 169 | Saluda | B | 78.5 | 2K | 65 |
| 170 | Burnsville | B | 78.4 | 5K | 113 |
| 171 | Ranlo | B | 78.3 | 5K | 34 |
| 172 | Aulander | B | 78.3 | 2K | 26 |
| 173 | Teachey | B | 78.2 | 663 | 18 |
| 174 | Lumberton | B | 78.1 | 24K | 10 |
| 175 | Siler City | B | 78.1 | 9K | 56 |
| 176 | Taylorsville | B | 78 | 17K | 56 |
| 177 | Pilot Mtn | B | 77.9 | 2K | 58 |
| 178 | Lucama | B | 77.9 | 881 | 35 |
| 179 | Wade | B | 77.8 | 780 | 19 |
| 180 | Corolla | B | 77.7 | 11K | 234 |
| 181 | Dobson | B | 77.7 | 3K | 95 |
| 182 | Locust | B | 77.6 | 10K | 79 |
| 183 | Tabor City | B | 77.6 | 5K | 143 |
| 184 | Dortches | B | 77.6 | 2K | 7 |
| 185 | Wrightsville Beach | B | 77.5 | 5K | 18 |
| 186 | Lowell | B | 77.5 | 4K | 27 |
| 187 | Four Oaks | B | 77.2 | 3K | 39 |
| 188 | Pinetops | B | 77.2 | 1K | 19 |
| 189 | White Lake | B | 76.8 | 10K | 104 |
| 190 | Sparta | B | 76.8 | 2K | 248 |
| 191 | Fleetwood | B | 76.8 | 519 | 26 |
| 192 | Mars Hill | B | 76.7 | 5K | 138 |
| 193 | Warsaw | B | 76.6 | 3K | 144 |
| 194 | Star | B | 76.6 | 933 | 29 |
| 195 | Butner | B | 76.5 | 19K | 42 |
| 196 | Bladenboro | B | 76.5 | 3K | 20 |
| 197 | Seagrove | B | 76.5 | 3K | 37 |
| 198 | Kenansville | B | 76.4 | 19K | 205 |
| 199 | Marshall | B | 76.4 | 1K | 85 |
| 200 | Warrenton | B | 76.3 | 12K | 57 |
| 201 | Kings Mountain | B | 76.1 | 15K | 30 |
| 202 | Fremont | B | 76.1 | 1K | 29 |
| 203 | Calypso | B | 75.9 | 660 | 46 |
| 204 | Andrews | B | 75.8 | 3K | 123 |
| 205 | Emerald Isle | B | 75.7 | 5K | 62 |
| 206 | Roanoke Rapids | B | 75.4 | 36K | 71 |
| 207 | West Columbia | B | 75.4 | 700 | 49 |
| 208 | Bolton | B | 75.4 | 668 | 64 |
| 209 | Ansonville | B | 75.3 | 1K | 75 |
| 210 | Troutman | B- | 74.7 | 10K | 147 |
| 211 | Spruce Pine | B- | 74.5 | 6K | 106 |
| 212 | Wadesboro | B- | 74.5 | 6K | 63 |
| 213 | Biscoe | B- | 74.5 | 3K | 19 |
| 214 | Bellarthur | B- | 74.3 | 11K | 38 |
| 215 | Wingate | B- | 74.2 | 4K | 77 |
| 216 | Wilson Mills | B- | 74 | 92K | 22 |
| 217 | Angier | B- | 74 | 10K | 16 |
| 218 | Franklinville | B- | 74 | 1K | 67 |
| 219 | Lawndale | B- | 73.9 | 59K | 305 |
| 220 | Parkton | B- | 73.9 | 903 | 367 |
| 221 | Monroe | B- | 73.8 | 211K | 38 |
| 222 | Lexington | B- | 73.7 | 173K | 60 |
| 223 | High Point | B- | 73.5 | 118K | 15 |
| 224 | Mcadenville | B- | 73.5 | 2K | 139 |
| 225 | Bayboro | B- | 73.2 | 20K | 45 |
| 226 | Faison | B- | 73.2 | 1K | 36 |
| 227 | Bakersville | B- | 73.1 | 725 | 129 |
| 228 | Oxford | B- | 73 | 9K | 87 |
| 229 | Magnolia | B- | 73 | 980 | 20 |
| 230 | Kittrell | B- | 72.9 | 1K | 88 |
| 231 | Rutherfordton | B- | 72.8 | 18K | 98 |
| 232 | Scotland Neck | B- | 72.5 | 3K | 116 |
| 233 | Winterville | B- | 72.4 | 10K | 30 |
| 234 | Maggie Valley | B- | 71.7 | 10K | 67 |
| 235 | Yadkinville | B- | 71.5 | 4K | 57 |
| 236 | Fletcher | B- | 70.8 | 846 | 204 |
| 237 | Forest City | B- | 70.5 | 22K | 141 |
| 238 | Cherokee | B- | 70.5 | 19K | 18 |
| 239 | Lillington | B- | 70.3 | 121K | 33 |
| 240 | Lenoir | B- | 70.3 | 1K | 149 |
| 241 | Lake Gaston | B- | 70.1 | 4K | 88 |
| 242 | Roaring Gap | C+ | 69.5 | 2K | 137 |
| 243 | Snow Hill | C+ | 69.2 | 17K | 112 |
| 244 | Waynesville | C+ | 68.9 | 25K | 169 |
| 245 | Roper | C+ | 68.5 | 7K | 99 |
| 246 | Wentworth | C+ | 68.1 | 2K | 56 |
| 247 | Stokes | C+ | 67.9 | 4K | 60 |
| 248 | Garysburg | C+ | 67.9 | 2K | 58 |
| 249 | Sherrills Ford | C+ | 67.8 | 6K | 230 |
| 250 | Saxapahaw | C+ | 67.7 | 1K | 198 |
| 251 | Boonville | C+ | 67.5 | 2K | 46 |
| 252 | Rhodhiss | C+ | 67.5 | 937 | 19 |
| 253 | Newland | C+ | 67.3 | 1K | 48 |
| 254 | Wagram | C+ | 67.3 | 965 | 48 |
| 255 | Marble | C+ | 67.1 | 999 | 48 |
| 256 | Hot Springs | C+ | 67 | 946 | 197 |
| 257 | Canton | C+ | 66.9 | 8K | 287 |
| 258 | Robbinsville | C+ | 66.8 | 3K | 291 |
| 259 | Surf City | C+ | 66.6 | 10K | 143 |
| 260 | Candler | C+ | 65.8 | 520 | 129 |
| 261 | Norlina | C+ | 65.3 | 1K | 72 |
| 262 | Wilson | C+ | 65 | 60K | 46 |
| 263 | Smithfield | C+ | 65 | 37K | 70 |
| 264 | East Arcadia | C | 64.9 | 633 | 137 |
| 265 | Topsail Beach | C | 64.8 | 6K | 96 |
| 266 | Rockingham | C | 64.6 | 35K | 55 |
| 267 | Foxfire Village | C | 64.2 | 2K | 170 |
| 268 | Maine (T) | C | 63.6 | 642 | 115 |
| 269 | Vass | C | 63.4 | 5K | 158 |
| 270 | Liberty | C | 63.4 | 3K | 348 |
| 271 | Gaston | C | 63.3 | 2K | 55 |
| 272 | Morehead City | C | 63.1 | 17K | 146 |
| 273 | Eden | C | 62.8 | 27K | 59 |
| 274 | Hampstead | C | 62.5 | 5K | 192 |
| 275 | Goldston | C | 62.5 | 1K | 170 |
| 276 | Kenly | C | 62.1 | 2K | 65 |
| 277 | Leland | C | 62 | 188K | 70 |
| 278 | Whiteville | C | 62 | 16K | 144 |
| 279 | Laurinburg | C | 61.7 | 23K | 81 |
| 280 | Faith | C | 61.4 | 1K | 35 |
| 281 | Cherryville | C | 61.1 | 6K | 117 |
| 282 | Rocky Mount | C | 60.8 | 56K | 79 |
| 283 | Mocksville | C | 60.7 | 38K | 137 |
| 284 | Old Fort | C | 60.6 | 2K | 345 |
| 285 | Stovall | C | 60.6 | 558 | 266 |
| 286 | Spring Hope | C | 60.5 | 2K | 187 |
| 287 | Maxton | C | 60.4 | 68K | 32 |
| 288 | Denver | C- | 60 | 51K | 83 |
| 289 | Blowing Rock | C | 60 | 2K | 394 |
| 290 | Greenville | C- | 59.6 | 127K | 262 |
| 291 | Williamston | C- | 59.6 | 13K | 78 |
| 292 | Denton | C- | 59.2 | 11K | 138 |
| 293 | Kinston | C- | 59.1 | 43K | 133 |
| 294 | Louisburg | C- | 59.1 | 5K | 285 |
| 295 | Kannapolis | C- | 58.3 | 55K | 245 |
| 296 | Ellenboro | C- | 58 | 4K | 60 |
| 297 | Holly Springs | C- | 57 | 55K | 215 |
| 298 | Albemarle | C- | 56.9 | 19K | 117 |
| 299 | Climax | C- | 56.2 | 707 | 128 |
| 300 | Selma | C- | 56.1 | 7K | 110 |
| 301 | Stanfield | C- | 56.1 | 1K | 90 |
| 302 | Sapphire | C- | 55.9 | 858 | 395 |
| 303 | Pinehurst | C- | 55.5 | 31K | 186 |
| 304 | Hillsborough | C- | 55.4 | 14K | 218 |
| 305 | Bailey | C- | 55.4 | 662 | 170 |
| 306 | Kernersville | C- | 55.2 | 3K | 343 |
| 307 | Pine Level | D+ | 54.3 | 3K | 172 |
| 308 | Bryson City | D+ | 53.8 | 5K | 201 |
| 309 | Black Mountain | D+ | 53.7 | 12K | 179 |
| 310 | East Bend | D+ | 53.7 | 2K | 257 |
| 311 | Belmont | D+ | 53.5 | 19K | 179 |
| 312 | Edenton | D+ | 53.2 | 17K | 79 |
| 313 | Troy | D+ | 53.2 | 5K | 85 |
| 314 | Lincolnton | D+ | 53.1 | 17K | 185 |
| 315 | Pinebluff | D+ | 52.8 | 26K | 221 |
| 316 | Spring Lake | D+ | 52.7 | 13K | 239 |
| 317 | West Jefferson | D+ | 52.3 | 2K | 432 |
| 318 | Cleveland | D+ | 52.3 | 1K | 227 |
| 319 | Elon | D+ | 51.4 | 14K | 223 |
| 320 | Archdale | D+ | 51.3 | 13K | 338 |
| 321 | Ramseur | D+ | 50.6 | 2K | 142 |
| 322 | Hertford | D+ | 50.2 | 15K | 73 |
| 323 | Carthage | D+ | 50.2 | 13K | 188 |
| 324 | Whitsett | D+ | 50 | 669 | 786 |
| 325 | Hayesville | D | 49.2 | 3K | 287 |
| 326 | Norwood | D | 48.7 | 5K | 86 |
| 327 | Lilesville | D | 48 | 15K | 224 |
| 328 | Murphy | D | 48 | 5K | 335 |
| 329 | Stokesdale | D | 47.5 | 4K | 705 |
| 330 | Clayton | D | 47 | 52K | 295 |
| 331 | Carolina Beach | D | 47 | 7K | 279 |
| 332 | Wendell | D | 47 | 2K | 465 |
| 333 | Bessemer City | D | 46.5 | 6K | 129 |
| 334 | Knightdale | D | 46 | 10K | 1330 |
| 335 | Banner Elk | D | 46 | 9K | 976 |
| 336 | Jackson | D | 46 | 6K | 135 |
| 337 | Cameron | D | 46 | 4K | 555 |
| 338 | Oak Ridge | D | 46 | 4K | 913 |
| 339 | Willow Springs | D | 46 | 4K | 335 |
| 340 | Mt Airy | D | 46 | 4K | 1458 |
| 341 | Columbus | D | 46 | 3K | 277 |
| 342 | Zebulon | D | 46 | 2K | 531 |
| 343 | Elm City | D | 46 | 1K | 107 |
| 344 | Candor | D | 46 | 967 | 91 |
| 345 | Mt Pleasant | D | 45.9 | 2K | 115 |
| 346 | Yanceyville | D | 45.2 | 2K | 167 |
| 347 | Cullowhee | D | 45 | 17K | 443 |
| 348 | Jefferson | D | 45 | 2K | 404 |
| 349 | Walnut Cove | D | 45 | 2K | 760 |
| 350 | Graham | D | 45 | 898 | 454 |
| 351 | Linville | F | 44.9 | 4K | 333 |
| 352 | Ellerbe | F | 44.9 | 2K | 45 |
| 353 | Beaufort | F | 44.4 | 9K | 211 |
| 354 | Efland | F | 44.3 | 9K | 123 |
| 355 | Gibsonville | F | 44 | 10K | 524 |
| 356 | Micro | F | 44 | 657 | 276 |
| 357 | Tarboro | F | 43.8 | 27K | 97 |
| 358 | Conover | F | 43.6 | 17K | 770 |
| 359 | Asheville | F | 43.4 | 160K | 456 |
| 360 | China Grove | F | 43.3 | 12K | 404 |
| 361 | Hickory | F | 43.2 | 80K | 770 |
| 362 | Newport | F | 43.2 | 26K | 347 |
| 363 | Salisbury | F | 43.1 | 48K | 957 |
| 364 | Garner | F | 43 | 15K | 2185 |
| 365 | Cashiers | F | 43 | 9K | 1166 |
| 366 | Wake Forest | F | 43 | 8K | 377 |
| 367 | Stanley | F | 43 | 7K | 479 |
| 368 | Wallace | F | 43 | 6K | 168 |
| 369 | Chapel Hill | F | 43 | 4K | 1604 |
| 370 | Summerfield | F | 43 | 3K | 509 |
| 371 | Middlesex | F | 43 | 2K | 478 |
| 372 | Nebo | F | 43 | 1K | 309 |
| 373 | Gastonia | F | 42.6 | 108K | 4271 |
| 374 | Mt Gilead | F | 42.5 | 16K | 95 |
| 375 | Newton | F | 42.3 | 21K | 1141 |
| 376 | Brevard | F | 42.2 | 17K | 968 |
| 377 | Franklinton | F | 42 | 29K | 257 |
| 378 | Madison | F | 42 | 4K | 248 |
| 379 | Robbins | F | 42 | 2K | 114 |
| 380 | Goldsboro | F | 41 | 112K | 309 |
| 381 | Marion | F | 41 | 12K | 577 |
| 382 | Littleton | F | 41 | 3K | 312 |
| 383 | Rosman | F | 41 | 785 | 180 |
| 384 | Weaverville | F | 40.5 | 19K | 517 |
| 385 | Burgaw | F | 40.4 | 36K | 87 |
| 386 | Hamlet | F | 40.1 | 11K | 44 |
| 387 | Harrisburg | F | 39.9 | 23K | 713 |
| 388 | Lake Lure | F | 39 | 4K | 488 |
| 389 | Reidsville | F | 38.9 | 16K | 802 |
| 390 | Apex | F | 38.5 | 107K | 569 |
| 391 | Boone | F | 38.5 | 36K | 654 |
| 392 | Highlands | F | 38.5 | 9K | 733 |
| 393 | Jacksonville | F | 38.3 | 212K | 552 |
| 394 | Concord | F | 38.2 | 127K | 1431 |
| 395 | Princeton | F | 38.2 | 1K | 61 |
| 396 | Hendersonville | F | 38 | 82K | 577 |
| 397 | Pittsboro | F | 38 | 12K | 245 |
| 398 | Raeford | F | 37.5 | 59K | 907 |
| 399 | Nashville | F | 36.8 | 15K | 1044 |
| 400 | Durham | F | 36.6 | 331K | 3916 |
| 401 | Charlotte | F | 36.5 | 1.2M | 1663 |
| 402 | Henderson | F | 36.4 | 18K | 317 |
| 403 | Mooresville | F | 36.2 | 65K | 890 |
| 404 | Asheboro | F | 36.1 | 28K | 629 |
| 405 | Cary | F | 34.6 | 234K | 93 |
| 406 | Randleman | F | 34.5 | 5K | 280 |
| 407 | Aberdeen | F | 34.2 | 13K | 1385 |
| 408 | Wilmington | F | 34 | 212K | 241 |
| 409 | Statesville | F | 33.9 | 61K | 936 |
| 410 | Greensboro | F | 33.5 | 323K | 1676 |
| 411 | Dallas | F | 33.5 | 10K | 782 |
| 412 | Fuquay-Varina | F | 33.1 | 47K | 607 |
| 413 | Burlington | F | 33 | 63K | 641 |
| 414 | Sanford | F | 33 | 54K | 537 |
| 415 | Franklin | F | 31 | 11K | 462 |
| 416 | Raleigh | F | 30.7 | 676K | 3207 |
| 417 | Fayetteville | F | 30.2 | 315K | 802 |
Browse North Carolina counties
Browse North Carolina by ZIP code
Look up water quality by ZIP code to find the systems serving your area.
View all North Carolina ZIP codes →Frequently asked questions about North Carolina's water
Is North Carolina's tap water safe to drink?
North Carolina's water quality varies by city. The statewide average grade is C+ (68.6/100). 58% of cities scored an A or B, while 27% received a D or F. Check your specific city for detailed results.
Which North Carolina cities have the best water quality?
The top-rated cities are Wilkesboro (A+), Nags Head (A+), Swanquarter (A+). These cities scored highest based on violation history, lead levels, PFAS contamination, and regulatory compliance.
Which North Carolina cities have the worst water quality?
The lowest-rated cities are Fayetteville (F), Raleigh (F), Franklin (F). We recommend residents in these areas consider water filtration and review their city's specific contaminant data.
How many North Carolina cities have PFAS in their water?
135 out of 417 cities tested positive for PFAS "forever chemicals" (32%). 91 cities exceed the 2024 EPA maximum contaminant levels. Reverse osmosis or activated carbon filters can help reduce PFAS exposure.
Do any North Carolina cities have dangerous lead levels?
7 cities exceed the EPA lead action level of 15 ppb. Lead contamination typically comes from aging pipes and lead service lines rather than the water source itself. An NSF 53-certified filter can effectively remove lead from tap water.