Water hardness in Virginia
Virginia has a median ambient water hardness of 41 mg/L, which is 2.4 grains per gallon and classes as soft. That is the middle of 53,025 samples across 124 counties.
This is ambient water, not tap water. These figures come from samples taken from wells, streams and springs by USGS, EPA and state agencies. Municipal utilities treat, blend and sometimes soften water before it reaches a tap, so a city supply can be considerably softer than the ground beneath it. Treat this as a good guide for a private well and an approximate one for city water. Your utility's annual water quality report gives the real number for a municipal tap, and a test strip gives it for yours.
Every monitored county in Virginia
Ranked hardest first. The middle 50% column shows how much the samples within a county vary, which matters more than the median where a county spans two geologies.
| County | mg/L | gpg | Class | Middle 50% | Samples |
|---|---|---|---|---|---|
| Hampton city | 554 | 32.4 | Very hard | 448 to 659 | 4 |
| Harrisonburg city | 328 | 19.2 | Very hard | 318 to 328 | 5 |
| Winchester city | 295 | 17.2 | Very hard | 260 to 340 | 6 |
| Mathews County | 262 | 15.3 | Very hard | 160 to 434 | 14 |
| Radford city | 252 | 14.7 | Very hard | 237 to 274 | 23 |
| Norton city | 240 | 14 | Very hard | 120 to 240 | 5 |
| Bristol city | 228 | 13.3 | Very hard | 219 to 236 | 100 |
| Montgomery County | 203 | 11.9 | Very hard | 139 to 246 | 463 |
| Lexington city | 201 | 11.7 | Very hard | 188 to 236 | 32 |
| Frederick County | 200 | 11.7 | Very hard | 77 to 266 | 282 |
| Roanoke County | 196 | 11.4 | Very hard | 165 to 228 | 166 |
| Washington County | 195 | 11.4 | Very hard | 63 to 660 | 549 |
| Rockingham County | 194 | 11.3 | Very hard | 111 to 257 | 2,087 |
| Shenandoah County | 193 | 11.3 | Very hard | 140 to 245 | 1,338 |
| Virginia Beach city | 184 | 10.7 | Very hard | 112 to 286 | 261 |
| Roanoke city | 155 | 9.1 | Hard | 120 to 189 | 134 |
| Clarke County | 146 | 8.5 | Hard | 120 to 237 | 198 |
| Dickenson County | 143 | 8.4 | Hard | 78 to 212 | 479 |
| Russell County | 140 | 8.2 | Hard | 120 to 166 | 160 |
| Northampton County | 139 | 8.1 | Hard | 110 to 222 | 147 |
| Salem city | 139 | 8.1 | Hard | 139 to 154 | 3 |
| Scott County | 137 | 8 | Hard | 110 to 170 | 571 |
| Tazewell County | 136 | 7.9 | Hard | 109 to 155 | 291 |
| Augusta County | 132 | 7.7 | Hard | 68 to 200 | 611 |
| Wise County | 130 | 7.6 | Hard | 67 to 215 | 362 |
| Warren County | 127 | 7.4 | Hard | 96 to 150 | 1,624 |
| Wythe County | 120 | 7 | Moderately hard | 88 to 148 | 244 |
| Page County | 118 | 6.9 | Moderately hard | 20 to 151 | 288 |
| Arlington County | 110 | 6.4 | Moderately hard | 86 to 130 | 837 |
| Buchanan County | 110 | 6.4 | Moderately hard | 68 to 170 | 1,037 |
| York County | 110 | 6.4 | Moderately hard | 41 to 199 | 141 |
| Covington city | 107 | 6.3 | Moderately hard | 86 to 143 | 69 |
| Botetourt County | 104 | 6.1 | Moderately hard | 66 to 159 | 781 |
| Alexandria city | 101 | 5.9 | Moderately hard | 70 to 129 | 183 |
| Accomack County | 98 | 5.7 | Moderately hard | 58 to 150 | 150 |
| Waynesboro city | 97 | 5.7 | Moderately hard | 66 to 116 | 27 |
| Fairfax city | 95 | 5.5 | Moderately hard | 95 to 130 | 3 |
| Smyth County | 93 | 5.4 | Moderately hard | 38 to 130 | 349 |
| Buena Vista city | 90 | 5.3 | Moderately hard | 90 to 116 | 9 |
| Chesapeake city | 90 | 5.3 | Moderately hard | 18 to 213 | 118 |
| Gloucester County | 86 | 5 | Moderately hard | 43 to 150 | 97 |
| Rockbridge County | 85 | 5 | Moderately hard | 45 to 140 | 331 |
| Norfolk city | 83 | 4.8 | Moderately hard | 68 to 500 | 14 |
| Highland County | 82 | 4.8 | Moderately hard | 37 to 126 | 55 |
| Alleghany County | 78 | 4.6 | Moderately hard | 54 to 110 | 904 |
| Lee County | 76 | 4.4 | Moderately hard | 48 to 120 | 269 |
| Bland County | 74 | 4.3 | Moderately hard | 22 to 121 | 66 |
| Bath County | 73 | 4.3 | Moderately hard | 42 to 95 | 212 |
| Amherst County | 72 | 4.2 | Moderately hard | 20 to 107 | 719 |
| Fairfax County | 65 | 3.8 | Moderately hard | 43 to 93 | 2,169 |
| Loudoun County | 63 | 3.7 | Moderately hard | 48 to 83 | 622 |
| Giles County | 62 | 3.6 | Moderately hard | 53 to 76 | 842 |
| Lynchburg city | 59 | 3.4 | Soft | 40 to 109 | 26 |
| Richmond city | 57 | 3.3 | Soft | 47 to 69 | 642 |
| Bedford County | 56 | 3.3 | Soft | 27 to 91 | 593 |
| Goochland County | 56 | 3.3 | Soft | 44 to 70 | 1,136 |
| Prince William County | 48 | 2.8 | Soft | 21 to 101 | 1,055 |
| Henrico County | 47 | 2.7 | Soft | 34 to 62 | 1,084 |
| Prince George County | 46 | 2.7 | Soft | 32 to 62 | 462 |
| Craig County | 43 | 2.5 | Soft | 21 to 74 | 83 |
| Pulaski County | 43 | 2.5 | Soft | 30 to 81 | 481 |
| Surry County | 39 | 2.3 | Soft | 25 to 55 | 272 |
| Halifax County | 38 | 2.2 | Soft | 26 to 47 | 1,478 |
| Isle of Wight County | 33 | 1.9 | Soft | 24 to 40 | 219 |
| James City County | 33 | 1.9 | Soft | 17 to 70 | 496 |
| Mecklenburg County | 33 | 1.9 | Soft | 26 to 42 | 584 |
| Cumberland County | 32 | 1.9 | Soft | 26 to 37 | 646 |
| Lunenburg County | 32 | 1.9 | Soft | 26 to 38 | 268 |
| Nottoway County | 32 | 1.9 | Soft | 26 to 37 | 84 |
| Amelia County | 31 | 1.8 | Soft | 25 to 38 | 433 |
| Charlotte County | 31 | 1.8 | Soft | 24 to 42 | 390 |
| King and Queen County | 31 | 1.8 | Soft | 22 to 51 | 327 |
| Orange County | 31 | 1.8 | Soft | 24 to 40 | 227 |
| Campbell County | 30 | 1.8 | Soft | 22 to 55 | 423 |
| Lancaster County | 30 | 1.8 | Soft | 17 to 45 | 134 |
| Pittsylvania County | 30 | 1.8 | Soft | 21 to 56 | 998 |
| Prince Edward County | 30 | 1.8 | Soft | 26 to 34 | 252 |
| Petersburg city | 30 | 1.8 | Soft | 24 to 36 | 148 |
| King George County | 29 | 1.7 | Soft | 21 to 36 | 528 |
| Southampton County | 29 | 1.7 | Soft | 22 to 38 | 707 |
| Stafford County | 29 | 1.7 | Soft | 20 to 38 | 764 |
| Westmoreland County | 29 | 1.7 | Soft | 15 to 59 | 190 |
| Charles City County | 28 | 1.6 | Soft | 20 to 36 | 480 |
| Franklin County | 28 | 1.6 | Soft | 23 to 36 | 1,035 |
| New Kent County | 27 | 1.6 | Soft | 22 to 33 | 877 |
| Chesterfield County | 26 | 1.5 | Soft | 20 to 33 | 1,178 |
| Northumberland County | 26 | 1.5 | Soft | 11 to 35 | 118 |
| Powhatan County | 26 | 1.5 | Soft | 19 to 32 | 309 |
| Fauquier County | 25 | 1.5 | Soft | 21 to 32 | 619 |
| Sussex County | 25 | 1.5 | Soft | 19 to 34 | 472 |
| Newport News city | 25 | 1.5 | Soft | 16 to 80 | 134 |
| Albemarle County | 24 | 1.4 | Soft | 12 to 63 | 490 |
| Brunswick County | 24 | 1.4 | Soft | 20 to 28 | 599 |
| Dinwiddie County | 24 | 1.4 | Soft | 18 to 28 | 369 |
| Essex County | 24 | 1.4 | Soft | 16 to 30 | 523 |
| Floyd County | 24 | 1.4 | Soft | 16 to 32 | 81 |
| Fluvanna County | 24 | 1.4 | Soft | 20 to 48 | 507 |
| Hanover County | 24 | 1.4 | Soft | 19 to 32 | 1,519 |
| Richmond County | 24 | 1.4 | Soft | 16 to 144 | 399 |
| Spotsylvania County | 24 | 1.4 | Soft | 20 to 28 | 669 |
| Colonial Heights city | 24 | 1.4 | Soft | 20 to 31 | 54 |
| Caroline County | 23 | 1.3 | Soft | 15 to 35 | 841 |
| Danville city | 23 | 1.3 | Soft | 20 to 26 | 143 |
| Emporia city | 23 | 1.3 | Soft | 20 to 28 | 495 |
| Culpeper County | 22 | 1.3 | Soft | 16 to 26 | 850 |
| Greensville County | 22 | 1.3 | Soft | 16 to 28 | 98 |
| Henry County | 22 | 1.3 | Soft | 19 to 26 | 439 |
| Louisa County | 22 | 1.3 | Soft | 16 to 35 | 491 |
| Middlesex County | 21 | 1.2 | Soft | 9 to 38 | 44 |
| Buckingham County | 20 | 1.2 | Soft | 10 to 29 | 409 |
| Rappahannock County | 20 | 1.2 | Soft | 15 to 26 | 288 |
| Nelson County | 18 | 1.1 | Soft | 11 to 60 | 381 |
| Suffolk city | 18 | 1.1 | Soft | 9 to 36 | 319 |
| Appomattox County | 17 | 1 | Soft | 10 to 22 | 234 |
| King William County | 17 | 1 | Soft | 13 to 25 | 773 |
| Patrick County | 17 | 1 | Soft | 15 to 21 | 266 |
| Portsmouth city | 16 | 0.9 | Soft | 15 to 25 | 5 |
| Williamsburg city | 16 | 0.9 | Soft | 15 to 18 | 13 |
| Carroll County | 15 | 0.9 | Soft | 10 to 18 | 59 |
| Grayson County | 15 | 0.9 | Soft | 13 to 16 | 432 |
| Greene County | 13 | 0.8 | Soft | 8 to 22 | 96 |
| Galax city | 13 | 0.8 | Soft | 11 to 13 | 18 |
| Madison County | 11 | 0.6 | Soft | 7 to 21 | 294 |
| Franklin city | 3 | 0.2 | Soft | 0 to 11 | 8 |
Source: Water Quality Portal (USGS, EPA and state agencies), waterqualitydata.us, retrieved 2026-09-19. 2,904,346 samples across 3,110 counties.
What this means for a household in Virginia
At 2.4 grains per gallon, a family of four would need a softener of about 16,000 grains to regenerate roughly weekly, using around 101 lb of salt a year. Size it for your own household.
106 of these counties include well samples, so the figures are a reasonable guide for private well water there. Municipal supplies in the same counties may be softer, because utilities often blend or treat.
Hardness follows geology rather than borders. Where a county sits on limestone or dolomite the water is hard; on granite, basalt or sandstone it is soft. That is why neighbouring counties in this table can differ by a factor of several.