Maine Water Quality Rankings
168 cities ranked · Data from EPA SDWIS
Maine water quality overview
Maine's drinking water quality is good overall, with a state average score of 80.4 out of 100 — 6.2 points above the national average of 74.2. The median city score is 82.9, reflecting how water quality is distributed across the state's 168 ranked cities. 85% of Maine cities earned an A or B grade, indicating broadly strong water quality infrastructure. Only 2 cities received a failing grade. PFAS "forever chemicals" were detected in 17 of 168 cities (10%). Of those, 10 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 141 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 Maine cities scored
Score distribution by range
State vs national average
Water quality across Maine
Each dot is a city, colored by grade. Size reflects population served. Click any city to view its full report.
Top & bottom cities in Maine
Best 10 cities
All 168 cities in Maine
| # | City | Grade | Score | Score | Population | Violations | Issues |
|---|---|---|---|---|---|---|---|
| 1 | Millinocket | A+ | 97.6 | 5K | 8 | Health | |
| 2 | York | A+ | 97 | 14K | 6 | ||
| 3 | Hallowell | A+ | 97 | 2K | 0 | Zero violations | |
| 4 | Salem | A+ | 96 | 900 | 0 | Zero violations | |
| 5 | Searsport | A+ | 95.4 | 3K | 28 | Unresolved | |
| 6 | Norway | A+ | 95 | 2K | 1 | ||
| 7 | Saco | A | 94.3 | 43K | 12 | Health Unresolved | |
| 8 | Saco | A | 94.3 | 43K | 12 | Health Unresolved | |
| 9 | East Millinocket | A | 94 | 2K | 7 | Health Unresolved | |
| 10 | Scarborough | A | 93.8 | 135K | 7 | Unresolved | |
| 11 | Scarborough | A | 93.8 | 135K | 7 | Unresolved | |
| 12 | Scarborough | A | 93.8 | 135K | 7 | Unresolved | |
| 13 | Scarborough | A | 93.8 | 135K | 7 | Unresolved | |
| 14 | Scarborough | A | 93.8 | 135K | 7 | Unresolved | |
| 15 | Scarborough | A | 93.8 | 135K | 7 | Unresolved | |
| 16 | Greenville | A | 93.7 | 1K | 17 | Health Unresolved | |
| 17 | Madawaska | A | 93.6 | 3K | 10 | Health Unresolved | |
| 18 | Dover-Foxcroft | A | 93.3 | 2K | 9 | Unresolved | |
| 19 | Kennebunkport | A | 93.2 | 36K | 11 | Health Unresolved | |
| 20 | Kennebunkport | A | 93.2 | 36K | 11 | Health Unresolved | |
| 21 | Kittery | A | 92.8 | 14K | 15 | Health Unresolved | |
| 22 | Oxford | A | 92.5 | 1K | 2 | Health | |
| 23 | Sabattus | A | 92.3 | 2K | 26 | Health Unresolved | |
| 24 | Bath | A | 92.1 | 9K | 10 | Health Unresolved | |
| 25 | Richmond | A | 92 | 1K | 16 | Health Unresolved | |
| 26 | Norridgewock | A | 92 | 1K | 35 | Health Unresolved | |
| 27 | Van Buren | A | 91.9 | 2K | 7 | Unresolved | |
| 28 | Parsonsfield | A | 91.6 | 1K | 4 | Unresolved | |
| 29 | Parsonsfield | A | 91.6 | 1K | 4 | Unresolved | |
| 30 | Parsonsfield | A | 91.6 | 1K | 4 | Unresolved | |
| 31 | Cornish | A | 91.6 | 753 | 3 | Unresolved | |
| 32 | Baileyville | A | 91.5 | 2K | 12 | Health Unresolved | |
| 33 | Bowdoinham | A | 90.9 | 738 | 1 | Health | |
| 34 | Howland | A | 90.7 | 1K | 15 | Unresolved | |
| 35 | Lincoln | A | 90.4 | 3K | 9 | Health Unresolved | |
| 36 | Mexico | A- | 89.7 | 2K | 2 | Unresolved | |
| 37 | Old Town | A- | 89.6 | 8K | 6 | Health | |
| 38 | Camden | A- | 89.5 | 21K | 7 | Health Unresolved | |
| 39 | Camden | A- | 89.5 | 21K | 7 | Health Unresolved | |
| 40 | Strong | A- | 89.5 | 500 | 7 | Unresolved | |
| 41 | Camden | A- | 89.4 | 22K | 8 | Health Unresolved | |
| 42 | Bath | A- | 88.2 | 11K | 20 | Health Unresolved | |
| 43 | Milton | A- | 88.2 | 800 | 50 | Health Unresolved | |
| 44 | Topsham | A- | 88.1 | 29K | 59 | Health Unresolved | |
| 45 | Augusta | A- | 88.1 | 14K | 4 | Health Unresolved | |
| 46 | Bar Harbor | A- | 87.6 | 4K | 4 | Health Unresolved | |
| 47 | Ashland | A- | 87.2 | 713 | 25 | Health Unresolved | |
| 48 | Fryeburg | A- | 87 | 2K | 9 | Health Unresolved | |
| 49 | Avon | A- | 86.8 | 650 | 31 | Health Unresolved | |
| 50 | Avon | A- | 86.8 | 650 | 31 | Health Unresolved | |
| 51 | Sandy River Plt | A- | 86.7 | 1K | 9 | Health Unresolved | |
| 52 | Sandy River Plt | A- | 86.7 | 1K | 9 | Health Unresolved | |
| 53 | Sandy River Plt | A- | 86.7 | 1K | 9 | Health Unresolved | |
| 54 | Hartland | A- | 86.7 | 910 | 45 | Health Unresolved | |
| 55 | Boothbay | A- | 86.6 | 8K | 9 | Health Unresolved | |
| 56 | Paris | A- | 86.6 | 3K | 10 | Health Unresolved | |
| 57 | Sandy River Plt | A- | 86.5 | 1K | 11 | Health Unresolved | |
| 58 | Dixfield | A- | 86.4 | 1K | 19 | Health Unresolved | |
| 59 | Winterport | A- | 86.3 | 763 | 6 | Unresolved | |
| 60 | Lewiston | A- | 86.2 | 24K | 13 | Health Unresolved | |
| 61 | Clifton | A- | 86.2 | 9K | 26 | Health Unresolved | |
| 62 | Winter Harbor | A- | 86.2 | 700 | 17 | Health Unresolved | |
| 63 | Lisbon | A- | 86 | 7K | 14 | Health PFAS Unresolved | |
| 64 | Calais | A- | 86 | 3K | 8 | Health Unresolved | |
| 65 | Freeport | A- | 85.4 | 4K | 57 | Health Unresolved | |
| 66 | Bath | A- | 85 | 9K | 31 | Health Unresolved | |
| 67 | Abbot | B+ | 84.8 | 2K | 10 | Health Unresolved | |
| 68 | Abbot | B+ | 84.8 | 2K | 10 | Health Unresolved | |
| 69 | Abbot | B+ | 84.8 | 2K | 10 | Health Unresolved | |
| 70 | Rumford | B+ | 84.6 | 4K | 10 | Unresolved | |
| 71 | Auburn | B+ | 84.5 | 17K | 12 | Health Unresolved | |
| 72 | Harrison | B+ | 84.4 | 863 | 11 | Health Unresolved | |
| 73 | Clinton | B+ | 84.3 | 1K | 7 | Health Unresolved | |
| 74 | Lubec | B+ | 84.2 | 2K | 16 | Health Unresolved | |
| 75 | Milton | B+ | 84.2 | 1K | 98 | Health Unresolved | |
| 76 | Northport | B+ | 83.8 | 6K | 41 | Health Unresolved | |
| 77 | Mechanic Falls | B+ | 83.8 | 2K | 5 | Unresolved | |
| 78 | Augusta | B+ | 83.6 | 17K | 56 | Health Unresolved | |
| 79 | St George | B+ | 83.6 | 708 | 42 | Health Unresolved | |
| 80 | Bingham | B+ | 83.5 | 1K | 40 | Health Unresolved | |
| 81 | Augusta | B+ | 83.3 | 14K | 18 | Health Unresolved | |
| 82 | Newport | B+ | 83 | 2K | 63 | Health Unresolved | |
| 83 | South Berwick | B+ | 82.9 | 4K | 35 | Health Unresolved | |
| 84 | Washburn | B+ | 82.9 | 688 | 40 | Health Unresolved | |
| 85 | Eagle Lake | B+ | 82.9 | 585 | 43 | Health Unresolved | |
| 86 | North Yarmouth | B+ | 82.7 | 8K | 11 | Health PFAS Unresolved | |
| 87 | North Yarmouth | B+ | 82.7 | 8K | 11 | Health PFAS Unresolved | |
| 88 | Kingfield | B+ | 82.6 | 950 | 11 | Health Unresolved | |
| 89 | Augusta | B+ | 82.4 | 14K | 67 | Health Unresolved | |
| 90 | Bangor | B+ | 82.3 | 36K | 11 | Health Unresolved | |
| 91 | Bangor | B+ | 82.3 | 36K | 11 | Health Unresolved | |
| 92 | Machias | B+ | 82.3 | 1K | 11 | Unresolved | |
| 93 | Damariscotta | B+ | 82.2 | 2K | 71 | Health Unresolved | |
| 94 | Bangor | B+ | 81.7 | 27K | 4 | Health Unresolved | |
| 95 | Pittsfield | B+ | 81.3 | 3K | 22 | Health Unresolved | |
| 96 | Monmouth | B+ | 81.3 | 671 | 13 | Health Unresolved | |
| 97 | Dexter | B+ | 81 | 2K | 10 | Health Unresolved | |
| 98 | Fort Fairfield | B+ | 80.4 | 2K | 22 | Health Unresolved | |
| 99 | South Berwick | B+ | 80.3 | 6K | 77 | Health Unresolved | |
| 100 | Wilton | B+ | 80.2 | 3K | 10 | Unresolved | |
| 101 | Bangor | B+ | 80 | 32K | 11 | Health Unresolved | |
| 102 | Camden | B | 79.7 | 21K | 42 | Health Unresolved | |
| 103 | Eastport | B | 79.6 | 2K | 48 | Health Unresolved | |
| 104 | Eastport | B | 79.6 | 2K | 48 | Health Unresolved | |
| 105 | Waterville | B | 79.3 | 22K | 15 | Health PFAS Unresolved | |
| 106 | Waterville | B | 79.3 | 22K | 15 | Health PFAS Unresolved | |
| 107 | Limerick | B | 79.3 | 740 | 43 | Health Unresolved | |
| 108 | Scarborough | B | 79.2 | 136K | 38 | Health Unresolved | |
| 109 | Milo | B | 78.5 | 2K | 68 | Health Unresolved | |
| 110 | Bethel | B | 78.2 | 2K | 6 | Unresolved | |
| 111 | Princeton | B | 78 | 535 | 113 | Health Unresolved | |
| 112 | Farmington | B | 77.9 | 4K | 18 | Health Unresolved | |
| 113 | Bangor | B | 77.8 | 36K | 35 | Health Unresolved | |
| 114 | Anson | B | 77.5 | 6K | 51 | Health Unresolved | |
| 115 | Anson | B | 77.5 | 6K | 51 | Health Unresolved | |
| 116 | Anson | B | 77.5 | 6K | 51 | Health Unresolved | |
| 117 | Ellsworth | B | 77.5 | 4K | 27 | Health Unresolved | |
| 118 | North Haven | B | 77.1 | 740 | 171 | Health Unresolved | |
| 119 | Bangor | B | 76.5 | 27K | 83 | Health Unresolved | |
| 120 | Charleston | B | 76.5 | 503 | 30 | Health Unresolved | |
| 121 | Scarborough | B | 75.2 | 136K | 71 | Unresolved | |
| 122 | Waterboro | B | 75.2 | 4K | 61 | Health Unresolved | |
| 123 | Jackman | B | 75 | 1K | 52 | Health Unresolved | |
| 124 | Sanford | B- | 74.5 | 15K | 55 | Health PFAS Unresolved | |
| 125 | Stonington | B- | 74.5 | 727 | 71 | Health Unresolved | |
| 126 | Damariscotta | B- | 74.4 | 2K | 115 | Health Unresolved | |
| 127 | Scarborough | B- | 74.1 | 135K | 77 | Health Unresolved | |
| 128 | Waterville | B- | 74.1 | 25K | 32 | Health PFAS Unresolved | |
| 129 | Abbot | B- | 73.7 | 2K | 40 | Health Unresolved | |
| 130 | Bath | B- | 73.5 | 11K | 42 | Health Unresolved | |
| 131 | Northport | B- | 73.2 | 6K | 32 | Health Unresolved | |
| 132 | Camden | B- | 73 | 21K | 15 | Health Unresolved | |
| 133 | Gardiner | B- | 72.8 | 9K | 22 | Health Unresolved | |
| 134 | Southwest Hbr | B- | 72.6 | 2K | 94 | Health Unresolved | |
| 135 | Waldoboro | B- | 72.6 | 1K | 86 | Health Unresolved | |
| 136 | Mount Desert | B- | 72.5 | 2K | 49 | Health Unresolved | |
| 137 | Skowhegan | B- | 72.3 | 6K | 45 | Health Unresolved | |
| 138 | Alfred | B- | 72.3 | 1K | 62 | Health Unresolved | |
| 139 | Livermore | B- | 71.8 | 3K | 6 | Health Unresolved | |
| 140 | North Berwick | B- | 70.5 | 2K | 35 | Health Unresolved | |
| 141 | Gray | B- | 70.4 | 2K | 10 | Health Unresolved | |
| 142 | Bingham | B- | 70.4 | 1K | 60 | Health Unresolved | |
| 143 | Orono | B- | 70.2 | 6K | 233 | Health Unresolved | |
| 144 | Vinalhaven | C+ | 69.4 | 1K | 46 | Health Unresolved | |
| 145 | West Paris | C+ | 68.4 | 540 | 32 | Health Unresolved | |
| 146 | Bangor | C+ | 67.7 | 28K | 56 | Health Unresolved | |
| 147 | Topsham | C+ | 67.5 | 19K | 180 | Health Unresolved | |
| 148 | Carrabassett Vl | C+ | 67.5 | 2K | 35 | Health Unresolved | |
| 149 | Fort Kent | C+ | 67.4 | 2K | 46 | Health Unresolved | |
| 150 | Castine | C+ | 67.3 | 1K | 250 | Health Unresolved | |
| 151 | Jay | C+ | 65.7 | 1K | 54 | Health Unresolved | |
| 152 | Presque Isle | C+ | 65.6 | 6K | 81 | Health Unresolved | |
| 153 | Camden | C | 64.2 | 21K | 46 | Health Unresolved | |
| 154 | Houlton | C | 64 | 5K | 65 | Health PFAS Unresolved | |
| 155 | Caribou | C | 63.9 | 4K | 284 | Health Unresolved | |
| 156 | Scarborough | C | 63.8 | 135K | 162 | Health Unresolved | |
| 157 | Waterville | C | 63.8 | 36K | 83 | Health PFAS Unresolved | |
| 158 | Brownville | C | 61.1 | 979 | 22 | Health Unresolved | |
| 159 | Bucksport | C- | 59 | 2K | 116 | Health Unresolved | |
| 160 | Scarborough | C- | 55.9 | 135K | 39 | Health Unresolved | |
| 161 | Kennebunkport | D+ | 50.5 | 37K | 166 | Health Unresolved | |
| 162 | Mars Hill | D+ | 50 | 2K | 113 | Health Unresolved | |
| 163 | Limestone | D | 49.6 | 1K | 178 | Health Unresolved | |
| 164 | Bridgton | D | 48.1 | 5K | 124 | Health Unresolved | |
| 165 | Princeton | D | 47 | 660 | 316 | Health Unresolved | |
| 166 | Hancock | D | 47 | 516 | 299 | Health Unresolved | |
| 167 | Clifton | F | 41.5 | 9K | 188 | Health Unresolved | |
| 168 | Waterville | F | 37.9 | 22K | 160 | Health PFAS Unresolved |