Missouri Water Quality Report
509 cities tested · Average grade: B · 6.2M people served
Live Water Alerts for Missouri →Missouri water quality overview
Missouri's drinking water quality is good overall, with an average score of 78.7 out of 100 across 509 cities tested. The median score is 84, serving a total population of 6,210,626 residents. 79% of cities earned an A or B grade, indicating broadly strong water quality infrastructure across the state. PFAS "forever chemicals" were detected in 137 of 509 cities tested (27%). 11 cities exceed the 2024 EPA maximum contaminant levels. The state relies on a mix of water sources: 382 cities use groundwater while 125 draw from surface water such as rivers, lakes, and reservoirs.
Issues to watch in Missouri
Explore contaminants in Missouri
More contaminants tested in Missouri
Private-well water in Missouri
Based on USGS Powell Domestic-Well Database — 2,504 private wells sampled across Missouri. These wells are not regulated by the EPA; if you draw your tap from a private well, the public-system grade above does not apply to you.
Top industrial water polluters in Missouri
Industrial polluters nearby
The 10 facilities reporting the most pounds released to surface water in Missouri, 2023.
Total reported releases to surface water: 1,903,430 lbs
| Facility | Top chemical | To surface water (lbs/yr) |
|---|---|---|
TYSON POULTRY INC. - PROCESSING PLANT SEDALIA, MO65301 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 923,987 |
BIOKYOWA INC CAPE GIRARDEAU, MO63701 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 346,907 |
SMITHFIELD FRESH MEATS CORP - MILAN MO MILAN, MO63556 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 341,370 |
BASF CORP - HANNIBAL SITE PALMYRA, MO63461 | Nitrate compounds (water dissociable; reportable only when in aqueous solution) | 161,879 |
BAYER CROPSCIENCE LP - KC KANSAS CITY, MO64120 | n-Butyl alcohol | 58,759 |
+ 5 more facilities
Source: EPA Toxic Release Inventory (TRI) 2023
How Missouri cities scored
Best Cities
Worst Cities
Water quality across Missouri
Each dot is a city, colored by its water quality grade. Size reflects population served. Click any city to view its full water report.
509 cities in Missouri
| # | City | Grade | Score | Population | Violations |
|---|---|---|---|---|---|
| 1 | Cosby | A+ | 98.2 | 4K | 2 |
| 2 | Shelbyville | A+ | 97.4 | 4K | 2 |
| 3 | Fairfax | A+ | 96.9 | 638 | 2 |
| 4 | St. Martins | A+ | 96.7 | 2K | 5 |
| 5 | Smithton | A+ | 96.7 | 563 | 4 |
| 6 | Tipton | A+ | 96.5 | 3K | 11 |
| 7 | Kirkwood | A+ | 96 | 28K | 0 |
| 8 | Pilot Grove | A+ | 95.5 | 768 | 8 |
| 9 | Fort Leonard Wood | A+ | 95.4 | 34K | 33 |
| 10 | Hayti | A+ | 95.3 | 6K | 10 |
| 11 | Queen City | A | 94.8 | 3K | 7 |
| 12 | Beufort | A | 94.7 | 760 | 17 |
| 13 | Marionville | A | 94.3 | 2K | 5 |
| 14 | Whiteoak | A | 94.2 | 2K | 6 |
| 15 | Truesdale | A | 94.1 | 853 | 5 |
| 16 | Conway | A | 94.1 | 788 | 20 |
| 17 | Raymoor | A | 94 | 22K | 8 |
| 18 | Osceola | A | 94 | 947 | 10 |
| 19 | Sheldon | A | 94 | 543 | 8 |
| 20 | Montgomery City | A | 93.9 | 3K | 14 |
| 21 | Lewistown | A | 93.9 | 580 | 3 |
| 22 | Grain Valley | A | 93.8 | 19K | 11 |
| 23 | Savannah | A | 93.8 | 11K | 30 |
| 24 | Polo | A | 93.7 | 12K | 6 |
| 25 | Canton | A | 93.7 | 3K | 10 |
| 26 | Purdy | A | 93.5 | 1K | 15 |
| 27 | Labadie | A | 93.3 | 8K | 9 |
| 28 | Shelbina | A | 93.3 | 2K | 5 |
| 29 | Bismarck | A | 93.3 | 1K | 14 |
| 30 | Holt | A | 93.2 | 3K | 11 |
| 31 | Jasper | A | 93.2 | 932 | 22 |
| 32 | Rock Port | A | 93.1 | 1K | 5 |
| 33 | El Dorado Spgs. | A | 93 | 4K | 15 |
| 34 | Westminster | A | 92.9 | 2K | 14 |
| 35 | Laplata | A | 92.9 | 1K | 7 |
| 36 | Ludlow | A | 92.9 | 1K | 12 |
| 37 | Summerfield | A | 92.9 | 1K | 17 |
| 38 | Lake Lotawana | A | 92.8 | 9K | 4 |
| 39 | Calhoun | A | 92.8 | 3K | 7 |
| 40 | Tarkio | A | 92.8 | 1K | 29 |
| 41 | Cole Camp | A | 92.7 | 1K | 18 |
| 42 | Williamstown | A | 92.6 | 7K | 8 |
| 43 | Orrick | A | 92.5 | 752 | 10 |
| 44 | Strafford | A | 92.3 | 3K | 27 |
| 45 | Wardsville | A | 92 | 2K | 20 |
| 46 | Blythdale | A | 92 | 823 | 31 |
| 47 | Watson | A | 92 | 700 | 12 |
| 48 | Umatilla | A | 91.9 | 678 | 31 |
| 49 | Odessa | A | 91.8 | 14K | 44 |
| 50 | Crystal City | A | 91.7 | 5K | 11 |
| 51 | Knob Noster | A | 91.7 | 3K | 36 |
| 52 | Clarence | A | 91.7 | 813 | 11 |
| 53 | Noel | A | 91.5 | 2K | 3 |
| 54 | Huntsville | A | 91.5 | 2K | 5 |
| 55 | Wappappello | A | 91.5 | 1K | 5 |
| 56 | Norborne | A | 91.5 | 617 | 15 |
| 57 | Salisbury | A | 91.4 | 2K | 5 |
| 58 | Holden | A | 91.3 | 15K | 23 |
| 59 | Buckhorn | A | 91.3 | 4K | 11 |
| 60 | Buckhorn | A | 91.3 | 4K | 11 |
| 61 | Bland | A | 91.3 | 539 | 35 |
| 62 | Clever | A | 91.2 | 2K | 21 |
| 63 | Lake Winnebago | A | 91.2 | 2K | 9 |
| 64 | Granby | A | 91.1 | 2K | 11 |
| 65 | Cameron | A | 91 | 16K | 39 |
| 66 | High Ridge | A | 90.8 | 17K | 40 |
| 67 | High Ridge | A | 90.8 | 17K | 40 |
| 68 | Gallatin | A | 90.8 | 2K | 30 |
| 69 | Diamond | A | 90.8 | 926 | 10 |
| 70 | Smithville | A | 90.7 | 13K | 46 |
| 71 | Lincoln | A | 90.7 | 1K | 17 |
| 72 | Jamesport | A | 90.7 | 567 | 22 |
| 73 | Trimble | A | 90.6 | 1K | 3 |
| 74 | Hallsville | A | 90.5 | 8K | 14 |
| 75 | Herculaneum | A | 90.5 | 4K | 12 |
| 76 | Raymore | A | 90.5 | 3K | 5 |
| 77 | Miner | A | 90.4 | 1K | 8 |
| 78 | Licking | A | 90.3 | 5K | 23 |
| 79 | Exeter | A | 90.3 | 4K | 14 |
| 80 | Greenfield | A | 90.3 | 1K | 22 |
| 81 | Puxico | A | 90.3 | 985 | 37 |
| 82 | Seligman | A | 90.3 | 890 | 8 |
| 83 | Golden City | A | 90.3 | 680 | 8 |
| 84 | Whiteman Afb | A | 90.2 | 10K | 7 |
| 85 | Point Lookout | A | 90.2 | 2K | 3 |
| 86 | Marston | A | 90.2 | 503 | 20 |
| 87 | Iberia | A | 90.1 | 700 | 14 |
| 88 | Miller | A | 90.1 | 699 | 10 |
| 89 | Nevada | A- | 90 | 18K | 39 |
| 90 | Oak Grove | A | 90 | 8K | 13 |
| 91 | St. Clair | A- | 89.9 | 5K | 24 |
| 92 | Rushville | A- | 89.9 | 2K | 2 |
| 93 | Wellington | A- | 89.9 | 812 | 31 |
| 94 | Stewartsville | A- | 89.9 | 750 | 10 |
| 95 | Barnhart | A- | 89.8 | 37K | 2 |
| 96 | Kirksville | A- | 89.7 | 25K | 62 |
| 97 | Jane | A- | 89.7 | 2K | 12 |
| 98 | Marceline | A- | 89.7 | 2K | 16 |
| 99 | Russellville | A- | 89.7 | 800 | 2 |
| 100 | Liberal | A- | 89.7 | 759 | 2 |
| 101 | Powersite | A- | 89.6 | 6K | 10 |
| 102 | Salem | A- | 89.6 | 6K | 19 |
| 103 | Lamonte | A- | 89.6 | 1K | 3 |
| 104 | Pomona | A- | 89.6 | 850 | 21 |
| 105 | St. Joseph | A- | 89.5 | 89K | 13 |
| 106 | Wheaton | A- | 89.5 | 698 | 17 |
| 107 | Birch Tree | A- | 89.4 | 679 | 5 |
| 108 | New Bloomfield | A- | 89.4 | 669 | 9 |
| 109 | Milo | A- | 89.3 | 2K | 4 |
| 110 | Dexter | A- | 89.2 | 14K | 16 |
| 111 | Philadelphia | A- | 89.2 | 5K | 2 |
| 112 | Cuba | A- | 89.2 | 3K | 24 |
| 113 | Labadie | A- | 89.1 | 10K | 38 |
| 114 | Vandalia | A- | 89.1 | 3K | 32 |
| 115 | Windsor | A- | 89.1 | 3K | 25 |
| 116 | Kahoka | A- | 89.1 | 2K | 7 |
| 117 | Ewing | A- | 89.1 | 2K | 3 |
| 118 | New Florence | A- | 89.1 | 769 | 19 |
| 119 | Centralia | A- | 88.9 | 9K | 15 |
| 120 | California | A- | 88.9 | 6K | 43 |
| 121 | Jonesburg | A- | 88.9 | 768 | 6 |
| 122 | Hawk Point | A- | 88.9 | 669 | 13 |
| 123 | Cabool | A- | 88.8 | 2K | 4 |
| 124 | Kelso | A- | 88.8 | 586 | 6 |
| 125 | Leeton | A- | 88.6 | 601 | 9 |
| 126 | Charleston | A- | 88.5 | 6K | 4 |
| 127 | Sibley | A- | 88.5 | 4K | 21 |
| 128 | Princeton | A- | 88.5 | 1K | 4 |
| 129 | Rockaway Beach | A- | 88.5 | 841 | 14 |
| 130 | Steelville | A- | 88.4 | 2K | 15 |
| 131 | Taneyville | A- | 88.3 | 2K | 13 |
| 132 | Oregon | A- | 88.3 | 2K | 17 |
| 133 | Gainsville | A- | 88.3 | 742 | 15 |
| 134 | Ashland | A- | 88.2 | 4K | 58 |
| 135 | Duenweg | A- | 88.2 | 1K | 16 |
| 136 | Wentzville | A- | 88.1 | 42K | 37 |
| 137 | Highlandville | A- | 88.1 | 1K | 13 |
| 138 | Edgar Springs | A- | 88.1 | 800 | 15 |
| 139 | Hardin | A- | 88.1 | 569 | 13 |
| 140 | St. Joseph | A- | 88 | 89K | 1 |
| 141 | St. Joseph | A- | 88 | 89K | 1 |
| 142 | St. Joseph | A- | 88 | 89K | 1 |
| 143 | St. Joseph | A- | 88 | 89K | 1 |
| 144 | Labadie | A- | 88 | 8K | 104 |
| 145 | Oronogo | A- | 88 | 3K | 6 |
| 146 | Jacksonville | A- | 88 | 1K | 28 |
| 147 | Lawson | A- | 87.9 | 5K | 12 |
| 148 | Palmyra | A- | 87.9 | 4K | 2 |
| 149 | Middle Brook | A- | 87.9 | 839 | 19 |
| 150 | Wood Heights | A- | 87.9 | 750 | 17 |
| 151 | Rocky Comfort | A- | 87.8 | 2K | 4 |
| 152 | Harrisonville | A- | 87.7 | 18K | 49 |
| 153 | Cottleville | A- | 87.7 | 2K | 40 |
| 154 | Mound City | A- | 87.7 | 1K | 1 |
| 155 | Carl Junction | A- | 87.6 | 14K | 13 |
| 156 | Paris | A- | 87.6 | 8K | 15 |
| 157 | Albany | A- | 87.6 | 3K | 33 |
| 158 | Calhoun | A- | 87.6 | 3K | 17 |
| 159 | Milan | A- | 87.6 | 2K | 7 |
| 160 | Macon | A- | 87.5 | 18K | 66 |
| 161 | Clarksdale | A- | 87.5 | 8K | 8 |
| 162 | Brosley | A- | 87.5 | 3K | 7 |
| 163 | Moberly | A- | 87.4 | 25K | 59 |
| 164 | Battlefield | A- | 87.4 | 9K | 38 |
| 165 | Success | A- | 87.4 | 3K | 13 |
| 166 | Qulin | A- | 87.3 | 2K | 35 |
| 167 | Fillmore | A- | 87.3 | 1K | 57 |
| 168 | Lake Tapawingo | A- | 87.3 | 995 | 15 |
| 169 | Peculiar | A- | 87.2 | 9K | 18 |
| 170 | Buckner | A- | 87.2 | 3K | 7 |
| 171 | Franklin | A- | 87.2 | 2K | 11 |
| 172 | Deerfield | A- | 87.2 | 550 | 23 |
| 173 | Mexico | A- | 87.1 | 17K | 2 |
| 174 | Mountain View | A- | 87.1 | 3K | 16 |
| 175 | Drexel | A- | 87.1 | 1K | 21 |
| 176 | Pevely | A- | 87 | 6K | 19 |
| 177 | Anderson | A- | 87 | 2K | 7 |
| 178 | Billings | A- | 87 | 1K | 38 |
| 179 | Green City | A- | 87 | 657 | 31 |
| 180 | Fayette | A- | 86.8 | 3K | 42 |
| 181 | Big Lake | A- | 86.8 | 2K | 14 |
| 182 | Goodman | A- | 86.8 | 1K | 9 |
| 183 | Rich Hill | A- | 86.7 | 1K | 35 |
| 184 | Auxvasse | A- | 86.7 | 1K | 8 |
| 185 | Cassville | A- | 86.6 | 3K | 2 |
| 186 | Lowry City | A- | 86.6 | 640 | 48 |
| 187 | Stoutland | A- | 86.6 | 510 | 19 |
| 188 | Brookfield | A- | 86.5 | 10K | 61 |
| 189 | Willard | A- | 86.5 | 8K | 63 |
| 190 | Gerald | A- | 86.5 | 1K | 39 |
| 191 | Carterville | A- | 86.4 | 2K | 23 |
| 192 | New Haven | A- | 86.3 | 2K | 11 |
| 193 | Richland | A- | 86.3 | 2K | 22 |
| 194 | Blairstown | A- | 86.3 | 2K | 30 |
| 195 | Woolridge | A- | 86.3 | 562 | 7 |
| 196 | Chillicothe | A- | 86.2 | 16K | 12 |
| 197 | Alba | A- | 86.2 | 555 | 49 |
| 198 | Greenwood | A- | 86 | 6K | 8 |
| 199 | Malden | A- | 86 | 4K | 18 |
| 200 | Jameson | A- | 85.9 | 3K | 10 |
| 201 | Hilsboro | A- | 85.9 | 2K | 4 |
| 202 | Alton | A- | 85.9 | 2K | 45 |
| 203 | Hamilton | A- | 85.9 | 2K | 37 |
| 204 | Unity Village | A- | 85.9 | 1K | 35 |
| 205 | Eminence | A- | 85.9 | 700 | 10 |
| 206 | Hermitage | A- | 85.9 | 621 | 7 |
| 207 | Carrollton | A- | 85.8 | 7K | 14 |
| 208 | Norwood | A- | 85.8 | 665 | 9 |
| 209 | Grandview | A- | 85.7 | 25K | 1 |
| 210 | Gower | A- | 85.7 | 2K | 2 |
| 211 | Madison | A- | 85.7 | 554 | 1 |
| 212 | Lockwood | A- | 85.6 | 936 | 3 |
| 213 | Arcadia | A- | 85.6 | 605 | 8 |
| 214 | Pilot Knob | A- | 85.5 | 746 | 3 |
| 215 | Catalina | A- | 85.4 | 3K | 133 |
| 216 | Wheatland | A- | 85.4 | 2K | 29 |
| 217 | Republic | A- | 85.3 | 16K | 34 |
| 218 | Plattsburg | A- | 85.3 | 2K | 17 |
| 219 | Ocklawaha | A- | 85.3 | 2K | 40 |
| 220 | Purdin | A- | 85.3 | 1K | 6 |
| 221 | Pleasant Hope | A- | 85.3 | 614 | 20 |
| 222 | Waldron | A- | 85.2 | 7K | 1 |
| 223 | Scott City | A- | 85.2 | 5K | 7 |
| 224 | Foster | A- | 85.2 | 2K | 8 |
| 225 | Webb City | A- | 85.1 | 16K | 21 |
| 226 | Seneca | A- | 85.1 | 3K | 46 |
| 227 | Laurie | A- | 85.1 | 990 | 19 |
| 228 | Seymour | A- | 85 | 2K | 23 |
| 229 | Linn | B+ | 84.9 | 4K | 23 |
| 230 | Polo | B+ | 84.8 | 15K | 7 |
| 231 | Kewanee | B+ | 84.8 | 600 | 23 |
| 232 | Blue Springs | B+ | 84.7 | 61K | 3 |
| 233 | Crocker | B+ | 84.7 | 2K | 58 |
| 234 | Westphalia | B+ | 84.7 | 1K | 31 |
| 235 | Trenton | B+ | 84.6 | 10K | 55 |
| 236 | Gordonville | B+ | 84.6 | 2K | 15 |
| 237 | New London | B+ | 84.6 | 975 | 3 |
| 238 | Sugar Creek | B+ | 84.5 | 4K | 4 |
| 239 | Thayer | B+ | 84.5 | 2K | 16 |
| 240 | Buffalo | B+ | 84.4 | 3K | 38 |
| 241 | Marthasville | B+ | 84.4 | 1K | 22 |
| 242 | Willow Springs | B+ | 84.3 | 4K | 13 |
| 243 | Slater | B+ | 84.3 | 3K | 24 |
| 244 | Weatherby Lake | B+ | 84.3 | 2K | 2 |
| 245 | Fair Grove | B+ | 84.3 | 2K | 45 |
| 246 | Ormond Beach | B+ | 84.3 | 1K | 20 |
| 247 | Patterson | B+ | 84.3 | 950 | 3 |
| 248 | Golden | B+ | 84.3 | 654 | 19 |
| 249 | Gladstone | B+ | 84.2 | 27K | 1 |
| 250 | Ash Grove | B+ | 84.2 | 1K | 51 |
| 251 | Innsbrook | B+ | 84.2 | 810 | 6 |
| 252 | Browning | B+ | 84.1 | 5K | 12 |
| 253 | Holcomb | B+ | 84.1 | 635 | 18 |
| 254 | Brunswick | B+ | 84 | 2K | 10 |
| 255 | Saline | B+ | 84 | 1K | 25 |
| 256 | Strasburg | B+ | 83.9 | 723 | 6 |
| 257 | Higginsville | B+ | 83.6 | 12K | 43 |
| 258 | Sparta | B+ | 83.6 | 2K | 15 |
| 259 | Burlington Junction | B+ | 83.6 | 630 | 14 |
| 260 | St. Charles | B+ | 83.5 | 73K | 5 |
| 261 | Raytown | B+ | 83.5 | 34K | 17 |
| 262 | Kearney | B+ | 83.5 | 19K | 17 |
| 263 | Pleasant Hill | B+ | 83.5 | 14K | 46 |
| 264 | Knox City | B+ | 83.5 | 4K | 13 |
| 265 | Wheeling | B+ | 83.5 | 2K | 18 |
| 266 | New Madrid | B+ | 83.4 | 3K | 8 |
| 267 | La Grange | B+ | 83.4 | 874 | 17 |
| 268 | Sturgeon | B+ | 83.4 | 872 | 9 |
| 269 | Beverly Hills | B+ | 83.3 | 12K | 28 |
| 270 | Dixon | B+ | 83.3 | 1K | 60 |
| 271 | Humansville | B+ | 83.3 | 1K | 18 |
| 272 | Novinger | B+ | 83.2 | 550 | 12 |
| 273 | Bloomsdale | B+ | 83.1 | 639 | 28 |
| 274 | Parkville | B+ | 83 | 20K | 8 |
| 275 | Lexington | B+ | 83 | 5K | 50 |
| 276 | Glenwood | B+ | 83 | 728 | 6 |
| 277 | Imperial | B+ | 82.9 | 10K | 102 |
| 278 | Ellsinore | B+ | 82.9 | 500 | 13 |
| 279 | Desloge | B+ | 82.8 | 5K | 7 |
| 280 | Clarkton | B+ | 82.8 | 1K | 39 |
| 281 | Caruthersville | B+ | 82.7 | 6K | 7 |
| 282 | Fulton | B+ | 82.4 | 26K | 29 |
| 283 | Camden Point | B+ | 82.4 | 741 | 11 |
| 284 | St. Elizabeth | B+ | 82.4 | 519 | 32 |
| 285 | Bernie | B+ | 82.3 | 2K | 13 |
| 286 | Warrensburg | B+ | 82.2 | 27K | 8 |
| 287 | House Springs | B+ | 82.2 | 8K | 96 |
| 288 | Gideon | B+ | 82.2 | 3K | 60 |
| 289 | Mansfield | B+ | 82.2 | 1K | 17 |
| 290 | Wayland | B+ | 82.2 | 533 | 12 |
| 291 | Desoto | B+ | 82.1 | 7K | 56 |
| 292 | Rocky Ridge | B+ | 82.1 | 750 | 7 |
| 293 | Lees Summit | B+ | 82 | 111K | 26 |
| 294 | Bowling Green | B+ | 82 | 12K | 17 |
| 295 | N. Kansas City | B+ | 82 | 5K | 4 |
| 296 | Appleton City | B+ | 82 | 2K | 47 |
| 297 | Hornersville | B+ | 81.9 | 526 | 81 |
| 298 | Otterville | B+ | 81.9 | 510 | 133 |
| 299 | Bourbon | B+ | 81.8 | 2K | 163 |
| 300 | Perry | B+ | 81.7 | 7K | 4 |
| 301 | Merriam Woods | B+ | 81.7 | 2K | 47 |
| 302 | Bevier | B+ | 81.7 | 762 | 8 |
| 303 | Edina | B+ | 81.6 | 1K | 14 |
| 304 | Excelsior Spgs. | B+ | 81.5 | 11K | 22 |
| 305 | Canalou | B+ | 81.5 | 638 | 32 |
| 306 | Chaffee | B+ | 81.4 | 4K | 126 |
| 307 | Ellington | B+ | 81.4 | 900 | 38 |
| 308 | Concordia | B+ | 81.3 | 3K | 22 |
| 309 | Hartville | B+ | 81.3 | 655 | 28 |
| 310 | West Plains | B+ | 81.2 | 16K | 33 |
| 311 | Jefferson City | B+ | 80.8 | 68K | 68 |
| 312 | Winona | B+ | 80.7 | 1K | 12 |
| 313 | St. Peters | B+ | 80.5 | 53K | 2 |
| 314 | Freeman | B+ | 80.3 | 5K | 25 |
| 315 | Sweet Springs | B+ | 80.1 | 1K | 38 |
| 316 | New Franklin | B+ | 80.1 | 1K | 37 |
| 317 | Marble Hill | B+ | 80 | 2K | 50 |
| 318 | Lebanon | B | 79.8 | 30K | 35 |
| 319 | Eldorado Spring | B | 79.8 | 2K | 26 |
| 320 | Campbell | B | 79.5 | 6K | 24 |
| 321 | Keytesville | B | 79.4 | 500 | 23 |
| 322 | Independence | B | 79.3 | 121K | 13 |
| 323 | Kansas City | B | 79.2 | 515K | 34 |
| 324 | Arnold | B | 79.2 | 39K | 9 |
| 325 | Monett | B | 79.1 | 9K | 38 |
| 326 | La Belle | B | 79.1 | 660 | 11 |
| 327 | Butler | B | 79 | 7K | 71 |
| 328 | Sarcoxie | B | 79 | 2K | 21 |
| 329 | Waverly | B | 79 | 800 | 23 |
| 330 | Kidder | B | 79 | 695 | 33 |
| 331 | Higbee | B | 78.9 | 560 | 25 |
| 332 | Dearborn | B | 78.7 | 3K | 27 |
| 333 | Melbourne Beach | B | 78.7 | 750 | 51 |
| 334 | Sikeston | B | 78.6 | 18K | 47 |
| 335 | Platte City | B | 78.2 | 15K | 54 |
| 336 | Lamar | B | 78.2 | 14K | 64 |
| 337 | Holts Summit | B | 78.2 | 10K | 40 |
| 338 | Edgerton | B | 78.2 | 2K | 39 |
| 339 | Bloomfield | B | 77.9 | 3K | 22 |
| 340 | Peeples Valley | B | 77.6 | 658 | 143 |
| 341 | Van Buren | B | 77.5 | 2K | 65 |
| 342 | East Prairie | B | 77.3 | 3K | 13 |
| 343 | Ferrelview | B | 77.3 | 802 | 16 |
| 344 | Lathrop | B | 77.1 | 9K | 24 |
| 345 | Steele | B | 77.1 | 2K | 32 |
| 346 | Glasgow | B | 76.8 | 2K | 18 |
| 347 | Vienna | B | 76.8 | 1K | 51 |
| 348 | Kennett | B | 76.7 | 11K | 48 |
| 349 | Belle | B | 76.3 | 2K | 72 |
| 350 | Loose Creek | B | 76.2 | 1K | 18 |
| 351 | Loose Creek | B | 76.2 | 1K | 18 |
| 352 | Drexel | B | 75.8 | 3K | 64 |
| 353 | Viburnum | B | 75.8 | 639 | 40 |
| 354 | Knightdale | B | 75.7 | 533 | 88 |
| 355 | Quartzsite | B | 75.6 | 1K | 111 |
| 356 | Rockville | B | 75.6 | 675 | 46 |
| 357 | Ocklawaha | B | 75.5 | 2K | 62 |
| 358 | Pierce City | B | 75.5 | 1K | 65 |
| 359 | Bolivar | B | 75.3 | 12K | 77 |
| 360 | Moscow Mills | B | 75.3 | 5K | 31 |
| 361 | Wellsville | B | 75.3 | 1K | 99 |
| 362 | Riverside | B | 75.3 | 775 | 13 |
| 363 | Ste. Genevieve | B | 75.2 | 11K | 46 |
| 364 | Foristell | B | 75 | 1K | 87 |
| 365 | Chesterfield | B- | 74.8 | 1.1M | 72 |
| 366 | Macks Creek | B- | 74.8 | 1K | 40 |
| 367 | Winfield | B- | 74.5 | 15K | 56 |
| 368 | Essex | B- | 74.5 | 899 | 43 |
| 369 | Blairstown | B- | 74.4 | 1K | 52 |
| 370 | Gadsden | B- | 74.4 | 540 | 153 |
| 371 | Gadsden | B- | 74.4 | 540 | 153 |
| 372 | Versailles | B- | 74.3 | 3K | 64 |
| 373 | Roach | B- | 74.2 | 2K | 68 |
| 374 | Weston | B- | 73.2 | 4K | 37 |
| 375 | Unionville | B- | 73.1 | 5K | 48 |
| 376 | Houston | B- | 73.1 | 4K | 57 |
| 377 | Garden City | B- | 72.8 | 4K | 88 |
| 378 | Elsberry | B- | 72.7 | 2K | 40 |
| 379 | Fordland | B- | 72.7 | 2K | 93 |
| 380 | Fredericktown | B- | 72.6 | 6K | 76 |
| 381 | De Soto | B- | 72.5 | 9K | 167 |
| 382 | Walnut Grove | B- | 72.2 | 665 | 56 |
| 383 | Southwest City | B- | 72.1 | 2K | 84 |
| 384 | Hopkins | B- | 72.1 | 550 | 23 |
| 385 | Portageville | B- | 72 | 3K | 31 |
| 386 | Advance | B- | 72 | 1K | 7 |
| 387 | Glenwood | B- | 72 | 923 | 29 |
| 388 | Laddonia | B- | 72 | 511 | 22 |
| 389 | St. James | B- | 71.9 | 4K | 88 |
| 390 | Mormon Lake | B- | 71.9 | 509 | 122 |
| 391 | Heber | B- | 71.8 | 668 | 69 |
| 392 | Belton | B- | 71.5 | 31K | 64 |
| 393 | Beverly Hills | B- | 71.5 | 12K | 47 |
| 394 | Bethany | B- | 71.2 | 7K | 37 |
| 395 | Summersville | B- | 71.1 | 502 | 20 |
| 396 | Braymer | B- | 71 | 2K | 47 |
| 397 | Salome | B- | 71 | 2K | 121 |
| 398 | Amsterdam | B- | 70.7 | 752 | 59 |
| 399 | Cornville | B- | 70.7 | 650 | 136 |
| 400 | Piedmont | B- | 70.5 | 2K | 37 |
| 401 | High Ridge | B- | 70.3 | 17K | 89 |
| 402 | Doniphan | B- | 70.3 | 8K | 52 |
| 403 | Pattonsburg | B- | 70.3 | 2K | 32 |
| 404 | Marshall | B- | 70 | 16K | 47 |
| 405 | Jackson | C+ | 69.9 | 24K | 159 |
| 406 | Stanberry | C+ | 69.8 | 2K | 104 |
| 407 | Matthews | C+ | 69.6 | 1K | 19 |
| 408 | Bonne Terre | C+ | 69.4 | 7K | 153 |
| 409 | Hermann | C+ | 69.4 | 3K | 32 |
| 410 | Potosi | C+ | 69.3 | 4K | 156 |
| 411 | Clinton | C+ | 69 | 14K | 58 |
| 412 | Maryville | C+ | 68.6 | 17K | 55 |
| 413 | Grant City | C+ | 68.6 | 2K | 99 |
| 414 | Washington | C+ | 68.1 | 18K | 60 |
| 415 | Liberty | C+ | 68 | 37K | 50 |
| 416 | King City | C+ | 67.9 | 1K | 13 |
| 417 | Hayti | C+ | 67.8 | 9K | 73 |
| 418 | Morley | C+ | 67.7 | 4K | 36 |
| 419 | Waynesville | C+ | 67.3 | 15K | 101 |
| 420 | Cleveland | C+ | 67.1 | 690 | 27 |
| 421 | Cedar Hill | C+ | 66.4 | 5K | 48 |
| 422 | Leadwood | C+ | 66.3 | 1K | 82 |
| 423 | Belleview | C+ | 66.1 | 1K | 76 |
| 424 | Mountain Grove | C+ | 66 | 5K | 154 |
| 425 | Hannibal | C+ | 65.8 | 25K | 80 |
| 426 | Bunn | C+ | 65.6 | 6K | 110 |
| 427 | Festus | C | 65 | 15K | 286 |
| 428 | Archie | C | 64.8 | 1K | 67 |
| 429 | Crane | C | 64.6 | 1K | 89 |
| 430 | Poplar Bluff | C | 64.3 | 29K | 90 |
| 431 | Wright City | C | 64.2 | 4K | 91 |
| 432 | Rosendale | C | 63.9 | 742 | 60 |
| 433 | Martinsburg | C | 63.7 | 559 | 42 |
| 434 | Bertrand | C | 63 | 733 | 116 |
| 435 | Adrian | C | 62.9 | 4K | 78 |
| 436 | Ava | C | 62.9 | 3K | 103 |
| 437 | Oran | C | 62.8 | 2K | 73 |
| 438 | Summerfield | C | 62.5 | 3K | 135 |
| 439 | Eldon | C | 62.4 | 5K | 70 |
| 440 | Nixa | C | 61.8 | 28K | 131 |
| 441 | Columbia | C | 61.4 | 207K | 145 |
| 442 | Boonville | C | 61.4 | 11K | 150 |
| 443 | Morehouse | C | 60.9 | 1K | 71 |
| 444 | Peeples Valley | C | 60.9 | 758 | 228 |
| 445 | Memphis | C | 60.6 | 5K | 40 |
| 446 | Anniston | C- | 59.7 | 3K | 48 |
| 447 | Cardwell | C- | 59.7 | 533 | 79 |
| 448 | Tonto Village | C- | 58.3 | 512 | 335 |
| 449 | Tonto Village | C- | 58.3 | 512 | 335 |
| 450 | Louisiana | C- | 57 | 3K | 90 |
| 451 | Pineville | C- | 56.6 | 866 | 79 |
| 452 | Galena | C- | 55.5 | 1K | 162 |
| 453 | Neosho | C- | 55.4 | 12K | 175 |
| 454 | Owensville | C- | 55.4 | 3K | 95 |
| 455 | Park Hills | D+ | 54.9 | 10K | 92 |
| 456 | Marshfield | D+ | 54.5 | 8K | 103 |
| 457 | Mercer | D+ | 54.5 | 4K | 50 |
| 458 | Warrenton | D+ | 54.1 | 13K | 97 |
| 459 | Sunrise Beach | D+ | 53.7 | 1K | 105 |
| 460 | Lilbourn | D+ | 53.3 | 1K | 56 |
| 461 | Carthage | D+ | 52.4 | 15K | 191 |
| 462 | Monroe City | D+ | 50.5 | 3K | 49 |
| 463 | Hillsboro | D+ | 50.2 | 13K | 92 |
| 464 | Salome | D+ | 50 | 2K | 389 |
| 465 | Wappapello | D+ | 50 | 1K | 169 |
| 466 | Maysville | D | 49 | 1K | 116 |
| 467 | Ironton | D | 48.6 | 2K | 61 |
| 468 | Sullivan | D | 48.5 | 9K | 359 |
| 469 | Rogersville | D | 47.7 | 6K | 244 |
| 470 | Mount Vernon | D | 47.5 | 5K | 102 |
| 471 | Lake Ozark | D | 47.2 | 12K | 132 |
| 472 | Osage Beach | D | 47 | 9K | 233 |
| 473 | Kimberling City | D | 47 | 6K | 755 |
| 474 | Hollister | D | 47 | 6K | 227 |
| 475 | Blue Eye | D | 47 | 3K | 339 |
| 476 | Forsyth | D | 47 | 3K | 214 |
| 477 | Branson West | D | 47 | 3K | 526 |
| 478 | Stover | D | 47 | 3K | 143 |
| 479 | Reeds Spring | D | 47 | 2K | 432 |
| 480 | Shell Knob | D | 47 | 2K | 195 |
| 481 | Clifton | D | 47 | 955 | 251 |
| 482 | White Hills | D | 47 | 951 | 425 |
| 483 | White Hills | D | 47 | 671 | 273 |
| 484 | Flagstaff | D | 47 | 560 | 256 |
| 485 | Farmington | D | 46.9 | 23K | 384 |
| 486 | Senath | D | 46.9 | 5K | 70 |
| 487 | Pacific | D | 46.6 | 8K | 219 |
| 488 | Union | D | 46.5 | 13K | 345 |
| 489 | Rolla | D | 46 | 23K | 245 |
| 490 | Branson | D | 45.8 | 30K | 368 |
| 491 | Stockton | D | 45.5 | 3K | 271 |
| 492 | Cape Girardeau | D | 45.4 | 44K | 359 |
| 493 | Aurora | D | 45 | 15K | 596 |
| 494 | St. Robert | D | 45 | 5K | 139 |
| 495 | Ozark | F | 44.9 | 22K | 231 |
| 496 | Troy | F | 44.2 | 14K | 204 |
| 497 | Perryville | F | 44.2 | 12K | 158 |
| 498 | Yuma | F | 44.2 | 1K | 683 |
| 499 | O Fallon | F | 43.4 | 138K | 86 |
| 500 | Warsaw | F | 43 | 5K | 456 |
| 501 | Benton | F | 43 | 1K | 122 |
| 502 | Sedalia | F | 42.3 | 23K | 507 |
| 503 | Joplin | F | 42 | 83K | 304 |
| 504 | Bunn | F | 41.9 | 7K | 276 |
| 505 | St. Louis | F | 40.9 | 305K | 189 |
| 506 | Ocala | F | 39.5 | 5K | 240 |
| 507 | Camdenton | F | 39 | 10K | 375 |
| 508 | Springfield | F | 37.1 | 212K | 293 |
| 509 | Des Peres | F | 36.6 | 126K | 14564 |
Browse Missouri counties
Browse Missouri by ZIP code
Look up water quality by ZIP code to find the systems serving your area.
View all Missouri ZIP codes →Frequently asked questions about Missouri's water
Is Missouri's tap water safe to drink?
Missouri's water quality varies by city. The statewide average grade is B (78.7/100). 79% of cities scored an A or B, while 11% received a D or F. Check your specific city for detailed results.
Which Missouri cities have the best water quality?
The top-rated cities are Cosby (A+), Shelbyville (A+), Fairfax (A+). These cities scored highest based on violation history, lead levels, PFAS contamination, and regulatory compliance.
Which Missouri cities have the worst water quality?
The lowest-rated cities are Des Peres (F), Springfield (F), Camdenton (F). We recommend residents in these areas consider water filtration and review their city's specific contaminant data.
How many Missouri cities have PFAS in their water?
137 out of 509 cities tested positive for PFAS "forever chemicals" (27%). 11 cities exceed the 2024 EPA maximum contaminant levels. Reverse osmosis or activated carbon filters can help reduce PFAS exposure.