Latest water news in North Carolina
Recent reporting on North Carolina drinking water — boil-water advisories, regulatory action, and infrastructure events.
North Carolina Awards $244 Million for Water Projects Across 28 Counties as Demand Far Outstrips Funds
Gov. Stein and NC DEQ announced $244M for drinking water and wastewater projects, but applicants requested $1.6 billion — six times what was available.
Read full story →Anson County, NC Enters Second Week of Boil Water Advisory After Repeated Highway 74 Main Breaks
A week after a July 7 main break, Anson County, NC remains under a boil water advisory. A second break and stalled repairs may cut service for days.
Read full story →Mid-July 2026 Boil-Water Roundup: East Point, West Columbia, and Anson County
Mid-July boil-water advisories: a sinkhole main break in East Point GA, four advisories in West Columbia SC, a 24-hour outage in Anson County NC.
Read full story →North Carolina water quality overview
North Carolina's drinking water quality is fair overall, with an average score of 69.2 out of 100 across 400 cities tested. The median score is 76.1, serving a total population of 8,480,163 residents. The state shows a mixed picture: 79 cities earned an A, while 64 cities received an F. PFAS "forever chemicals" were detected in 135 of 400 cities tested (34%). 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: 163 cities use groundwater while 237 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.
400 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 | Ogden | A | 90.9 | 760 | 14 |
| 16 | Huntersville | A | 90.9 | 582 | 67 |
| 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 | Catawba | A- | 88.2 | 1K | 7 |
| 37 | Swepsonville | A- | 88.1 | 2K | 25 |
| 38 | Hildebran | A- | 88 | 8K | 6 |
| 39 | Glen Alpine | A- | 88 | 6K | 3 |
| 40 | Hiddenite | A- | 87.9 | 21K | 24 |
| 41 | Coats | A- | 87.8 | 3K | 11 |
| 42 | Salemburg | A- | 87.8 | 2K | 13 |
| 43 | Roseboro | A- | 87.7 | 1K | 27 |
| 44 | Longview | A- | 87.5 | 5K | 83 |
| 45 | Rose Hill | A- | 87.4 | 2K | 96 |
| 46 | East Spencer | A- | 87.4 | 2K | 18 |
| 47 | Kill Devil Hill | A- | 87.3 | 29K | 11 |
| 48 | Vanceboro | A- | 87.1 | 2K | 7 |
| 49 | Ahoskie | A- | 87 | 6K | 62 |
| 50 | Stoneville | A- | 87 | 1K | 49 |
| 51 | Lagrange | A- | 86.9 | 3K | 24 |
| 52 | Camp Lejeune | A- | 86.8 | 70K | 30 |
| 53 | Garland | A- | 86.8 | 948 | 31 |
| 54 | Harkers Island | A- | 86.7 | 3K | 50 |
| 55 | Elizabeth City | A- | 86.6 | 43K | 10 |
| 56 | Windsor | A- | 86.5 | 15K | 63 |
| 57 | Holden Beach | A- | 86.5 | 6K | 7 |
| 58 | Harrellsville | A- | 86.5 | 843 | 39 |
| 59 | Peachland | A- | 86.4 | 770 | 29 |
| 60 | Saint Pauls | A- | 86.3 | 2K | 62 |
| 61 | Rodanthe | A- | 86.3 | 2K | 6 |
| 62 | Ayden | A- | 86.2 | 6K | 7 |
| 63 | Newton Grove | A- | 86.2 | 913 | 24 |
| 64 | Seymour Johnson | A- | 86.1 | 7K | 13 |
| 65 | Clemmons | A- | 86 | 388K | 43 |
| 66 | Bethel | A- | 86 | 2K | 19 |
| 67 | Hudson | A- | 85.8 | 15K | 35 |
| 68 | Greenevers | A- | 85.6 | 1K | 75 |
| 69 | Boiling Springs | A- | 85.5 | 5K | 12 |
| 70 | Broadway | A- | 85.5 | 2K | 32 |
| 71 | Polkton | A- | 85.5 | 905 | 42 |
| 72 | High Shoals | A- | 85.4 | 729 | 60 |
| 73 | Chocowinity | A- | 85.3 | 3K | 37 |
| 74 | Badin | A- | 85.3 | 2K | 25 |
| 75 | Grifton | A- | 85.2 | 3K | 63 |
| 76 | Conetoe | A- | 85.2 | 1K | 64 |
| 77 | Thomasville | A- | 85.1 | 27K | 15 |
| 78 | Gibson | A- | 85.1 | 589 | 47 |
| 79 | Harrells | A- | 85 | 2K | 32 |
| 80 | Manteo | B+ | 84.9 | 3K | 34 |
| 81 | York | B+ | 84.9 | 1K | 5 |
| 82 | Clinton | B+ | 84.7 | 23K | 19 |
| 83 | Richlands | B+ | 84.5 | 3K | 19 |
| 84 | Drexel | B+ | 84.4 | 3K | 8 |
| 85 | Falcon | B+ | 84.4 | 714 | 35 |
| 86 | Havelock | B+ | 84.3 | 15K | 66 |
| 87 | Deep Run | B+ | 84.2 | 14K | 8 |
| 88 | Washington | B+ | 84 | 35K | 12 |
| 89 | Kure Beach | B+ | 84 | 5K | 87 |
| 90 | Richfield | B+ | 84 | 5K | 12 |
| 91 | Stedman | B+ | 84 | 2K | 50 |
| 92 | Fair Bluff | B+ | 84 | 800 | 51 |
| 93 | Trenton | B+ | 83.8 | 9K | 11 |
| 94 | Jamestown | B+ | 83.8 | 7K | 21 |
| 95 | Hobgood | B+ | 83.7 | 665 | 7 |
| 96 | Valdese | B+ | 83.5 | 14K | 48 |
| 97 | Ridgecrest | B+ | 83.5 | 950 | 28 |
| 98 | Rutherford Coll | B+ | 83.3 | 2K | 3 |
| 99 | Atlantic Beach | B+ | 83.2 | 6K | 12 |
| 100 | Claremont | B+ | 83.1 | 3K | 151 |
| 101 | Bostic | B+ | 83 | 953 | 31 |
| 102 | Morganton | B+ | 82.8 | 27K | 24 |
| 103 | Pollocksville | B+ | 82.8 | 858 | 33 |
| 104 | Elizabethtown | B+ | 82.6 | 20K | 83 |
| 105 | Ocean Isle Beach | B+ | 82.4 | 8K | 50 |
| 106 | Jonesville | B+ | 82.4 | 2K | 87 |
| 107 | Pink Hill | B+ | 82.4 | 950 | 73 |
| 108 | New Bern | B+ | 82.3 | 76K | 51 |
| 109 | Gatesville | B+ | 82.3 | 12K | 17 |
| 110 | Benson | B+ | 82.3 | 4K | 19 |
| 111 | Seaboard | B+ | 82.3 | 881 | 25 |
| 112 | Whitakers | B+ | 82.3 | 869 | 45 |
| 113 | Bald Head Island | B+ | 82.1 | 3K | 35 |
| 114 | Pembroke | B+ | 82 | 3K | 30 |
| 115 | Taylortown | B+ | 82 | 904 | 58 |
| 116 | Elkin | B+ | 81.9 | 4K | 139 |
| 117 | Maysville | B+ | 81.9 | 1K | 40 |
| 118 | Mebane | B+ | 81.8 | 20K | 34 |
| 119 | Mount Olive | B+ | 81.7 | 4K | 7 |
| 120 | Beech Mountain | B+ | 81.7 | 2K | 32 |
| 121 | Sharpsburg | B+ | 81.7 | 2K | 74 |
| 122 | Hays | B+ | 81.6 | 8K | 3 |
| 123 | Maple | B+ | 81.5 | 24K | 12 |
| 124 | Bridgeton | B+ | 81.5 | 6K | 9 |
| 125 | Plymouth | B+ | 81.5 | 3K | 50 |
| 126 | Mayodan | B+ | 81.5 | 2K | 19 |
| 127 | Clyde | B+ | 81.4 | 3K | 8 |
| 128 | Morven | B+ | 81.4 | 512 | 23 |
| 129 | Miller Creek | B+ | 81.3 | 13K | 5 |
| 130 | N Wilkesboro | B+ | 81.3 | 12K | 79 |
| 131 | Granite Falls | B+ | 81.2 | 20K | 52 |
| 132 | Oakboro | B+ | 81.2 | 3K | 128 |
| 133 | Grover | B+ | 81.2 | 805 | 35 |
| 134 | River Bend | B+ | 81 | 3K | 43 |
| 135 | Brunswick | B+ | 81 | 576 | 104 |
| 136 | Whispering Pines | B+ | 80.8 | 4K | 10 |
| 137 | Whittier | B+ | 80.8 | 570 | 60 |
| 138 | Aquadale | B+ | 80.6 | 4K | 48 |
| 139 | New London | B+ | 80.6 | 3K | 51 |
| 140 | Aurora | B+ | 80.6 | 805 | 56 |
| 141 | Murfreesboro | B+ | 80.5 | 4K | 24 |
| 142 | Marshville | B+ | 80.5 | 3K | 54 |
| 143 | Montreat | B+ | 80.5 | 798 | 66 |
| 144 | Eastover | B+ | 80.3 | 8K | 4 |
| 145 | Moravian Falls | B+ | 80.3 | 3K | 11 |
| 146 | Chadbourn | B+ | 80.3 | 2K | 19 |
| 147 | King | B+ | 80.2 | 23K | 34 |
| 148 | Green Level | B+ | 80.2 | 2K | 30 |
| 149 | Red Springs | B+ | 80.1 | 4K | 29 |
| 150 | Lake Junaluska | B+ | 80.1 | 2K | 19 |
| 151 | Rowland | B+ | 80.1 | 1K | 32 |
| 152 | Erwin | B+ | 80 | 12K | 5 |
| 153 | Robersonville | B+ | 80 | 1K | 87 |
| 154 | Enfield | B | 79.9 | 2K | 79 |
| 155 | Brown Summit | B | 79.8 | 686 | 68 |
| 156 | Ronda | B | 79.7 | 938 | 19 |
| 157 | Dublin | B | 79.7 | 603 | 17 |
| 158 | Delco | B | 79.6 | 3K | 20 |
| 159 | Mount Airy | B | 79.1 | 10K | 94 |
| 160 | Columbia | B | 79.1 | 4K | 142 |
| 161 | Lake Waccamaw | B | 79.1 | 3K | 24 |
| 162 | Tryon | B | 78.9 | 6K | 103 |
| 163 | Fairmont | B | 78.9 | 3K | 41 |
| 164 | Oak Island | B | 78.8 | 27K | 30 |
| 165 | Maiden | B | 78.8 | 5K | 99 |
| 166 | Maple Hill | B | 78.7 | 968 | 17 |
| 167 | Linden | B | 78.6 | 2K | 38 |
| 168 | Saluda | B | 78.5 | 2K | 65 |
| 169 | Burnsville | B | 78.4 | 4K | 113 |
| 170 | Ranlo | B | 78.3 | 5K | 34 |
| 171 | Aulander | B | 78.3 | 2K | 26 |
| 172 | Teachey | B | 78.2 | 663 | 18 |
| 173 | Lumberton | B | 78.1 | 24K | 10 |
| 174 | Siler City | B | 78.1 | 9K | 56 |
| 175 | Taylorsville | B | 78 | 3K | 56 |
| 176 | Pilot Mtn | B | 77.9 | 2K | 58 |
| 177 | Lucama | B | 77.9 | 881 | 35 |
| 178 | Wade | B | 77.8 | 780 | 19 |
| 179 | Corolla | B | 77.7 | 11K | 234 |
| 180 | Dobson | B | 77.7 | 3K | 95 |
| 181 | Locust | B | 77.6 | 10K | 79 |
| 182 | Tabor City | B | 77.6 | 3K | 143 |
| 183 | Dortches | B | 77.6 | 2K | 7 |
| 184 | Wrightsville Beach | B | 77.5 | 5K | 18 |
| 185 | Lowell | B | 77.5 | 4K | 27 |
| 186 | Four Oaks | B | 77.2 | 3K | 39 |
| 187 | Pinetops | B | 77.2 | 1K | 19 |
| 188 | White Lake | B | 76.8 | 6K | 104 |
| 189 | Sparta | B | 76.8 | 2K | 248 |
| 190 | Fleetwood | B | 76.8 | 519 | 26 |
| 191 | Mars Hill | B | 76.7 | 3K | 138 |
| 192 | Warsaw | B | 76.6 | 3K | 144 |
| 193 | Star | B | 76.6 | 933 | 29 |
| 194 | Butner | B | 76.5 | 19K | 42 |
| 195 | Bladenboro | B | 76.5 | 3K | 20 |
| 196 | Seagrove | B | 76.5 | 2K | 37 |
| 197 | Kenansville | B | 76.4 | 19K | 205 |
| 198 | Marshall | B | 76.4 | 1K | 85 |
| 199 | Warrenton | B | 76.3 | 12K | 57 |
| 200 | Kings Mountain | B | 76.1 | 15K | 30 |
| 201 | Fremont | B | 76.1 | 1K | 29 |
| 202 | Calypso | B | 75.9 | 660 | 46 |
| 203 | Andrews | B | 75.8 | 3K | 123 |
| 204 | Emerald Isle | B | 75.7 | 5K | 62 |
| 205 | Roanoke Rapids | B | 75.4 | 16K | 71 |
| 206 | Bolton | B | 75.4 | 668 | 64 |
| 207 | West Columbia | B | 75.4 | 626 | 49 |
| 208 | Ansonville | B | 75.3 | 1K | 75 |
| 209 | Troutman | B- | 74.7 | 10K | 147 |
| 210 | Spruce Pine | B- | 74.5 | 6K | 106 |
| 211 | Wadesboro | B- | 74.5 | 6K | 63 |
| 212 | Biscoe | B- | 74.5 | 3K | 19 |
| 213 | Bellarthur | B- | 74.3 | 11K | 38 |
| 214 | Wingate | B- | 74.2 | 4K | 77 |
| 215 | Wilson Mills | B- | 74 | 92K | 22 |
| 216 | Angier | B- | 74 | 10K | 16 |
| 217 | Franklinville | B- | 74 | 1K | 67 |
| 218 | Parkton | B- | 73.9 | 903 | 367 |
| 219 | Lawndale | B- | 73.9 | 660 | 305 |
| 220 | Monroe | B- | 73.8 | 211K | 38 |
| 221 | Lexington | B- | 73.7 | 20K | 60 |
| 222 | High Point | B- | 73.5 | 118K | 15 |
| 223 | Mcadenville | B- | 73.5 | 1K | 139 |
| 224 | Bayboro | B- | 73.2 | 20K | 45 |
| 225 | Faison | B- | 73.2 | 1K | 36 |
| 226 | Bakersville | B- | 73.1 | 725 | 129 |
| 227 | Oxford | B- | 73 | 9K | 87 |
| 228 | Magnolia | B- | 73 | 980 | 20 |
| 229 | Kittrell | B- | 72.9 | 1K | 88 |
| 230 | Rutherfordton | B- | 72.8 | 18K | 98 |
| 231 | Scotland Neck | B- | 72.5 | 3K | 116 |
| 232 | Winterville | B- | 72.4 | 10K | 30 |
| 233 | Maggie Valley | B- | 71.7 | 10K | 67 |
| 234 | Yadkinville | B- | 71.5 | 4K | 57 |
| 235 | Fletcher | B- | 70.8 | 790 | 204 |
| 236 | Forest City | B- | 70.5 | 22K | 141 |
| 237 | Cherokee | B- | 70.5 | 19K | 18 |
| 238 | Lillington | B- | 70.3 | 121K | 33 |
| 239 | Lenoir | B- | 70.3 | 1K | 149 |
| 240 | Lake Gaston | B- | 70.1 | 4K | 88 |
| 241 | Snow Hill | C+ | 69.2 | 16K | 112 |
| 242 | Waynesville | C+ | 68.9 | 20K | 169 |
| 243 | Roper | C+ | 68.5 | 546 | 99 |
| 244 | Wentworth | C+ | 68.1 | 2K | 56 |
| 245 | Stokes | C+ | 67.9 | 4K | 60 |
| 246 | Garysburg | C+ | 67.9 | 2K | 58 |
| 247 | Sherrills Ford | C+ | 67.8 | 5K | 230 |
| 248 | Saxapahaw | C+ | 67.7 | 1K | 198 |
| 249 | Boonville | C+ | 67.5 | 2K | 46 |
| 250 | Rhodhiss | C+ | 67.5 | 937 | 19 |
| 251 | Newland | C+ | 67.3 | 1K | 48 |
| 252 | Wagram | C+ | 67.3 | 965 | 48 |
| 253 | Marble | C+ | 67.1 | 999 | 48 |
| 254 | Hot Springs | C+ | 67 | 946 | 197 |
| 255 | Canton | C+ | 66.9 | 8K | 287 |
| 256 | Robbinsville | C+ | 66.8 | 3K | 291 |
| 257 | Surf City | C+ | 66.6 | 10K | 143 |
| 258 | Norlina | C+ | 65.3 | 1K | 72 |
| 259 | Wilson | C+ | 65 | 60K | 46 |
| 260 | Smithfield | C+ | 65 | 37K | 70 |
| 261 | East Arcadia | C | 64.9 | 633 | 137 |
| 262 | Topsail Beach | C | 64.8 | 4K | 96 |
| 263 | Rockingham | C | 64.6 | 35K | 55 |
| 264 | Foxfire Village | C | 64.2 | 2K | 170 |
| 265 | Liberty | C | 63.4 | 3K | 348 |
| 266 | Vass | C | 63.4 | 2K | 158 |
| 267 | Gaston | C | 63.3 | 1K | 55 |
| 268 | Morehead City | C | 63.1 | 10K | 146 |
| 269 | Leland | C | 63 | 46K | 70 |
| 270 | Eden | C | 62.8 | 27K | 59 |
| 271 | Goldston | C | 62.5 | 1K | 170 |
| 272 | Kenly | C | 62.1 | 2K | 65 |
| 273 | Whiteville | C | 62 | 16K | 144 |
| 274 | Laurinburg | C | 61.7 | 23K | 81 |
| 275 | Faith | C | 61.4 | 1K | 35 |
| 276 | Cherryville | C | 61.1 | 6K | 117 |
| 277 | Rocky Mount | C | 60.8 | 56K | 79 |
| 278 | Mocksville | C | 60.7 | 38K | 137 |
| 279 | Old Fort | C | 60.6 | 2K | 345 |
| 280 | Spring Hope | C | 60.5 | 1K | 187 |
| 281 | Maxton | C | 60.4 | 3K | 32 |
| 282 | Denver | C- | 60 | 51K | 83 |
| 283 | Blowing Rock | C | 60 | 2K | 394 |
| 284 | Greenville | C- | 59.6 | 126K | 262 |
| 285 | Williamston | C- | 59.6 | 8K | 78 |
| 286 | Denton | C- | 59.2 | 11K | 138 |
| 287 | Kinston | C- | 59.1 | 43K | 133 |
| 288 | Louisburg | C- | 59.1 | 5K | 285 |
| 289 | Kannapolis | C- | 58.3 | 55K | 245 |
| 290 | Ellenboro | C- | 58 | 2K | 60 |
| 291 | Holly Springs | C- | 57 | 52K | 215 |
| 292 | Albemarle | C- | 56.9 | 19K | 117 |
| 293 | Selma | C- | 56.1 | 7K | 110 |
| 294 | Stanfield | C- | 56.1 | 1K | 90 |
| 295 | Pinehurst | C- | 55.5 | 30K | 186 |
| 296 | Hillsborough | C- | 55.4 | 14K | 218 |
| 297 | Bailey | C- | 55.4 | 662 | 170 |
| 298 | Kernersville | C- | 55.2 | 2K | 343 |
| 299 | Pine Level | D+ | 54.3 | 3K | 172 |
| 300 | Bryson City | D+ | 53.8 | 4K | 201 |
| 301 | Black Mountain | D+ | 53.7 | 12K | 179 |
| 302 | East Bend | D+ | 53.7 | 2K | 257 |
| 303 | Belmont | D+ | 53.5 | 19K | 179 |
| 304 | Edenton | D+ | 53.2 | 17K | 79 |
| 305 | Troy | D+ | 53.2 | 4K | 85 |
| 306 | Lincolnton | D+ | 53.1 | 16K | 185 |
| 307 | Pinebluff | D+ | 52.8 | 26K | 221 |
| 308 | Spring Lake | D+ | 52.7 | 13K | 239 |
| 309 | West Jefferson | D+ | 52.3 | 1K | 432 |
| 310 | Cleveland | D+ | 52.3 | 1K | 227 |
| 311 | Elon | D+ | 51.4 | 14K | 223 |
| 312 | Archdale | D+ | 51.3 | 13K | 338 |
| 313 | Ramseur | D+ | 50.6 | 2K | 142 |
| 314 | Hertford | D+ | 50.2 | 15K | 73 |
| 315 | Carthage | D+ | 50.2 | 13K | 188 |
| 316 | Hayesville | D | 49.2 | 2K | 287 |
| 317 | Norwood | D | 48.7 | 4K | 86 |
| 318 | Murphy | D | 48 | 5K | 335 |
| 319 | Lilesville | D | 48 | 900 | 224 |
| 320 | Stokesdale | D | 47.5 | 2K | 705 |
| 321 | Clayton | D | 47 | 34K | 295 |
| 322 | Carolina Beach | D | 47 | 7K | 279 |
| 323 | Cameron | D | 47 | 565 | 555 |
| 324 | Bessemer City | D | 46.5 | 6K | 129 |
| 325 | Jackson | D | 46 | 6K | 135 |
| 326 | Banner Elk | D | 46 | 4K | 976 |
| 327 | Columbus | D | 46 | 2K | 277 |
| 328 | Elm City | D | 46 | 1K | 107 |
| 329 | Candor | D | 46 | 967 | 91 |
| 330 | Zebulon | D | 46 | 721 | 531 |
| 331 | Mt Pleasant | D | 45.9 | 2K | 115 |
| 332 | Yanceyville | D | 45.2 | 2K | 167 |
| 333 | Cullowhee | D | 45 | 8K | 443 |
| 334 | Walnut Cove | D | 45 | 2K | 760 |
| 335 | Jefferson | D | 45 | 2K | 404 |
| 336 | Graham | D | 45 | 517 | 454 |
| 337 | Linville | F | 44.9 | 4K | 333 |
| 338 | Ellerbe | F | 44.9 | 2K | 45 |
| 339 | Beaufort | F | 44.4 | 5K | 211 |
| 340 | Efland | F | 44.3 | 9K | 123 |
| 341 | Gibsonville | F | 44 | 9K | 524 |
| 342 | Micro | F | 44 | 577 | 276 |
| 343 | Tarboro | F | 43.8 | 27K | 97 |
| 344 | Conover | F | 43.6 | 15K | 770 |
| 345 | Asheville | F | 43.4 | 160K | 456 |
| 346 | China Grove | F | 43.3 | 6K | 404 |
| 347 | Hickory | F | 43.2 | 76K | 770 |
| 348 | Newport | F | 43.2 | 25K | 347 |
| 349 | Salisbury | F | 43.1 | 46K | 957 |
| 350 | Wallace | F | 43 | 6K | 168 |
| 351 | Stanley | F | 43 | 5K | 479 |
| 352 | Wake Forest | F | 43 | 3K | 377 |
| 353 | Cashiers | F | 43 | 776 | 1166 |
| 354 | Summerfield | F | 43 | 668 | 509 |
| 355 | Nebo | F | 43 | 664 | 309 |
| 356 | Gastonia | F | 42.6 | 94K | 4271 |
| 357 | Mt Gilead | F | 42.5 | 15K | 95 |
| 358 | Newton | F | 42.3 | 18K | 1141 |
| 359 | Brevard | F | 42.2 | 12K | 968 |
| 360 | Franklinton | F | 42 | 26K | 257 |
| 361 | Madison | F | 42 | 2K | 248 |
| 362 | Robbins | F | 42 | 2K | 114 |
| 363 | Goldsboro | F | 41 | 104K | 309 |
| 364 | Marion | F | 41 | 11K | 577 |
| 365 | Littleton | F | 41 | 2K | 312 |
| 366 | Rosman | F | 41 | 685 | 180 |
| 367 | Weaverville | F | 40.5 | 9K | 517 |
| 368 | Burgaw | F | 40.4 | 36K | 87 |
| 369 | Hamlet | F | 40.1 | 11K | 44 |
| 370 | Harrisburg | F | 39.9 | 21K | 713 |
| 371 | Lake Lure | F | 39 | 2K | 488 |
| 372 | Reidsville | F | 38.9 | 15K | 802 |
| 373 | Apex | F | 38.5 | 82K | 569 |
| 374 | Boone | F | 38.5 | 32K | 654 |
| 375 | Highlands | F | 38.5 | 9K | 733 |
| 376 | Jacksonville | F | 38.3 | 212K | 552 |
| 377 | Concord | F | 38.2 | 121K | 1431 |
| 378 | Princeton | F | 38.2 | 1K | 61 |
| 379 | Hendersonville | F | 38 | 80K | 577 |
| 380 | Pittsboro | F | 38 | 6K | 245 |
| 381 | Raeford | F | 37.5 | 59K | 907 |
| 382 | Nashville | F | 36.8 | 14K | 1044 |
| 383 | Durham | F | 36.6 | 327K | 3916 |
| 384 | Charlotte | F | 36.5 | 1.2M | 1663 |
| 385 | Henderson | F | 36.4 | 15K | 317 |
| 386 | Mooresville | F | 36.2 | 53K | 890 |
| 387 | Asheboro | F | 36.1 | 28K | 629 |
| 388 | Cary | F | 34.6 | 233K | 93 |
| 389 | Randleman | F | 34.5 | 5K | 280 |
| 390 | Aberdeen | F | 34.2 | 13K | 1385 |
| 391 | Wilmington | F | 34 | 199K | 241 |
| 392 | Statesville | F | 33.9 | 58K | 936 |
| 393 | Greensboro | F | 33.5 | 320K | 1676 |
| 394 | Dallas | F | 33.5 | 9K | 782 |
| 395 | Fuquay-Varina | F | 33.1 | 43K | 607 |
| 396 | Burlington | F | 33 | 62K | 641 |
| 397 | Sanford | F | 33 | 49K | 537 |
| 398 | Franklin | F | 31 | 10K | 462 |
| 399 | Raleigh | F | 30.7 | 640K | 3207 |
| 400 | Fayetteville | F | 30.2 | 216K | 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+ (69.2/100). 60% of cities scored an A or B, while 26% 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 400 cities tested positive for PFAS "forever chemicals" (34%). 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.