50 Cities With the Worst Tap Water (2026)
US cities ranked by the population-weighted average Tap Grade of the community water systems that report them as their location.
How this is measured
Population-weighted average of the 0–100 Tap Grade scores of active community water systems (CWS) that report this city as their location (the system's own reported city_name in EPA SDWIS). Each system's score is weighted by the population it serves; the city figure is the sum of (population × score) divided by total graded population, rounded to one decimal, then mapped to a letter grade using the same A≥90 / B≥80 / C≥65 / D≥50 / F cut lines as an individual system. Only cities whose graded systems together serve at least 50,000 people are included; they are ranked from lowest weighted score (worst) upward.
Grouping is by each system’s self-reported city, which is occasionally a corporate/admin address rather than the community served. Population served can also overlap between systems. A low grade reflects reported EPA violation, lead, and PFAS data — absence of data is not scored as "clean."
| # | City | Graded systems | People served | Weighted grade |
|---|---|---|---|---|
| 1 | Lauderhill, FL | 1 | 55,000 | 30 |
| 2 | Warrington, PA | 7 | 60,285 | 37.9 |
| 3 | Midland, TX | 11 | 164,462 | 38.1 |
| 4 | Stillwater, OK | 5 | 59,946 | 42.5 |
| 5 | Jackson, MS | 4 | 218,596 | 44.8 |
| 6 | Rio Grande, PR | 3 | 69,370 | 45.1 |
| 7 | Yucaipa, CA | 4 | 60,098 | 47.2 |
| 8 | Valdosta, GA | 44 | 77,971 | 48.6 |
| 9 | Georgetown, TX | 2 | 191,729 | 51 |
| 10 | Shreveport, LA | 12 | 202,179 | 52.9 |
| 11 | Ceres, CA | 3 | 54,751 | 53.2 |
| 12 | Battle Creek, MI | 6 | 50,857 | 53.4 |
| 13 | New Orleans, LA | 4 | 387,921 | 53.5 |
| 14 | Pflugerville, TX | 1 | 63,464 | 54 |
| 15 | Aguadilla, PR | 3 | 126,047 | 54.1 |
| 16 | Porterville, CA | 9 | 65,537 | 54.1 |
| 17 | Taylor, MI | 1 | 63,409 | 57 |
| 18 | Dayton, OH | 7 | 150,840 | 57.8 |
| 19 | Moore, OK | 1 | 55,083 | 58 |
| 20 | Mansfield, OH | 19 | 56,519 | 58.4 |
| 21 | Trenton, NJ | 2 | 236,400 | 58.7 |
| 22 | Roswell, NM | 4 | 59,059 | 59.4 |
| 23 | Yuma, AZ | 19 | 161,992 | 59.8 |
| 24 | Lancaster, PA | 13 | 121,677 | 60.3 |
| 25 | Pembroke Pines, FL | 1 | 187,459 | 62 |
| 26 | Miami Beach, FL | 3 | 100,146 | 62 |
| 27 | Somerset, NJ | 1 | 57,150 | 62 |
| 28 | Atlantic City, NJ | 3 | 152,739 | 62.1 |
| 29 | Shelbyville, TN | 3 | 60,355 | 62.4 |
| 30 | Pikeville, KY | 2 | 53,695 | 62.7 |
| 31 | Palm Bay, FL | 1 | 140,750 | 64 |
| 32 | Grand Island, NE | 1 | 51,478 | 64 |
| 33 | Stockton, CA | 71 | 224,402 | 64.5 |
| 34 | Dearborn Heights, MI | 1 | 57,774 | 65 |
| 35 | Bryn Mawr, PA | 25 | 1,057,337 | 65.1 |
| 36 | Merrick, NY | 12 | 372,655 | 65.3 |
| 37 | Laredo, TX | 4 | 271,820 | 65.3 |
| 38 | Edinburg, TX | 2 | 256,419 | 65.3 |
| 39 | Elgin, IL | 5 | 116,929 | 65.5 |
| 40 | Haworth, NJ | 32 | 817,526 | 65.7 |
| 41 | Bloomfield, NJ | 1 | 53,315 | 66 |
| 42 | Altoona, PA | 3 | 62,795 | 66.1 |
| 43 | Columbia, SC | 116 | 388,046 | 66.2 |
| 44 | Canyon Lake, TX | 17 | 94,476 | 66.2 |
| 45 | Clifton, NJ | 4 | 327,465 | 66.7 |
| 46 | West Palm Beach, FL | 4 | 834,971 | 66.8 |
| 47 | Monroe, LA | 2 | 59,598 | 67.3 |
| 48 | Allentown, PA | 18 | 198,541 | 67.6 |
| 49 | Pompano Beach, FL | 6 | 280,023 | 68 |
| 50 | Jersey City, NJ | 1 | 262,000 | 68 |
See how the Tap Grade is calculated on the methodology page, or where the underlying data comes from on data sources. Spotted something that looks wrong? Email contact@tapgraded.com.
Source: EPA SDWIS/ECHO + UCMR5 (see Methodology) · Data as of 2026Q2 — EPA SDWA/ECHO quarterly bulk data (2026 Q2) downloaded 2026-07-16; EPA UCMR5 occurrence data downloaded 2026-07-16