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