Skip to main content

Water Hardness in Kansas

Across 118 measured cities — with 208 more covered by labeled county-level estimates — Kansas's median tap water hardness is 247.0 mg/L (14.4 gpg): very hard on the USGS scale. Below: every covered city, the state's hardest and softest water, and the geology that explains it.

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

State Median
247.0
mg/L (14.4 gpg), measured cities
Measured Range
67.0-751.0
mg/L across measured cities
Measured Cities
118
utility-reported or computed values
County Estimates
208
64% of covered cities

What it costs to soften Kansas water

Water softener cost in Kansas at 14.4 gpg prices the equipment and the installation labour against the plumber wages published for Kansas, and labels every range as modelled or measured rather than leaving you to guess which it is.

Kansas · 14.44 grains per gallon

$1,033–$1,315

installed, midpoint $1,158 — a 32,000-grain unit, the size 4 people at this hardness need.

Salt and drain water over 10 years: $1,173–$1,893 — the 15,811,800 grains of hardness this household removes, at the national salt price and water rate whose sources are named below. Filter changes and Service contract are omitted rather than assumed.

Sized for 4 people regenerating every 7 days: 30,324 grains of capacity needed, rounded up to the next common residential size. The median of 118 measured Kansas cities in our hardness dataset. Modelled: the standard build band published for that state at the size this hardness calls for, equipment priced 2026-10-04 against the May 2025 reference period (OEWS M2025). Salt: the median retailer price of 3 retailers, read 2026-10-04, at a declared salt dose per regeneration. Drain water: about 50 gallons per regeneration from a government extension estimate read 2026-10-04, at the 2024 national average water and sewer rate from a government source read 2026-10-04.

Deciding whether it is worth it at all? Start from how much a water softener costs nationally — the same equipment, installation and ten-year ownership breakdown before any state wage adjustment is applied.

Kansas Cities by Hardness Category

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

CategoryRangeMeasured citiesShare
Soft0-60 mg/L00.0%
Moderately hard60-120 mg/L97.6%
Hard120-180 mg/L2722.9%
Very hard>180 mg/L8269.5%

Hardest and Softest Water in Kansas

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

Hardest water in Kansas

  1. Holcomb — 751.0 mg/L (43.9 gpg), very hard
  2. Rozel — 695.0 mg/L (40.6 gpg), very hard
  3. Galva — 638.0 mg/L (37.3 gpg), very hard
  4. Oketo — 588.0 mg/L (34.4 gpg), very hard
  5. Timken — 569.0 mg/L (33.3 gpg), very hard

Softest water in Kansas

  1. Everest — 67.0 mg/L (3.9 gpg), moderately hard
  2. Emporia — 76.1 mg/L (4.5 gpg), moderately hard
  3. Lorraine — 87.8 mg/L (5.1 gpg), moderately hard
  4. Manhattan — 99.8 mg/L (5.8 gpg), moderately hard
  5. Pittsburg — 115.0 mg/L (6.7 gpg), moderately hard

Every Covered City in Kansas

All 326 covered Kansas 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
Wichita138.08.1HardUtility-reported
Kansas City303.017.7Very hardUtility-reported
Olathe158.09.2HardUtility-reported
Topeka149.08.7HardUtility-reported
Lawrence141.08.3HardUtility-reported
Manhattan99.85.8Moderately hardUtility-reported
South Hutchinson270.015.8Very hardCounty estimate
Leavenworth128.07.5HardUtility-reported
Fort Riley140.08.2HardUtility-reported
Garden City367.021.5Very hardUtility-reported
Derby242.014.2Very hardCounty estimate
Emporia76.14.5Moderately hardUtility-reported
Gardner144.08.4HardUtility-reported
Hays153.08.9HardUtility-reported
Pittsburg115.06.7Moderately hardUtility-reported
Liberal233.013.6Very hardUtility-reported
Junction City168.09.8HardUtility-reported
Newton230.013.4Very hardCounty estimate
Great Bend383.022.4Very hardUtility-reported
Mcpherson363.021.2Very hardUtility-reported
Lansing230.013.4Very hardCounty estimate
El Dorado117.06.8Moderately hardUtility-reported
Ottawa132.07.7HardUtility-reported
Arkansas City137.08.0HardUtility-reported
Winfield136.08.0HardUtility-reported
Haysville225.013.2Very hardUtility-reported
Atchison282.016.5Very hardUtility-reported
Parsons129.07.5HardUtility-reported
Augusta120.07.0Moderately hardUtility-reported
Coffeyville183.010.7Very hardUtility-reported
Hillsdale133.07.8HardUtility-reported
Park City1000.058.5Very hardCounty estimate
Towanda260.015.2Very hardCounty estimate
Edgerton220.012.9Very hardCounty estimate
Basehor230.013.4Very hardCounty estimate
Bonner Springs439.025.7Very hardUtility-reported
Valley Center133.07.8HardUtility-reported
Mulvane123.07.2HardUtility-reported
Ulysses323.018.9Very hardUtility-reported
Auburn260.015.2Very hardCounty estimate
Benton260.015.2Very hardCounty estimate
Tecumseh260.015.2Very hardCounty estimate
Paola150.08.8HardCounty estimate
Tonganoxie230.013.4Very hardCounty estimate
Spring Hill150.08.8HardCounty estimate
Andover260.015.2Very hardCounty estimate
Goddard242.014.2Very hardCounty estimate
Concordia355.020.8Very hardCounty estimate
Louisburg150.08.8HardCounty estimate
Wamego270.015.8Very hardCounty estimate
Berryton156.09.1HardUtility-reported
De Soto125.07.3HardUtility-reported
Desoto125.07.3HardUtility-reported
Russell610.035.7Very hardCounty estimate
Osawatomie198.011.6Very hardUtility-reported
Rose Hill260.015.2Very hardCounty estimate
Hiawatha260.015.2Very hardCounty estimate
Baxter Springs196.011.5Very hardUtility-reported
Hugoton294.017.2Very hardUtility-reported
Scott City381.022.3Very hardUtility-reported
Larned498.029.1Very hardUtility-reported
Lyons341.019.9Very hardUtility-reported
Altamont140.08.2HardCounty estimate
Lindsborg280.016.4Very hardUtility-reported
Hesston223.013.0Very hardUtility-reported
Marysville250.014.6Very hardCounty estimate
Beloit121.07.1HardUtility-reported
Frontenac293.017.1Very hardUtility-reported
Holton310.018.1Very hardCounty estimate
Garnett128.07.5HardUtility-reported
Kingman173.010.1HardUtility-reported
Baldwin City190.011.1Very hardCounty estimate
Eudora190.011.1Very hardCounty estimate
Ellsworth140.08.2HardUtility-reported
Columbus190.011.1Very hardCounty estimate
Seneca310.018.1Very hardCounty estimate
Independence170.09.9HardCounty estimate
Norton320.018.7Very hardCounty estimate
Galena210.012.3Very hardUtility-reported
Hillsboro585.034.2Very hardCounty estimate
Kechi242.014.2Very hardCounty estimate
Hoisington320.018.7Very hardUtility-reported
Leon260.015.2Very hardCounty estimate
Fontana150.08.8HardCounty estimate
Clearwater204.011.9Very hardUtility-reported
Hoyt310.018.1Very hardCounty estimate
Girard1.50.1SoftCounty estimate
Caney170.09.9HardCounty estimate
Havana170.09.9HardCounty estimate
Niotaze190.011.1Very hardCounty estimate
Tyro170.09.9HardCounty estimate
Jewell330.019.3Very hardCounty estimate
Greeley105.06.1Moderately hardCounty estimate
Lane170.09.9HardCounty estimate
Herington240.014.0Very hardCounty estimate
Sterling402.023.5Very hardUtility-reported
Meriden328.019.2Very hardUtility-reported
Eureka230.013.4Very hardCounty estimate
Phillipsburg450.026.3Very hardCounty estimate
Neodesha170.09.9HardCounty estimate
Galesburg170.09.9HardCounty estimate
Burlingame210.012.3Very hardCounty estimate
Harveyville290.017.0Very hardCounty estimate
Holcomb751.043.9Very hardUtility-reported
Cimarron290.017.0Very hardCounty estimate
Cheney130.07.6HardUtility-reported
Halstead230.013.4Very hardCounty estimate
Randall330.019.3Very hardCounty estimate
Mound City160.09.4HardCounty estimate
Westphalia105.06.1Moderately hardCounty estimate
Council Grove240.014.0Very hardCounty estimate
Fredonia170.09.9HardCounty estimate
Erie170.09.9HardCounty estimate
Colony105.06.1Moderately hardCounty estimate
Kincaid105.06.1Moderately hardCounty estimate
Barnard535.031.3Very hardCounty estimate
Glasco355.020.8Very hardCounty estimate
Anthony240.014.0Very hardCounty estimate
Oakley1000.058.5Very hardCounty estimate
Belleville300.017.5Very hardCounty estimate
Ellis500.029.2Very hardCounty estimate
Burden250.014.6Very hardCounty estimate
Cambridge250.014.6Very hardCounty estimate
Dexter250.014.6Very hardCounty estimate
Ellinwood401.023.4Very hardUtility-reported
Pleasanton160.09.4HardCounty estimate
Moundridge256.015.0Very hardUtility-reported
Minneapolis370.021.6Very hardCounty estimate
Marion585.034.2Very hardCounty estimate
Elkhart270.015.8Very hardUtility-reported
Humboldt170.09.9HardCounty estimate
North Newton249.014.6Very hardUtility-reported
Solomon370.021.6Very hardCounty estimate
Wakeeney610.035.7Very hardCounty estimate
Piqua94.55.5Moderately hardCounty estimate
Yates Center94.55.5Moderately hardCounty estimate
Plainville520.030.4Very hardCounty estimate
Medicine Lodge500.029.2Very hardCounty estimate
Ogden546.031.9Very hardUtility-reported
Oswego140.08.2HardCounty estimate
Oberlin420.024.6Very hardCounty estimate
Sedgwick230.013.4Very hardCounty estimate
Allen240.014.0Very hardCounty estimate
Americus240.014.0Very hardCounty estimate
Smith Center555.032.5Very hardCounty estimate
Douglass260.015.2Very hardCounty estimate
Horton280.016.4Very hardUtility-reported
Meade182.010.6Very hardUtility-reported
Cassoday260.015.2Very hardCounty estimate
Rosalia260.015.2Very hardCounty estimate
Belle Plaine260.015.2Very hardCounty estimate
Colwich242.014.2Very hardCounty estimate
Troy230.013.4Very hardCounty estimate
Wathena230.013.4Very hardCounty estimate
Potwin260.015.2Very hardCounty estimate
Leoti256.015.0Very hardUtility-reported
Osage City210.012.3Very hardCounty estimate
Arma175.010.2HardUtility-reported
Kinsley550.032.2Very hardCounty estimate
Hill City235.013.7Very hardCounty estimate
Stockton520.030.4Very hardCounty estimate
Chapman510.029.8Very hardCounty estimate
Sublette214.012.5Very hardUtility-reported
Carbondale119.07.0Moderately hardUtility-reported
Johnson City253.014.8Very hardUtility-reported
Silver Lake260.015.2Very hardCounty estimate
Osborne530.031.0Very hardCounty estimate
Inman340.019.9Very hardUtility-reported
Reading240.014.0Very hardCounty estimate
Ness City470.027.5Very hardCounty estimate
Onaga270.015.8Very hardCounty estimate
Atwood205.512.0Very hardCounty estimate
Buhler270.015.8Very hardCounty estimate
Elwood230.013.4Very hardCounty estimate
Riverton390.022.8Very hardUtility-reported
Hoxie180.010.5HardCounty estimate
Stark170.09.9HardCounty estimate
Richmond170.09.9HardCounty estimate
Lincoln535.031.3Very hardCounty estimate
Bronson190.011.1Very hardCounty estimate
South Haven260.015.2Very hardCounty estimate
Haven270.015.8Very hardCounty estimate
Victoria308.018.0Very hardUtility-reported
Burlington190.011.1Very hardCounty estimate
Gridley190.011.1Very hardCounty estimate
Belvue270.015.8Very hardCounty estimate
La Crosse490.028.6Very hardCounty estimate
Conway Springs260.015.2Very hardCounty estimate
Rossville260.015.2Very hardCounty estimate
Liberty170.09.9HardCounty estimate
Oskaloosa240.014.0Very hardCounty estimate
Valley Falls240.014.0Very hardCounty estimate
Washington210.012.3Very hardCounty estimate
Bartlett140.08.2HardCounty estimate
Edna140.08.2HardCounty estimate
Nickerson347.020.3Very hardUtility-reported
Lyndon210.012.3Very hardCounty estimate
Satanta323.018.9Very hardUtility-reported
Plains194.011.3Very hardUtility-reported
Caldwell260.015.2Very hardCounty estimate
Sedan190.011.1Very hardCounty estimate
Overbrook128.07.5HardUtility-reported
St. George270.015.8Very hardCounty estimate
Olpe240.014.0Very hardCounty estimate
Neosho Rapids240.014.0Very hardCounty estimate
Dighton356.020.8Very hardUtility-reported
Morrill260.015.2Very hardCounty estimate
Peabody585.034.2Very hardCounty estimate
Blue Rapids377.022.1Very hardUtility-reported
Robinson260.015.2Very hardCounty estimate
Vassar156.09.1HardUtility-reported
Windom290.017.0Very hardCounty estimate
Galva638.037.3Very hardUtility-reported
McLouth325.019.0Very hardUtility-reported
Mankato330.019.3Very hardCounty estimate
Salina330.019.3Very hardCounty estimate
Wilson450.026.3Very hardCounty estimate
Alma290.017.0Very hardCounty estimate
Powhattan260.015.2Very hardCounty estimate
Mound Valley140.08.2HardCounty estimate
Sabetha310.018.1Very hardCounty estimate
Frankfort286.016.7Very hardUtility-reported
Westmoreland270.015.8Very hardCounty estimate
Fairview513.030.0Very hardUtility-reported
Hanover210.012.3Very hardCounty estimate
Whitewater260.015.2Very hardCounty estimate
Wellsville170.09.9HardCounty estimate
Waterville445.026.0Very hardUtility-reported
Pretty Prairie96.55.6Moderately hardUtility-reported
Nortonville355.020.8Very hardUtility-reported
Lecompton190.011.1Very hardCounty estimate
White City240.014.0Very hardCounty estimate
Weir190.011.1Very hardCounty estimate
Goessel298.017.4Very hardUtility-reported
Cherryvale170.09.9HardCounty estimate
Crestline241.014.1Very hardUtility-reported
Effingham195.011.4Very hardUtility-reported
Cherokee1.50.1SoftCounty estimate
Little River310.018.1Very hardUtility-reported
Macksville186.010.9Very hardUtility-reported
Cunningham209.012.2Very hardUtility-reported
Kanopolis272.015.9Very hardUtility-reported
Winchester240.014.0Very hardCounty estimate
Cawker City330.019.3Very hardCounty estimate
Denton230.013.4Very hardCounty estimate
Norwich230.013.4Very hardCounty estimate
Arlington210.012.3Very hardUtility-reported
Alta Vista290.017.0Very hardCounty estimate
Linwood230.013.4Very hardCounty estimate
Mulberry1.50.1SoftCounty estimate
Holyrood341.019.9Very hardUtility-reported
Assaria390.022.8Very hardUtility-reported
Milford290.017.0Very hardCounty estimate
Chase333.019.5Very hardUtility-reported
Lewis262.015.3Very hardUtility-reported
Williamsburg170.09.9HardCounty estimate
Gorham500.029.2Very hardCounty estimate
Rolla359.021.0Very hardUtility-reported
Dearing170.09.9HardCounty estimate
Scammon190.011.1Very hardCounty estimate
Glen Elder475.027.8Very hardUtility-reported
Mayetta310.018.1Very hardCounty estimate
Kismet267.015.6Very hardUtility-reported
Lucas610.035.7Very hardCounty estimate
Princeton170.09.9HardCounty estimate
Udall250.014.6Very hardCounty estimate
Sylvan Grove535.031.3Very hardCounty estimate
Murdock230.013.4Very hardCounty estimate
Moscow224.013.1Very hardUtility-reported
Tescott370.021.6Very hardCounty estimate
Everest67.03.9Moderately hardUtility-reported
Healy343.020.1Very hardUtility-reported
Copeland235.013.7Very hardUtility-reported
Lancaster210.012.3Very hardCounty estimate
Brookville330.019.3Very hardCounty estimate
Jamestown355.020.8Very hardCounty estimate
Geneseo479.028.0Very hardUtility-reported
Elbing260.015.2Very hardCounty estimate
Olsburg270.015.8Very hardCounty estimate
Walton230.013.4Very hardCounty estimate
Dwight240.014.0Very hardCounty estimate
Paxico290.017.0Very hardCounty estimate
Easton230.013.4Very hardCounty estimate
Harper240.014.0Very hardCounty estimate
Beattie250.014.6Very hardCounty estimate
Bushton328.019.2Very hardUtility-reported
Pawnee Rock245.014.3Very hardUtility-reported
Tipton530.031.0Very hardCounty estimate
Schoenchen400.023.4Very hardUtility-reported
Rantoul405.023.7Very hardUtility-reported
Luray610.035.7Very hardCounty estimate
Albert420.024.6Very hardUtility-reported
Lehigh585.034.2Very hardCounty estimate
Geuda Springs263.015.4Very hardUtility-reported
West Mineral190.011.1Very hardCounty estimate
Dorrance610.035.7Very hardCounty estimate
Oxford260.015.2Very hardCounty estimate
Burr Oak330.019.3Very hardCounty estimate
Lorraine87.85.1Moderately hardUtility-reported
Beverly535.031.3Very hardCounty estimate
Bunker Hill610.035.7Very hardCounty estimate
Belpre233.013.6Very hardUtility-reported
Rozel695.040.6Very hardUtility-reported
Olmitz243.014.2Very hardUtility-reported
Raymond213.012.5Very hardUtility-reported
Simpson513.030.0Very hardUtility-reported
Zenda228.013.3Very hardUtility-reported
Esbon330.019.3Very hardCounty estimate
Oketo588.034.4Very hardUtility-reported
Spivey230.013.4Very hardCounty estimate
Hunter415.024.3Very hardCounty estimate
Timken569.033.3Very hardUtility-reported
Paradise610.035.7Very hardCounty estimate
Waldo530.031.0Very hardCounty estimate
Brownell470.027.5Very hardCounty estimate
Falun330.019.3Very hardCounty estimate
Hollenberg210.012.3Very hardCounty estimate
Leawood220.012.9Very hardCounty estimate
Lenexa220.012.9Very hardCounty estimate
McConnell AFB242.014.2Very hardCounty estimate
Mission220.012.9Very hardCounty estimate
Overland Park220.012.9Very hardCounty estimate
Prairie Village220.012.9Very hardCounty estimate
Saint George270.015.8Very hardCounty estimate
Shawnee220.012.9Very hardCounty estimate
Webber330.019.3Very hardCounty 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 Kansas's Water Hardness

Kansas sits in the Great Plains and interior lowlands region.

The Great Plains and interior lowlands are underlain by carbonate rock, gypsum, and other evaporite deposits, and the semi-arid climate concentrates dissolved minerals rather than flushing them out. Aquifers like the High Plains (Ogallala) yield water the USGS classifies as hard to very hard across most of the region, from the Dakotas down through Texas. Surface-water systems fed by plains rivers carry much of the same mineral load.

Source: USGS - High Plains aquifer

Kansas Water Hardness FAQ

Does Kansas have hard water?

Yes — across Kansas's measured cities, typical tap water is hard. The median is 247.0 mg/L (14.4 gpg) — very hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 109 of Kansas's 118 measured cities fall in the hard or very hard bands (92%), so check your own city rather than the state average.

How hard is tap water in Kansas?

Across the 118 Kansas cities with measured values in our index, the median hardness is 247.0 mg/L (14.4 gpg) — very hard on the USGS scale. Individual cities range from 67.0 to 751.0 mg/L, so check your own city rather than assuming the state number.

Which city in Kansas has the hardest water?

Holcomb has the hardest measured tap water in our Kansas index at 751.0 mg/L (43.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 Kansas?

109 of Kansas's 118 measured cities (92%) 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 Kansas city from utility-reported water quality data, check your water utility's annual Consumer Confidence Report (CCR), or use a home test-strip kit.

Need whole-house or professional water treatment?

For the problems a pitcher or under-sink filter cannot fix — scale, rust and black staining, sulfur smell, well contamination, or test results you cannot explain. Tell us what is happening and we will connect you with a local water-treatment professional.

TapWaterData may be compensated when you are connected with a water-treatment professional.

Get the Weekly Water Brief

One email a week on water testing, treatment, and what water-quality data means for your home.

One email a week. Unsubscribe anytime.