Skip to main content
💧 TapWaterData

Water Hardness in Kansas

Across 220 measured cities — with 124 more covered by labeled county-level estimates — Kansas's median tap water hardness is 258.0 mg/L (15.1 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 July 6, 2026. Sources: utility-reported water quality data and USGS/EPA Water Quality Portal samples.

State Median
258.0
mg/L (15.1 gpg), measured cities
Measured Range
67.0-1000.0
mg/L across measured cities
Measured Cities
220
utility-reported or computed values
County Estimates
124
36% of covered cities

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/L115.0%
Hard120-180 mg/L5926.8%
Very hard>180 mg/L15068.2%

Hardest and Softest Water in Kansas

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

Hardest water in Kansas

  1. Chapman 1000.0 mg/L (58.5 gpg), very hard
  2. Holcomb 751.0 mg/L (43.9 gpg), very hard
  3. Rozel 695.0 mg/L (40.6 gpg), very hard
  4. Galva 638.0 mg/L (37.3 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. Manhattan 103.1 mg/L (6.0 gpg), moderately hard
  4. Alma 111.0 mg/L (6.5 gpg), moderately hard
  5. McFarland 111.0 mg/L (6.5 gpg), moderately hard

Every Covered City in Kansas

All 344 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
Lake Quivira176.310.3HardUtility-reported
Olathe140.48.2HardUtility-reported
Gardner135.47.9HardUtility-reported
Spring Hill135.07.9HardUtility-reported
De Soto134.97.9HardUtility-reported
Edwardsville140.08.2HardUtility-reported
Fairway135.07.9HardUtility-reported
Leawood135.07.9HardUtility-reported
Lenexa135.07.9HardUtility-reported
Merriam135.07.9HardUtility-reported
Mission135.07.9HardUtility-reported
Mission Hills135.07.9HardUtility-reported
Mission Woods135.07.9HardUtility-reported
Overland Park135.07.9HardUtility-reported
Prairie Village135.07.9HardUtility-reported
Roeland Park135.07.9HardUtility-reported
Shawnee135.07.9HardUtility-reported
Westwood135.07.9HardUtility-reported
Westwood Hills135.07.9HardUtility-reported
Park City138.08.1HardUtility-reported
Wichita138.08.1HardUtility-reported
Kansas City303.017.7Very hardUtility-reported
Topeka144.88.5HardUtility-reported
Lawrence141.68.3HardUtility-reported
Manhattan103.16.0Moderately hardUtility-reported
Leavenworth128.07.5HardUtility-reported
Garden City374.721.9Very hardUtility-reported
South Hutchinson270.015.8Very hardCounty estimate
Fort Riley140.08.2HardUtility-reported
Derby133.07.8HardUtility-reported
Emporia76.14.5Moderately hardUtility-reported
Pittsburg130.97.7HardUtility-reported
Hays170.610.0HardUtility-reported
El Dorado117.06.8Moderately hardUtility-reported
Liberal233.913.7Very hardUtility-reported
Junction City168.09.8HardUtility-reported
Ottawa144.38.4HardUtility-reported
Arkansas City206.112.1Very hardUtility-reported
Great Bend394.923.1Very hardUtility-reported
Atchison294.217.2Very hardUtility-reported
Winfield136.08.0HardUtility-reported
Augusta120.07.0Moderately hardUtility-reported
Paola133.07.8HardUtility-reported
Mcpherson363.021.2Very hardUtility-reported
Lansing230.013.4Very hardCounty estimate
Mulvane127.87.5HardUtility-reported
McConnell AFB133.07.8HardUtility-reported
Parsons129.07.5HardUtility-reported
Rose Hill133.07.8HardUtility-reported
Haysville225.013.2Very hardUtility-reported
Bonner Springs416.024.3Very hardUtility-reported
Coffeyville179.710.5HardUtility-reported
Mulberry156.79.2HardComputed from Ca+Mg
Wamego124.57.3HardUtility-reported
Valley Center133.07.8HardUtility-reported
Hillsdale133.07.8HardUtility-reported
Louisburg133.07.8HardUtility-reported
Towanda260.015.2Very hardCounty estimate
Osawatomie198.011.6Very hardUtility-reported
Edgerton220.012.9Very hardCounty estimate
Basehor230.013.4Very hardCounty estimate
Nortonville304.717.8Very hardUtility-reported
Louisville127.07.4HardUtility-reported
Saint George127.07.4HardUtility-reported
St. George127.07.4HardUtility-reported
Mayetta288.016.8Very hardUtility-reported
Frontenac285.616.7Very hardUtility-reported
Tonganoxie215.012.6Very hardUtility-reported
McLouth260.915.3Very hardUtility-reported
Ulysses323.018.9Very hardUtility-reported
Auburn260.015.2Very hardCounty estimate
Benton260.015.2Very hardCounty estimate
Tecumseh260.015.2Very hardCounty estimate
Beloit121.07.1HardUtility-reported
Baxter Springs190.711.2Very hardUtility-reported
Ellsworth236.813.8Very hardUtility-reported
Larned498.029.1Very hardUtility-reported
Andover260.015.2Very hardCounty estimate
Garnett128.07.5HardUtility-reported
Clearwater235.713.8Very hardUtility-reported
Lecompton156.09.1HardUtility-reported
Berryton156.09.1HardUtility-reported
Desoto125.07.3HardUtility-reported
Whitewater260.015.2Very hardUtility-reported
Overbrook133.67.8HardUtility-reported
Holton288.016.8Very hardUtility-reported
Effingham313.718.4Very hardUtility-reported
Lindsborg280.016.4Very hardUtility-reported
Hiawatha260.015.2Very hardCounty estimate
Peabody260.015.2Very hardUtility-reported
Lancaster330.019.3Very hardUtility-reported
Easton271.015.8Very hardUtility-reported
Hugoton294.017.2Very hardUtility-reported
Scott City381.022.3Very hardUtility-reported
Huron330.019.3Very hardUtility-reported
Winchester271.015.8Very hardUtility-reported
Lyons341.019.9Very hardUtility-reported
Altamont140.08.2HardCounty estimate
Hesston223.013.0Very hardUtility-reported
Columbus202.111.8Very hardUtility-reported
Moundridge253.514.8Very hardUtility-reported
Elbing260.015.2Very hardUtility-reported
Walton260.015.2Very hardUtility-reported
Rantoul242.214.2Very hardUtility-reported
Riverton252.414.8Very hardUtility-reported
Kingman173.010.1HardUtility-reported
Holyrood346.220.3Very hardUtility-reported
Baldwin City190.011.1Very hardCounty estimate
Eudora190.011.1Very hardCounty estimate
Newton260.015.2Very hardUtility-reported
Arma175.010.2HardUtility-reported
Seneca310.018.1Very hardCounty estimate
Independence170.09.9HardCounty estimate
Lorraine333.919.5Very hardUtility-reported
Norton320.018.7Very hardCounty estimate
Grandview Plaza403.023.6Very hardUtility-reported
Galena210.012.3Very hardUtility-reported
Kechi242.014.2Very hardCounty estimate
Hoisington320.018.7Very hardUtility-reported
Leon260.015.2Very hardCounty estimate
Fontana150.08.8HardCounty estimate
Beverly347.020.3Very hardUtility-reported
Brookville347.020.3Very hardUtility-reported
Bunker Hill347.020.3Very hardUtility-reported
Dorrance347.020.3Very hardUtility-reported
Gorham347.020.3Very hardUtility-reported
Lincoln Center347.020.3Very hardUtility-reported
Lucas347.020.3Very hardUtility-reported
Luray347.020.3Very hardUtility-reported
Paradise347.020.3Very hardUtility-reported
Russell347.020.3Very hardUtility-reported
Sylvan Grove347.020.3Very hardUtility-reported
Tescott347.020.3Very hardUtility-reported
Waldo347.020.3Very hardUtility-reported
Wilson347.020.3Very hardUtility-reported
Goddard268.015.7Very hardUtility-reported
Halstead119.07.0Moderately hardUtility-reported
Hoyt310.018.1Very hardCounty estimate
Parkerfield373.021.8Very hardUtility-reported
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
Marysville276.416.2Very hardUtility-reported
Sterling402.023.5Very hardUtility-reported
Meriden328.019.2Very hardUtility-reported
Eureka230.013.4Very hardCounty estimate
Williamsburg180.010.5HardUtility-reported
Oskaloosa381.022.3Very hardUtility-reported
Phillipsburg450.026.3Very hardCounty estimate
Neodesha170.09.9HardCounty estimate
Galesburg170.09.9HardCounty estimate
Burlingame210.012.3Very hardCounty estimate
Harveyville290.017.0Very hardCounty estimate
Horton280.016.4Very hardUtility-reported
Holcomb751.043.9Very hardUtility-reported
Cimarron290.017.0Very hardCounty estimate
Cheney130.07.6HardUtility-reported
Simpson513.030.0Very hardUtility-reported
Randall330.019.3Very hardCounty estimate
Mound City160.09.4HardCounty estimate
Westphalia105.06.1Moderately 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
Burden250.014.6Very hardCounty estimate
Cambridge250.014.6Very hardCounty estimate
Dexter250.014.6Very hardCounty estimate
Ellinwood401.023.4Very hardUtility-reported
Pleasanton160.09.4HardCounty estimate
Goessel263.715.4Very hardUtility-reported
Minneapolis370.021.6Very hardCounty estimate
Girard318.018.6Very hardUtility-reported
Marion585.034.2Very hardCounty estimate
West Mineral180.010.5HardUtility-reported
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
Hanover324.018.9Very hardUtility-reported
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
Beattie234.013.7Very hardUtility-reported
Smith Center555.032.5Very hardCounty estimate
Douglass260.015.2Very hardCounty estimate
Galva638.037.3Very hardUtility-reported
Meade182.010.6Very hardUtility-reported
Brownell273.016.0Very hardUtility-reported
Ellis273.016.0Very hardUtility-reported
Scammon230.013.4Very hardUtility-reported
Weir230.013.4Very 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
Fairview513.030.0Very hardUtility-reported
Leoti256.015.0Very hardUtility-reported
Osage City210.012.3Very hardCounty estimate
Conway Springs130.07.6HardUtility-reported
Kinsley550.032.2Very hardCounty estimate
Hill City235.013.7Very hardCounty estimate
Alma111.06.5Moderately hardUtility-reported
McFarland111.06.5Moderately hardUtility-reported
Paxico111.06.5Moderately hardUtility-reported
Hillsboro250.014.6Very hardUtility-reported
Lehigh250.014.6Very hardUtility-reported
Olmitz243.014.2Very hardUtility-reported
Stockton520.030.4Very hardCounty estimate
Sublette214.012.5Very hardUtility-reported
Little River310.018.1Very hardUtility-reported
Carbondale119.07.0Moderately hardUtility-reported
Johnson City253.014.8Very hardUtility-reported
Osborne530.031.0Very hardCounty estimate
Inman340.019.9Very hardUtility-reported
Reading240.014.0Very hardCounty estimate
Geuda Springs263.015.4Very hardUtility-reported
Ness City470.027.5Very hardCounty estimate
Onaga270.015.8Very hardCounty estimate
Oketo251.814.7Very hardUtility-reported
Atwood205.512.0Very hardCounty estimate
Buhler270.015.8Very hardCounty estimate
Elwood230.013.4Very hardCounty estimate
Glen Elder374.421.9Very 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
Rossville260.015.2Very hardCounty estimate
Hollenberg324.018.9Very hardUtility-reported
Washington324.018.9Very hardUtility-reported
Liberty170.09.9HardCounty estimate
Alta Vista403.023.6Very hardUtility-reported
Council Grove403.023.6Very hardUtility-reported
Dunlap403.023.6Very hardUtility-reported
Dwight403.023.6Very hardUtility-reported
Parkerville403.023.6Very hardUtility-reported
White City403.023.6Very hardUtility-reported
Valley Falls240.014.0Very hardCounty estimate
Bartlett140.08.2HardCounty estimate
Edna140.08.2HardCounty estimate
Assaria311.118.2Very hardUtility-reported
Nickerson347.020.3Very hardUtility-reported
Satanta323.018.9Very hardUtility-reported
Plains194.011.3Very hardUtility-reported
Caldwell260.015.2Very hardCounty estimate
Sedan190.011.1Very hardCounty estimate
Olpe240.014.0Very hardCounty estimate
Everest67.03.9Moderately hardUtility-reported
Neosho Rapids240.014.0Very hardCounty estimate
Burr Oak298.017.4Very hardUtility-reported
Esbon298.017.4Very hardUtility-reported
Mankato298.017.4Very hardUtility-reported
Webber298.017.4Very hardUtility-reported
Dighton356.020.8Very hardUtility-reported
Morrill260.015.2Very hardCounty estimate
Blue Rapids377.022.1Very hardUtility-reported
Robinson260.015.2Very hardCounty estimate
Lyndon156.09.1HardUtility-reported
Vassar156.09.1HardUtility-reported
Windom290.017.0Very hardCounty estimate
Cawker City333.019.5Very hardUtility-reported
Hunter333.019.5Very hardUtility-reported
Tipton333.019.5Very hardUtility-reported
Milford204.011.9Very hardUtility-reported
Salina330.019.3Very hardCounty estimate
Powhattan260.015.2Very hardCounty estimate
Mound Valley140.08.2HardCounty estimate
Sabetha310.018.1Very hardCounty estimate
Frankfort286.016.7Very hardUtility-reported
Hamlin513.030.0Very hardUtility-reported
Silver Lake255.014.9Very hardUtility-reported
Wellsville170.09.9HardCounty estimate
Waterville445.026.0Very hardUtility-reported
Pretty Prairie96.55.6Moderately hardUtility-reported
Olsburg370.021.6Very hardUtility-reported
Westmoreland370.021.6Very hardUtility-reported
Cherryvale170.09.9HardCounty estimate
Crestline241.014.1Very hardUtility-reported
Linwood196.011.5Very hardUtility-reported
Cherokee1.50.1SoftCounty estimate
Macksville186.010.9Very hardUtility-reported
Cunningham209.012.2Very hardUtility-reported
Kanopolis272.015.9Very hardUtility-reported
Denton230.013.4Very hardCounty estimate
Norwich230.013.4Very hardCounty estimate
Arlington210.012.3Very hardUtility-reported
Concordia315.018.4Very hardUtility-reported
Jamestown315.018.4Very hardUtility-reported
Chase333.019.5Very hardUtility-reported
Lewis262.015.3Very hardUtility-reported
Rolla359.021.0Very hardUtility-reported
Dearing170.09.9HardCounty estimate
Kismet267.015.6Very hardUtility-reported
Princeton170.09.9HardCounty estimate
Udall250.014.6Very hardCounty estimate
Murdock230.013.4Very hardCounty estimate
Moscow224.013.1Very hardUtility-reported
Healy343.020.1Very hardUtility-reported
Copeland235.013.7Very hardUtility-reported
Geneseo479.028.0Very hardUtility-reported
Harper240.014.0Very hardCounty estimate
Bushton328.019.2Very hardUtility-reported
Pawnee Rock245.014.3Very hardUtility-reported
Schoenchen400.023.4Very hardUtility-reported
Albert420.024.6Very hardUtility-reported
Oxford260.015.2Very hardCounty estimate
Belpre233.013.6Very hardUtility-reported
Rozel695.040.6Very hardUtility-reported
Raymond213.012.5Very hardUtility-reported
Chapman1000.058.5Very hardUtility-reported
Falun545.031.9Very hardUtility-reported
Zenda228.013.3Very hardUtility-reported
Spivey230.013.4Very hardCounty estimate
Timken569.033.3Very hardUtility-reported

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 258.0 mg/L (15.1 gpg) — very hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 209 of Kansas's 220 measured cities fall in the hard or very hard bands (95%), so check your own city rather than the state average.

How hard is tap water in Kansas?

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

Which city in Kansas has the hardest water?

Chapman has the hardest measured tap water in our Kansas index at 1000.0 mg/L (58.5 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?

209 of Kansas's 220 measured cities (95%) 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.

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.