Water Hardness in Illinois
Across 156 measured cities — with 483 more covered by labeled county-level estimates — Illinois's median tap water hardness is 157.0 mg/L (9.2 gpg): 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.
What it costs to soften Illinois water
Water softener cost in Illinois at 9.2 gpg prices the equipment and the installation labour against the plumber wages published for Illinois, and labels every range as modelled or measured rather than leaving you to guess which it is.
Illinois · 9.18 grains per gallon
$1,039–$1,472
installed, midpoint $1,231 — a 24,000-grain unit, the size 4 people at this hardness need.
Salt and drain water over 10 years: $858–$1,523 — the 10,052,100 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: 19,278 grains of capacity needed, rounded up to the next common residential size. The median of 156 measured Illinois 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.
Illinois 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 | 5.1% |
| Moderately hard | 60-120 mg/L | 34 | 21.8% |
| Hard | 120-180 mg/L | 42 | 26.9% |
| Very hard | >180 mg/L | 72 | 46.2% |
Hardest and Softest Water in Illinois
Measured values only; labeled county estimates and values under active dispute never rank.
Hardest water in Illinois
- East Dubuque — 610.0 mg/L (35.7 gpg), very hard
- North Pekin — 567.0 mg/L (33.2 gpg), very hard
- Monee — 558.0 mg/L (32.6 gpg), very hard
- Crete — 524.0 mg/L (30.6 gpg), very hard
- Fox River Grove — 520.0 mg/L (30.4 gpg), very hard
Softest water in Illinois
- West Dundee — 14.0 mg/L (0.8 gpg), soft
- Wataga — 17.7 mg/L (1.0 gpg), soft
- Huntley — 31.2 mg/L (1.8 gpg), soft
- Carbondale — 36.2 mg/L (2.1 gpg), soft
- Chenoa — 42.4 mg/L (2.5 gpg), soft
Every Covered City in Illinois
All 639 covered Illinois 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 |
|---|---|---|---|---|
| Chicago | 138.9 | 8.1 | Hard | Utility-reported |
| Elmwood Park | 229.0 | 13.4 | Very hard | County estimate |
| Evergreen Park | 229.0 | 13.4 | Very hard | County estimate |
| Oak Park | 229.0 | 13.4 | Very hard | County estimate |
| Riverdale | 229.0 | 13.4 | Very hard | County estimate |
| Naperville | 120.0 | 7.0 | Moderately hard | Utility-reported |
| Joliet | 244.0 | 14.3 | Very hard | Utility-reported |
| Shorewood | 287.0 | 16.8 | Very hard | County estimate |
| Rockford | 329.0 | 19.2 | Very hard | Utility-reported |
| Champaign | 84.3 | 4.9 | Moderately hard | Utility-reported |
| East St. Louis | 157.0 | 9.2 | Hard | Utility-reported |
| Peoria | 283.0 | 16.6 | Very hard | Utility-reported |
| Springfield | 280.0 | 16.4 | Very hard | County estimate |
| Chatham | 280.0 | 16.4 | Very hard | County estimate |
| Bartlett | 287.0 | 16.8 | Very hard | County estimate |
| Elgin | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Bolingbrook | 287.0 | 16.8 | Very hard | County estimate |
| Waukegan | 119.0 | 7.0 | Moderately hard | Utility-reported |
| Cicero | 229.0 | 13.4 | Very hard | County estimate |
| Kankakee | 138.0 | 8.1 | Hard | Utility-reported |
| Arlington Heights | 115.0 | 6.7 | Moderately hard | Utility-reported |
| Bloomington | 327.0 | 19.1 | Very hard | County estimate |
| Evanston | 135.0 | 7.9 | Hard | Utility-reported |
| Schaumburg | 130.3 | 7.6 | Hard | Computed from Ca+Mg |
| Palatine | 229.0 | 13.4 | Very hard | County estimate |
| Skokie | 132.0 | 7.7 | Hard | Utility-reported |
| Des Plaines | 126.0 | 7.4 | Hard | Utility-reported |
| Desplaines | 126.0 | 7.4 | Hard | Utility-reported |
| Orland Park | 147.0 | 8.6 | Hard | Utility-reported |
| Berwyn | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Forest Park | 229.0 | 13.4 | Very hard | County estimate |
| Oak Lawn | 229.0 | 13.4 | Very hard | County estimate |
| Tinley Park | 300.0 | 17.5 | Very hard | Utility-reported |
| Normal | 327.0 | 19.1 | Very hard | County estimate |
| Wheaton | 124.0 | 7.3 | Hard | Utility-reported |
| Hoffman Estates | 229.0 | 13.4 | Very hard | County estimate |
| Romeoville | 303.0 | 17.7 | Very hard | Utility-reported |
| Downers Grove | 131.0 | 7.7 | Hard | Utility-reported |
| Lombard | 287.0 | 16.8 | Very hard | County estimate |
| Vernon Hills | 250.0 | 14.6 | Very hard | County estimate |
| Mundelein | 250.0 | 14.6 | Very hard | County estimate |
| Addison | 287.0 | 16.8 | Very hard | County estimate |
| Elmhurst | 112.0 | 6.5 | Moderately hard | Utility-reported |
| Alton | 190.0 | 11.1 | Very hard | Utility-reported |
| Godfrey | 276.0 | 16.1 | Very hard | County estimate |
| Gurnee | 250.0 | 14.6 | Very hard | County estimate |
| Moline | 110.0 | 6.4 | Moderately hard | Utility-reported |
| Buffalo Grove | 135.0 | 7.9 | Hard | Utility-reported |
| Glenview | 229.0 | 13.4 | Very hard | County estimate |
| Mount Prospect | 112.0 | 6.5 | Moderately hard | Utility-reported |
| Crystal Lake | 343.0 | 20.1 | Very hard | County estimate |
| Streamwood | 229.0 | 13.4 | Very hard | County estimate |
| Bloomingdale | 287.0 | 16.8 | Very hard | County estimate |
| Carol Stream | 287.0 | 16.8 | Very hard | County estimate |
| Wheeling | 108.0 | 6.3 | Moderately hard | Utility-reported |
| Oswego | 235.0 | 13.7 | Very hard | Utility-reported |
| Danville | 310.0 | 18.1 | Very hard | County estimate |
| Carpentersville | 67.4 | 3.9 | Moderately hard | Computed from Ca+Mg |
| Hanover Park | 140.0 | 8.2 | Hard | Utility-reported |
| Granite City | 157.0 | 9.2 | Hard | Utility-reported |
| Markham | 229.0 | 13.4 | Very hard | County estimate |
| Calumet City | 229.0 | 13.4 | Very hard | County estimate |
| Machesney Park | 387.0 | 22.6 | Very hard | Utility-reported |
| Darien | 287.0 | 16.8 | Very hard | County estimate |
| Woodridge | 129.0 | 7.5 | Hard | Utility-reported |
| Pekin | 352.0 | 20.6 | Very hard | Utility-reported |
| Elk Grove Village | 141.0 | 8.3 | Hard | Utility-reported |
| Northbrook | 229.0 | 13.4 | Very hard | County estimate |
| Libertyville | 250.0 | 14.6 | Very hard | County estimate |
| Glendale Heights | 287.0 | 16.8 | Very hard | County estimate |
| St. Charles | 320.5 | 18.7 | Very hard | County estimate |
| Burbank | 229.0 | 13.4 | Very hard | County estimate |
| Chicago Heights | 229.0 | 13.4 | Very hard | County estimate |
| Algonquin | 378.0 | 22.1 | Very hard | Utility-reported |
| Maryville | 276.0 | 16.1 | Very hard | County estimate |
| Lake in the Hills | 283.0 | 16.6 | Very hard | Utility-reported |
| Glen Ellyn | 136.0 | 8.0 | Hard | Utility-reported |
| New Lenox | 137.0 | 8.0 | Hard | Utility-reported |
| Wilmette | 138.0 | 8.1 | Hard | Utility-reported |
| West Chicago | 287.0 | 16.8 | Very hard | County estimate |
| Huntley | 31.2 | 1.8 | Soft | Utility-reported |
| Edwardsville | 87.4 | 5.1 | Moderately hard | Computed from Ca+Mg |
| Midlothian | 229.0 | 13.4 | Very hard | County estimate |
| Carbondale | 36.2 | 2.1 | Soft | Utility-reported |
| Batavia | 320.5 | 18.7 | Very hard | County estimate |
| Woodstock | 343.0 | 20.1 | Very hard | County estimate |
| Maywood | 229.0 | 13.4 | Very hard | County estimate |
| Melrose Park | 103.0 | 6.0 | Moderately hard | Utility-reported |
| Belvidere | 416.0 | 24.3 | Very hard | Utility-reported |
| Harvey | 229.0 | 13.4 | Very hard | County estimate |
| Hazel Crest | 229.0 | 13.4 | Very hard | County estimate |
| Westmont | 118.0 | 6.9 | Moderately hard | Utility-reported |
| Zion | 250.0 | 14.6 | Very hard | County estimate |
| Rolling Meadows | 229.0 | 13.4 | Very hard | County estimate |
| Loves Park | 316.0 | 18.5 | Very hard | Utility-reported |
| Blue Island | 229.0 | 13.4 | Very hard | County estimate |
| Grayslake | 250.0 | 14.6 | Very hard | County estimate |
| Morton Grove | 229.0 | 13.4 | Very hard | County estimate |
| East Peoria | 408.0 | 23.9 | Very hard | Utility-reported |
| Lockport | 287.0 | 16.8 | Very hard | County estimate |
| Plano | 378.0 | 22.1 | Very hard | County estimate |
| Lisle | 287.0 | 16.8 | Very hard | County estimate |
| Roselle | 287.0 | 16.8 | Very hard | County estimate |
| South Elgin | 395.0 | 23.1 | Very hard | Utility-reported |
| South Holland | 140.0 | 8.2 | Hard | Utility-reported |
| Villa Park | 98.9 | 5.8 | Moderately hard | Utility-reported |
| McHenry | 399.0 | 23.3 | Very hard | Utility-reported |
| Park Forest | 163.0 | 9.5 | Hard | Utility-reported |
| Dolton | 229.0 | 13.4 | Very hard | County estimate |
| Crest Hill | 465.0 | 27.2 | Very hard | Utility-reported |
| Matteson | 229.0 | 13.4 | Very hard | County estimate |
| East Moline | 190.0 | 11.1 | Very hard | Utility-reported |
| Hampton | 320.0 | 18.7 | Very hard | County estimate |
| Alsip | 229.0 | 13.4 | Very hard | County estimate |
| Homer Glen | 287.0 | 16.8 | Very hard | County estimate |
| Lake Zurich | 84.2 | 4.9 | Moderately hard | Utility-reported |
| Mokena | 91.2 | 5.3 | Moderately hard | Utility-reported |
| Mattoon | 108.0 | 6.3 | Moderately hard | Utility-reported |
| Homewood | 112.0 | 6.5 | Moderately hard | Utility-reported |
| Deerfield | 250.0 | 14.6 | Very hard | County estimate |
| Bellwood | 229.0 | 13.4 | Very hard | County estimate |
| Westchester | 229.0 | 13.4 | Very hard | County estimate |
| Bethalto | 276.0 | 16.1 | Very hard | County estimate |
| Streator | 253.0 | 14.8 | Very hard | Utility-reported |
| Brookfield | 229.0 | 13.4 | Very hard | County estimate |
| Crestwood | 229.0 | 13.4 | Very hard | County estimate |
| Worth | 229.0 | 13.4 | Very hard | County estimate |
| Justice | 229.0 | 13.4 | Very hard | County estimate |
| Willow Springs | 229.0 | 13.4 | Very hard | County estimate |
| North Aurora | 238.0 | 13.9 | Very hard | Utility-reported |
| Franklin Park | 229.0 | 13.4 | Very hard | County estimate |
| Bensenville | 287.0 | 16.8 | Very hard | County estimate |
| Hinsdale | 133.0 | 7.8 | Hard | Utility-reported |
| Cary | 343.0 | 20.1 | Very hard | County estimate |
| Sycamore | 289.0 | 16.9 | Very hard | Utility-reported |
| Palos Hills | 229.0 | 13.4 | Very hard | County estimate |
| New Burnside | 83.1 | 4.9 | Moderately hard | County estimate |
| Morton | 347.0 | 20.3 | Very hard | County estimate |
| Caseyville | 265.5 | 15.5 | Very hard | County estimate |
| Groveland | 347.0 | 20.3 | Very hard | County estimate |
| Lemont | 224.0 | 13.1 | Very hard | Utility-reported |
| Marion | 170.0 | 9.9 | Hard | County estimate |
| North Chicago | 135.0 | 7.9 | Hard | Utility-reported |
| Troy | 276.0 | 16.1 | Very hard | County estimate |
| Canton | 344.0 | 20.1 | Very hard | County estimate |
| Country Club Hills | 229.0 | 13.4 | Very hard | County estimate |
| Bridgeview | 229.0 | 13.4 | Very hard | County estimate |
| Taylorville | 142.0 | 8.3 | Hard | Utility-reported |
| La Grange | 122.0 | 7.1 | Hard | Utility-reported |
| Lagrange | 122.0 | 7.1 | Hard | Utility-reported |
| Palos Heights | 229.0 | 13.4 | Very hard | County estimate |
| Lincoln | 189.0 | 11.1 | Very hard | Utility-reported |
| Georgetown | 310.0 | 18.1 | Very hard | County estimate |
| Washington | 347.0 | 20.3 | Very hard | County estimate |
| Morris | 327.0 | 19.1 | Very hard | County estimate |
| Antioch | 250.0 | 14.6 | Very hard | County estimate |
| Chicago Ridge | 229.0 | 13.4 | Very hard | County estimate |
| Wauconda | 146.0 | 8.5 | Hard | Utility-reported |
| Hickory Hills | 229.0 | 13.4 | Very hard | County estimate |
| Energy | 170.0 | 9.9 | Hard | County estimate |
| Wood Dale | 287.0 | 16.8 | Very hard | County estimate |
| Nashville | 165.5 | 9.7 | Hard | County estimate |
| La Grange Park | 129.0 | 7.5 | Hard | Utility-reported |
| Lagrange Park | 129.0 | 7.5 | Hard | Utility-reported |
| Glen Carbon | 276.0 | 16.1 | Very hard | County estimate |
| Western Springs | 229.0 | 13.4 | Very hard | County estimate |
| Rantoul | 300.0 | 17.5 | Very hard | County estimate |
| Herrin | 170.0 | 9.9 | Hard | County estimate |
| Channahon | 193.0 | 11.3 | Very hard | Utility-reported |
| Warrenville | 474.0 | 27.7 | Very hard | Utility-reported |
| Kewanee | 54.3 | 3.2 | Soft | Utility-reported |
| Richton Park | 206.0 | 12.1 | Very hard | Utility-reported |
| Lincolnwood | 136.0 | 8.0 | Hard | Utility-reported |
| Winnetka | 135.0 | 7.9 | Hard | Utility-reported |
| Effingham | 235.0 | 13.7 | Very hard | County estimate |
| Minooka | 378.0 | 22.1 | Very hard | County estimate |
| Pontiac | 191.0 | 11.2 | Very hard | Utility-reported |
| Jerseyville | 108.0 | 6.3 | Moderately hard | Utility-reported |
| Columbia | 232.5 | 13.6 | Very hard | County estimate |
| Schiller Park | 229.0 | 13.4 | Very hard | County estimate |
| Willowbrook | 287.0 | 16.8 | Very hard | County estimate |
| Palestine | 264.0 | 15.4 | Very hard | Utility-reported |
| Sugar Grove | 419.0 | 24.5 | Very hard | Utility-reported |
| River Forest | 135.0 | 7.9 | Hard | Utility-reported |
| Lyons | 229.0 | 13.4 | Very hard | County estimate |
| Murphysboro | 166.0 | 9.7 | Hard | County estimate |
| Centralia | 140.0 | 8.2 | Hard | County estimate |
| Macomb | 240.5 | 14.1 | Very hard | County estimate |
| Wood River | 128.1 | 7.5 | Hard | Computed from Ca+Mg |
| Manhattan | 287.0 | 16.8 | Very hard | County estimate |
| River Grove | 229.0 | 13.4 | Very hard | County estimate |
| Waterloo | 232.5 | 13.6 | Very hard | County estimate |
| Itasca | 287.0 | 16.8 | Very hard | County estimate |
| Flossmoor | 146.0 | 8.5 | Hard | Utility-reported |
| Steger | 229.0 | 13.4 | Very hard | County estimate |
| West Frankfort | 124.0 | 7.3 | Hard | County estimate |
| Oak Brook | 287.0 | 16.8 | Very hard | County estimate |
| Rock Falls | 334.0 | 19.5 | Very hard | County estimate |
| Mascoutah | 265.5 | 15.5 | Very hard | County estimate |
| Pierron | 163.0 | 9.5 | Hard | County estimate |
| Monmouth | 284.0 | 16.6 | Very hard | County estimate |
| Lake Villa | 205.0 | 12.0 | Very hard | Utility-reported |
| Clarendon Hills | 136.0 | 8.0 | Hard | Utility-reported |
| Harwood Heights | 229.0 | 13.4 | Very hard | County estimate |
| Whittington | 124.0 | 7.3 | Hard | County estimate |
| Crete | 524.0 | 30.6 | Very hard | Utility-reported |
| Island Lake | 250.0 | 14.6 | Very hard | County estimate |
| Pingree Grove | 64.6 | 3.8 | Moderately hard | Utility-reported |
| Broadview | 229.0 | 13.4 | Very hard | County estimate |
| Decatur | 261.0 | 15.3 | Very hard | County estimate |
| Silvis | 244.0 | 14.3 | Very hard | Utility-reported |
| Rockton | 295.0 | 17.3 | Very hard | Utility-reported |
| West Dundee | 14.0 | 0.8 | Soft | Computed from Ca+Mg |
| Dupo | 265.5 | 15.5 | Very hard | County estimate |
| Lincolnshire | 250.0 | 14.6 | Very hard | County estimate |
| Gilberts | 320.5 | 18.7 | Very hard | County estimate |
| DeKalb | 340.0 | 19.9 | Very hard | County estimate |
| University Park | 287.0 | 16.8 | Very hard | County estimate |
| Pocahontas | 163.0 | 9.5 | Hard | County estimate |
| Camp Point | 220.0 | 12.9 | Very hard | County estimate |
| Scott Air Force Base | 265.5 | 15.5 | Very hard | County estimate |
| Winthrop Harbor | 250.0 | 14.6 | Very hard | County estimate |
| Sheridan | 321.0 | 18.8 | Very hard | County estimate |
| Mahomet | 300.0 | 17.5 | Very hard | County estimate |
| Carmi | 167.5 | 9.8 | Hard | County estimate |
| Elburn | 232.0 | 13.6 | Very hard | Utility-reported |
| Sherman | 280.0 | 16.4 | Very hard | County estimate |
| Williamsville | 280.0 | 16.4 | Very hard | County estimate |
| Posen | 229.0 | 13.4 | Very hard | County estimate |
| Peoria Heights | 300.0 | 17.5 | Very hard | County estimate |
| Mount Zion | 103.0 | 6.0 | Moderately hard | Utility-reported |
| East Alton | 276.0 | 16.1 | Very hard | County estimate |
| Lake Bluff | 93.7 | 5.5 | Moderately hard | Utility-reported |
| Coal City | 98.3 | 5.8 | Moderately hard | Utility-reported |
| Hampshire | 60.5 | 3.5 | Moderately hard | Utility-reported |
| Charleston | 290.0 | 17.0 | Very hard | County estimate |
| Robbins | 229.0 | 13.4 | Very hard | County estimate |
| Valmeyer | 232.5 | 13.6 | Very hard | County estimate |
| Highwood | 120.0 | 7.0 | Moderately hard | Utility-reported |
| Wonder Lake | 292.3 | 17.1 | Very hard | Computed from Ca+Mg |
| Marseilles | 321.0 | 18.8 | Very hard | County estimate |
| Monee | 558.0 | 32.6 | Very hard | Utility-reported |
| Berkeley | 229.0 | 13.4 | Very hard | County estimate |
| Jonesboro | 156.5 | 9.2 | Hard | County estimate |
| Tuscola | 286.0 | 16.7 | Very hard | County estimate |
| Olympia Fields | 229.0 | 13.4 | Very hard | County estimate |
| Stone Park | 229.0 | 13.4 | Very hard | County estimate |
| Creve Coeur | 299.6 | 17.5 | Very hard | Computed from Ca+Mg |
| Anna | 156.5 | 9.2 | Hard | County estimate |
| Palos Park | 229.0 | 13.4 | Very hard | County estimate |
| Fox River Grove | 520.0 | 30.4 | Very hard | Utility-reported |
| Norwood | 367.0 | 21.5 | Very hard | Utility-reported |
| Freeburg | 265.5 | 15.5 | Very hard | County estimate |
| Millstadt | 265.5 | 15.5 | Very hard | County estimate |
| Hometown | 229.0 | 13.4 | Very hard | County estimate |
| Trenton | 168.0 | 9.8 | Hard | County estimate |
| Smithton | 265.5 | 15.5 | Very hard | County estimate |
| Volo | 111.0 | 6.5 | Moderately hard | Utility-reported |
| Coal Valley | 320.0 | 18.7 | Very hard | County estimate |
| Red Bud | 232.5 | 13.6 | Very hard | County estimate |
| Oneida | 331.0 | 19.4 | Very hard | County estimate |
| Johnston City | 170.0 | 9.9 | Hard | County estimate |
| Tolono | 300.0 | 17.5 | Very hard | County estimate |
| New Baden | 168.0 | 9.8 | Hard | County estimate |
| Oregon | 329.5 | 19.3 | Very hard | County estimate |
| Salem | 140.0 | 8.2 | Hard | County estimate |
| Carlyle | 171.0 | 10.0 | Hard | Utility-reported |
| Aledo | 270.0 | 15.8 | Very hard | County estimate |
| Mackinaw | 347.0 | 20.3 | Very hard | County estimate |
| Virden | 145.0 | 8.5 | Hard | County estimate |
| Woodlawn | 180.0 | 10.5 | Hard | County estimate |
| Gibson City | 355.0 | 20.8 | Very hard | County estimate |
| Galena | 365.0 | 21.4 | Very hard | County estimate |
| Bushnell | 240.5 | 14.1 | Very hard | County estimate |
| Rushville | 277.0 | 16.2 | Very hard | County estimate |
| Casey | 250.5 | 14.7 | Very hard | County estimate |
| Collinsville | 276.0 | 16.1 | Very hard | County estimate |
| Momence | 393.0 | 23.0 | Very hard | Utility-reported |
| Winnebago | 340.0 | 19.9 | Very hard | County estimate |
| Annapolis | 263.0 | 15.4 | Very hard | County estimate |
| Robinson | 263.0 | 15.4 | Very hard | County estimate |
| Savanna | 358.0 | 20.9 | Very hard | County estimate |
| Newton | 243.0 | 14.2 | Very hard | County estimate |
| Havana | 320.0 | 18.7 | Very hard | County estimate |
| Abingdon | 331.0 | 19.4 | Very hard | County estimate |
| Warsaw | 221.0 | 12.9 | Very hard | County estimate |
| Dixon | 354.5 | 20.7 | Very hard | County estimate |
| Albion | 178.0 | 10.4 | Hard | County estimate |
| El Paso | 336.0 | 19.6 | Very hard | County estimate |
| Heyworth | 327.0 | 19.1 | Very hard | County estimate |
| Lena | 350.0 | 20.5 | Very hard | County estimate |
| Arcola | 286.0 | 16.7 | Very hard | County estimate |
| Pawnee | 280.0 | 16.4 | Very hard | County estimate |
| Christopher | 124.0 | 7.3 | Hard | County estimate |
| Poplar Grove | 368.0 | 21.5 | Very hard | County estimate |
| Carrollton | 268.5 | 15.7 | Very hard | County estimate |
| Carthage | 221.0 | 12.9 | Very hard | County estimate |
| Galva | 370.0 | 21.6 | Very hard | County estimate |
| Bridgeport | 228.0 | 13.3 | Very hard | County estimate |
| Mason City | 235.0 | 13.7 | Very hard | County estimate |
| Colona | 243.0 | 14.2 | Very hard | Utility-reported |
| Kenilworth | 121.0 | 7.1 | Hard | Utility-reported |
| Sesser | 124.0 | 7.3 | Hard | County estimate |
| Amboy | 354.5 | 20.7 | Very hard | County estimate |
| Oblong | 263.0 | 15.4 | Very hard | County estimate |
| Tremont | 63.2 | 3.7 | Moderately hard | Utility-reported |
| Odin | 140.0 | 8.2 | Hard | County estimate |
| Farmington | 344.0 | 20.1 | Very hard | County estimate |
| Lewistown | 219.7 | 12.8 | Very hard | Computed from Ca+Mg |
| De Soto | 166.0 | 9.7 | Hard | County estimate |
| Davis Junction | 329.5 | 19.3 | Very hard | County estimate |
| Seneca | 321.0 | 18.8 | Very hard | County estimate |
| Nokomis | 185.0 | 10.8 | Very hard | County estimate |
| Jacksonville | 194.0 | 11.3 | Very hard | County estimate |
| Polo | 329.5 | 19.3 | Very hard | County estimate |
| Dawson | 280.0 | 16.4 | Very hard | County estimate |
| Round Lake | 250.0 | 14.6 | Very hard | County estimate |
| White Hall | 268.5 | 15.7 | Very hard | County estimate |
| Norris City | 344.0 | 20.1 | Very hard | County estimate |
| Altamont | 235.0 | 13.7 | Very hard | County estimate |
| Colchester | 240.5 | 14.1 | Very hard | County estimate |
| Arthur | 330.0 | 19.3 | Very hard | County estimate |
| Elwood | 287.0 | 16.8 | Very hard | County estimate |
| Prospect Heights | 229.0 | 13.4 | Very hard | County estimate |
| Henry | 284.0 | 16.6 | Very hard | County estimate |
| Girard | 145.0 | 8.5 | Hard | County estimate |
| Pecatonica | 305.0 | 17.8 | Very hard | Utility-reported |
| Steeleville | 206.5 | 12.1 | Very hard | County estimate |
| Carbon Cliff | 305.0 | 17.8 | Very hard | Utility-reported |
| Thompsonville | 124.0 | 7.3 | Hard | County estimate |
| Cambridge | 370.0 | 21.6 | Very hard | County estimate |
| Belle Rive | 180.0 | 10.5 | Hard | County estimate |
| Elmwood | 300.0 | 17.5 | Very hard | County estimate |
| Hinckley | 340.0 | 19.9 | Very hard | County estimate |
| Prophetstown | 334.0 | 19.5 | Very hard | County estimate |
| Catlin | 310.0 | 18.1 | Very hard | County estimate |
| Oakwood | 310.0 | 18.1 | Very hard | County estimate |
| Richmond | 343.0 | 20.1 | Very hard | County estimate |
| Zeigler | 124.0 | 7.3 | Hard | County estimate |
| Farmer City | 313.0 | 18.3 | Very hard | County estimate |
| Auburn | 280.0 | 16.4 | Very hard | County estimate |
| Carrier Mills | 450.0 | 26.3 | Very hard | County estimate |
| New Athens | 265.5 | 15.5 | Very hard | County estimate |
| South Roxana | 276.0 | 16.1 | Very hard | County estimate |
| Kirkland | 340.0 | 19.9 | Very hard | County estimate |
| Roanoke | 336.0 | 19.6 | Very hard | County estimate |
| Minonk | 336.0 | 19.6 | Very hard | County estimate |
| Carlinville | 145.0 | 8.5 | Hard | County estimate |
| Henderson | 331.0 | 19.4 | Very hard | County estimate |
| Lacon | 284.0 | 16.6 | Very hard | County estimate |
| Mt. Vernon | 180.0 | 10.5 | Hard | County estimate |
| Waltonville | 180.0 | 10.5 | Hard | County estimate |
| Lexington | 327.0 | 19.1 | Very hard | County estimate |
| Highland | 276.0 | 16.1 | Very hard | County estimate |
| Moweaqua | 222.0 | 13.0 | Very hard | County estimate |
| Stockton | 365.0 | 21.4 | Very hard | County estimate |
| Bluford | 180.0 | 10.5 | Hard | County estimate |
| Orion | 370.0 | 21.6 | Very hard | County estimate |
| Hudson | 327.0 | 19.1 | Very hard | County estimate |
| St. Jacob | 276.0 | 16.1 | Very hard | County estimate |
| East Carondelet | 265.5 | 15.5 | Very hard | County estimate |
| Delavan | 347.0 | 20.3 | Very hard | County estimate |
| Bement | 317.0 | 18.5 | Very hard | County estimate |
| Gilman | 315.0 | 18.4 | Very hard | County estimate |
| Somonauk | 340.0 | 19.9 | Very hard | County estimate |
| Chenoa | 42.4 | 2.5 | Soft | Computed from Ca+Mg |
| Dix | 180.0 | 10.5 | Hard | County estimate |
| Kell | 140.0 | 8.2 | Hard | County estimate |
| Bunker Hill | 145.0 | 8.5 | Hard | County estimate |
| Cambria | 170.0 | 9.9 | Hard | County estimate |
| Princeville | 300.0 | 17.5 | Very hard | County estimate |
| Manito | 347.0 | 20.3 | Very hard | County estimate |
| Edinburg | 257.0 | 15.0 | Very hard | County estimate |
| Kincaid | 257.0 | 15.0 | Very hard | County estimate |
| Grayville | 167.5 | 9.8 | Hard | County estimate |
| Stonington | 257.0 | 15.0 | Very hard | County estimate |
| Earlville | 321.0 | 18.8 | Very hard | County estimate |
| East Dubuque | 610.0 | 35.7 | Very hard | Utility-reported |
| Maroa | 114.0 | 6.7 | Moderately hard | Utility-reported |
| Vienna | 83.1 | 4.9 | Moderately hard | County estimate |
| Atlanta | 347.0 | 20.3 | Very hard | County estimate |
| Port Byron | 320.0 | 18.7 | Very hard | County estimate |
| Fisher | 300.0 | 17.5 | Very hard | County estimate |
| Neoga | 280.5 | 16.4 | Very hard | County estimate |
| Benld | 145.0 | 8.5 | Hard | County estimate |
| Erie | 334.0 | 19.5 | Very hard | County estimate |
| Herscher | 313.0 | 18.3 | Very hard | County estimate |
| Teutopolis | 235.0 | 13.7 | Very hard | County estimate |
| Winchester | 289.0 | 16.9 | Very hard | County estimate |
| Roodhouse | 412.0 | 24.1 | Very hard | Utility-reported |
| North Pekin | 567.0 | 33.2 | Very hard | Utility-reported |
| Germantown | 168.0 | 9.8 | Hard | County estimate |
| Sandoval | 140.0 | 8.2 | Hard | County estimate |
| Greenup | 280.5 | 16.4 | Very hard | County estimate |
| Pleasant Plains | 280.0 | 16.4 | Very hard | County estimate |
| Waterman | 340.0 | 19.9 | Very hard | County estimate |
| Oquawka | 314.0 | 18.4 | Very hard | County estimate |
| Bethany | 330.0 | 19.3 | Very hard | County estimate |
| Forreston | 329.5 | 19.3 | Very hard | County estimate |
| Clifton | 315.0 | 18.4 | Very hard | County estimate |
| Gardner | 327.0 | 19.1 | Very hard | County estimate |
| Walnut | 337.0 | 19.7 | Very hard | County estimate |
| Lanark | 358.0 | 20.9 | Very hard | County estimate |
| Roxana | 79.9 | 4.7 | Moderately hard | Computed from Ca+Mg |
| Hartford | 276.0 | 16.1 | Very hard | County estimate |
| Mount Carroll | 347.0 | 20.3 | Very hard | Utility-reported |
| Mt. Carroll | 347.0 | 20.3 | Very hard | Utility-reported |
| Cerro Gordo | 317.0 | 18.5 | Very hard | County estimate |
| Warren | 365.0 | 21.4 | Very hard | County estimate |
| Durand | 340.0 | 19.9 | Very hard | County estimate |
| Granville | 287.0 | 16.8 | Very hard | County estimate |
| Toluca | 284.0 | 16.6 | Very hard | County estimate |
| Okawville | 165.5 | 9.7 | Hard | County estimate |
| Gridley | 327.0 | 19.1 | Very hard | County estimate |
| Onarga | 315.0 | 18.4 | Very hard | County estimate |
| Tower Lakes | 247.2 | 14.5 | Very hard | Computed from Ca+Mg |
| Utica | 321.0 | 18.8 | Very hard | County estimate |
| Wyoming | 352.0 | 20.6 | Very hard | County estimate |
| Payson | 220.0 | 12.9 | Very hard | County estimate |
| La Fayette | 352.0 | 20.6 | Very hard | County estimate |
| Toulon | 352.0 | 20.6 | Very hard | County estimate |
| Capron | 189.3 | 11.1 | Very hard | Computed from Ca+Mg |
| Dunlap | 300.0 | 17.5 | Very hard | County estimate |
| New Berlin | 280.0 | 16.4 | Very hard | County estimate |
| Albers | 168.0 | 9.8 | Hard | County estimate |
| Milford | 315.0 | 18.4 | Very hard | County estimate |
| Assumption | 257.0 | 15.0 | Very hard | County estimate |
| Cobden | 156.5 | 9.2 | Hard | County estimate |
| Ashland | 359.0 | 21.0 | Very hard | County estimate |
| Rossville | 310.0 | 18.1 | Very hard | County estimate |
| Astoria | 344.0 | 20.1 | Very hard | County estimate |
| Harristown | 202.0 | 11.8 | Very hard | Utility-reported |
| Barry | 234.5 | 13.7 | Very hard | County estimate |
| Waverly | 194.0 | 11.3 | Very hard | County estimate |
| Maple Park | 320.5 | 18.7 | Very hard | County estimate |
| Philo | 300.0 | 17.5 | Very hard | County estimate |
| St. Anne | 313.0 | 18.3 | Very hard | County estimate |
| Warrensburg | 261.0 | 15.3 | Very hard | County estimate |
| Ladd | 337.0 | 19.7 | Very hard | County estimate |
| Griggsville | 234.5 | 13.7 | Very hard | County estimate |
| Valier | 124.0 | 7.3 | Hard | County estimate |
| Chatsworth | 340.0 | 19.9 | Very hard | County estimate |
| Hanna City | 300.0 | 17.5 | Very hard | County estimate |
| Atwood | 317.0 | 18.5 | Very hard | County estimate |
| Minier | 347.0 | 20.3 | Very hard | County estimate |
| Wayne City | 137.0 | 8.0 | Hard | Utility-reported |
| La Harpe | 221.0 | 12.9 | Very hard | County estimate |
| Thomasboro | 258.0 | 15.1 | Very hard | Utility-reported |
| Forrest | 340.0 | 19.9 | Very hard | County estimate |
| Macon | 261.0 | 15.3 | Very hard | County estimate |
| Louisville | 180.0 | 10.5 | Hard | County estimate |
| Chebanse | 313.0 | 18.3 | Very hard | County estimate |
| Chrisman | 269.0 | 15.7 | Very hard | County estimate |
| Greenfield | 268.5 | 15.7 | Very hard | County estimate |
| Hebron | 343.0 | 20.1 | Very hard | County estimate |
| Homer | 300.0 | 17.5 | Very hard | County estimate |
| Martinsville | 250.5 | 14.7 | Very hard | County estimate |
| Stillman Valley | 287.0 | 16.8 | Very hard | Utility-reported |
| Washburn | 336.0 | 19.6 | Very hard | County estimate |
| Royalton | 124.0 | 7.3 | Hard | County estimate |
| Cuba | 344.0 | 20.1 | Very hard | County estimate |
| Danvers | 327.0 | 19.1 | Very hard | County estimate |
| Divernon | 280.0 | 16.4 | Very hard | County estimate |
| Buffalo | 280.0 | 16.4 | Very hard | County estimate |
| Toledo | 280.5 | 16.4 | Very hard | County estimate |
| Kingston | 340.0 | 19.9 | Very hard | County estimate |
| Murrayville | 194.0 | 11.3 | Very hard | County estimate |
| Woodson | 194.0 | 11.3 | Very hard | County estimate |
| Geneva | 320.5 | 18.7 | Very hard | County estimate |
| Hoyleton | 165.5 | 9.7 | Hard | County estimate |
| South Pekin | 347.0 | 20.3 | Very hard | County estimate |
| Mounds | 125.0 | 7.3 | Hard | County estimate |
| Dowell | 166.0 | 9.7 | Hard | County estimate |
| Elkville | 166.0 | 9.7 | Hard | County estimate |
| Ava | 166.0 | 9.7 | Hard | County estimate |
| Pistakee Highlands | 353.0 | 20.6 | Very hard | Utility-reported |
| Flanagan | 340.0 | 19.9 | Very hard | County estimate |
| Malta | 340.0 | 19.9 | Very hard | County estimate |
| Pleasant Hill | 234.5 | 13.7 | Very hard | County estimate |
| Worden | 276.0 | 16.1 | Very hard | County estimate |
| Gorham | 166.0 | 9.7 | Hard | County estimate |
| Sumner | 228.0 | 13.3 | Very hard | County estimate |
| Glasford | 79.9 | 4.7 | Moderately hard | Computed from Ca+Mg |
| Goreville | 83.1 | 4.9 | Moderately hard | County estimate |
| Morrisonville | 257.0 | 15.0 | Very hard | County estimate |
| Nilwood | 145.0 | 8.5 | Hard | County estimate |
| Nauvoo | 221.0 | 12.9 | Very hard | County estimate |
| Hoffman | 168.0 | 9.8 | Hard | County estimate |
| Shawneetown | 276.0 | 16.1 | Very hard | County estimate |
| Illiopolis | 280.0 | 16.4 | Very hard | County estimate |
| Meredosia | 194.0 | 11.3 | Very hard | County estimate |
| Alto Pass | 156.5 | 9.2 | Hard | County estimate |
| Odell | 340.0 | 19.9 | Very hard | County estimate |
| Downs | 327.0 | 19.1 | Very hard | County estimate |
| Mazon | 327.0 | 19.1 | Very hard | County estimate |
| Goodfield | 169.8 | 9.9 | Hard | Computed from Ca+Mg |
| Gifford | 265.0 | 15.5 | Very hard | Utility-reported |
| Viola | 270.0 | 15.8 | Very hard | County estimate |
| Ashton | 265.0 | 15.5 | Very hard | Utility-reported |
| Avon | 344.0 | 20.1 | Very hard | County estimate |
| Beckemeyer | 168.0 | 9.8 | Hard | County estimate |
| Argenta | 261.0 | 15.3 | Very hard | County estimate |
| Franklin Grove | 366.0 | 21.4 | Very hard | Utility-reported |
| Forsyth | 261.0 | 15.3 | Very hard | County estimate |
| Oreana | 261.0 | 15.3 | Very hard | County estimate |
| Frankfort | 287.0 | 16.8 | Very hard | County estimate |
| Buncombe | 83.1 | 4.9 | Moderately hard | County estimate |
| Makanda | 166.0 | 9.7 | Hard | County estimate |
| Mt. Olive | 145.0 | 8.5 | Hard | County estimate |
| Annawan | 370.0 | 21.6 | Very hard | County estimate |
| Dunfermline | 344.0 | 20.1 | Very hard | County estimate |
| East Galesburg | 331.0 | 19.4 | Very hard | County estimate |
| St. David | 344.0 | 20.1 | Very hard | County estimate |
| Wataga | 17.7 | 1.0 | Soft | Computed from Ca+Mg |
| Livingston | 276.0 | 16.1 | Very hard | County estimate |
| Freeport | 350.0 | 20.5 | Very hard | County estimate |
| Thayer | 280.0 | 16.4 | Very hard | County estimate |
| Ashmore | 290.0 | 17.0 | Very hard | County estimate |
| Orangeville | 291.0 | 17.0 | Very hard | Utility-reported |
| Pearl City | 234.5 | 13.7 | Very hard | County estimate |
| Blandinsville | 187.0 | 10.9 | Very hard | Utility-reported |
| Watson | 235.0 | 13.7 | Very hard | County estimate |
| Camargo | 286.0 | 16.7 | Very hard | County estimate |
| Cedarville | 304.0 | 17.8 | Very hard | Utility-reported |
| Yates City | 62.4 | 3.6 | Moderately hard | Computed from Ca+Mg |
| Keithsburg | 250.0 | 14.6 | Very hard | Utility-reported |
| Stewardson | 222.0 | 13.0 | Very hard | County estimate |
| Moro | 276.0 | 16.1 | Very hard | County estimate |
| Saybrook | 327.0 | 19.1 | Very hard | County estimate |
| Matherville | 270.0 | 15.8 | Very hard | County estimate |
| Vergennes | 166.0 | 9.7 | Hard | County estimate |
| Lyndon | 268.0 | 15.7 | Very hard | Utility-reported |
| Hecker | 232.5 | 13.6 | Very hard | County estimate |
| Bartelso | 481.0 | 28.1 | Very hard | Utility-reported |
| Hutsonville | 263.0 | 15.4 | Very hard | County estimate |
| Chandlerville | 466.0 | 27.3 | Very hard | Utility-reported |
| Dieterich | 235.0 | 13.7 | Very hard | County estimate |
| Ingleside | 250.0 | 14.6 | Very hard | County estimate |
| Chapin | 266.0 | 15.6 | Very hard | Utility-reported |
| Grand Ridge | 321.0 | 18.8 | Very hard | County estimate |
| Carlock | 102.4 | 6.0 | Moderately hard | Computed from Ca+Mg |
| Colp | 170.0 | 9.9 | Hard | County estimate |
| Keyesport | 163.0 | 9.5 | Hard | County estimate |
| Tovey | 257.0 | 15.0 | Very hard | County estimate |
| Prairie City | 313.0 | 18.3 | Very hard | Utility-reported |
| Taylor Ridge | 320.0 | 18.7 | Very hard | County estimate |
| Towanda | 327.0 | 19.1 | Very hard | County estimate |
| Melvin | 355.0 | 20.8 | Very hard | County estimate |
| German Valley | 199.0 | 11.6 | Very hard | Utility-reported |
| Hardin | 280.0 | 16.4 | Very hard | County estimate |
| Aurora | 287.0 | 16.8 | Very hard | County estimate |
| Barrington | 229.0 | 13.4 | Very hard | County estimate |
| Leaf River | 306.0 | 17.9 | Very hard | Utility-reported |
| Ottawa | 321.0 | 18.8 | Very hard | County estimate |
| Alexander | 194.0 | 11.3 | Very hard | County estimate |
| Aviston | 168.0 | 9.8 | Hard | County estimate |
| Sorento | 163.0 | 9.5 | Hard | County estimate |
| Neponset | 337.0 | 19.7 | Very hard | County estimate |
| Arenzville | 369.0 | 21.6 | Very hard | Utility-reported |
| Good Hope | 240.5 | 14.1 | Very hard | County estimate |
| Olmsted | 125.0 | 7.3 | Hard | County estimate |
| Sigel | 127.0 | 7.4 | Hard | Utility-reported |
| Hindsboro | 286.0 | 16.7 | Very hard | County estimate |
| Oakland | 290.0 | 17.0 | Very hard | County estimate |
| Scales Mound | 365.0 | 21.4 | Very hard | County estimate |
| Richview | 165.5 | 9.7 | Hard | County estimate |
| Humboldt | 290.0 | 17.0 | Very hard | County estimate |
| Freeman Spur | 170.0 | 9.9 | Hard | County estimate |
| Mulkeytown | 124.0 | 7.3 | Hard | County estimate |
| Fieldon | 216.0 | 12.6 | Very hard | County estimate |
| Maeystown | 232.5 | 13.6 | Very hard | County estimate |
| Bardolph | 240.5 | 14.1 | Very hard | County estimate |
| Rock City | 350.0 | 20.5 | Very hard | County estimate |
| Armington | 347.0 | 20.3 | Very hard | County estimate |
| Oakford | 302.0 | 17.7 | Very hard | County estimate |
| Ludlow | 300.0 | 17.5 | Very hard | County estimate |
| Cedar Point | 321.0 | 18.8 | Very hard | County estimate |
| Hennepin | 287.0 | 16.8 | Very hard | County estimate |
| Kane | 210.0 | 12.3 | Very hard | Utility-reported |
| Little York | 284.0 | 16.6 | Very hard | County estimate |
| Elliott | 355.0 | 20.8 | Very hard | County estimate |
| Maquon | 331.0 | 19.4 | Very hard | County estimate |
| Winfield | 287.0 | 16.8 | Very hard | County estimate |
| Sibley | 355.0 | 20.8 | Very hard | County estimate |
| Mill Shoals | 167.5 | 9.8 | Hard | County estimate |
| Broughton | 220.0 | 12.9 | Very hard | County estimate |
| Carterville | 170.0 | 9.9 | Hard | County estimate |
| Radom | 165.5 | 9.7 | Hard | County estimate |
| Steward | 280.0 | 16.4 | Very hard | Utility-reported |
| Montrose | 169.0 | 9.9 | Hard | Utility-reported |
| Seaton | 47.4 | 2.8 | Soft | Computed from Ca+Mg |
| Galesburg | 331.0 | 19.4 | Very hard | County estimate |
| Benton | 124.0 | 7.3 | Hard | County estimate |
| Macedonia | 124.0 | 7.3 | Hard | County estimate |
| Sciota | 240.5 | 14.1 | Very hard | County estimate |
| Springerton | 167.5 | 9.8 | Hard | County estimate |
| Yorkville | 378.0 | 22.1 | Very hard | County estimate |
| Lindenwood | 329.5 | 19.3 | Very hard | County estimate |
| Patterson | 268.5 | 15.7 | Very hard | County estimate |
| Wilmington | 287.0 | 16.8 | Very hard | County estimate |
| Rochester | 280.0 | 16.4 | Very hard | County estimate |
| Strawn | 340.0 | 19.9 | Very hard | County estimate |
| Bishop Hill | 47.4 | 2.8 | Soft | Computed from Ca+Mg |
| Sandwich | 340.0 | 19.9 | Very hard | County estimate |
| St. Augustine | 174.8 | 10.2 | Hard | Computed from Ca+Mg |
| Mount Erie | 66.2 | 3.9 | Moderately hard | Utility-reported |
| Peru | 321.0 | 18.8 | Very hard | County estimate |
| Hines | 229.0 | 13.4 | Very hard | County estimate |
| Lake Forest | 250.0 | 14.6 | Very hard | County estimate |
| Mount Vernon | 180.0 | 10.5 | Hard | County estimate |
| Pittsfield | 234.5 | 13.7 | Very hard | County estimate |
| Belleville | 265.5 | 15.5 | Very hard | County estimate |
| Bourbonnais | 313.0 | 18.3 | Very hard | County estimate |
| Bradley | 313.0 | 18.3 | Very hard | County estimate |
| Colfax | 327.0 | 19.1 | Very hard | County estimate |
| Coulterville | 245.5 | 14.4 | Very hard | County estimate |
| Davis | 350.0 | 20.5 | Very hard | County estimate |
| Enfield | 167.5 | 9.8 | Hard | County estimate |
| Fairview Heights | 265.5 | 15.5 | Very hard | County estimate |
| Galatia | 450.0 | 26.3 | Very hard | County estimate |
| Great Lakes | 250.0 | 14.6 | Very hard | County estimate |
| Hamel | 276.0 | 16.1 | Very hard | County estimate |
| Littleton | 277.0 | 16.2 | Very hard | County estimate |
| Manteno | 313.0 | 18.3 | Very hard | County estimate |
| Milledgeville | 358.0 | 20.9 | Very hard | County estimate |
| Modesto | 145.0 | 8.5 | Hard | County estimate |
| New Douglas | 276.0 | 16.1 | Very hard | County estimate |
| Newark | 378.0 | 22.1 | Very hard | County estimate |
| Olive Branch | 205.0 | 12.0 | Very hard | County estimate |
| Rome | 300.0 | 17.5 | Very hard | County estimate |
| Roscoe | 340.0 | 19.9 | Very hard | County estimate |
| Roseville | 284.0 | 16.6 | Very hard | County estimate |
| Savoy | 300.0 | 17.5 | Very hard | County estimate |
| Sterling | 334.0 | 19.5 | Very hard | County estimate |
| Tamms | 205.0 | 12.0 | Very hard | County estimate |
| Thomson | 358.0 | 20.9 | Very hard | County estimate |
| Thornton | 229.0 | 13.4 | Very hard | County estimate |
| Urbana | 300.0 | 17.5 | Very hard | County estimate |
| Windsor | 222.0 | 13.0 | Very 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 Illinois's Water Hardness
Illinois 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.
Illinois Water Hardness FAQ
Does Illinois have hard water?
Yes — across Illinois's measured cities, typical tap water is hard. The median is 157.0 mg/L (9.2 gpg) — hard on the USGS scale, where anything above 120 mg/L (7 gpg) counts as hard. 114 of Illinois's 156 measured cities fall in the hard or very hard bands (73%), so check your own city rather than the state average.
How hard is tap water in Illinois?
Across the 156 Illinois cities with measured values in our index, the median hardness is 157.0 mg/L (9.2 gpg) — hard on the USGS scale. Individual cities range from 14.0 to 610.0 mg/L, so check your own city rather than assuming the state number.
Which city in Illinois has the hardest water?
East Dubuque has the hardest measured tap water in our Illinois index at 610.0 mg/L (35.7 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 Illinois?
114 of Illinois's 156 measured cities (73%) 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 Illinois 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.
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.