Skip to main content
💧 TapWaterData

Water Hardness in Alabama

Across 299 measured cities — with 86 more covered by labeled county-level estimates — Alabama's median tap water hardness is 65.7 mg/L (3.8 gpg): moderately hard on the USGS scale. Below: every covered city, the state's hardest and softest water, and the geology that explains it.

Data updated July 6, 2026. Sources: utility-reported water quality data and USGS/EPA Water Quality Portal samples.

State Median
65.7
mg/L (3.8 gpg), measured cities
Measured Range
0.5-263.0
mg/L across measured cities
Measured Cities
299
utility-reported or computed values
County Estimates
86
22% of covered cities

Alabama Cities by Hardness Category

Measured cities only — labeled county estimates never enter the category counts or the median.

CategoryRangeMeasured citiesShare
Soft0-60 mg/L13946.5%
Moderately hard60-120 mg/L10334.4%
Hard120-180 mg/L4715.7%
Very hard>180 mg/L103.3%

Hardest and Softest Water in Alabama

Measured values only; labeled county estimates and values under active dispute never rank.

Hardest water in Alabama

  1. Montevallo 263.0 mg/L (15.4 gpg), very hard
  2. Harpersville 242.0 mg/L (14.2 gpg), very hard
  3. Wilsonville 215.0 mg/L (12.6 gpg), very hard
  4. Calera 196.0 mg/L (11.5 gpg), very hard
  5. Alabaster 193.0 mg/L (11.3 gpg), very hard

Softest water in Alabama

  1. Banks 0.5 mg/L (0.0 gpg), soft
  2. Pine Level 1.2 mg/L (0.1 gpg), soft
  3. Faunsdale 1.4 mg/L (0.1 gpg), soft
  4. Frankville 1.9 mg/L (0.1 gpg), soft
  5. Butler 2.0 mg/L (0.1 gpg), soft

Every Covered City in Alabama

All 385 covered Alabama cities, sorted by population served. "County estimate" rows are labeled context values from USGS/EPA Water Quality Portal county sampling — they never enter the median above. City names link to each city's full water quality page.

CityHardness (mg/L)gpgCategoryData
Lipscomb76.74.5Moderately hardUtility-reported
Irondale78.74.6Moderately hardUtility-reported
Birmingham76.74.5Moderately hardUtility-reported
Center Point76.74.5Moderately hardUtility-reported
Forestdale76.74.5Moderately hardUtility-reported
Homewood76.74.5Moderately hardUtility-reported
McDonald Chapel76.74.5Moderately hardUtility-reported
Minor76.74.5Moderately hardUtility-reported
Mountain Brook76.74.5Moderately hardUtility-reported
Mobile30.51.8SoftUtility-reported
Redstone Arsenal95.65.6Moderately hardUtility-reported
Triana100.05.8Moderately hardUtility-reported
Huntsville100.05.8Moderately hardUtility-reported
Montgomery37.92.2SoftUtility-reported
Pike Road38.32.2SoftUtility-reported
Tuscaloosa32.31.9SoftUtility-reported
Cottondale32.31.9SoftUtility-reported
Holt32.31.9SoftUtility-reported
Bessemer113.06.6Moderately hardUtility-reported
Decatur74.54.4Moderately hardUtility-reported
Dothan98.95.8Moderately hardUtility-reported
Napier Field99.95.8Moderately hardUtility-reported
Moores Mill67.13.9Moderately hardUtility-reported
Grimes99.95.8Moderately hardUtility-reported
Cullman40.02.3SoftCounty estimate
Athens111.76.5Moderately hardUtility-reported
Florence62.23.6Moderately hardUtility-reported
Hobson City83.64.9Moderately hardUtility-reported
St. Florian65.73.8Moderately hardUtility-reported
Underwood-Petersville65.73.8Moderately hardUtility-reported
Opelika29.31.7SoftUtility-reported
Auburn73.04.3Moderately hardUtility-reported
Prattville19.11.1SoftUtility-reported
Gadsden63.23.7Moderately hardUtility-reported
Fairhope27.31.6SoftUtility-reported
Point Clear27.31.6SoftUtility-reported
Anniston62.83.7Moderately hardUtility-reported
Saks62.83.7Moderately hardUtility-reported
Northport39.62.3SoftUtility-reported
Madison112.06.5Moderately hardUtility-reported
Daphne28.81.7SoftUtility-reported
Harvest77.54.5Moderately hardUtility-reported
Jasper51.43.0SoftUtility-reported
Columbiana86.25.0Moderately hardUtility-reported
Enterprise95.45.6Moderately hardUtility-reported
Lookout Mountain72.34.2Moderately hardUtility-reported
Whitesboro72.34.2Moderately hardUtility-reported
Eclectic23.31.4SoftUtility-reported
Foley17.31.0SoftUtility-reported
Muscle Shoals70.94.2Moderately hardUtility-reported
Alabaster193.011.3Very hardUtility-reported
Theodore11.10.7SoftUtility-reported
Tillmans Corner11.10.7SoftUtility-reported
Citronelle3.40.2SoftUtility-reported
Pelham169.09.9HardUtility-reported
Hueytown113.06.6Moderately hardUtility-reported
North Johns113.06.6Moderately hardUtility-reported
Tuscumbia119.77.0Moderately hardUtility-reported
Gulf Shores26.51.6SoftUtility-reported
Trussville155.09.1HardUtility-reported
Shelby72.64.3Moderately hardUtility-reported
Prichard29.21.7SoftUtility-reported
Rainsville68.74.0Moderately hardUtility-reported
Arab78.74.6Moderately hardUtility-reported
Troy11.60.7SoftComputed from Ca+Mg
Albertville34.02.0SoftUtility-reported
Sheffield72.84.3Moderately hardUtility-reported
Jemison96.45.6Moderately hardUtility-reported
Alexandria110.06.4Moderately hardUtility-reported
Thorsby88.25.2Moderately hardUtility-reported
Alexander City21.11.2SoftUtility-reported
Selma74.34.3Moderately hardUtility-reported
Scottsboro78.24.6Moderately hardUtility-reported
Sylacauga93.65.5Moderately hardUtility-reported
Bay Minette17.91.1SoftUtility-reported
Oxford125.07.3HardUtility-reported
Andalusia47.42.8SoftUtility-reported
Ozark19.41.1SoftUtility-reported
Talladega134.07.8HardUtility-reported
Saraland34.12.0SoftUtility-reported
Somerville80.04.7Moderately hardCounty estimate
Fort Payne126.07.4HardUtility-reported
Pine Ridge126.07.4HardUtility-reported
Calera196.011.5Very hardUtility-reported
Mignon86.85.1Moderately hardUtility-reported
Southside112.06.5Moderately hardUtility-reported
Odenville124.07.3HardUtility-reported
Greenville7.40.4SoftUtility-reported
Hartselle80.04.7Moderately hardCounty estimate
Russellville88.55.2Moderately hardUtility-reported
Leeds147.08.6HardUtility-reported
Cleveland121.67.1HardUtility-reported
Helena190.011.1Very hardUtility-reported
Nectar126.07.4HardUtility-reported
Eufaula2.10.1SoftComputed from Ca+Mg
Tuskegee65.33.8Moderately hardUtility-reported
Pell City153.69.0HardUtility-reported
Boaz62.73.7Moderately hardCounty estimate
Oneonta116.06.8Moderately hardUtility-reported
Stevenson76.84.5Moderately hardUtility-reported
Rainbow City111.06.5Moderately hardUtility-reported
Piedmont114.26.7Moderately hardUtility-reported
Orange Beach11.70.7SoftUtility-reported
Tallassee12.40.7SoftUtility-reported
Grant71.64.2Moderately hardUtility-reported
Roanoke33.52.0SoftUtility-reported
Dadeville11.40.7SoftCounty estimate
Millbrook11.10.7SoftUtility-reported
Jackson97.85.7Moderately hardUtility-reported
Vinemont40.02.3SoftCounty estimate
Fort Rucker84.54.9Moderately hardUtility-reported
Ft. Rucker84.54.9Moderately hardUtility-reported
Douglas48.62.8SoftUtility-reported
Robertsdale12.40.7SoftUtility-reported
Spanish Fort31.11.8SoftUtility-reported
Carrollton15.60.9SoftUtility-reported
Livingston29.81.7SoftUtility-reported
Rogersville41.72.4SoftUtility-reported
Ider65.73.8Moderately hardUtility-reported
Atmore25.01.5SoftUtility-reported
Moulton87.65.1Moderately hardCounty estimate
Attalla133.77.8HardUtility-reported
River Falls53.73.1SoftUtility-reported
Greensboro27.31.6SoftUtility-reported
Jacksonville120.07.0Moderately hardUtility-reported
Elmore34.82.0SoftUtility-reported
Ft Mitchell24.21.4SoftUtility-reported
Clanton53.23.1SoftUtility-reported
Selmont-West Selmont50.43.0SoftUtility-reported
Evergreen67.03.9Moderately hardUtility-reported
Satsuma29.91.8SoftUtility-reported
Loachapoka122.07.1HardUtility-reported
Guntersville69.24.0Moderately hardUtility-reported
Fayette53.23.1SoftUtility-reported
Heflin24.91.5SoftUtility-reported
Coosada10.70.6SoftUtility-reported
Haleyville20.01.2SoftCounty estimate
Ralph20.11.2SoftUtility-reported
Brookwood134.07.8HardUtility-reported
Vance134.07.8HardUtility-reported
Grand Bay44.62.6SoftUtility-reported
Hokes Bluff112.06.5Moderately hardUtility-reported
Elberta8.80.5SoftUtility-reported
Demopolis4.40.3SoftUtility-reported
Hamilton38.22.2SoftUtility-reported
Lincoln76.34.5Moderately hardCounty estimate
Loxley24.71.4SoftUtility-reported
Wetumpka30.01.8SoftCounty estimate
Daleville43.32.5SoftUtility-reported
Opp111.06.5Moderately hardUtility-reported
Fayetteville128.07.5HardUtility-reported
Monroeville7.10.4SoftUtility-reported
Vernon40.72.4SoftUtility-reported
Brewton85.15.0Moderately hardUtility-reported
Childersburg157.09.2HardUtility-reported
Montevallo263.015.4Very hardUtility-reported
Linden71.54.2Moderately hardCounty estimate
Taylor62.13.6Moderately hardUtility-reported
Graysville150.08.8HardCounty estimate
Deatsville30.01.8SoftCounty estimate
Valley Grande39.52.3SoftUtility-reported
Eutaw13.40.8SoftUtility-reported
Guin38.32.2SoftUtility-reported
Geneva62.13.6Moderately hardUtility-reported
Marbury36.42.1SoftUtility-reported
Green Pond146.08.5HardUtility-reported
Winfield34.82.0SoftUtility-reported
Woodstock146.08.5HardUtility-reported
Pollard67.43.9Moderately hardUtility-reported
Sardis City20.41.2SoftUtility-reported
Highland Home33.21.9SoftUtility-reported
Lapine35.42.1SoftCounty estimate
Ramer70.04.1Moderately hardCounty estimate
Gilbertown25.61.5SoftUtility-reported
Bayou La Batre46.82.7SoftUtility-reported
Ashville185.010.8Very hardUtility-reported
Wedowee35.72.1SoftUtility-reported
Tallassees12.40.7SoftUtility-reported
Hanceville141.08.3HardUtility-reported
Phil Campbell101.05.9Moderately hardCounty estimate
Lanett30.11.8SoftCounty estimate
Valley30.11.8SoftCounty estimate
Bakerhill36.32.1SoftUtility-reported
Centre59.03.5SoftUtility-reported
Marion87.55.1Moderately hardUtility-reported
Brent150.08.8HardUtility-reported
Wilsonville215.012.6Very hardUtility-reported
Hayneville5.30.3SoftUtility-reported
Weaver183.010.7Very hardUtility-reported
Cropwell106.06.2Moderately hardUtility-reported
Glencoe168.09.8HardUtility-reported
Eight Mile3.30.2SoftUtility-reported
Locust Fork90.05.3Moderately hardCounty estimate
Autaugaville7.90.5SoftUtility-reported
Mulga150.08.8HardCounty estimate
Lineville45.32.6SoftUtility-reported
Margaret70.04.1Moderately hardCounty estimate
Double Springs20.01.2SoftCounty estimate
New Hope103.06.0Moderately hardCounty estimate
Owens Cross Roads103.06.0Moderately hardCounty estimate
Springville149.08.7HardUtility-reported
New Brockton128.07.5HardUtility-reported
Sumiton84.85.0Moderately hardCounty estimate
Centreville132.07.7HardUtility-reported
Snead73.84.3Moderately hardUtility-reported
Parrish84.85.0Moderately hardCounty estimate
Dauphin Island46.02.7SoftUtility-reported
Headland173.010.1HardUtility-reported
Aliceville11.30.7SoftUtility-reported
Bridgeport72.64.3Moderately hardUtility-reported
Brantley126.07.4HardUtility-reported
Elba105.06.1Moderately hardUtility-reported
Hope Hull3.10.2SoftUtility-reported
Grove Hill9.50.6SoftUtility-reported
Peterman10.10.6SoftUtility-reported
Chatom70.74.1Moderately hardUtility-reported
Joppa40.02.3SoftCounty estimate
Oakman84.85.0Moderately hardCounty estimate
Coker68.14.0Moderately hardUtility-reported
Berry27.71.6SoftUtility-reported
Riverside110.06.4Moderately hardUtility-reported
Butler2.00.1SoftUtility-reported
Munford124.07.3HardUtility-reported
Moundville31.51.8SoftUtility-reported
Abbeville127.07.4HardUtility-reported
Hartford121.07.1HardUtility-reported
Blountsville127.07.4HardUtility-reported
Cedar Bluff60.03.5SoftCounty estimate
West Blocton141.08.3HardUtility-reported
Samson94.05.5Moderately hardUtility-reported
Dora150.08.8HardCounty estimate
Myrtlewood40.62.4SoftUtility-reported
Mytrlewood40.62.4SoftUtility-reported
Rockford50.02.9SoftCounty estimate
Union Springs6.30.4SoftUtility-reported
Cordova84.85.0Moderately hardCounty estimate
Luverne24.91.5SoftUtility-reported
Axis10.80.6SoftUtility-reported
Level Plains94.95.5Moderately hardUtility-reported
Ashford86.95.1Moderately hardUtility-reported
Collinsville50.02.9SoftCounty estimate
Sardis40.72.4SoftUtility-reported
Brundidge7.00.4SoftUtility-reported
Brundige7.00.4SoftUtility-reported
Buhl57.13.3SoftUtility-reported
Gordo6.90.4SoftUtility-reported
Excel24.81.4SoftUtility-reported
Slocomb40.62.4SoftUtility-reported
Cottonwood139.08.1HardUtility-reported
Lisman6.50.4SoftUtility-reported
Steele70.04.1Moderately hardCounty estimate
Uniontown2.90.2SoftUtility-reported
York10.60.6SoftUtility-reported
Uriah7.70.5SoftUtility-reported
Alpine127.07.4HardUtility-reported
Quinton84.85.0Moderately hardCounty estimate
Ragland150.08.8HardUtility-reported
Reece City115.86.8Moderately hardUtility-reported
Bear Creek12.90.8SoftCounty estimate
Carbon Hill30.01.8SoftCounty estimate
Sterrett80.04.7Moderately hardCounty estimate
Valley Head138.08.1HardUtility-reported
Wilton133.07.8HardUtility-reported
Florala159.09.3HardUtility-reported
East Brewton109.06.4Moderately hardUtility-reported
Union Grove60.03.5SoftCounty estimate
Lexington59.23.5SoftCounty estimate
Ashland21.11.2SoftCounty estimate
Georgiana7.00.4SoftUtility-reported
Midland City56.93.3SoftUtility-reported
Fulton128.07.5HardUtility-reported
Notasulga34.02.0SoftCounty estimate
Avon106.06.2Moderately hardUtility-reported
Vincent111.06.5Moderately hardUtility-reported
Coffeeville103.06.0Moderately hardUtility-reported
Trinity87.65.1Moderately hardCounty estimate
Pine Level1.20.1SoftUtility-reported
Sulligent6.40.4SoftUtility-reported
Remlap90.05.3Moderately hardCounty estimate
Addison20.01.2SoftCounty estimate
Hayden90.05.3Moderately hardCounty estimate
Brookside150.08.8HardCounty estimate
Goodwater50.02.9SoftCounty estimate
Mexia77.64.5Moderately hardUtility-reported
Hackleburg12.90.8SoftCounty estimate
Leighton60.53.5Moderately hardUtility-reported
Townley84.85.0Moderately hardCounty estimate
Flomaton35.52.1SoftUtility-reported
Hodges10.30.6SoftUtility-reported
Reform7.30.4SoftUtility-reported
Pine Hill50.73.0SoftCounty estimate
Dickinson50.02.9SoftCounty estimate
Harpersville242.014.2Very hardUtility-reported
Cowarts106.06.2Moderately hardUtility-reported
Fort Deposit139.08.1HardUtility-reported
Newton109.06.4Moderately hardUtility-reported
Millry7.60.4SoftCounty estimate
Kinston99.05.8Moderately hardUtility-reported
Frisco City38.82.3SoftUtility-reported
Nauvoo84.85.0Moderately hardCounty estimate
Clayton34.22.0SoftUtility-reported
Kinsey130.07.6HardUtility-reported
Mosses39.12.3SoftUtility-reported
Crossville73.34.3Moderately hardUtility-reported
Cherokee86.05.0Moderately hardCounty estimate
Ranburne15.60.9SoftCounty estimate
Kellyton50.02.9SoftCounty estimate
Pennington2.70.2SoftUtility-reported
Lynn20.01.2SoftCounty estimate
Mount Vernon32.51.9SoftUtility-reported
Mt. Vernon32.51.9SoftUtility-reported
Summerdale27.31.6SoftUtility-reported
Webb129.07.5HardUtility-reported
Fruitdale7.60.4SoftCounty estimate
Leroy16.61.0SoftUtility-reported
Midway4.30.3SoftUtility-reported
Malvern109.06.4Moderately hardUtility-reported
Eldridge4.70.3SoftUtility-reported
Ohatchee90.05.3Moderately hardCounty estimate
Brilliant46.32.7SoftUtility-reported
Silverhill14.50.8SoftUtility-reported
Town Creek87.65.1Moderately hardCounty estimate
Millerville21.11.2SoftCounty estimate
Tibbie7.60.4SoftCounty estimate
Camp Hill11.40.7SoftCounty estimate
Glen Allen8.20.5SoftUtility-reported
Ardmore67.54.0Moderately hardCounty estimate
Auturgaville5.60.3SoftUtility-reported
Billingsley54.63.2SoftUtility-reported
Woodland15.00.9SoftComputed from Ca+Mg
Falkville80.04.7Moderately hardCounty estimate
Millport13.40.8SoftUtility-reported
Louisville20.01.2SoftCounty estimate
Pisgah54.63.2SoftUtility-reported
Pinckard8.20.5SoftUtility-reported
Vina101.05.9Moderately hardCounty estimate
Jack181.010.6Very hardUtility-reported
Hollins21.11.2SoftCounty estimate
Banks0.50.0SoftComputed from Ca+Mg
Ariton172.010.1HardUtility-reported
Walnut Grove96.95.7Moderately hardUtility-reported
White Hall8.30.5SoftUtility-reported
Hurtsboro30.01.8SoftCounty estimate
Columbia19.41.1SoftCounty estimate
McKenzie39.92.3SoftUtility-reported
Wadley20.01.2SoftCounty estimate
Altoona118.06.9Moderately hardUtility-reported
Gurley103.06.0Moderately hardCounty estimate
Forkland2.90.2SoftUtility-reported
Maplesville50.02.9SoftCounty estimate
Randolph69.34.0Moderately hardCounty estimate
Lowndesboro7.90.5SoftUtility-reported
Castleberry116.06.8Moderately hardUtility-reported
Thomaston14.20.8SoftUtility-reported
Frankville1.90.1SoftUtility-reported
Newville193.011.3Very hardUtility-reported
Riverview74.54.4Moderately hardUtility-reported
Rutledge81.64.8Moderately hardUtility-reported
Belk30.01.8SoftCounty estimate
Red Level65.93.9Moderately hardUtility-reported
Allgood106.86.3Moderately hardComputed from Ca+Mg
Gantt22.91.3SoftCounty estimate
Garden City40.02.3SoftCounty estimate
St. Stephens95.65.6Moderately hardUtility-reported
Kennedy48.02.8SoftUtility-reported
Lockhart127.07.4HardUtility-reported
Daviston11.40.7SoftCounty estimate
Clio20.01.2SoftCounty estimate
Dozier166.09.7HardUtility-reported
Beatrice10.20.6SoftUtility-reported
Cuba54.33.2SoftCounty estimate
Shorterville19.41.1SoftCounty estimate
Akron49.02.9SoftCounty estimate
Goshen83.24.9Moderately hardUtility-reported
Repton123.07.2HardUtility-reported
Detroit5.30.3SoftUtility-reported
Orrville4.30.3SoftUtility-reported
Orville4.30.3SoftUtility-reported
Faunsdale1.40.1SoftUtility-reported
Gordon154.09.0HardUtility-reported
Black107.06.3Moderately hardUtility-reported
Kansas84.85.0Moderately hardCounty estimate
Tanner71.44.2Moderately hardUtility-reported
Glenwood20.01.2SoftCounty estimate
Franklin45.52.7SoftCounty estimate

Above 120 mg/L (7 gpg), scale is usually worth treating — see our water softener guide, or size a system with the hardness calculator & converter.

The Geology Behind Alabama's Water Hardness

Alabama sits in the Southeastern Coastal Plain and Piedmont region.

Much of the Southeast draws its water from sandy Coastal Plain aquifers and from rivers draining crystalline Piedmont rock - neither contributes much dissolved calcium or magnesium. As a result the USGS maps most of the region as soft to moderately hard. Hardness climbs where supplies tap deeper limestone units near the Gulf and Atlantic coasts.

Source: USGS Water Science School - Hardness of Water

Alabama Water Hardness FAQ

Does Alabama have hard water?

On the whole, no — Alabama's statewide median sits below the hard threshold, though some cities run harder. The median is 65.7 mg/L (3.8 gpg) — moderately hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 57 of Alabama's 299 measured cities fall in the hard or very hard bands (19%), so check your own city rather than the state average.

How hard is tap water in Alabama?

Across the 299 Alabama cities with measured values in our index, the median hardness is 65.7 mg/L (3.8 gpg) — moderately hard on the USGS scale. Individual cities range from 0.5 to 263.0 mg/L, so check your own city rather than assuming the state number.

Which city in Alabama has the hardest water?

Montevallo has the hardest measured tap water in our Alabama index at 263.0 mg/L (15.4 gpg) — very hard on the USGS scale. Rankings use measured utility values only; labeled county estimates and values under active dispute are excluded.

Do I need a water softener in Alabama?

57 of Alabama's 299 measured cities (19%) fall in the hard or very hard bands — above 120 mg/L (7 gpg), the level where most water treatment professionals suggest considering an ion-exchange softener. Hardness varies utility to utility, so look up your own city's value before sizing equipment.

How do I find my city's exact water hardness?

Enter your ZIP code in our free lookup at tapwaterdata.com/zip to see the value we hold for your Alabama city from utility-reported water quality data, check your water utility's annual Consumer Confidence Report (CCR), or use a home test-strip kit.

Stay Informed About Your Water Quality

Get EPA reports, filter recommendations, and safety alerts for your area.

Join 10,000+ people protecting their families. Unsubscribe anytime.