Water Hardness in Ohio
Across 130 measured cities — with 431 more covered by labeled county-level estimates — Ohio's median tap water hardness is 111.0 mg/L (6.5 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.
Ohio Cities by Hardness Category
Measured cities only — labeled county estimates never enter the category counts or the median.
| Category | Range | Measured cities | Share |
|---|---|---|---|
| Soft | 0-60 mg/L | 8 | 6.2% |
| Moderately hard | 60-120 mg/L | 85 | 65.4% |
| Hard | 120-180 mg/L | 29 | 22.3% |
| Very hard | >180 mg/L | 8 | 6.2% |
Hardest and Softest Water in Ohio
Measured values only; labeled county estimates and values under active dispute never rank.
Hardest water in Ohio
- Columbus Grove — 460.0 mg/L (26.9 gpg), very hard
- Bryan — 380.0 mg/L (22.2 gpg), very hard
- New Lexington — 324.0 mg/L (18.9 gpg), very hard
- Thornport — 324.0 mg/L (18.9 gpg), very hard
- Rutland — 316.0 mg/L (18.5 gpg), very hard
Every Covered City in Ohio
All 561 covered Ohio 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.
| City | Hardness (mg/L) | gpg | Category | Data |
|---|---|---|---|---|
| Reynoldsburg | 96.8 | 5.7 | Moderately hard | Utility-reported |
| Gahanna | 96.2 | 5.6 | Moderately hard | Utility-reported |
| Columbus | 97.1 | 5.7 | Moderately hard | Utility-reported |
| Pickerington | 96.8 | 5.7 | Moderately hard | Utility-reported |
| Bratenahl | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Cleveland | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Cuyahoga Heights | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Fairview Park | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Linndale | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Newburgh Heights | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Pataskala | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Brice | 96.8 | 5.7 | Moderately hard | Utility-reported |
| Bexley | 96.6 | 5.7 | Moderately hard | Utility-reported |
| Canal Winchester | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Grandview Heights | 96.8 | 5.7 | Moderately hard | Utility-reported |
| Minerva Park | 96.9 | 5.7 | Moderately hard | Utility-reported |
| Groveport | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Obetz | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Lockbourne | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Dublin | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Blacklick Estates | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Grove City | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Hilliard | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Lincoln Village | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Marble Cliff | 96.7 | 5.7 | Moderately hard | Utility-reported |
| New Albany | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Riverlea | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Upper Arlington | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Urbancrest | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Valleyview | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Whitehall | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Worthington | 96.7 | 5.7 | Moderately hard | Utility-reported |
| Norwood | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Madison Place | 113.7 | 6.7 | Moderately hard | Utility-reported |
| Arlington Heights | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Addyston | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Cincinnati | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Delshire | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Elmwood Place | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Fairfax | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Golf Manor | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Salem Heights | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Silverton | 113.0 | 6.6 | Moderately hard | Utility-reported |
| St. Bernard | 113.0 | 6.6 | Moderately hard | Utility-reported |
| Toledo | 75.9 | 4.4 | Moderately hard | Utility-reported |
| Ottawa Hills | 75.9 | 4.4 | Moderately hard | Utility-reported |
| West Carrollton | 147.1 | 8.6 | Hard | Utility-reported |
| Oakwood | 147.9 | 8.7 | Hard | Utility-reported |
| Trotwood | 147.1 | 8.6 | Hard | Utility-reported |
| Dayton | 147.1 | 8.6 | Hard | Utility-reported |
| Drexel | 147.1 | 8.6 | Hard | Utility-reported |
| Kettering | 147.1 | 8.6 | Hard | Utility-reported |
| Moraine | 147.1 | 8.6 | Hard | Utility-reported |
| Beavercreek | 148.8 | 8.7 | Hard | Utility-reported |
| Cuyahoga Falls | 116.0 | 6.8 | Moderately hard | Utility-reported |
| Riverside | 148.8 | 8.7 | Hard | Utility-reported |
| Akron | 116.0 | 6.8 | Moderately hard | Utility-reported |
| Sawyerwood | 116.0 | 6.8 | Moderately hard | Utility-reported |
| Portage Lakes | 116.0 | 6.8 | Moderately hard | Utility-reported |
| Miamisburg | 142.3 | 8.3 | Hard | Utility-reported |
| Centerville | 142.3 | 8.3 | Hard | Utility-reported |
| Hamilton | 104.9 | 6.1 | Moderately hard | Utility-reported |
| Delaware | 93.8 | 5.5 | Moderately hard | Utility-reported |
| Huber Heights | 155.0 | 9.1 | Hard | Utility-reported |
| Vandalia | 155.0 | 9.1 | Hard | Utility-reported |
| Fairfield | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Bellbrook | 138.6 | 8.1 | Hard | Utility-reported |
| Millville | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Clayton | 155.0 | 9.1 | Hard | Utility-reported |
| Englewood | 155.0 | 9.1 | Hard | Utility-reported |
| Ostrander | 93.8 | 5.5 | Moderately hard | Utility-reported |
| Powell | 93.8 | 5.5 | Moderately hard | Utility-reported |
| Youngstown | 177.0 | 10.3 | Hard | County estimate |
| Shiloh | 155.0 | 9.1 | Hard | Utility-reported |
| Fort McKinley | 155.0 | 9.1 | Hard | Utility-reported |
| Wright-Patterson AFB | 155.0 | 9.1 | Hard | Utility-reported |
| Amelia | 130.3 | 7.6 | Hard | Computed from Ca+Mg |
| Hunter | 1.6 | 0.1 | Soft | Utility-reported |
| New Miami | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Lebanon | 1.6 | 0.1 | Soft | Utility-reported |
| Canton | 285.0 | 16.7 | Very hard | County estimate |
| Seven Mile | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Beckett Ridge | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Williamsdale | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Massillon | 285.0 | 16.7 | Very hard | County estimate |
| South Lebanon | 279.5 | 16.4 | Very hard | County estimate |
| Oberlin | 50.2 | 2.9 | Soft | Utility-reported |
| Springfield | 360.0 | 21.1 | Very hard | County estimate |
| Grafton | 220.0 | 12.9 | Very hard | County estimate |
| Warren | 148.0 | 8.7 | Hard | County estimate |
| LaGrange | 220.0 | 12.9 | Very hard | County estimate |
| Mentor | 66.7 | 3.9 | Moderately hard | Utility-reported |
| Medina | 88.5 | 5.2 | Moderately hard | Utility-reported |
| Painesville | 90.2 | 5.3 | Moderately hard | Utility-reported |
| Lorain | 220.0 | 12.9 | Very hard | County estimate |
| Elyria | 220.0 | 12.9 | Very hard | County estimate |
| Oxford | 303.0 | 17.7 | Very hard | County estimate |
| Lima | 301.0 | 17.6 | Very hard | County estimate |
| Struthers | 177.0 | 10.3 | Hard | County estimate |
| Chillicothe | 276.5 | 16.2 | Very hard | County estimate |
| Bowling Green | 265.0 | 15.5 | Very hard | County estimate |
| Granville | 77.2 | 4.5 | Moderately hard | Utility-reported |
| Leavittsburg | 148.0 | 8.7 | Hard | County estimate |
| Findlay | 138.0 | 8.1 | Hard | Utility-reported |
| Ashtabula | 117.0 | 6.8 | Moderately hard | Computed from Ca+Mg |
| Newark | 77.2 | 4.5 | Moderately hard | Utility-reported |
| Mansfield | 274.0 | 16.0 | Very hard | County estimate |
| Lakewood | 112.0 | 6.5 | Moderately hard | Utility-reported |
| Sandusky | 259.5 | 15.2 | Very hard | County estimate |
| Portsmouth | 86.0 | 5.0 | Moderately hard | County estimate |
| Middletown | 303.0 | 17.7 | Very hard | County estimate |
| Westerville | 123.5 | 7.2 | Hard | Utility-reported |
| Marion | 311.0 | 18.2 | Very hard | County estimate |
| Fairport Harbor | 90.2 | 5.3 | Moderately hard | Utility-reported |
| North Perry | 90.2 | 5.3 | Moderately hard | Utility-reported |
| Perry | 90.2 | 5.3 | Moderately hard | Utility-reported |
| Lancaster | 109.0 | 6.4 | Moderately hard | Utility-reported |
| Maineville | 279.5 | 16.4 | Very hard | County estimate |
| Morrow | 279.5 | 16.4 | Very hard | County estimate |
| Steubenville | 106.3 | 6.2 | Moderately hard | Utility-reported |
| Marietta | 175.5 | 10.3 | Hard | County estimate |
| Stow | 220.0 | 12.9 | Very hard | County estimate |
| Ironton | 137.0 | 8.0 | Hard | County estimate |
| Mason | 279.5 | 16.4 | Very hard | County estimate |
| Fairborn | 232.0 | 13.6 | Very hard | Utility-reported |
| Kent | 188.0 | 11.0 | Very hard | County estimate |
| Yorkville | 310.0 | 18.1 | Very hard | County estimate |
| Ripley | 192.0 | 11.2 | Very hard | County estimate |
| North Ridgeville | 220.0 | 12.9 | Very hard | County estimate |
| Barberton | 220.0 | 12.9 | Very hard | County estimate |
| Gallipolis | 158.0 | 9.2 | Hard | County estimate |
| Vienna | 148.0 | 8.7 | Hard | County estimate |
| Wooster | 84.9 | 5.0 | Moderately hard | Utility-reported |
| Heath | 281.0 | 16.4 | Very hard | County estimate |
| Perrysburg | 85.2 | 5.0 | Moderately hard | Utility-reported |
| Xenia | 356.0 | 20.8 | Very hard | County estimate |
| Mount Vernon | 220.5 | 12.9 | Very hard | County estimate |
| Port Clinton | 280.0 | 16.4 | Very hard | County estimate |
| Marysville | 316.0 | 18.5 | Very hard | County estimate |
| Tipp City | 327.5 | 19.1 | Very hard | County estimate |
| Circleville | 45.9 | 2.7 | Soft | Utility-reported |
| Wadsworth | 247.0 | 14.4 | Very hard | County estimate |
| North Canton | 285.0 | 16.7 | Very hard | County estimate |
| Urbana | 365.0 | 21.4 | Very hard | County estimate |
| Avon | 130.0 | 7.6 | Hard | Utility-reported |
| Avon Lake | 77.9 | 4.6 | Moderately hard | Utility-reported |
| Moscow | 206.0 | 12.1 | Very hard | County estimate |
| Cambridge | 209.0 | 12.2 | Very hard | County estimate |
| Alliance | 285.0 | 16.7 | Very hard | County estimate |
| Sidney | 342.0 | 20.0 | Very hard | County estimate |
| Niles | 148.0 | 8.7 | Hard | County estimate |
| Sylvania | 243.0 | 14.2 | Very hard | County estimate |
| Berea | 210.0 | 12.3 | Very hard | County estimate |
| Piqua | 48.7 | 2.9 | Soft | Utility-reported |
| Harbor View | 243.0 | 14.2 | Very hard | County estimate |
| Oregon | 243.0 | 14.2 | Very hard | County estimate |
| Springboro | 279.5 | 16.4 | Very hard | County estimate |
| Chauncey | 209.5 | 12.3 | Very hard | County estimate |
| Wintersville | 103.0 | 6.0 | Moderately hard | Utility-reported |
| Fremont | 283.0 | 16.6 | Very hard | County estimate |
| Hebron | 281.0 | 16.4 | Very hard | County estimate |
| Bainbridge | 117.0 | 6.8 | Moderately hard | Utility-reported |
| Tallmadge | 220.0 | 12.9 | Very hard | County estimate |
| Pomeroy | 130.0 | 7.6 | Hard | County estimate |
| Piketon | 121.5 | 7.1 | Hard | County estimate |
| Norwalk | 329.0 | 19.2 | Very hard | County estimate |
| Defiance | 253.0 | 14.8 | Very hard | County estimate |
| New Philadelphia | 297.5 | 17.4 | Very hard | County estimate |
| Franklin | 279.5 | 16.4 | Very hard | County estimate |
| Aurora | 117.0 | 6.8 | Moderately hard | Utility-reported |
| Streetsboro | 188.0 | 11.0 | Very hard | County estimate |
| Long Bottom | 130.0 | 7.6 | Hard | County estimate |
| Girard | 148.0 | 8.7 | Hard | County estimate |
| Reminderville | 117.0 | 6.8 | Moderately hard | Utility-reported |
| Concorde Hills | 150.0 | 8.8 | Hard | Utility-reported |
| Montgomery | 150.0 | 8.8 | Hard | Utility-reported |
| The Village of Indian Hill | 150.0 | 8.8 | Hard | Utility-reported |
| Maumee | 243.0 | 14.2 | Very hard | County estimate |
| Monroe | 44.7 | 2.6 | Soft | Utility-reported |
| Jefferson | 132.0 | 7.7 | Hard | County estimate |
| Lucasville | 86.0 | 5.0 | Moderately hard | County estimate |
| Coshocton | 195.0 | 11.4 | Very hard | County estimate |
| Fostoria | 307.0 | 17.9 | Very hard | County estimate |
| Greenville | 369.0 | 21.6 | Very hard | County estimate |
| Dover | 297.5 | 17.4 | Very hard | County estimate |
| Bellefontaine | 361.0 | 21.1 | Very hard | County estimate |
| Bedford | 210.0 | 12.3 | Very hard | County estimate |
| Trenton | 303.0 | 17.7 | Very hard | County estimate |
| Loveland | 206.0 | 12.1 | Very hard | County estimate |
| Little Hocking | 175.5 | 10.3 | Hard | County estimate |
| Conneaut | 132.0 | 7.7 | Hard | County estimate |
| Kings Mills | 279.5 | 16.4 | Very hard | County estimate |
| East Liverpool | 246.0 | 14.4 | Very hard | County estimate |
| Bucyrus | 304.0 | 17.8 | Very hard | County estimate |
| Wilmington | 271.0 | 15.8 | Very hard | County estimate |
| Franklin Furnace | 86.0 | 5.0 | Moderately hard | County estimate |
| Amherst | 220.0 | 12.9 | Very hard | County estimate |
| Celina | 285.5 | 16.7 | Very hard | County estimate |
| Collins | 329.0 | 19.2 | Very hard | County estimate |
| Harrison | 266.0 | 15.6 | Very hard | County estimate |
| Mingo Junction | 310.0 | 18.1 | Very hard | County estimate |
| New Haven | 329.0 | 19.2 | Very hard | County estimate |
| Blacklick | 273.0 | 16.0 | Very hard | County estimate |
| Aberdeen | 192.0 | 11.2 | Very hard | County estimate |
| Wapakoneta | 328.5 | 19.2 | Very hard | County estimate |
| Van Wert | 281.0 | 16.4 | Very hard | County estimate |
| Vermilion | 259.5 | 15.2 | Very hard | County estimate |
| Wellsville | 246.0 | 14.4 | Very hard | County estimate |
| Galion | 286.0 | 16.7 | Very hard | County estimate |
| Jackson | 196.0 | 11.5 | Very hard | County estimate |
| Caldwell | 278.0 | 16.3 | Very hard | County estimate |
| Millbury | 265.0 | 15.5 | Very hard | County estimate |
| Northwood | 265.0 | 15.5 | Very hard | County estimate |
| Walbridge | 265.0 | 15.5 | Very hard | County estimate |
| London | 350.0 | 20.5 | Very hard | County estimate |
| St. Marys | 328.5 | 19.2 | Very hard | County estimate |
| Dennison | 297.5 | 17.4 | Very hard | County estimate |
| Uhrichsville | 297.5 | 17.4 | Very hard | County estimate |
| Louisville | 285.0 | 16.7 | Very hard | County estimate |
| Geneva | 132.0 | 7.7 | Hard | County estimate |
| Sheffield Lake | 220.0 | 12.9 | Very hard | County estimate |
| Bryan | 380.0 | 22.2 | Very hard | Utility-reported |
| Shelby | 274.0 | 16.0 | Very hard | County estimate |
| Wheelersburg | 86.0 | 5.0 | Moderately hard | County estimate |
| Napoleon | 292.5 | 17.1 | Very hard | County estimate |
| Wauseon | 294.0 | 17.2 | Very hard | County estimate |
| Chardon | 167.0 | 9.8 | Hard | County estimate |
| Hubbard | 148.0 | 8.7 | Hard | County estimate |
| Eaton | 327.0 | 19.1 | Very hard | County estimate |
| Hudson | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Martins Ferry | 363.0 | 21.2 | Very hard | County estimate |
| Canfield | 177.0 | 10.3 | Hard | County estimate |
| Troy | 327.5 | 19.1 | Very hard | County estimate |
| Delphos | 301.0 | 17.6 | Very hard | County estimate |
| Huber Ridge | 135.0 | 7.9 | Hard | Utility-reported |
| Union City | 369.0 | 21.6 | Very hard | County estimate |
| Wellston | 196.0 | 11.5 | Very hard | County estimate |
| Zoar | 297.5 | 17.4 | Very hard | County estimate |
| Huron | 259.5 | 15.2 | Very hard | County estimate |
| Commercial Point | 308.0 | 18.0 | Very hard | County estimate |
| Columbiana | 246.0 | 14.4 | Very hard | County estimate |
| Milford | 206.0 | 12.1 | Very hard | County estimate |
| Upper Sandusky | 360.0 | 21.1 | Very hard | County estimate |
| Rutland | 316.0 | 18.5 | Very hard | Utility-reported |
| Waverly | 121.5 | 7.1 | Hard | County estimate |
| Mount Orab | 192.0 | 11.2 | Very hard | County estimate |
| White Cottage | 224.0 | 13.1 | Very hard | County estimate |
| Zanesville | 224.0 | 13.1 | Very hard | County estimate |
| Rittman | 255.0 | 14.9 | Very hard | County estimate |
| Belpre | 175.5 | 10.3 | Hard | County estimate |
| Clyde | 283.0 | 16.6 | Very hard | County estimate |
| Brookville | 321.0 | 18.8 | Very hard | County estimate |
| Sebring | 177.0 | 10.3 | Hard | County estimate |
| Kingsville | 132.0 | 7.7 | Hard | County estimate |
| Cleves | 266.0 | 15.6 | Very hard | County estimate |
| Waterville | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Toronto | 310.0 | 18.1 | Very hard | County estimate |
| Brilliant | 310.0 | 18.1 | Very hard | County estimate |
| Canal Fulton | 285.0 | 16.7 | Very hard | County estimate |
| Chagrin Falls | 210.0 | 12.3 | Very hard | County estimate |
| Whitehouse | 243.0 | 14.2 | Very hard | County estimate |
| Malvern | 121.0 | 7.1 | Hard | County estimate |
| Byesville | 209.0 | 12.2 | Very hard | County estimate |
| Munroe Falls | 220.0 | 12.9 | Very hard | County estimate |
| Woodsfield | 149.0 | 8.7 | Hard | County estimate |
| Wellington | 220.0 | 12.9 | Very hard | County estimate |
| West Milton | 327.5 | 19.1 | Very hard | County estimate |
| East Palestine | 246.0 | 14.4 | Very hard | County estimate |
| Crestline | 304.0 | 17.8 | Very hard | County estimate |
| Oak Harbor | 280.0 | 16.4 | Very hard | County estimate |
| Brunswick | 247.0 | 14.4 | Very hard | County estimate |
| Columbia Station | 220.0 | 12.9 | Very hard | County estimate |
| Coldwater | 141.0 | 8.3 | Hard | Utility-reported |
| Ashville | 308.0 | 18.0 | Very hard | County estimate |
| Blanchester | 271.0 | 15.8 | Very hard | County estimate |
| Fayetteville | 192.0 | 11.2 | Very hard | County estimate |
| Georgetown | 192.0 | 11.2 | Very hard | County estimate |
| Montpelier | 286.0 | 16.7 | Very hard | County estimate |
| Cadiz | 163.1 | 9.5 | Hard | Computed from Ca+Mg |
| Cedarville | 356.0 | 20.8 | Very hard | County estimate |
| Minerva | 121.0 | 7.1 | Hard | County estimate |
| Millersburg | 221.5 | 12.9 | Very hard | County estimate |
| Bethel | 206.0 | 12.1 | Very hard | County estimate |
| Newcomerstown | 297.5 | 17.4 | Very hard | County estimate |
| Swanton | 294.0 | 17.2 | Very hard | County estimate |
| Waynesville | 279.5 | 16.4 | Very hard | County estimate |
| Waterford | 175.5 | 10.3 | Hard | County estimate |
| Yellow Springs | 356.0 | 20.8 | Very hard | County estimate |
| Felicity | 206.0 | 12.1 | Very hard | County estimate |
| Carey | 360.0 | 21.1 | Very hard | County estimate |
| Mount Gilead | 286.0 | 16.7 | Very hard | County estimate |
| Mt. Gilead | 286.0 | 16.7 | Very hard | County estimate |
| Paulding | 262.0 | 15.3 | Very hard | County estimate |
| Hicksville | 253.0 | 14.8 | Very hard | County estimate |
| Delta | 294.0 | 17.2 | Very hard | County estimate |
| North Baltimore | 265.0 | 15.5 | Very hard | County estimate |
| Orient | 308.0 | 18.0 | Very hard | County estimate |
| Doylestown | 290.0 | 17.0 | Very hard | Utility-reported |
| New Bremen | 328.5 | 19.2 | Very hard | County estimate |
| New London | 329.0 | 19.2 | Very hard | County estimate |
| West Union | 216.5 | 12.7 | Very hard | County estimate |
| Millersport | 311.0 | 18.2 | Very hard | County estimate |
| Kelleys Island | 259.5 | 15.2 | Very hard | County estimate |
| Lakemore | 220.0 | 12.9 | Very hard | County estimate |
| Oak Hill | 196.0 | 11.5 | Very hard | County estimate |
| Carrollton | 121.0 | 7.1 | Hard | County estimate |
| Baltimore | 311.0 | 18.2 | Very hard | County estimate |
| Lisbon | 38.2 | 2.2 | Soft | Utility-reported |
| Lodi | 247.0 | 14.4 | Very hard | County estimate |
| Minster | 328.5 | 19.2 | Very hard | County estimate |
| Genoa | 88.2 | 5.2 | Moderately hard | Utility-reported |
| Versailles | 369.0 | 21.6 | Very hard | County estimate |
| Buckeye Lake | 281.0 | 16.4 | Very hard | County estimate |
| New Richmond | 206.0 | 12.1 | Very hard | County estimate |
| Middlefield | 167.0 | 9.8 | Hard | County estimate |
| Sarahsville | 278.0 | 16.3 | Very hard | County estimate |
| Fredericktown | 220.5 | 12.9 | Very hard | County estimate |
| Loudonville | 279.0 | 16.3 | Very hard | County estimate |
| Strasburg | 297.5 | 17.4 | Very hard | County estimate |
| Covington | 327.5 | 19.1 | Very hard | County estimate |
| St. Henry | 285.5 | 16.7 | Very hard | County estimate |
| Sabina | 271.0 | 15.8 | Very hard | County estimate |
| Crooksville | 283.0 | 16.6 | Very hard | County estimate |
| Weston | 265.0 | 15.5 | Very hard | County estimate |
| Navarre | 285.0 | 16.7 | Very hard | County estimate |
| Gibsonburg | 283.0 | 16.6 | Very hard | County estimate |
| Gambier | 220.5 | 12.9 | Very hard | County estimate |
| Jerusalem | 149.0 | 8.7 | Hard | County estimate |
| New Concord | 224.0 | 13.1 | Very hard | County estimate |
| Williamsburg | 206.0 | 12.1 | Very hard | County estimate |
| Enon | 360.0 | 21.1 | Very hard | County estimate |
| Middleport | 130.0 | 7.6 | Hard | County estimate |
| Leipsic | 300.0 | 17.5 | Very hard | County estimate |
| Harrisville | 351.0 | 20.5 | Very hard | County estimate |
| Garrettsville | 188.0 | 11.0 | Very hard | County estimate |
| Richwood | 316.0 | 18.5 | Very hard | County estimate |
| Seville | 247.0 | 14.4 | Very hard | County estimate |
| Curtice | 243.0 | 14.2 | Very hard | County estimate |
| Sugarcreek | 297.5 | 17.4 | Very hard | County estimate |
| Utica | 281.0 | 16.4 | Very hard | County estimate |
| Milan | 259.5 | 15.2 | Very hard | County estimate |
| Spencerville | 301.0 | 17.6 | Very hard | County estimate |
| Windham | 188.0 | 11.0 | Very hard | County estimate |
| North Olmsted | 210.0 | 12.3 | Very hard | County estimate |
| Olmsted Falls | 210.0 | 12.3 | Very hard | County estimate |
| Creston | 255.0 | 14.9 | Very hard | County estimate |
| Brewster | 285.0 | 16.7 | Very hard | County estimate |
| Midvale | 297.5 | 17.4 | Very hard | County estimate |
| Columbus Grove | 460.0 | 26.9 | Very hard | Utility-reported |
| Woodville | 283.0 | 16.6 | Very hard | County estimate |
| Arcanum | 369.0 | 21.6 | Very hard | County estimate |
| Berlin | 221.5 | 12.9 | Very hard | County estimate |
| Cardington | 286.0 | 16.7 | Very hard | County estimate |
| Bradford | 369.0 | 21.6 | Very hard | County estimate |
| Camden | 327.0 | 19.1 | Very hard | County estimate |
| Somerville | 303.0 | 17.7 | Very hard | County estimate |
| Manchester | 216.5 | 12.7 | Very hard | County estimate |
| Dalton | 255.0 | 14.9 | Very hard | County estimate |
| Dresden | 224.0 | 13.1 | Very hard | County estimate |
| Mount Sterling | 350.0 | 20.5 | Very hard | County estimate |
| Jamestown | 356.0 | 20.8 | Very hard | County estimate |
| Washington Court House | 320.0 | 18.7 | Very hard | County estimate |
| Peebles | 216.5 | 12.7 | Very hard | County estimate |
| Leetonia | 246.0 | 14.4 | Very hard | County estimate |
| Carroll | 311.0 | 18.2 | Very hard | County estimate |
| Beverly | 271.0 | 15.8 | Very hard | County estimate |
| Edgerton | 286.0 | 16.7 | Very hard | County estimate |
| Plymouth | 329.0 | 19.2 | Very hard | County estimate |
| Lake Waynoka | 58.4 | 3.4 | Soft | Utility-reported |
| Roseville | 224.0 | 13.1 | Very hard | County estimate |
| North Lewisburg | 365.0 | 21.4 | Very hard | County estimate |
| Flushing | 363.0 | 21.2 | Very hard | County estimate |
| Lewisburg | 327.0 | 19.1 | Very hard | County estimate |
| West Liberty | 361.0 | 21.1 | Very hard | County estimate |
| Glouster | 209.5 | 12.3 | Very hard | County estimate |
| Malta | 271.0 | 15.8 | Very hard | County estimate |
| West Unity | 286.0 | 16.7 | Very hard | County estimate |
| Anna | 342.0 | 20.0 | Very hard | County estimate |
| Belle Valley | 278.0 | 16.3 | Very hard | County estimate |
| Antwerp | 262.0 | 15.3 | Very hard | County estimate |
| New Paris | 327.0 | 19.1 | Very hard | County estimate |
| Russells Point | 361.0 | 21.1 | Very hard | County estimate |
| Orwell | 132.0 | 7.7 | Hard | County estimate |
| Forest | 354.0 | 20.7 | Very hard | County estimate |
| Mechanicsburg | 365.0 | 21.4 | Very hard | County estimate |
| East Canton | 285.0 | 16.7 | Very hard | County estimate |
| Payne | 262.0 | 15.3 | Very hard | County estimate |
| Green Springs | 307.0 | 17.9 | Very hard | County estimate |
| Powhatan Point | 363.0 | 21.2 | Very hard | County estimate |
| Deshler | 292.5 | 17.1 | Very hard | County estimate |
| Newport | 82.4 | 4.8 | Moderately hard | Utility-reported |
| Lithopolis | 311.0 | 18.2 | Very hard | County estimate |
| New Lexington | 324.0 | 18.9 | Very hard | Utility-reported |
| Thornport | 324.0 | 18.9 | Very hard | Utility-reported |
| Kalida | 300.0 | 17.5 | Very hard | County estimate |
| Burton | 167.0 | 9.8 | Hard | County estimate |
| Lynchburg | 286.0 | 16.7 | Very hard | County estimate |
| Shreve | 255.0 | 14.9 | Very hard | County estimate |
| Batavia | 206.0 | 12.1 | Very hard | County estimate |
| Grand Rapids | 265.0 | 15.5 | Very hard | County estimate |
| Fort Loramie | 342.0 | 20.0 | Very hard | County estimate |
| Somerset | 283.0 | 16.6 | Very hard | County estimate |
| Greenwich | 329.0 | 19.2 | Very hard | County estimate |
| Jackson Center | 342.0 | 20.0 | Very hard | County estimate |
| Arlington | 311.0 | 18.2 | Very hard | County estimate |
| Winesburg | 221.5 | 12.9 | Very hard | County estimate |
| Fort Recovery | 285.5 | 16.7 | Very hard | County estimate |
| Bremen | 311.0 | 18.2 | Very hard | County estimate |
| Elmore | 280.0 | 16.4 | Very hard | County estimate |
| West Salem | 255.0 | 14.9 | Very hard | County estimate |
| Hiram | 188.0 | 11.0 | Very hard | County estimate |
| Monroeville | 329.0 | 19.2 | Very hard | County estimate |
| West Alexandria | 327.0 | 19.1 | Very hard | County estimate |
| Bethesda | 363.0 | 21.2 | Very hard | County estimate |
| Pioneer | 286.0 | 16.7 | Very hard | County estimate |
| Tiltonsville | 310.0 | 18.1 | Very hard | County estimate |
| Pemberville | 265.0 | 15.5 | Very hard | County estimate |
| Jeffersonville | 320.0 | 18.7 | Very hard | County estimate |
| Fayette | 294.0 | 17.2 | Very hard | County estimate |
| Frazeysburg | 224.0 | 13.1 | Very hard | County estimate |
| Archbold | 294.0 | 17.2 | Very hard | County estimate |
| Stryker | 286.0 | 16.7 | Very hard | County estimate |
| Andover | 132.0 | 7.7 | Hard | County estimate |
| Sardis | 149.0 | 8.7 | Hard | County estimate |
| Ashley | 286.0 | 16.7 | Very hard | County estimate |
| Walnut Creek | 221.5 | 12.9 | Very hard | County estimate |
| Botkins | 342.0 | 20.0 | Very hard | County estimate |
| Gnadenhutten | 297.5 | 17.4 | Very hard | County estimate |
| New Vienna | 271.0 | 15.8 | Very hard | County estimate |
| New Waterford | 246.0 | 14.4 | Very hard | County estimate |
| Pleasant Hill | 327.5 | 19.1 | Very hard | County estimate |
| De Graff | 361.0 | 21.1 | Very hard | County estimate |
| Mantua | 188.0 | 11.0 | Very hard | County estimate |
| Liberty Center | 292.5 | 17.1 | Very hard | County estimate |
| Ansonia | 369.0 | 21.6 | Very hard | County estimate |
| Pandora | 300.0 | 17.5 | Very hard | County estimate |
| Holgate | 292.5 | 17.1 | Very hard | County estimate |
| Attica | 307.0 | 17.9 | Very hard | County estimate |
| Rockford | 285.5 | 16.7 | Very hard | County estimate |
| Convoy | 281.0 | 16.4 | Very hard | County estimate |
| Frankfort | 276.5 | 16.2 | Very hard | County estimate |
| Lakeview | 361.0 | 21.1 | Very hard | County estimate |
| Warsaw | 195.0 | 11.4 | Very hard | County estimate |
| Tuscarawas | 297.5 | 17.4 | Very hard | County estimate |
| Winchester | 216.5 | 12.7 | Very hard | County estimate |
| Wakeman | 329.0 | 19.2 | Very hard | County estimate |
| Williamsport | 308.0 | 18.0 | Very hard | County estimate |
| Beach City | 285.0 | 16.7 | Very hard | County estimate |
| Kingston | 276.5 | 16.2 | Very hard | County estimate |
| Bloomville | 307.0 | 17.9 | Very hard | County estimate |
| Danville | 220.5 | 12.9 | Very hard | County estimate |
| Farmersville | 321.0 | 18.8 | Very hard | County estimate |
| Glandorf | 300.0 | 17.5 | Very hard | County estimate |
| Bolivar | 297.5 | 17.4 | Very hard | County estimate |
| Thornville | 283.0 | 16.6 | Very hard | County estimate |
| Gratis | 327.0 | 19.1 | Very hard | County estimate |
| Bradner | 265.0 | 15.5 | Very hard | County estimate |
| Hopedale | 351.0 | 20.5 | Very hard | County estimate |
| Ottoville | 300.0 | 17.5 | Very hard | County estimate |
| Hamden | 130.0 | 7.6 | Hard | County estimate |
| Pleasantville | 311.0 | 18.2 | Very hard | County estimate |
| Sardinia | 192.0 | 11.2 | Very hard | County estimate |
| New Knoxville | 99.1 | 5.8 | Moderately hard | Utility-reported |
| Mogadore | 188.0 | 11.0 | Very hard | County estimate |
| Seaman | 216.5 | 12.7 | Very hard | County estimate |
| Butler | 274.0 | 16.0 | Very hard | County estimate |
| Hamersville | 192.0 | 11.2 | Very hard | County estimate |
| Rayland | 310.0 | 18.1 | Very hard | County estimate |
| New Madison | 369.0 | 21.6 | Very hard | County estimate |
| Wayne | 265.0 | 15.5 | Very hard | County estimate |
| Spring Valley | 356.0 | 20.8 | Very hard | County estimate |
| Sycamore | 360.0 | 21.1 | Very hard | County estimate |
| Coolville | 209.5 | 12.3 | Very hard | County estimate |
| The Plains | 209.5 | 12.3 | Very hard | County estimate |
| Ney | 253.0 | 14.8 | Very hard | County estimate |
| West Jefferson | 350.0 | 20.5 | Very hard | County estimate |
| Belle Center | 354.0 | 20.7 | Very hard | County estimate |
| Waynesfield | 328.5 | 19.2 | Very hard | County estimate |
| Chesterland | 167.0 | 9.8 | Hard | County estimate |
| Syracuse | 130.0 | 7.6 | Hard | County estimate |
| Chesterhill | 271.0 | 15.8 | Very hard | County estimate |
| Adena | 310.0 | 18.1 | Very hard | County estimate |
| Killbuck | 221.5 | 12.9 | Very hard | County estimate |
| Nevada | 360.0 | 21.1 | Very hard | County estimate |
| Edon | 286.0 | 16.7 | Very hard | County estimate |
| Sherwood | 253.0 | 14.8 | Very hard | County estimate |
| New Holland | 308.0 | 18.0 | Very hard | County estimate |
| Washingtonville | 246.0 | 14.4 | Very hard | County estimate |
| Spencer | 247.0 | 14.4 | Very hard | County estimate |
| Baltic | 221.5 | 12.9 | Very hard | County estimate |
| Arcadia | 311.0 | 18.2 | Very hard | County estimate |
| Bridgeport | 363.0 | 21.2 | Very hard | County estimate |
| St. Clairsville | 363.0 | 21.2 | Very hard | County estimate |
| Scio | 351.0 | 20.5 | Very hard | County estimate |
| Amanda | 311.0 | 18.2 | Very hard | County estimate |
| Marshallville | 255.0 | 14.9 | Very hard | County estimate |
| Ohio City | 281.0 | 16.4 | Very hard | County estimate |
| McConnelsville | 271.0 | 15.8 | Very hard | County estimate |
| Racine | 130.0 | 7.6 | Hard | County estimate |
| Dillonvale | 310.0 | 18.1 | Very hard | County estimate |
| Coalton | 196.0 | 11.5 | Very hard | County estimate |
| Bettsville | 307.0 | 17.9 | Very hard | County estimate |
| Pepper Pike | 97.8 | 5.7 | Moderately hard | Utility-reported |
| Jewett | 351.0 | 20.5 | Very hard | County estimate |
| Mendon | 285.5 | 16.7 | Very hard | County estimate |
| Hamler | 292.5 | 17.1 | Very hard | County estimate |
| Shawnee | 283.0 | 16.6 | Very hard | County estimate |
| Thurston | 311.0 | 18.2 | Very hard | County estimate |
| Lowell | 175.5 | 10.3 | Hard | County estimate |
| New Athens | 351.0 | 20.5 | Very hard | County estimate |
| Middle Point | 281.0 | 16.4 | Very hard | County estimate |
| Rawson | 311.0 | 18.2 | Very hard | County estimate |
| Bellville | 274.0 | 16.0 | Very hard | County estimate |
| Jeromesville | 279.0 | 16.3 | Very hard | County estimate |
| Lyons | 294.0 | 17.2 | Very hard | County estimate |
| Rushsylvania | 361.0 | 21.1 | Very hard | County estimate |
| Clarksville | 271.0 | 15.8 | Very hard | County estimate |
| Eldorado | 327.0 | 19.1 | Very hard | County estimate |
| North Fairfield | 329.0 | 19.2 | Very hard | County estimate |
| Rock Creek | 132.0 | 7.7 | Hard | County estimate |
| Gettysburg | 369.0 | 21.6 | Very hard | County estimate |
| Stockport | 271.0 | 15.8 | Very hard | County estimate |
| Clarksburg | 276.5 | 16.2 | Very hard | County estimate |
| Verona | 327.0 | 19.1 | Very hard | County estimate |
| Mount Blanchard | 311.0 | 18.2 | Very hard | County estimate |
| West Manchester | 327.0 | 19.1 | Very hard | County estimate |
| Mount Pleasant | 310.0 | 18.1 | Very hard | County estimate |
| Hayesville | 279.0 | 16.3 | Very hard | County estimate |
| Fletcher | 327.5 | 19.1 | Very hard | County estimate |
| Pleasant City | 278.0 | 16.3 | Very hard | County estimate |
| Lindsey | 283.0 | 16.6 | Very hard | County estimate |
| Beaver | 121.5 | 7.1 | Hard | County estimate |
| Fredericksburg | 221.5 | 12.9 | Very hard | County estimate |
| Freeport | 351.0 | 20.5 | Very hard | County estimate |
| Bowerston | 121.0 | 7.1 | Hard | County estimate |
| Willshire | 281.0 | 16.4 | Very hard | County estimate |
| Bowersville | 356.0 | 20.8 | Very hard | County estimate |
| Chickasaw | 543.0 | 31.8 | Very hard | Utility-reported |
| Vanlue | 311.0 | 18.2 | Very hard | County estimate |
| Stratton | 310.0 | 18.1 | Very hard | County estimate |
| Beaverdam | 301.0 | 17.6 | Very hard | County estimate |
| Ravenna | 188.0 | 11.0 | Very hard | County estimate |
| Glenmont | 221.5 | 12.9 | Very hard | County estimate |
| Solon | 210.0 | 12.3 | Very hard | County estimate |
| Newbury | 167.0 | 9.8 | Hard | County estimate |
| Martinsburg | 220.5 | 12.9 | Very hard | County estimate |
| Kettlersville | 342.0 | 20.0 | Very hard | County estimate |
| Salem | 246.0 | 14.4 | Very hard | County estimate |
| Maria Stein | 285.5 | 16.7 | Very hard | County estimate |
| West Lafayette | 195.0 | 11.4 | Very hard | County estimate |
| Deersville | 351.0 | 20.5 | Very hard | County estimate |
| Ashland | 279.0 | 16.3 | Very hard | County estimate |
| Fowler | 148.0 | 8.7 | Hard | County estimate |
| Hinckley | 247.0 | 14.4 | Very hard | County estimate |
| Green | 220.0 | 12.9 | Very hard | County estimate |
| Helena | 283.0 | 16.6 | Very hard | County estimate |
| Beloit | 177.0 | 10.3 | Hard | County estimate |
| Huntsville | 361.0 | 21.1 | Very hard | County estimate |
| Independence | 210.0 | 12.3 | Very hard | County estimate |
| Lakeville | 221.5 | 12.9 | Very hard | County estimate |
| Magnolia | 121.0 | 7.1 | Hard | County 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 Ohio's Water Hardness
Ohio sits in the Midwestern glacial-drift and carbonate bedrock region.
Ice-age glaciers ground up limestone and dolomite bedrock and spread it across the Midwest as thick, carbonate-rich drift. Groundwater percolating through that drift - and through the shallow carbonate bedrock beneath it - dissolves calcium and magnesium readily, which is why the USGS maps the region hard to very hard almost everywhere. Cities drawing Great Lakes surface water tend to run somewhat softer than their groundwater-supplied neighbors.
Ohio Water Hardness FAQ
Does Ohio have hard water?
On the whole, no — Ohio's statewide median sits below the hard threshold, though some cities run harder. The median is 111.0 mg/L (6.5 gpg) — moderately hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 37 of Ohio's 130 measured cities fall in the hard or very hard bands (28%), so check your own city rather than the state average.
How hard is tap water in Ohio?
Across the 130 Ohio cities with measured values in our index, the median hardness is 111.0 mg/L (6.5 gpg) — moderately hard on the USGS scale. Individual cities range from 1.6 to 543.0 mg/L, so check your own city rather than assuming the state number.
Which city in Ohio has the hardest water?
Columbus Grove has the hardest measured tap water in our Ohio index at 460.0 mg/L (26.9 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 Ohio?
37 of Ohio's 130 measured cities (28%) 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 Ohio 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.