Water Hardness in Illinois
Across 249 measured cities — with 425 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 July 6, 2026. Sources: utility-reported water quality data and USGS/EPA Water Quality Portal samples.
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 | 14 | 5.6% |
| Moderately hard | 60-120 mg/L | 49 | 19.7% |
| Hard | 120-180 mg/L | 72 | 28.9% |
| Very hard | >180 mg/L | 114 | 45.8% |
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 — 649.0 mg/L (38.0 gpg), very hard
- Lake Barrington — 573.0 mg/L (33.5 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 — 523.7 mg/L (30.6 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
- Germantown Hills — 24.0 mg/L (1.4 gpg), soft
- Avon — 30.0 mg/L (1.8 gpg), soft
- Little York — 30.0 mg/L (1.8 gpg), soft
Every Covered City in Illinois
All 674 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 |
| Cahokia Heights | 157.0 | 9.2 | Hard | Utility-reported |
| Belleville | 157.0 | 9.2 | Hard | Utility-reported |
| Swansea | 157.0 | 9.2 | Hard | Utility-reported |
| Fairview Heights | 157.0 | 9.2 | Hard | Utility-reported |
| Champaign | 85.0 | 5.0 | Moderately hard | Utility-reported |
| Naperville | 120.0 | 7.0 | Moderately hard | Utility-reported |
| Preston Heights | 247.8 | 14.5 | Very hard | Utility-reported |
| Crystal Lawns | 244.0 | 14.3 | Very hard | Utility-reported |
| Joliet | 244.0 | 14.3 | Very hard | Utility-reported |
| Sunnyland | 244.0 | 14.3 | Very hard | Utility-reported |
| Ridgewood | 244.0 | 14.3 | Very hard | Utility-reported |
| Rockdale | 244.0 | 14.3 | Very hard | Utility-reported |
| Shorewood | 287.0 | 16.8 | Very hard | County estimate |
| Rockford | 329.1 | 19.3 | Very hard | Utility-reported |
| Freeburg | 157.0 | 9.2 | Hard | Utility-reported |
| Smithton | 157.0 | 9.2 | Hard | Utility-reported |
| Urbana | 84.3 | 4.9 | Moderately hard | Utility-reported |
| Savoy | 84.3 | 4.9 | Moderately hard | Utility-reported |
| Brooklyn | 157.0 | 9.2 | Hard | Utility-reported |
| East St. Louis | 157.0 | 9.2 | Hard | Utility-reported |
| Fairmont City | 157.0 | 9.2 | Hard | Utility-reported |
| Shiloh | 157.0 | 9.2 | Hard | Utility-reported |
| Washington Park | 157.0 | 9.2 | Hard | Utility-reported |
| Peoria | 272.5 | 15.9 | Very hard | Utility-reported |
| Kankakee | 139.5 | 8.2 | Hard | Utility-reported |
| Bartonville | 283.0 | 16.6 | Very hard | Utility-reported |
| Bellevue | 283.0 | 16.6 | Very hard | Utility-reported |
| Lake Camelot | 283.0 | 16.6 | Very hard | Utility-reported |
| Rome | 283.0 | 16.6 | Very hard | Utility-reported |
| West Peoria | 283.0 | 16.6 | Very hard | Utility-reported |
| 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 |
| Bradley | 137.5 | 8.0 | 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 |
| Bourbonnais | 138.0 | 8.1 | Hard | Utility-reported |
| Limestone | 138.0 | 8.1 | Hard | Utility-reported |
| Manteno | 138.0 | 8.1 | Hard | Utility-reported |
| Arlington Heights | 115.0 | 6.7 | Moderately hard | Utility-reported |
| Romeoville | 303.0 | 17.7 | Very hard | Utility-reported |
| Evanston | 135.0 | 7.9 | Hard | Utility-reported |
| Schaumburg | 130.3 | 7.6 | Hard | Computed from Ca+Mg |
| Rosewood Heights | 190.0 | 11.1 | Very hard | Utility-reported |
| Woodridge | 134.2 | 7.8 | Hard | Utility-reported |
| Orland Hills | 147.0 | 8.6 | Hard | Utility-reported |
| Skokie | 132.0 | 7.7 | Hard | Utility-reported |
| Elmhurst | 109.9 | 6.4 | Moderately hard | Utility-reported |
| Des Plaines | 126.0 | 7.4 | Hard | Utility-reported |
| East Alton | 190.0 | 11.1 | Very 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 |
| Downers Grove | 131.0 | 7.7 | Hard | Utility-reported |
| Normal | 327.0 | 19.1 | Very hard | County estimate |
| Alton | 190.0 | 11.1 | Very hard | Utility-reported |
| Wheaton | 124.0 | 7.3 | Hard | Utility-reported |
| Hoffman Estates | 229.0 | 13.4 | Very hard | County estimate |
| Lombard | 287.0 | 16.8 | Very hard | County estimate |
| Vernon Hills | 250.0 | 14.6 | Very hard | County estimate |
| Buffalo Grove | 154.0 | 9.0 | Hard | Utility-reported |
| Mundelein | 250.0 | 14.6 | Very hard | County estimate |
| Lemont | 227.8 | 13.3 | Very hard | Utility-reported |
| Addison | 287.0 | 16.8 | Very hard | County estimate |
| 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 |
| Wheeling | 131.5 | 7.7 | Hard | Utility-reported |
| Glenview | 229.0 | 13.4 | Very hard | County estimate |
| Millstadt | 157.0 | 9.2 | Hard | Utility-reported |
| Melrose Park | 103.4 | 6.0 | Moderately hard | Utility-reported |
| Mount Prospect | 112.0 | 6.5 | Moderately hard | Utility-reported |
| Streamwood | 229.0 | 13.4 | Very hard | County estimate |
| North Chicago | 136.2 | 8.0 | Hard | Utility-reported |
| Bloomingdale | 287.0 | 16.8 | Very hard | County estimate |
| Carol Stream | 287.0 | 16.8 | Very hard | County estimate |
| Boulder Hill | 235.0 | 13.7 | Very 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 |
| Markham | 229.0 | 13.4 | Very hard | County estimate |
| Calumet City | 229.0 | 13.4 | Very hard | County estimate |
| Pekin | 361.2 | 21.1 | Very hard | Utility-reported |
| Roscoe | 387.0 | 22.6 | Very hard | Utility-reported |
| Machesney Park | 387.0 | 22.6 | Very hard | Utility-reported |
| Darien | 287.0 | 16.8 | Very hard | County estimate |
| Edwardsville | 87.4 | 5.1 | Moderately hard | Computed from Ca+Mg |
| Bellwood | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Elk Grove Village | 141.0 | 8.3 | Hard | Utility-reported |
| Franklin Park | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Libertyville | 250.0 | 14.6 | Very hard | County estimate |
| Glendale Heights | 287.0 | 16.8 | Very hard | County estimate |
| Bensenville | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Burbank | 229.0 | 13.4 | Very hard | County estimate |
| East Peoria | 360.7 | 21.1 | Very hard | Utility-reported |
| Silvis | 211.8 | 12.4 | Very hard | Utility-reported |
| Carbondale | 36.2 | 2.1 | Soft | Utility-reported |
| Chicago Heights | 229.0 | 13.4 | Very hard | County estimate |
| Algonquin | 378.0 | 22.1 | Very hard | Utility-reported |
| Cary | 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 |
| Lake Bluff | 128.4 | 7.5 | 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 |
| McHenry | 384.0 | 22.5 | Very hard | Utility-reported |
| Schiller Park | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Effingham | 108.0 | 6.3 | Moderately hard | Utility-reported |
| West Chicago | 287.0 | 16.8 | Very hard | County estimate |
| Huntley | 31.2 | 1.8 | Soft | Utility-reported |
| Midlothian | 229.0 | 13.4 | Very hard | County estimate |
| Batavia | 358.0 | 20.9 | Very hard | Utility-reported |
| Westmont | 127.1 | 7.4 | Hard | Utility-reported |
| Woodstock | 343.0 | 20.1 | Very hard | County estimate |
| Teutopolis | 108.0 | 6.3 | Moderately hard | Utility-reported |
| Maywood | 229.0 | 13.4 | Very hard | County estimate |
| 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 |
| Jerseyville | 108.0 | 6.3 | 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 |
| Oakbrook Terrace | 98.9 | 5.8 | Moderately hard | Utility-reported |
| Crest Hill | 465.0 | 27.2 | Very hard | Utility-reported |
| Grayslake | 250.0 | 14.6 | Very hard | County estimate |
| Morton Grove | 229.0 | 13.4 | Very hard | County estimate |
| South Elgin | 395.0 | 23.1 | Very hard | Utility-reported |
| Great Lakes | 137.0 | 8.0 | Hard | Utility-reported |
| 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 |
| Phoenix | 140.0 | 8.2 | Hard | Utility-reported |
| South Holland | 140.0 | 8.2 | Hard | Utility-reported |
| Thornton | 140.0 | 8.2 | Hard | Utility-reported |
| Villa Park | 98.9 | 5.8 | Moderately hard | Utility-reported |
| Park Forest | 163.0 | 9.5 | Hard | Utility-reported |
| Dolton | 229.0 | 13.4 | Very hard | County estimate |
| East Moline | 192.0 | 11.2 | Very hard | Utility-reported |
| Berkeley | 104.0 | 6.1 | Moderately hard | Utility-reported |
| Matteson | 229.0 | 13.4 | Very hard | County estimate |
| Stone Park | 104.0 | 6.1 | Moderately 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 |
| Arbury Hills | 91.2 | 5.3 | 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 |
| 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 |
| Hinsdale | 133.0 | 7.8 | Hard | Utility-reported |
| 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 |
| Caseyville | 265.5 | 15.5 | Very hard | County estimate |
| Groveland | 347.0 | 20.3 | Very hard | County estimate |
| Troy | 276.0 | 16.1 | Very hard | County estimate |
| Wauconda | 146.0 | 8.5 | Hard | Utility-reported |
| 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 |
| Northlake | 104.0 | 6.1 | Moderately hard | Utility-reported |
| River Grove | 104.0 | 6.1 | Moderately hard | Utility-reported |
| La Grange | 122.0 | 7.1 | Hard | Utility-reported |
| Palos Heights | 229.0 | 13.4 | Very hard | County estimate |
| Georgetown | 310.0 | 18.1 | Very hard | County estimate |
| Marion | 47.0 | 2.8 | Soft | Utility-reported |
| Sterling | 172.0 | 10.1 | Hard | Utility-reported |
| Antioch | 250.0 | 14.6 | Very hard | County estimate |
| Robinson | 264.0 | 15.4 | Very hard | Utility-reported |
| Chicago Ridge | 229.0 | 13.4 | Very hard | County estimate |
| 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 |
| Kewanee | 54.3 | 3.2 | Soft | Utility-reported |
| La Grange Park | 129.0 | 7.5 | Hard | Utility-reported |
| Lagrange Park | 129.0 | 7.5 | Hard | Utility-reported |
| Channahon | 193.0 | 11.3 | Very 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 |
| Warrenville | 474.0 | 27.7 | Very hard | Utility-reported |
| Richton Park | 206.0 | 12.1 | Very hard | Utility-reported |
| Lincolnwood | 136.0 | 8.0 | Hard | Utility-reported |
| Deerfield | 135.0 | 7.9 | Hard | Utility-reported |
| Winnetka | 135.0 | 7.9 | Hard | Utility-reported |
| Monee | 558.0 | 32.6 | Very hard | Utility-reported |
| Minooka | 378.0 | 22.1 | Very hard | County estimate |
| Pontiac | 191.0 | 11.2 | Very hard | Utility-reported |
| Columbia | 232.5 | 13.6 | Very hard | County estimate |
| Willowbrook | 287.0 | 16.8 | Very hard | County estimate |
| Goreville | 47.0 | 2.8 | Soft | Utility-reported |
| Palestine | 264.0 | 15.4 | Very hard | Utility-reported |
| Prestbury | 419.0 | 24.5 | Very hard | Utility-reported |
| Sugar Grove | 419.0 | 24.5 | Very hard | Utility-reported |
| River Forest | 135.0 | 7.9 | Hard | Utility-reported |
| Lincolnshire | 380.0 | 22.2 | Very 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 |
| Waterloo | 232.5 | 13.6 | Very hard | County estimate |
| Carbon Cliff | 257.1 | 15.0 | Very hard | Utility-reported |
| St. Charles | 214.7 | 12.6 | Very hard | Computed from Ca+Mg |
| Itasca | 287.0 | 16.8 | Very hard | County estimate |
| Washington | 229.9 | 13.4 | Very hard | Computed from Ca+Mg |
| Flossmoor | 146.0 | 8.5 | Hard | Utility-reported |
| Steger | 229.0 | 13.4 | Very hard | County estimate |
| Clarendon Hills | 159.2 | 9.3 | Hard | Utility-reported |
| West Frankfort | 124.0 | 7.3 | Hard | County estimate |
| Mascoutah | 124.0 | 7.3 | Hard | Utility-reported |
| Oak Brook | 287.0 | 16.8 | Very hard | County estimate |
| Rock Falls | 334.0 | 19.5 | Very hard | County estimate |
| Crete | 523.7 | 30.6 | Very hard | Utility-reported |
| Pierron | 163.0 | 9.5 | Hard | County estimate |
| Lake Villa | 205.0 | 12.0 | Very hard | Utility-reported |
| Venetian Village | 205.0 | 12.0 | Very hard | Utility-reported |
| Harwood Heights | 229.0 | 13.4 | Very hard | County estimate |
| Whittington | 124.0 | 7.3 | Hard | County estimate |
| 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 |
| Rockton | 295.0 | 17.3 | Very hard | Utility-reported |
| Gilberts | 328.0 | 19.2 | Very hard | Utility-reported |
| West Dundee | 14.0 | 0.8 | Soft | Computed from Ca+Mg |
| Dupo | 265.5 | 15.5 | Very hard | County estimate |
| Riverwoods | 380.0 | 22.2 | Very hard | Utility-reported |
| 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 |
| Curran | 104.0 | 6.1 | Moderately hard | Utility-reported |
| 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 |
| Germantown Hills | 24.0 | 1.4 | Soft | Computed from Ca+Mg |
| Peoria Heights | 300.0 | 17.5 | Very hard | County estimate |
| Knollwood | 93.7 | 5.5 | Moderately hard | Utility-reported |
| Mount Zion | 103.0 | 6.0 | Moderately hard | Utility-reported |
| Volo | 145.6 | 8.5 | 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 |
| Carlyle | 171.0 | 10.0 | Hard | Utility-reported |
| Wonder Lake | 292.3 | 17.1 | Very hard | Computed from Ca+Mg |
| Marseilles | 321.0 | 18.8 | Very hard | County estimate |
| Jonesboro | 156.5 | 9.2 | Hard | County estimate |
| Tuscola | 286.0 | 16.7 | Very hard | County estimate |
| The Galena Territory | 233.1 | 13.6 | Very hard | Computed from Ca+Mg |
| Olympia Fields | 229.0 | 13.4 | Very hard | County estimate |
| Creve Coeur | 299.6 | 17.5 | Very hard | Computed from Ca+Mg |
| Palos Park | 229.0 | 13.4 | Very hard | County estimate |
| Virden | 138.0 | 8.1 | Hard | Utility-reported |
| Fox River Grove | 520.0 | 30.4 | Very hard | Utility-reported |
| Norwood | 367.0 | 21.5 | Very hard | Utility-reported |
| White Hall | 407.0 | 23.8 | Very hard | Utility-reported |
| Hometown | 229.0 | 13.4 | Very hard | County estimate |
| Lakemoor | 223.0 | 13.0 | Very hard | Utility-reported |
| Coal Valley | 114.5 | 6.7 | Moderately hard | Computed from Ca+Mg |
| Trenton | 168.0 | 9.8 | Hard | County estimate |
| Carmi | 249.3 | 14.6 | Very hard | Utility-reported |
| 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 |
| Lockport | 458.0 | 26.8 | Very hard | Utility-reported |
| Oregon | 329.5 | 19.3 | Very hard | County estimate |
| Salem | 140.0 | 8.2 | Hard | County estimate |
| Aledo | 270.0 | 15.8 | Very hard | County estimate |
| Mackinaw | 347.0 | 20.3 | Very hard | County estimate |
| Woodlawn | 180.0 | 10.5 | Hard | County estimate |
| Gibson City | 355.0 | 20.8 | Very hard | County estimate |
| Manhattan | 372.0 | 21.8 | Very hard | Utility-reported |
| 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 |
| Granite City | 276.0 | 16.1 | Very hard | County estimate |
| Momence | 393.0 | 23.0 | Very hard | Utility-reported |
| Lake Barrington | 573.0 | 33.5 | Very hard | Utility-reported |
| Winnebago | 340.0 | 19.9 | Very hard | County estimate |
| Annapolis | 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 |
| 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 |
| Tremont | 105.3 | 6.2 | Moderately hard | Utility-reported |
| 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 |
| 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 |
| Norris City | 344.0 | 20.1 | 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 |
| East Dubuque | 649.0 | 38.0 | Very hard | Utility-reported |
| Steeleville | 206.5 | 12.1 | Very hard | County estimate |
| 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 |
| 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 |
| 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 |
| 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 |
| Dieterich | 310.0 | 18.1 | Very hard | Utility-reported |
| Stillman Valley | 287.0 | 16.8 | Very hard | Utility-reported |
| 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 |
| Springfield | 120.0 | 7.0 | Moderately 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 |
| 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 |
| Johnsburg | 353.0 | 20.6 | Very hard | Utility-reported |
| 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 |
| 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 |
| Beckemeyer | 168.0 | 9.8 | Hard | County estimate |
| Argenta | 261.0 | 15.3 | Very hard | County estimate |
| Bloomington | 88.9 | 5.2 | Moderately hard | Utility-reported |
| 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 |
| Hawthorn Woods | 134.0 | 7.8 | Hard | Utility-reported |
| 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 |
| Northbrook | 131.0 | 7.7 | Hard | Utility-reported |
| Techny | 131.0 | 7.7 | Hard | Utility-reported |
| 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 |
| Armington | 304.0 | 17.8 | Very hard | Utility-reported |
| 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 |
| Little York | 30.0 | 1.8 | Soft | Computed from Ca+Mg |
| Moro | 276.0 | 16.1 | Very hard | County estimate |
| Galena | 326.0 | 19.1 | Very hard | Utility-reported |
| 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 |
| Canton | 401.0 | 23.4 | Very hard | Utility-reported |
| Chandlerville | 466.0 | 27.3 | Very hard | Utility-reported |
| Humboldt | 401.0 | 23.4 | Very hard | Utility-reported |
| 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 |
| Avon | 30.0 | 1.8 | Soft | Computed from Ca+Mg |
| 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 |
| Altamont | 127.0 | 7.4 | Hard | Utility-reported |
| 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 |
| 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 |
| 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 |
| 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 |
| Anna | 262.6 | 15.4 | Very hard | Utility-reported |
| 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 |
| Morton | 170.0 | 9.9 | Hard | Utility-reported |
| Montrose | 169.0 | 9.9 | Hard | Utility-reported |
| Crystal Lake | 388.0 | 22.7 | Very 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 |
| Palatine | 349.6 | 20.4 | Very hard | Computed from Ca+Mg |
| 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 |
| Monmouth | 174.8 | 10.2 | Hard | Computed from Ca+Mg |
| 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 |
| Lincoln | 222.0 | 13.0 | Very hard | Utility-reported |
| Havana | 285.0 | 16.7 | Very hard | Utility-reported |
| Hines | 229.0 | 13.4 | Very hard | County estimate |
| Morris | 285.0 | 16.7 | Very hard | Utility-reported |
| 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 |
| Harrison | 48.6 | 2.8 | Soft | Utility-reported |
| 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 |
| Galatia | 450.0 | 26.3 | Very hard | County estimate |
| Hamel | 276.0 | 16.1 | Very hard | County estimate |
| Littleton | 277.0 | 16.2 | 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 |
| Roseville | 284.0 | 16.6 | Very hard | County estimate |
| Tamms | 205.0 | 12.0 | Very hard | County estimate |
| Thomson | 358.0 | 20.9 | 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. 186 of Illinois's 249 measured cities fall in the hard or very hard bands (75%), so check your own city rather than the state average.
How hard is tap water in Illinois?
Across the 249 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 649.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 649.0 mg/L (38.0 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?
186 of Illinois's 249 measured cities (75%) 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.
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.