Water hardness in North Carolina
North Carolina has a median ambient water hardness of 28 mg/L, which is 1.6 grains per gallon and classes as soft. That is the middle of 80,517 samples across 100 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 North Carolina
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 |
|---|---|---|---|---|---|
| Carteret County | 4,800 | 280.4 | Very hard | 2,100 to 6,300 | 1,437 |
| Pamlico County | 1,900 | 111 | Very hard | 340 to 2,900 | 343 |
| Onslow County | 1,400 | 81.8 | Very hard | 110 to 4,100 | 1,183 |
| Dare County | 850 | 49.7 | Very hard | 150 to 3,000 | 167 |
| Brunswick County | 580 | 33.9 | Very hard | 29 to 5,800 | 2,145 |
| New Hanover County | 505 | 29.5 | Very hard | 120 to 5,500 | 1,036 |
| Beaufort County | 450 | 26.3 | Very hard | 68 to 1,400 | 2,723 |
| Hyde County | 440 | 25.7 | Very hard | 228 to 2,500 | 191 |
| Currituck County | 240 | 14 | Very hard | 120 to 584 | 71 |
| Tyrrell County | 190 | 11.1 | Very hard | 56 to 530 | 615 |
| Vance County | 100 | 5.8 | Moderately hard | 60 to 120 | 168 |
| Perquimans County | 96 | 5.6 | Moderately hard | 57 to 220 | 273 |
| Camden County | 86 | 5 | Moderately hard | 22 to 300 | 143 |
| Martin County | 86 | 5 | Moderately hard | 33 to 170 | 981 |
| Pasquotank County | 78 | 4.6 | Moderately hard | 26 to 260 | 352 |
| Chowan County | 55 | 3.2 | Soft | 30 to 160 | 602 |
| Mecklenburg County | 55 | 3.2 | Soft | 23 to 78 | 2,804 |
| Jones County | 54 | 3.2 | Soft | 37 to 79 | 742 |
| Cabarrus County | 53 | 3.1 | Soft | 38 to 63 | 539 |
| Guilford County | 49 | 2.9 | Soft | 32 to 68 | 1,545 |
| Randolph County | 48 | 2.8 | Soft | 37 to 63 | 783 |
| Union County | 45 | 2.6 | Soft | 38 to 56 | 489 |
| Davidson County | 43 | 2.5 | Soft | 30 to 58 | 1,296 |
| Alamance County | 42 | 2.5 | Soft | 34 to 55 | 1,239 |
| Craven County | 38 | 2.2 | Soft | 22 to 130 | 2,829 |
| Duplin County | 37 | 2.2 | Soft | 23 to 52 | 586 |
| Forsyth County | 37 | 2.2 | Soft | 21 to 50 | 407 |
| Granville County | 36 | 2.1 | Soft | 27 to 48 | 701 |
| Stanly County | 36 | 2.1 | Soft | 28 to 46 | 1,344 |
| Person County | 35 | 2 | Soft | 29 to 42 | 595 |
| Rowan County | 35 | 2 | Soft | 24 to 48 | 882 |
| Washington County | 34 | 2 | Soft | 18 to 87 | 539 |
| Pitt County | 33 | 1.9 | Soft | 23 to 50 | 2,023 |
| Chatham County | 32 | 1.9 | Soft | 28 to 38 | 2,790 |
| Lee County | 32 | 1.9 | Soft | 25 to 40 | 447 |
| Pender County | 32 | 1.9 | Soft | 22 to 54 | 1,004 |
| Caswell County | 31 | 1.8 | Soft | 27 to 41 | 340 |
| Durham County | 31 | 1.8 | Soft | 23 to 49 | 2,773 |
| Bertie County | 30 | 1.8 | Soft | 24 to 35 | 953 |
| Northampton County | 30 | 1.8 | Soft | 27 to 33 | 735 |
| Halifax County | 29 | 1.7 | Soft | 25 to 32 | 301 |
| Orange County | 29 | 1.7 | Soft | 24 to 36 | 1,668 |
| Wake County | 29 | 1.7 | Soft | 24 to 38 | 2,330 |
| Warren County | 29 | 1.7 | Soft | 20 to 38 | 205 |
| Anson County | 28 | 1.6 | Soft | 21 to 37 | 430 |
| Gates County | 28 | 1.6 | Soft | 22 to 36 | 258 |
| Greene County | 28 | 1.6 | Soft | 22 to 48 | 1,405 |
| Johnston County | 28 | 1.6 | Soft | 20 to 36 | 1,070 |
| Franklin County | 26 | 1.5 | Soft | 20 to 31 | 481 |
| Sampson County | 26 | 1.5 | Soft | 19 to 36 | 657 |
| Edgecombe County | 25 | 1.5 | Soft | 21 to 31 | 1,068 |
| Lenoir County | 25 | 1.5 | Soft | 20 to 30 | 908 |
| Gaston County | 24 | 1.4 | Soft | 19 to 33 | 1,063 |
| Harnett County | 24 | 1.4 | Soft | 16 to 32 | 635 |
| Hertford County | 24 | 1.4 | Soft | 20 to 30 | 775 |
| Lincoln County | 23 | 1.3 | Soft | 17 to 36 | 451 |
| Rockingham County | 23 | 1.3 | Soft | 18 to 32 | 1,213 |
| Surry County | 23 | 1.3 | Soft | 20 to 30 | 276 |
| Nash County | 22 | 1.3 | Soft | 18 to 27 | 282 |
| Wilson County | 22 | 1.3 | Soft | 16 to 32 | 349 |
| Columbus County | 21 | 1.2 | Soft | 14 to 31 | 736 |
| Wayne County | 21 | 1.2 | Soft | 16 to 36 | 976 |
| Bladen County | 20 | 1.2 | Soft | 15 to 26 | 1,348 |
| Montgomery County | 20 | 1.2 | Soft | 14 to 30 | 554 |
| Watauga County | 20 | 1.2 | Soft | 15 to 27 | 582 |
| Ashe County | 19 | 1.1 | Soft | 15 to 24 | 502 |
| Richmond County | 19 | 1.1 | Soft | 12 to 22 | 798 |
| Iredell County | 18 | 1.1 | Soft | 14 to 29 | 530 |
| Stokes County | 18 | 1.1 | Soft | 14 to 25 | 334 |
| Alleghany County | 16 | 0.9 | Soft | 12 to 22 | 338 |
| Cumberland County | 16 | 0.9 | Soft | 10 to 24 | 518 |
| Davie County | 16 | 0.9 | Soft | 14 to 18 | 405 |
| Madison County | 16 | 0.9 | Soft | 14 to 19 | 655 |
| Mitchell County | 16 | 0.9 | Soft | 13 to 20 | 340 |
| Moore County | 16 | 0.9 | Soft | 6 to 32 | 794 |
| Rutherford County | 15 | 0.9 | Soft | 11 to 17 | 569 |
| Cleveland County | 14 | 0.8 | Soft | 11 to 20 | 871 |
| Yadkin County | 14 | 0.8 | Soft | 13 to 18 | 111 |
| Buncombe County | 13 | 0.8 | Soft | 9 to 17 | 1,296 |
| Catawba County | 13 | 0.8 | Soft | 10 to 18 | 788 |
| Robeson County | 13 | 0.8 | Soft | 6 to 21 | 1,188 |
| Alexander County | 12 | 0.7 | Soft | 10 to 18 | 205 |
| Burke County | 12 | 0.7 | Soft | 9 to 16 | 1,042 |
| McDowell County | 12 | 0.7 | Soft | 10 to 17 | 558 |
| Polk County | 12 | 0.7 | Soft | 11 to 14 | 73 |
| Wilkes County | 12 | 0.7 | Soft | 10 to 18 | 613 |
| Caldwell County | 11 | 0.6 | Soft | 8 to 13 | 375 |
| Cherokee County | 10 | 0.6 | Soft | 7 to 15 | 376 |
| Graham County | 9 | 0.5 | Soft | 7 to 12 | 173 |
| Avery County | 8 | 0.5 | Soft | 5 to 12 | 387 |
| Haywood County | 8 | 0.5 | Soft | 5 to 24 | 1,646 |
| Henderson County | 8 | 0.5 | Soft | 4 to 14 | 511 |
| Macon County | 7 | 0.4 | Soft | 5 to 10 | 732 |
| Clay County | 6 | 0.4 | Soft | 6 to 7 | 23 |
| Hoke County | 6 | 0.4 | Soft | 4 to 12 | 339 |
| Jackson County | 6 | 0.4 | Soft | 5 to 8 | 192 |
| Scotland County | 6 | 0.4 | Soft | 2 to 19 | 490 |
| Swain County | 6 | 0.4 | Soft | 5 to 8 | 554 |
| Yancey County | 6 | 0.4 | Soft | 4 to 13 | 480 |
| Transylvania County | 5 | 0.3 | Soft | 4 to 8 | 875 |
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 North Carolina
At 1.6 grains per gallon, a family of four would need a softener of about 16,000 grains to regenerate roughly weekly, using around 67 lb of salt a year. Size it for your own household.
89 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.