Water hardness in Texas
Texas has a median ambient water hardness of 190 mg/L, which is 11.1 grains per gallon and classes as very hard. That is the middle of 144,208 samples across 234 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 Texas
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 |
|---|---|---|---|---|---|
| Willacy County | 6,200 | 362.2 | Very hard | 5,100 to 6,500 | 24 |
| Childress County | 4,800 | 280.4 | Very hard | 3,000 to 5,500 | 533 |
| King County | 4,290 | 250.6 | Very hard | 2,900 to 6,500 | 1,421 |
| Crockett County | 3,580 | 209.1 | Very hard | 3,370 to 3,820 | 9 |
| Hardeman County | 3,100 | 181.1 | Very hard | 2,100 to 3,400 | 95 |
| Pecos County | 2,900 | 169.4 | Very hard | 1,400 to 3,900 | 397 |
| Cottle County | 2,800 | 163.6 | Very hard | 1,700 to 3,610 | 884 |
| Foard County | 2,700 | 157.7 | Very hard | 2,000 to 3,000 | 301 |
| Hall County | 2,500 | 146 | Very hard | 1,800 to 4,000 | 404 |
| Knox County | 2,470 | 144.3 | Very hard | 1,310 to 3,100 | 1,155 |
| Ward County | 2,460 | 143.7 | Very hard | 2,020 to 2,580 | 5 |
| Kent County | 2,400 | 140.2 | Very hard | 1,300 to 4,100 | 361 |
| Howard County | 2,340 | 136.7 | Very hard | 1,200 to 5,400 | 106 |
| Reeves County | 2,300 | 134.4 | Very hard | 1,700 to 2,800 | 453 |
| Stonewall County | 2,130 | 124.4 | Very hard | 1,100 to 3,300 | 2,773 |
| Fisher County | 2,100 | 122.7 | Very hard | 1,280 to 2,300 | 37 |
| Dickens County | 2,000 | 116.8 | Very hard | 1,900 to 2,100 | 12 |
| Kenedy County | 2,000 | 116.8 | Very hard | 80 to 6,900 | 131 |
| Wilbarger County | 1,800 | 105.2 | Very hard | 1,200 to 2,300 | 145 |
| Armstrong County | 1,700 | 99.3 | Very hard | 910 to 2,400 | 349 |
| Collingsworth County | 1,500 | 87.6 | Very hard | 1,180 to 1,700 | 407 |
| Nueces County | 1,300 | 75.9 | Very hard | 510 to 5,300 | 483 |
| Calhoun County | 1,200 | 70.1 | Very hard | 300 to 3,600 | 365 |
| Wichita County | 1,160 | 67.8 | Very hard | 711 to 1,410 | 861 |
| Baylor County | 980 | 57.2 | Very hard | 780 to 1,700 | 1,515 |
| Scurry County | 945 | 55.2 | Very hard | 360 to 1,800 | 414 |
| Dawson County | 735 | 42.9 | Very hard | 735 to 805 | 3 |
| Jones County | 680 | 39.7 | Very hard | 304 to 1,600 | 1,488 |
| Concho County | 660 | 38.6 | Very hard | 470 to 770 | 362 |
| Mitchell County | 660 | 38.6 | Very hard | 263 to 1,200 | 2,043 |
| Young County | 651 | 38 | Very hard | 350 to 1,100 | 825 |
| Galveston County | 644 | 37.6 | Very hard | 200 to 2,800 | 797 |
| Coke County | 626 | 36.6 | Very hard | 340 to 1,100 | 1,083 |
| Terry County | 622 | 36.3 | Very hard | 467 to 818 | 24 |
| Cochran County | 599 | 35 | Very hard | 492 to 844 | 5 |
| Runnels County | 580 | 33.9 | Very hard | 290 to 900 | 859 |
| Garza County | 571 | 33.4 | Very hard | 209 to 1,200 | 508 |
| Hudspeth County | 563 | 32.9 | Very hard | 416 to 867 | 143 |
| Gaines County | 547 | 32 | Very hard | 411 to 695 | 19 |
| Presidio County | 510 | 29.8 | Very hard | 320 to 750 | 222 |
| Martin County | 509 | 29.7 | Very hard | 351 to 588 | 5 |
| Wheeler County | 500 | 29.2 | Very hard | 330 to 790 | 304 |
| Throckmorton County | 494 | 28.9 | Very hard | 328 to 821 | 91 |
| Hemphill County | 490 | 28.6 | Very hard | 380 to 559 | 225 |
| Palo Pinto County | 480 | 28 | Very hard | 410 to 593 | 731 |
| Shackelford County | 480 | 28 | Very hard | 250 to 895 | 2,150 |
| Yoakum County | 465 | 27.2 | Very hard | 307 to 650 | 22 |
| Hockley County | 449 | 26.2 | Very hard | 396 to 583 | 5 |
| Lubbock County | 440 | 25.7 | Very hard | 274 to 670 | 240 |
| Hood County | 420 | 24.5 | Very hard | 340 to 485 | 411 |
| Parker County | 420 | 24.5 | Very hard | 312 to 510 | 439 |
| Brown County | 413 | 24.1 | Very hard | 240 to 580 | 234 |
| Kleberg County | 410 | 24 | Very hard | 120 to 4,900 | 143 |
| Coleman County | 393 | 23 | Very hard | 280 to 610 | 335 |
| Lamb County | 379 | 22.1 | Very hard | 330 to 572 | 10 |
| Cameron County | 377 | 22 | Very hard | 310 to 790 | 674 |
| Terrell County | 372 | 21.7 | Very hard | 235 to 1,720 | 9 |
| Randall County | 365 | 21.3 | Very hard | 341 to 448 | 22 |
| Somervell County | 360 | 21 | Very hard | 286 to 423 | 91 |
| Kinney County | 320 | 18.7 | Very hard | 210 to 450 | 83 |
| Grayson County | 310 | 18.1 | Very hard | 113 to 390 | 950 |
| Karnes County | 305 | 17.8 | Very hard | 230 to 360 | 650 |
| Gillespie County | 304 | 17.8 | Very hard | 279 to 349 | 26 |
| Haskell County | 295 | 17.2 | Very hard | 220 to 430 | 20 |
| Hays County | 293 | 17.1 | Very hard | 250 to 325 | 1,281 |
| Lavaca County | 292 | 17.1 | Very hard | 245 to 328 | 15 |
| Goliad County | 290 | 16.9 | Very hard | 210 to 340 | 818 |
| Hidalgo County | 290 | 16.9 | Very hard | 270 to 319 | 606 |
| Tom Green County | 290 | 16.9 | Very hard | 220 to 470 | 370 |
| Val Verde County | 288 | 16.8 | Very hard | 250 to 413 | 1,683 |
| Potter County | 286 | 16.7 | Very hard | 222 to 420 | 1,416 |
| Aransas County | 285 | 16.6 | Very hard | 180 to 1,700 | 212 |
| Fayette County | 285 | 16.6 | Very hard | 150 to 290 | 46 |
| Bandera County | 284 | 16.6 | Very hard | 270 to 374 | 139 |
| Maverick County | 283 | 16.5 | Very hard | 270 to 295 | 24 |
| Duval County | 280 | 16.4 | Very hard | 180 to 490 | 87 |
| Nolan County | 280 | 16.4 | Very hard | 280 to 410 | 3 |
| Oldham County | 280 | 16.4 | Very hard | 170 to 390 | 305 |
| Bexar County | 274 | 16 | Very hard | 225 to 340 | 6,217 |
| Kendall County | 271 | 15.8 | Very hard | 240 to 299 | 71 |
| Bee County | 270 | 15.8 | Very hard | 150 to 440 | 254 |
| Bosque County | 270 | 15.8 | Very hard | 220 to 350 | 395 |
| Brewster County | 270 | 15.8 | Very hard | 63 to 370 | 192 |
| Culberson County | 270 | 15.8 | Very hard | 250 to 285 | 370 |
| Gray County | 270 | 15.8 | Very hard | 240 to 660 | 164 |
| Lampasas County | 270 | 15.8 | Very hard | 220 to 340 | 635 |
| Starr County | 269 | 15.7 | Very hard | 250 to 286 | 896 |
| Stephens County | 266 | 15.5 | Very hard | 208 to 377 | 2,334 |
| Irion County | 265 | 15.5 | Very hard | 215 to 295 | 48 |
| Johnson County | 265 | 15.5 | Very hard | 138 to 446 | 76 |
| Blanco County | 260 | 15.2 | Very hard | 230 to 280 | 160 |
| Caldwell County | 260 | 15.2 | Very hard | 180 to 313 | 837 |
| McMullen County | 260 | 15.2 | Very hard | 130 to 460 | 647 |
| Taylor County | 260 | 15.2 | Very hard | 198 to 352 | 187 |
| Webb County | 260 | 15.2 | Very hard | 238 to 280 | 454 |
| Zapata County | 260 | 15.2 | Very hard | 246 to 280 | 105 |
| Comal County | 259 | 15.1 | Very hard | 210 to 284 | 1,359 |
| Hutchinson County | 259 | 15.1 | Very hard | 244 to 274 | 1,121 |
| Sterling County | 253 | 14.8 | Very hard | 150 to 307 | 15 |
| Falls County | 250 | 14.6 | Very hard | 202 to 290 | 392 |
| Hill County | 250 | 14.6 | Very hard | 170 to 310 | 1,799 |
| Mills County | 250 | 14.6 | Very hard | 180 to 320 | 315 |
| Moore County | 250 | 14.6 | Very hard | 234 to 268 | 325 |
| Travis County | 250 | 14.6 | Very hard | 198 to 317 | 3,667 |
| Coryell County | 246 | 14.4 | Very hard | 209 to 275 | 69 |
| Burnet County | 240 | 14 | Very hard | 200 to 260 | 208 |
| Guadalupe County | 240 | 14 | Very hard | 212 to 271 | 590 |
| Refugio County | 240 | 14 | Very hard | 110 to 320 | 1,134 |
| San Saba County | 240 | 14 | Very hard | 210 to 260 | 141 |
| Frio County | 235 | 13.7 | Very hard | 170 to 290 | 90 |
| Ochiltree County | 234 | 13.7 | Very hard | 205 to 287 | 11 |
| Castro County | 232 | 13.6 | Very hard | 217 to 336 | 6 |
| Medina County | 231 | 13.5 | Very hard | 220 to 243 | 733 |
| Comanche County | 230 | 13.4 | Very hard | 195 to 289 | 449 |
| Menard County | 230 | 13.4 | Very hard | 190 to 260 | 11 |
| Uvalde County | 230 | 13.4 | Very hard | 210 to 261 | 1,173 |
| Lipscomb County | 226 | 13.2 | Very hard | 200 to 260 | 31 |
| Kerr County | 225 | 13.1 | Very hard | 210 to 296 | 42 |
| El Paso County | 224 | 13.1 | Very hard | 165 to 356 | 901 |
| Bastrop County | 220 | 12.9 | Very hard | 180 to 260 | 482 |
| Deaf Smith County | 220 | 12.9 | Very hard | 220 to 313 | 3 |
| Hartley County | 220 | 12.9 | Very hard | 189 to 340 | 49 |
| Matagorda County | 220 | 12.9 | Very hard | 140 to 310 | 848 |
| Victoria County | 220 | 12.9 | Very hard | 170 to 250 | 899 |
| Sherman County | 219 | 12.8 | Very hard | 190 to 231 | 17 |
| Hale County | 213 | 12.4 | Very hard | 178 to 320 | 13 |
| Kimble County | 213 | 12.4 | Very hard | 202 to 222 | 12 |
| Live Oak County | 211 | 12.3 | Very hard | 180 to 290 | 559 |
| Brazoria County | 210 | 12.3 | Very hard | 150 to 300 | 1,430 |
| Donley County | 210 | 12.3 | Very hard | 190 to 340 | 168 |
| Gonzales County | 210 | 12.3 | Very hard | 95 to 262 | 553 |
| Lamar County | 210 | 12.3 | Very hard | 140 to 270 | 416 |
| Milam County | 210 | 12.3 | Very hard | 180 to 230 | 577 |
| Wharton County | 210 | 12.3 | Very hard | 180 to 240 | 410 |
| Grimes County | 205 | 12 | Very hard | 61 to 310 | 148 |
| Colorado County | 203 | 11.9 | Very hard | 187 to 231 | 175 |
| Williamson County | 202 | 11.8 | Very hard | 178 to 240 | 875 |
| Carson County | 201 | 11.7 | Very hard | 182 to 213 | 8 |
| Austin County | 200 | 11.7 | Very hard | 160 to 230 | 198 |
| Edwards County | 200 | 11.7 | Very hard | 185 to 249 | 13 |
| Parmer County | 200 | 11.7 | Very hard | 200 to 271 | 3 |
| Real County | 196 | 11.4 | Very hard | 189 to 208 | 13 |
| Freestone County | 195 | 11.4 | Very hard | 135 to 260 | 753 |
| Bell County | 190 | 11.1 | Very hard | 170 to 220 | 1,039 |
| Brooks County | 190 | 11.1 | Very hard | 130 to 330 | 134 |
| DeWitt County | 190 | 11.1 | Very hard | 120 to 240 | 475 |
| Fort Bend County | 190 | 11.1 | Very hard | 149 to 240 | 1,418 |
| Jim Wells County | 187 | 10.9 | Very hard | 159 to 226 | 175 |
| Llano County | 185 | 10.8 | Very hard | 167 to 203 | 112 |
| Dallam County | 183 | 10.7 | Very hard | 83 to 213 | 15 |
| Briscoe County | 180 | 10.5 | Hard | 130 to 300 | 107 |
| Hansford County | 180 | 10.5 | Hard | 130 to 220 | 100 |
| San Patricio County | 180 | 10.5 | Hard | 150 to 260 | 492 |
| Atascosa County | 170 | 9.9 | Hard | 58 to 230 | 178 |
| Clay County | 170 | 9.9 | Hard | 86 to 530 | 1,110 |
| Eastland County | 170 | 9.9 | Hard | 160 to 190 | 27 |
| Montague County | 170 | 9.9 | Hard | 94 to 240 | 23 |
| Fannin County | 165 | 9.6 | Hard | 135 to 200 | 80 |
| Dallas County | 162 | 9.5 | Hard | 138 to 198 | 4,135 |
| McCulloch County | 160 | 9.3 | Hard | 80 to 276 | 104 |
| McLennan County | 160 | 9.3 | Hard | 140 to 200 | 722 |
| Navarro County | 160 | 9.3 | Hard | 130 to 210 | 1,175 |
| Wise County | 160 | 9.3 | Hard | 120 to 345 | 73 |
| Dimmit County | 159 | 9.3 | Hard | 130 to 200 | 26 |
| Borden County | 151 | 8.8 | Hard | 151 to 277 | 3 |
| Waller County | 151 | 8.8 | Hard | 120 to 180 | 42 |
| Burleson County | 150 | 8.8 | Hard | 93 to 260 | 607 |
| Callahan County | 150 | 8.8 | Hard | 110 to 170 | 28 |
| Chambers County | 150 | 8.8 | Hard | 92 to 248 | 674 |
| Ellis County | 150 | 8.8 | Hard | 130 to 170 | 1,122 |
| Houston County | 143 | 8.4 | Hard | 126 to 160 | 1,119 |
| Tarrant County | 140 | 8.2 | Hard | 118 to 172 | 2,596 |
| Zavala County | 137 | 8 | Hard | 110 to 192 | 16 |
| Collin County | 134 | 7.8 | Hard | 111 to 165 | 536 |
| Kaufman County | 134 | 7.8 | Hard | 120 to 159 | 714 |
| Washington County | 132 | 7.7 | Hard | 104 to 190 | 453 |
| Franklin County | 130 | 7.6 | Hard | 73 to 190 | 749 |
| Madison County | 130 | 7.6 | Hard | 82 to 160 | 84 |
| Archer County | 124 | 7.2 | Hard | 120 to 153 | 27 |
| Brazos County | 120 | 7 | Moderately hard | 74 to 200 | 1,147 |
| Erath County | 120 | 7 | Moderately hard | 100 to 180 | 25 |
| Jackson County | 120 | 7 | Moderately hard | 77 to 210 | 1,623 |
| Lee County | 120 | 7 | Moderately hard | 66 to 180 | 43 |
| Trinity County | 120 | 7 | Moderately hard | 90 to 145 | 889 |
| Van Zandt County | 120 | 7 | Moderately hard | 74 to 220 | 634 |
| Wilson County | 120 | 7 | Moderately hard | 71 to 296 | 108 |
| Denton County | 119 | 7 | Moderately hard | 105 to 140 | 4,607 |
| Rockwall County | 117 | 6.8 | Moderately hard | 101 to 134 | 548 |
| San Jacinto County | 114 | 6.7 | Moderately hard | 96 to 126 | 1,799 |
| Delta County | 110 | 6.4 | Moderately hard | 80 to 150 | 688 |
| Henderson County | 110 | 6.4 | Moderately hard | 64 to 150 | 483 |
| Polk County | 110 | 6.4 | Moderately hard | 80 to 126 | 1,563 |
| Limestone County | 106 | 6.2 | Moderately hard | 78 to 180 | 710 |
| Cooke County | 104 | 6.1 | Moderately hard | 95 to 124 | 849 |
| Liberty County | 102 | 6 | Moderately hard | 46 to 123 | 2,373 |
| Crosby County | 100 | 5.8 | Moderately hard | 88 to 130 | 27 |
| Leon County | 100 | 5.8 | Moderately hard | 80 to 140 | 270 |
| Harris County | 98 | 5.7 | Moderately hard | 56 to 210 | 6,709 |
| Jack County | 94 | 5.5 | Moderately hard | 90 to 98 | 4 |
| Bowie County | 87 | 5.1 | Moderately hard | 71 to 170 | 178 |
| Walker County | 85 | 5 | Moderately hard | 63 to 132 | 1,227 |
| Jefferson County | 84 | 4.9 | Moderately hard | 49 to 260 | 1,093 |
| Hunt County | 83 | 4.8 | Moderately hard | 73 to 130 | 896 |
| Robertson County | 82 | 4.8 | Moderately hard | 69 to 91 | 126 |
| Hopkins County | 79 | 4.6 | Moderately hard | 71 to 86 | 201 |
| Rains County | 75 | 4.4 | Moderately hard | 65 to 82 | 286 |
| Montgomery County | 72 | 4.2 | Moderately hard | 59 to 86 | 3,508 |
| Cass County | 70 | 4.1 | Moderately hard | 27 to 84 | 503 |
| Rusk County | 68 | 4 | Moderately hard | 46 to 90 | 298 |
| Morris County | 67 | 3.9 | Moderately hard | 39 to 95 | 233 |
| Wood County | 64 | 3.7 | Moderately hard | 48 to 92 | 1,768 |
| Titus County | 62 | 3.6 | Moderately hard | 41 to 83 | 820 |
| Jeff Davis County | 61 | 3.6 | Moderately hard | 42 to 83 | 58 |
| Smith County | 60 | 3.5 | Soft | 45 to 80 | 516 |
| Panola County | 59 | 3.4 | Soft | 47 to 70 | 792 |
| Shelby County | 57 | 3.3 | Soft | 44 to 69 | 256 |
| Gregg County | 53 | 3.1 | Soft | 41 to 65 | 782 |
| Red River County | 51 | 3 | Soft | 36 to 84 | 166 |
| Anderson County | 46 | 2.7 | Soft | 40 to 80 | 495 |
| La Salle County | 46 | 2.7 | Soft | 13 to 240 | 150 |
| Nacogdoches County | 45 | 2.6 | Soft | 34 to 53 | 423 |
| Orange County | 45 | 2.6 | Soft | 31 to 220 | 807 |
| Cherokee County | 42 | 2.5 | Soft | 37 to 49 | 878 |
| Angelina County | 41 | 2.4 | Soft | 34 to 53 | 1,415 |
| Camp County | 37 | 2.2 | Soft | 26 to 66 | 98 |
| Jasper County | 34 | 2 | Soft | 29 to 41 | 1,323 |
| Tyler County | 34 | 2 | Soft | 24 to 42 | 663 |
| Upshur County | 34 | 2 | Soft | 27 to 43 | 496 |
| Newton County | 32 | 1.9 | Soft | 27 to 36 | 1,672 |
| Sabine County | 32 | 1.9 | Soft | 28 to 36 | 268 |
| San Augustine County | 32 | 1.9 | Soft | 27 to 44 | 126 |
| Harrison County | 30 | 1.8 | Soft | 24 to 38 | 542 |
| Marion County | 28 | 1.6 | Soft | 20 to 33 | 682 |
| Hardin County | 22 | 1.3 | Soft | 18 to 32 | 732 |
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 Texas
At 11.1 grains per gallon, a family of four would need a softener of about 24,000 grains to regenerate roughly weekly, using around 454 lb of salt a year. Size it for your own household.
176 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.