Virginia Water Quality Report
230 cities tested · Average grade: B · 7.4M people served
Live Water Alerts for Virginia →Latest water news in Virginia
Recent reporting on Virginia drinking water — boil-water advisories, regulatory action, and infrastructure events.
Virginia water quality overview
Virginia's drinking water quality is good overall, with an average score of 78.9 out of 100 across 230 cities tested. The median score is 84.5, serving a total population of 7,420,400 residents. 77% of cities earned an A or B grade, indicating broadly strong water quality infrastructure across the state. PFAS "forever chemicals" were detected in 52 of 230 cities tested (23%). 16 cities exceed the 2024 EPA maximum contaminant levels. 1 city has 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: 83 cities use groundwater while 141 draw from surface water such as rivers, lakes, and reservoirs.
Issues to watch in Virginia
Explore contaminants in Virginia
More contaminants tested in Virginia
Private-well water in Virginia
Based on USGS Powell Domestic-Well Database — 1,345 private wells sampled across Virginia. 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 Virginia
Industrial polluters nearby
The 10 facilities reporting the most pounds released to surface water in Virginia, 2023.
Total reported releases to surface water: 13,580,172 lbs
| Facility | Top chemical | To surface water (lbs/yr) |
|---|---|---|
U.S. ARMY RADFORD ARMY AMMUNITION PLANT RADFORD, VA24141 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 11,916,997 |
BWXT NUCLEAR OPERATIONS GROUP INC. LYNCHBURG, VA24504 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 477,767 |
PERDUE FOODS LLC - ACCOMAC PROCESSING PLANT ACCOMAC, VA23301 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 455,342 |
NEW MARKET POULTRY LLC NEW MARKET, VA22844 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 201,800 |
ADVANSIX INC HOPEWELL PLANT HOPEWELL, VA23860 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 148,600 |
+ 5 more facilities
Source: EPA Toxic Release Inventory (TRI) 2023
How Virginia cities scored
Worst Cities
Water quality across Virginia
Each dot is a city, colored by its water quality grade. Size reflects population served. Click any city to view its full water report.
230 cities in Virginia
| # | City | Grade | Score | Population | Violations |
|---|---|---|---|---|---|
| 1 | Fredericksburg City | A+ | 98.8 | 28K | 1 |
| 2 | Lynchburg City | A+ | 98.3 | 81K | 0 |
| 3 | Collinsville | A+ | 97.2 | 30K | 4 |
| 4 | Mitchells | A+ | 97 | 2K | 0 |
| 5 | Colonial Heights City | A+ | 96.6 | 18K | 3 |
| 6 | Salem City | A+ | 96.1 | 26K | 15 |
| 7 | Tysons | A+ | 95.9 | 828 | 1 |
| 8 | Radford City | A+ | 95.4 | 17K | 14 |
| 9 | State Farm | A+ | 95.4 | 2K | 12 |
| 10 | Troy | A+ | 95.4 | 2K | 3 |
| 11 | Gloucester | A+ | 95.1 | 11K | 14 |
| 12 | Emporia | A+ | 95.1 | 7K | 3 |
| 13 | Williamsburg City | A | 95 | 16K | 11 |
| 14 | Amelia | A+ | 95 | 3K | 12 |
| 15 | New Market | A | 94.8 | 2K | 15 |
| 16 | La Crosse | A | 94.8 | 850 | 6 |
| 17 | Winchester City | A | 94.7 | 28K | 20 |
| 18 | Galax City | A | 94.7 | 7K | 38 |
| 19 | King William | A | 94.7 | 2K | 6 |
| 20 | Lovettsville | A | 94.5 | 3K | 36 |
| 21 | Woodberry Forest | A | 94.5 | 739 | 6 |
| 22 | Appalachia | A | 94.3 | 3K | 27 |
| 23 | Quinby | A | 94.1 | 975 | 35 |
| 24 | Waynesboro City | A | 94 | 23K | 10 |
| 25 | Richmond City | A | 93.8 | 229K | 25 |
| 26 | Lexington City | A | 93.6 | 8K | 20 |
| 27 | Farmville | A | 93.4 | 8K | 3 |
| 28 | Richlands | A | 93.3 | 5K | 24 |
| 29 | Quantico | A | 93.3 | 650 | 6 |
| 30 | South Hill | A | 93.2 | 5K | 13 |
| 31 | Shenandoah | A | 93.2 | 2K | 24 |
| 32 | Lexington | A | 93.1 | 6K | 52 |
| 33 | Middletown | A | 93.1 | 1K | 12 |
| 34 | Cedar Bluff | A | 93 | 1K | 16 |
| 35 | Henrico | A | 92.8 | 330K | 4 |
| 36 | Dayton | A | 92.7 | 2K | 14 |
| 37 | Suffolk City | A | 92.5 | 70K | 43 |
| 38 | Appomattox | A | 92.4 | 2K | 16 |
| 39 | Warm Springs | A | 92.2 | 3K | 28 |
| 40 | Craigsville | A | 92 | 2K | 5 |
| 41 | Victoria | A | 91.8 | 2K | 13 |
| 42 | Dryden | A | 91.7 | 2K | 10 |
| 43 | Bristol City | A | 91.5 | 20K | 18 |
| 44 | Coeburn | A | 91.4 | 5K | 25 |
| 45 | Wakefield | A | 91.4 | 1K | 15 |
| 46 | Hanover | A | 91.3 | 59K | 8 |
| 47 | Manassas City | A | 91.1 | 43K | 15 |
| 48 | Rural Retreat | A | 91.1 | 3K | 26 |
| 49 | Montross | A | 91.1 | 2K | 35 |
| 50 | Manassas Park City | A | 91 | 14K | 23 |
| 51 | Stuart | A | 91 | 2K | 16 |
| 52 | Virginia Beach City | A | 90.8 | 461K | 37 |
| 53 | Chilhowie | A | 90.8 | 5K | 13 |
| 54 | Staunton City | A | 90.6 | 26K | 34 |
| 55 | Portsmouth City | A | 90.3 | 121K | 35 |
| 56 | Harrisonburg City | A | 90.3 | 53K | 34 |
| 57 | Charlottesville City | A | 90.3 | 48K | 5 |
| 58 | St. Paul | A | 90.2 | 1K | 30 |
| 59 | Alexandria City | A | 90.1 | 159K | 4 |
| 60 | Vint Hill | A | 90.1 | 2K | 7 |
| 61 | Bracey | A | 90 | 4K | 6 |
| 62 | Radford | A | 90 | 2K | 21 |
| 63 | Blacksburg | A- | 89.9 | 35K | 2 |
| 64 | Norton City | A- | 89.9 | 4K | 22 |
| 65 | Martinsville City | A- | 89.8 | 14K | 11 |
| 66 | Orange | A- | 89.8 | 5K | 27 |
| 67 | Hampden-Sydney | A- | 89.8 | 1K | 15 |
| 68 | Hopewell City | A- | 89.5 | 30K | 30 |
| 69 | Ruther Glen | A- | 89.5 | 5K | 26 |
| 70 | Altavista | A- | 89.5 | 4K | 19 |
| 71 | West Point | A- | 89.5 | 3K | 8 |
| 72 | Dilwyn | A- | 89.4 | 890 | 34 |
| 73 | Franklin City | A- | 89.3 | 9K | 52 |
| 74 | Fincastle | A- | 89.3 | 2K | 28 |
| 75 | Big Stone Gap | A- | 89 | 9K | 28 |
| 76 | Tappahannock | A- | 88.8 | 2K | 21 |
| 77 | New Castle | A- | 88.8 | 1K | 6 |
| 78 | Hamilton | A- | 88.7 | 2K | 10 |
| 79 | Danville City | A- | 88.5 | 43K | 4 |
| 80 | Petersburg City | A- | 88.5 | 33K | 9 |
| 81 | Franklin | A- | 88.4 | 570 | 97 |
| 82 | Purcellville | A- | 88.3 | 9K | 13 |
| 83 | Newport News | A- | 88.3 | 529 | 32 |
| 84 | Chincoteague | A- | 88.1 | 3K | 6 |
| 85 | Mcgaheysville | A- | 88.1 | 560 | 6 |
| 86 | Bluefield | A- | 88 | 6K | 56 |
| 87 | Warsaw | A- | 88 | 2K | 17 |
| 88 | Urbanna | A- | 88 | 924 | 20 |
| 89 | Buena Vista City | A- | 87.9 | 7K | 12 |
| 90 | Surry | A- | 87.8 | 850 | 29 |
| 91 | Round Hill | A- | 87.5 | 5K | 16 |
| 92 | Strasburg | A- | 87.3 | 7K | 23 |
| 93 | Hot Springs | A- | 87.3 | 2K | 7 |
| 94 | Gate City | A- | 87.1 | 2K | 47 |
| 95 | Ashburn | A- | 87 | 335K | 14 |
| 96 | Blackstone | A- | 87 | 6K | 29 |
| 97 | Leesburg | A- | 86.9 | 69K | 37 |
| 98 | Remington | A- | 86.9 | 2K | 74 |
| 99 | Saltville | A- | 86.7 | 2K | 8 |
| 100 | Onancock | A- | 86.2 | 2K | 50 |
| 101 | Easvtille | A- | 86 | 1K | 22 |
| 102 | Covington | A- | 85.7 | 9K | 18 |
| 103 | Newport News City | A- | 85.6 | 424K | 38 |
| 104 | Winchester | A- | 85.6 | 47K | 38 |
| 105 | Saluda | A- | 85.6 | 2K | 1 |
| 106 | Kenbridge | A- | 85.6 | 1K | 11 |
| 107 | Waverly | A- | 85.5 | 4K | 27 |
| 108 | Stephens City | A- | 85.1 | 2K | 17 |
| 109 | Windsor | B+ | 84.6 | 3K | 45 |
| 110 | Cumberland | B+ | 84.6 | 2K | 3 |
| 111 | Buchanan | B+ | 84.6 | 1K | 9 |
| 112 | Hurt | B+ | 84.6 | 1K | 25 |
| 113 | Rich Creek | B+ | 84.6 | 960 | 83 |
| 114 | Abingdon | B+ | 84.5 | 48K | 28 |
| 115 | Fort Belvoir | B+ | 84.5 | 39K | 10 |
| 116 | Irvington | B+ | 84.5 | 583 | 36 |
| 117 | Honaker | B+ | 84.4 | 2K | 14 |
| 118 | Brookneal | B+ | 84.3 | 2K | 54 |
| 119 | Elkton | B+ | 84.2 | 3K | 7 |
| 120 | Kilmarnock | B+ | 84.2 | 2K | 21 |
| 121 | Vienna | B+ | 84 | 30K | 5 |
| 122 | Clarksville | B+ | 83.9 | 1K | 56 |
| 123 | Parksley | B+ | 83.7 | 1K | 100 |
| 124 | Harrisonburg | B+ | 83.5 | 23K | 38 |
| 125 | Tazewell | B+ | 83.4 | 5K | 39 |
| 126 | Colonial Beach | B+ | 83.3 | 5K | 33 |
| 127 | Chase City | B+ | 83.2 | 2K | 46 |
| 128 | Verona | B+ | 83 | 40K | 72 |
| 129 | Yorktown | B+ | 83 | 5K | 85 |
| 130 | Petersburg | B+ | 82.8 | 9K | 34 |
| 131 | Alexandria | B+ | 82.6 | 3K | 45 |
| 132 | Bland | B+ | 82.6 | 2K | 48 |
| 133 | Rocky Mount | B+ | 82.5 | 6K | 50 |
| 134 | Charlotte Courthouse | B+ | 82.5 | 2K | 31 |
| 135 | Bremo Bluff | B+ | 82.4 | 2K | 25 |
| 136 | Ivor | B+ | 82.4 | 766 | 15 |
| 137 | Roanoke City | B+ | 82.2 | 183K | 4 |
| 138 | Floyd | B+ | 81.6 | 2K | 32 |
| 139 | Amherst | B+ | 81.5 | 2K | 60 |
| 140 | Woodbridge | B+ | 81.2 | 307K | 4 |
| 141 | Knott'S Island | B+ | 81 | 559 | 117 |
| 142 | Knott'S Island | B+ | 81 | 559 | 117 |
| 143 | Norfolk City | B+ | 80.9 | 291K | 19 |
| 144 | Brunswick | B+ | 80.8 | 731 | 52 |
| 145 | Chesterfield | B+ | 80.7 | 390K | 52 |
| 146 | Wallops Island | B+ | 80.6 | 2K | 22 |
| 147 | Hampton City | B+ | 80.3 | 11K | 28 |
| 148 | Rappahannock Academy | B+ | 80.3 | 2K | 102 |
| 149 | Timberville | B+ | 80.1 | 4K | 48 |
| 150 | Goochland | B | 79.5 | 9K | 56 |
| 151 | New Kent | B | 79.4 | 16K | 39 |
| 152 | Stanley | B | 79.3 | 4K | 23 |
| 153 | Independence | B | 79.2 | 2K | 63 |
| 154 | Hillsville | B | 79 | 13K | 111 |
| 155 | Arlington | B | 78.2 | 216K | 88 |
| 156 | Troutville | B | 78.1 | 577 | 38 |
| 157 | Marion | B | 77.9 | 17K | 103 |
| 158 | Grottoes | B | 77.5 | 4K | 63 |
| 159 | Wytheville | B | 77.2 | 14K | 61 |
| 160 | Drakes Branch | B | 76.7 | 530 | 18 |
| 161 | Wise | B | 76.5 | 21K | 76 |
| 162 | South Boston | B | 76.4 | 10K | 147 |
| 163 | Bridgewater | B | 76.1 | 6K | 54 |
| 164 | Keysville | B | 76.1 | 800 | 40 |
| 165 | Montvale | B | 76 | 773 | 64 |
| 166 | Herndon | B | 75.5 | 1.1M | 23 |
| 167 | Pennington Gap | B | 75.5 | 6K | 43 |
| 168 | Broadway | B | 75.2 | 4K | 51 |
| 169 | Ruckersville | B | 75 | 9K | 48 |
| 170 | Mineral | B | 75 | 503 | 36 |
| 171 | Stafford | B- | 74.8 | 124K | 108 |
| 172 | Madison Heights | B- | 74.6 | 15K | 48 |
| 173 | Clifton Forge | B- | 74.3 | 4K | 80 |
| 174 | Gretna | B- | 72.4 | 3K | 23 |
| 175 | Bedford | B- | 71.8 | 40K | 177 |
| 176 | Buckingham | B- | 71.7 | 6K | 26 |
| 177 | Culpeper | B- | 71.2 | 24K | 84 |
| 178 | Crewe | C+ | 69.7 | 2K | 21 |
| 179 | North Tazewell | C+ | 69.5 | 15K | 152 |
| 180 | Emporia City | C+ | 69.4 | 8K | 37 |
| 181 | Gordonsville | C+ | 69.2 | 3K | 82 |
| 182 | Jonesville | C+ | 67.1 | 11K | 177 |
| 183 | Prince George | C+ | 66.6 | 11K | 194 |
| 184 | Courtland | C+ | 66.5 | 4K | 144 |
| 185 | Berryville | C+ | 66.3 | 6K | 42 |
| 186 | Pembroke | C+ | 65.9 | 1K | 85 |
| 187 | Fredericksburg | C | 64.5 | 97K | 163 |
| 188 | Exmore | C | 64.4 | 2K | 233 |
| 189 | Narrows | C | 64.2 | 2K | 88 |
| 190 | Dahlgren | C | 63.2 | 11K | 162 |
| 191 | Suffolk | C | 63 | 872 | 116 |
| 192 | Vansant | C | 62.7 | 20K | 52 |
| 193 | Pooler | C | 62.1 | 1K | 65 |
| 194 | Edinburg | C | 61.6 | 3K | 122 |
| 195 | Mcincr, Mcb Quantico | C | 61.4 | 28K | 69 |
| 196 | Lynchburg | C | 60.9 | 25K | 161 |
| 197 | Moneta | C | 60.8 | 1K | 182 |
| 198 | Charles City | C- | 59.7 | 611 | 103 |
| 199 | Isle Of Wight | C- | 59.3 | 11K | 183 |
| 200 | Covington City | C- | 58.8 | 6K | 54 |
| 201 | Sugar Grove | D+ | 51.9 | 1K | 74 |
| 202 | Woodstock | D+ | 50.4 | 10K | 40 |
| 203 | Bowling Green | D+ | 50 | 1K | 50 |
| 204 | Cleveland | D+ | 50 | 563 | 151 |
| 205 | Richmond | D | 49 | 3K | 282 |
| 206 | Madison | D | 47.9 | 15K | 180 |
| 207 | Luray | D | 47.5 | 5K | 581 |
| 208 | Williamsburg | D | 47.4 | 60K | 119 |
| 209 | Pearisburg | D | 47 | 5K | 411 |
| 210 | Pulaski | D | 46 | 20K | 207 |
| 211 | Mount Jackson | D | 46 | 4K | 644 |
| 212 | Stanardsville | D | 46 | 2K | 307 |
| 213 | Dublin | D | 45.6 | 7K | 52 |
| 214 | Lawrenceville | D | 45.4 | 9K | 103 |
| 215 | Clintwood | D | 45.2 | 16K | 73 |
| 216 | Louisa | D | 45 | 10K | 138 |
| 217 | King George | D | 45 | 885 | 223 |
| 218 | Charlottesville | F | 43.9 | 92K | 405 |
| 219 | Weber City | F | 43.5 | 13K | 172 |
| 220 | Smithfield | F | 43.3 | 9K | 158 |
| 221 | Front Royal | F | 42.9 | 18K | 161 |
| 222 | Lebanon | F | 42.7 | 16K | 126 |
| 223 | Chatham | F | 42.5 | 11K | 157 |
| 224 | Roanoke | F | 42.2 | 12K | 785 |
| 225 | Chesapeake City | F | 42 | 201K | 360 |
| 226 | Rockville | F | 39.7 | 72K | 1898 |
| 227 | Hopewell | F | 38.6 | 124K | 421 |
| 228 | Christiansburg | F | 38.3 | 36K | 179 |
| 229 | Warrenton | F | 36 | 30K | 273 |
| 230 | Lovingston | F | 35 | 10K | 462 |
Browse Virginia counties
Browse Virginia by ZIP code
Look up water quality by ZIP code to find the systems serving your area.
View all Virginia ZIP codes →Frequently asked questions about Virginia's water
Is Virginia's tap water safe to drink?
Virginia's water quality varies by city. The statewide average grade is B (78.9/100). 77% of cities scored an A or B, while 13% received a D or F. Check your specific city for detailed results.
Which Virginia cities have the best water quality?
The top-rated cities are Fredericksburg City (A+), Lynchburg City (A+), Collinsville (A+). These cities scored highest based on violation history, lead levels, PFAS contamination, and regulatory compliance.
Which Virginia cities have the worst water quality?
The lowest-rated cities are Lovingston (F), Warrenton (F), Christiansburg (F). We recommend residents in these areas consider water filtration and review their city's specific contaminant data.
How many Virginia cities have PFAS in their water?
52 out of 230 cities tested positive for PFAS "forever chemicals" (23%). 16 cities exceed the 2024 EPA maximum contaminant levels. Reverse osmosis or activated carbon filters can help reduce PFAS exposure.
Do any Virginia cities have dangerous lead levels?
1 city exceeds 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.