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