Arsenic in North Carolina Drinking Water
Ranked by arsenic violation count · Data from EPA SDWIS & UCMR
Arsenic in North Carolina: what the data shows
North Carolina has 218 cities with arsenic-related violations on record. Arsenic contamination is a federal MCL violation at levels above 10 µg/L (10 ppb). The state has 218 cities with at least one arsenic violation. Arsenic enters drinking water primarily through erosion of natural deposits, particularly in western states with arsenite-bearing geology. Industrial sources include mining runoff, glass manufacturing, and semiconductor production. Groundwater systems are significantly more likely to have arsenic issues than surface water systems. Long-term arsenic exposure above the MCL increases the risk of bladder, lung, and skin cancer, as well as cardiovascular disease and diabetes. Reverse osmosis and specialized arsenic-removal media are the most effective point-of-use treatment options.
Cities exceeding 10 µg/L EPA MCL
Arsenic data across North Carolina
Each dot is a city with arsenic violation data. Cities with at least one arsenic-related violation are highlighted. Size reflects population served.
Top 10 cities by arsenic level in North Carolina
Highest Arsenic levels (violations)
All North Carolina cities ranked by arsenic level
| # | City | Level | Level | Violations? | Violations | Grade |
|---|---|---|---|---|---|---|
| 1 | Gastonia | 240 violations | Yes | 102 | F | |
| 2 | Durham | 114 violations | Yes | 94 | F | |
| 3 | Concord | 87 violations | Yes | 37 | F | |
| 4 | Raleigh | 85 violations | Yes | 241 | F | |
| 5 | Newton | 58 violations | Yes | 15 | F | |
| 6 | Statesville | 57 violations | Yes | 37 | F | |
| 7 | Hickory | 56 violations | Yes | 11 | F | |
| 8 | Conover | 55 violations | Yes | 6 | F | |
| 9 | Charlotte | 46 violations | Yes | 47 | F | |
| 10 | Dallas | 38 violations | Yes | 34 | F | |
| 11 | Mooresville | 34 violations | Yes | 22 | F | |
| 12 | Salisbury | 34 violations | Yes | 27 | F | |
| 13 | Boone | 34 violations | Yes | 33 | F | |
| 14 | Stanley | 34 violations | Yes | 6 | F | |
| 15 | Greensboro | 33 violations | Yes | 29 | F | |
| 16 | Harrisburg | 30 violations | Yes | 28 | F | |
| 17 | Zebulon | 28 violations | Yes | 35 | D | |
| 18 | Reidsville | 24 violations | Yes | 36 | F | |
| 19 | Newport | 22 violations | Yes | 31 | F | |
| 20 | Highlands | 22 violations | Yes | 25 | F | |
| 21 | Banner Elk | 22 violations | Yes | 101 | D | |
| 22 | Archdale | 21 violations | Yes | 30 | D+ | |
| 23 | Weaverville | 21 violations | Yes | 35 | F | |
| 24 | Apex | 18 violations | Yes | 40 | F | |
| 25 | China Grove | 17 violations | Yes | 11 | F | |
| 26 | Sherrills Ford | 17 violations | Yes | 3 | C+ | |
| 27 | Cashiers | 17 violations | Yes | 74 | F | |
| 28 | Fuquay-Varina | 16 violations | Yes | 34 | F | |
| 29 | Cullowhee | 16 violations | Yes | 13 | D | |
| 30 | Fayetteville | 15 violations | Yes | 392 | F | |
| 31 | Franklin | 15 violations | Yes | 14 | F | |
| 32 | Kernersville | 14 violations | Yes | 13 | C- | |
| 33 | Raeford | 13 violations | Yes | 16 | F | |
| 34 | Sanford | 13 violations | Yes | 31 | F | |
| 35 | Forest City | 13 violations | Yes | 1 | B- | |
| 36 | Belmont | 13 violations | Yes | 6 | D+ | |
| 37 | Brevard | 13 violations | Yes | 26 | F | |
| 38 | Canton | 13 violations | Yes | 8 | C+ | |
| 39 | Bryson City | 13 violations | Yes | 13 | D+ | |
| 40 | Robbinsville | 13 violations | Yes | 7 | C+ | |
| 41 | Randleman | 12 violations | Yes | 26 | F | |
| 42 | West Jefferson | 12 violations | Yes | 8 | D+ | |
| 43 | Asheville | 11 violations | Yes | 12 | F | |
| 44 | Aberdeen | 11 violations | Yes | 54 | F | |
| 45 | Clayton | 10 violations | Yes | 50 | D | |
| 46 | Asheboro | 10 violations | Yes | 8 | F | |
| 47 | Lincolnton | 10 violations | Yes | 0 | D+ | |
| 48 | Henderson | 10 violations | Yes | 25 | F | |
| 49 | Marion | 10 violations | Yes | 20 | F | |
| 50 | Elkin | 10 violations | Yes | 1 | B+ | |
| 51 | Madison | 10 violations | Yes | 19 | F | |
| 52 | Holly Springs | 9 violations | Yes | 8 | C- | |
| 53 | Black Mountain | 9 violations | Yes | 5 | D+ | |
| 54 | Bessemer City | 9 violations | Yes | 17 | D | |
| 55 | Murphy | 9 violations | Yes | 6 | D | |
| 56 | Fletcher | 9 violations | Yes | 2 | B- | |
| 57 | Wilmington | 8 violations | Yes | 22 | F | |
| 58 | Hendersonville | 8 violations | Yes | 36 | F | |
| 59 | Gibsonville | 8 violations | Yes | 12 | F | |
| 60 | Spruce Pine | 8 violations | Yes | 3 | B- | |
| 61 | Maiden | 8 violations | Yes | 3 | B | |
| 62 | Linville | 8 violations | Yes | 11 | F | |
| 63 | Mars Hill | 8 violations | Yes | 19 | B | |
| 64 | Columbus | 8 violations | Yes | 2 | D | |
| 65 | Hayesville | 8 violations | Yes | 5 | D | |
| 66 | Mcadenville | 8 violations | Yes | 1 | B- | |
| 67 | Hot Springs | 8 violations | Yes | 3 | C+ | |
| 68 | East Arcadia | 8 violations | Yes | 5 | C | |
| 69 | Greenville | 7 violations | Yes | 7 | C- | |
| 70 | Goldsboro | 7 violations | Yes | 11 | F | |
| 71 | Mocksville | 7 violations | Yes | 19 | C | |
| 72 | Elon | 7 violations | Yes | 7 | D+ | |
| 73 | Carthage | 7 violations | Yes | 68 | D+ | |
| 74 | Mount Airy | 7 violations | Yes | 0 | B | |
| 75 | Louisburg | 7 violations | Yes | 20 | C- | |
| 76 | Dobson | 7 violations | Yes | 1 | B | |
| 77 | Blowing Rock | 7 violations | Yes | 7 | C | |
| 78 | Lenoir | 7 violations | Yes | 2 | B- | |
| 79 | Summerfield | 7 violations | Yes | 17 | F | |
| 80 | Kannapolis | 6 violations | Yes | 16 | C- | |
| 81 | Waynesville | 6 violations | Yes | 5 | C+ | |
| 82 | Spring Lake | 6 violations | Yes | 25 | D+ | |
| 83 | Morehead City | 6 violations | Yes | 17 | C | |
| 84 | Longview | 6 violations | Yes | 0 | A- | |
| 85 | Kure Beach | 6 violations | Yes | 4 | B+ | |
| 86 | Stokesdale | 6 violations | Yes | 14 | D | |
| 87 | Vass | 6 violations | Yes | 16 | C | |
| 88 | Mt Pleasant | 6 violations | Yes | 19 | D | |
| 89 | Saxapahaw | 6 violations | Yes | 7 | C+ | |
| 90 | Cleveland | 6 violations | Yes | 2 | D+ | |
| 91 | Nebo | 6 violations | Yes | 8 | F | |
| 92 | Pinehurst | 5 violations | Yes | 5 | C- | |
| 93 | Nashville | 5 violations | Yes | 36 | F | |
| 94 | Corolla | 5 violations | Yes | 7 | B | |
| 95 | Taylorsville | 5 violations | Yes | 7 | B | |
| 96 | Littleton | 5 violations | Yes | 17 | F | |
| 97 | Spring Hope | 5 violations | Yes | 3 | C | |
| 98 | Kittrell | 5 violations | Yes | 1 | B- | |
| 99 | Candor | 5 violations | Yes | 7 | D | |
| 100 | Franklinton | 4 violations | Yes | 40 | F | |
| 101 | Windsor | 4 violations | Yes | 7 | A- | |
| 102 | Mt Gilead | 4 violations | Yes | 18 | F | |
| 103 | Oxford | 4 violations | Yes | 7 | B- | |
| 104 | Selma | 4 violations | Yes | 7 | C- | |
| 105 | Tryon | 4 violations | Yes | 3 | B | |
| 106 | Beaufort | 4 violations | Yes | 34 | F | |
| 107 | Norwood | 4 violations | Yes | 32 | D | |
| 108 | Burnsville | 4 violations | Yes | 5 | B | |
| 109 | Troy | 4 violations | Yes | 16 | D+ | |
| 110 | Tabor City | 4 violations | Yes | 0 | B | |
| 111 | Walnut Cove | 4 violations | Yes | 10 | D | |
| 112 | Yanceyville | 4 violations | Yes | 33 | D | |
| 113 | East Bend | 4 violations | Yes | 28 | D+ | |
| 114 | Lake Lure | 4 violations | Yes | 17 | F | |
| 115 | Pink Hill | 4 violations | Yes | 4 | B+ | |
| 116 | High Shoals | 4 violations | Yes | 8 | A- | |
| 117 | Bakersville | 4 violations | Yes | 3 | B- | |
| 118 | Rosman | 4 violations | Yes | 12 | F | |
| 119 | Cameron | 4 violations | Yes | 1 | D | |
| 120 | Burlington | 3 violations | Yes | 33 | F | |
| 121 | Denver | 3 violations | Yes | 10 | C- | |
| 122 | Smithfield | 3 violations | Yes | 9 | C+ | |
| 123 | Hillsborough | 3 violations | Yes | 9 | C- | |
| 124 | Surf City | 3 violations | Yes | 22 | C+ | |
| 125 | Jackson | 3 violations | Yes | 4 | D | |
| 126 | White Lake | 3 violations | Yes | 1 | B | |
| 127 | Andrews | 3 violations | Yes | 1 | B | |
| 128 | Robbins | 3 violations | Yes | 20 | F | |
| 129 | Marshall | 3 violations | Yes | 8 | B | |
| 130 | Weldon | 3 violations | Yes | 7 | A- | |
| 131 | Micaville | 3 violations | Yes | 1 | A- | |
| 132 | Brunswick | 3 violations | Yes | 1 | B+ | |
| 133 | Graham | 3 violations | Yes | 11 | D | |
| 134 | Clemmons | 2 violations | Yes | 0 | A- | |
| 135 | Lillington | 2 violations | Yes | 4 | B- | |
| 136 | Wilson Mills | 2 violations | Yes | 3 | B- | |
| 137 | Leland | 2 violations | Yes | 11 | C | |
| 138 | Burgaw | 2 violations | Yes | 21 | F | |
| 139 | Thomasville | 2 violations | Yes | 0 | A- | |
| 140 | Laurinburg | 2 violations | Yes | 0 | C | |
| 141 | Hiddenite | 2 violations | Yes | 3 | A- | |
| 142 | Granite Falls | 2 violations | Yes | 4 | B+ | |
| 143 | Elizabethtown | 2 violations | Yes | 1 | B+ | |
| 144 | Lexington | 2 violations | Yes | 14 | B- | |
| 145 | Albemarle | 2 violations | Yes | 46 | C- | |
| 146 | Butner | 2 violations | Yes | 25 | B | |
| 147 | Rutherfordton | 2 violations | Yes | 7 | B- | |
| 148 | Snow Hill | 2 violations | Yes | 2 | C+ | |
| 149 | Whiteville | 2 violations | Yes | 2 | C | |
| 150 | Kings Mountain | 2 violations | Yes | 5 | B | |
| 151 | N Wilkesboro | 2 violations | Yes | 4 | B+ | |
| 152 | Denton | 2 violations | Yes | 22 | C- | |
| 153 | Hamlet | 2 violations | Yes | 20 | F | |
| 154 | Winterville | 2 violations | Yes | 1 | B- | |
| 155 | Maggie Valley | 2 violations | Yes | 2 | B- | |
| 156 | Troutman | 2 violations | Yes | 3 | B- | |
| 157 | Siler City | 2 violations | Yes | 29 | B | |
| 158 | Cherryville | 2 violations | Yes | 7 | C | |
| 159 | Pittsboro | 2 violations | Yes | 110 | F | |
| 160 | Ahoskie | 2 violations | Yes | 1 | A- | |
| 161 | Wallace | 2 violations | Yes | 4 | F | |
| 162 | Emerald Isle | 2 violations | Yes | 7 | B | |
| 163 | Yadkinville | 2 violations | Yes | 2 | B- | |
| 164 | Columbia | 2 violations | Yes | 9 | B | |
| 165 | Bald Head Island | 2 violations | Yes | 3 | B+ | |
| 166 | River Bend | 2 violations | Yes | 1 | B+ | |
| 167 | Scotland Neck | 2 violations | Yes | 44 | B- | |
| 168 | Liberty | 2 violations | Yes | 11 | C | |
| 169 | Wake Forest | 2 violations | Yes | 48 | F | |
| 170 | Beech Mountain | 2 violations | Yes | 9 | B+ | |
| 171 | Saint Pauls | 2 violations | Yes | 0 | A- | |
| 172 | Jonesville | 2 violations | Yes | 10 | B+ | |
| 173 | Saluda | 2 violations | Yes | 0 | B | |
| 174 | Ramseur | 2 violations | Yes | 38 | D+ | |
| 175 | Foxfire Village | 2 violations | Yes | 29 | C | |
| 176 | Enfield | 2 violations | Yes | 45 | B | |
| 177 | Stedman | 2 violations | Yes | 2 | B+ | |
| 178 | Harrells | 2 violations | Yes | 1 | A- | |
| 179 | Stantonsburg | 2 violations | Yes | 1 | A- | |
| 180 | Beulaville | 2 violations | Yes | 0 | A | |
| 181 | Faith | 2 violations | Yes | 1 | C | |
| 182 | Maysville | 2 violations | Yes | 1 | B+ | |
| 183 | Rich Square | 2 violations | Yes | 1 | A- | |
| 184 | Marble | 2 violations | Yes | 4 | C+ | |
| 185 | Wagram | 2 violations | Yes | 4 | C+ | |
| 186 | Bostic | 2 violations | Yes | 2 | B+ | |
| 187 | Fontana | 2 violations | Yes | 3 | A | |
| 188 | Garland | 2 violations | Yes | 1 | A- | |
| 189 | Parkton | 2 violations | Yes | 0 | B- | |
| 190 | Pollocksville | 2 violations | Yes | 1 | B+ | |
| 191 | Harrellsville | 2 violations | Yes | 1 | A- | |
| 192 | Bent Creek | 2 violations | Yes | 0 | A | |
| 193 | Falcon | 2 violations | Yes | 0 | B+ | |
| 194 | Waxham | 2 violations | Yes | 2 | A | |
| 195 | Gibson | 2 violations | Yes | 0 | A- | |
| 196 | Huntersville | 2 violations | Yes | 1 | A | |
| 197 | Micro | 2 violations | Yes | 15 | F | |
| 198 | Whittier | 2 violations | Yes | 1 | B+ | |
| 199 | Fleetwood | 2 violations | Yes | 1 | B | |
| 200 | Cary | 1 violations | Yes | 9 | F | |
| 201 | Jacksonville | 1 violations | Yes | 22 | F | |
| 202 | Eden | 1 violations | Yes | 10 | C | |
| 203 | Morganton | 1 violations | Yes | 2 | B+ | |
| 204 | Mebane | 1 violations | Yes | 10 | B+ | |
| 205 | Kenansville | 1 violations | Yes | 2 | B | |
| 206 | Havelock | 1 violations | Yes | 20 | B+ | |
| 207 | Locust | 1 violations | Yes | 24 | B | |
| 208 | Efland | 1 violations | Yes | 10 | F | |
| 209 | Wadesboro | 1 violations | Yes | 24 | B- | |
| 210 | Nags Head | 1 violations | Yes | 0 | A+ | |
| 211 | Pine Level | 1 violations | Yes | 8 | D+ | |
| 212 | Jefferson | 1 violations | Yes | 33 | D | |
| 213 | Belhaven | 1 violations | Yes | 0 | A | |
| 214 | Black Creek | 1 violations | Yes | 0 | A- | |
| 215 | Old Fort | 1 violations | Yes | 2 | C | |
| 216 | Ogden | 1 violations | Yes | 0 | A | |
| 217 | Brown Summit | 1 violations | Yes | 0 | B | |
| 218 | Bailey | 1 violations | Yes | 1 | C- |
Frequently asked questions about arsenic in North Carolina
Is arsenic in North Carolina tap water a concern?
Yes — 218 cities in North Carolina have arsenic-related violations on record. The EPA MCL for arsenic is 10 µg/L. Even at levels below the MCL, long-term arsenic exposure has been linked to cancer and cardiovascular disease.
How can I remove arsenic from my drinking water in North Carolina?
Reverse osmosis (RO) systems are the most effective at removing arsenic, typically reducing it by 90% or more. Specialized arsenic-removal media (such as iron-based adsorption filters) are also highly effective. Standard carbon filters and pitcher filters do NOT effectively remove arsenic. If your water comes from a private well, have it tested for arsenic.
Where does arsenic in North Carolina water come from?
Arsenic enters drinking water primarily through natural erosion of arsenic-bearing rock formations. It is most common in groundwater systems in the western United States, parts of the Midwest, and New England. Industrial sources include mining, smelting, and agricultural pesticide residues. Groundwater sources are far more likely to contain arsenic than surface water.