Maine Water Quality Rankings
156 cities ranked · Data from EPA SDWIS
Maine water quality overview
Maine's drinking water quality is good overall, with a state average score of 81.4 out of 100 — 6.9 points above the national average of 74.5. The median city score is 82.9, reflecting how water quality is distributed across the state's 156 ranked cities. 87% of Maine cities earned an A or B grade, indicating broadly strong water quality infrastructure. Only 1 city received a failing grade. PFAS "forever chemicals" were detected in 16 of 156 cities (10%). Of those, 10 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 130 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 156 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 | Biddeford | 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 | Cape Elizabeth | A | 93.8 | 135K | 7 | Unresolved | |
| 11 | Cumberland | A | 93.8 | 135K | 7 | Unresolved | |
| 12 | Greenville | A | 93.7 | 1K | 17 | Health Unresolved | |
| 13 | Madawaska | A | 93.6 | 3K | 10 | Health Unresolved | |
| 14 | Dover-Foxcroft | A | 93.3 | 2K | 9 | Unresolved | |
| 15 | Portland | A | 93.2 | 135K | 7 | Unresolved | |
| 16 | Kennebunk | A | 93.2 | 36K | 11 | Health Unresolved | |
| 17 | Kennebunkport | A | 93.2 | 36K | 11 | Health Unresolved | |
| 18 | Falmouth | A | 92.8 | 135K | 7 | Unresolved | |
| 19 | South Portland | A | 92.8 | 135K | 7 | Unresolved | |
| 20 | Westbrook | A | 92.8 | 135K | 7 | Unresolved | |
| 21 | Kittery | A | 92.8 | 14K | 15 | Health Unresolved | |
| 22 | West Bath | A | 92.6 | 9K | 10 | Health Unresolved | |
| 23 | Oxford | A | 92.5 | 1K | 2 | Health | |
| 24 | Sabattus | A | 92.3 | 2K | 26 | 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 | Hiram | A | 91.6 | 1K | 4 | Unresolved | |
| 29 | Parsonsfield | A | 91.6 | 1K | 4 | Unresolved | |
| 30 | Porter | 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 | Rockland | A- | 89.5 | 21K | 7 | Health Unresolved | |
| 39 | Thomaston | A- | 89.5 | 21K | 7 | Health Unresolved | |
| 40 | Strong | A- | 89.5 | 500 | 7 | Unresolved | |
| 41 | Warren | A- | 89.4 | 21K | 8 | Health Unresolved | |
| 42 | Woolwich | A- | 88.7 | 9K | 20 | Health Unresolved | |
| 43 | Milton | A- | 88.2 | 800 | 50 | Health Unresolved | |
| 44 | Chelsea | A- | 88.1 | 14K | 4 | Health Unresolved | |
| 45 | Bar Harbor | A- | 87.6 | 4K | 4 | Health Unresolved | |
| 46 | Ashland | A- | 87.2 | 713 | 25 | Health Unresolved | |
| 47 | Fryeburg | A- | 87 | 2K | 9 | Health Unresolved | |
| 48 | Avon | A- | 86.8 | 650 | 31 | Health Unresolved | |
| 49 | Phillips | A- | 86.8 | 650 | 31 | Health Unresolved | |
| 50 | Dallas Plt | A- | 86.7 | 1K | 9 | Health Unresolved | |
| 51 | Rangeley Plt | A- | 86.7 | 1K | 9 | Health Unresolved | |
| 52 | Sandy River Plt | A- | 86.7 | 1K | 9 | Health Unresolved | |
| 53 | Hartland | A- | 86.7 | 910 | 45 | Health Unresolved | |
| 54 | Boothbay | A- | 86.6 | 8K | 9 | Health Unresolved | |
| 55 | Paris | A- | 86.6 | 3K | 10 | Health Unresolved | |
| 56 | Rangeley | A- | 86.5 | 1K | 11 | Health Unresolved | |
| 57 | Dixfield | A- | 86.4 | 1K | 19 | Health Unresolved | |
| 58 | Winterport | A- | 86.3 | 763 | 6 | Unresolved | |
| 59 | Lewiston | A- | 86.2 | 24K | 13 | Health Unresolved | |
| 60 | Brewer | A- | 86.2 | 9K | 26 | Health Unresolved | |
| 61 | Winter Harbor | A- | 86.2 | 700 | 17 | Health Unresolved | |
| 62 | Lisbon | A- | 86 | 7K | 14 | Health PFAS Unresolved | |
| 63 | Calais | A- | 86 | 3K | 8 | Health Unresolved | |
| 64 | Bath | A- | 85 | 9K | 31 | Health Unresolved | |
| 65 | Abbot | B+ | 84.8 | 2K | 10 | Health Unresolved | |
| 66 | Parkman | B+ | 84.8 | 2K | 10 | Health Unresolved | |
| 67 | Sangerville | B+ | 84.8 | 2K | 10 | Health Unresolved | |
| 68 | Rumford | B+ | 84.6 | 4K | 10 | Unresolved | |
| 69 | Auburn | B+ | 84.5 | 17K | 12 | Health Unresolved | |
| 70 | Harrison | B+ | 84.4 | 863 | 11 | Health Unresolved | |
| 71 | Clinton | B+ | 84.3 | 1K | 7 | Health Unresolved | |
| 72 | Lubec | B+ | 84.2 | 2K | 16 | Health Unresolved | |
| 73 | Milton | B+ | 84.2 | 800 | 98 | Health Unresolved | |
| 74 | Northport | B+ | 83.8 | 6K | 41 | Health Unresolved | |
| 75 | Mechanic Falls | B+ | 83.8 | 2K | 5 | Unresolved | |
| 76 | Bingham | B+ | 83.5 | 1K | 40 | Health Unresolved | |
| 77 | Manchester | B+ | 83.3 | 14K | 18 | Health Unresolved | |
| 78 | Newport | B+ | 83 | 2K | 63 | Health Unresolved | |
| 79 | South Berwick | B+ | 82.9 | 4K | 35 | Health Unresolved | |
| 80 | Washburn | B+ | 82.9 | 688 | 40 | Health Unresolved | |
| 81 | Eagle Lake | B+ | 82.9 | 585 | 43 | Health Unresolved | |
| 82 | Clifton | B+ | 82.8 | 27K | 11 | Health Unresolved | |
| 83 | Eddington | B+ | 82.8 | 27K | 11 | Health Unresolved | |
| 84 | North Yarmouth | B+ | 82.7 | 8K | 11 | Health PFAS Unresolved | |
| 85 | Yarmouth | B+ | 82.7 | 8K | 11 | Health PFAS Unresolved | |
| 86 | Kingfield | B+ | 82.6 | 950 | 11 | Health Unresolved | |
| 87 | Augusta | B+ | 82.4 | 14K | 67 | Health Unresolved | |
| 88 | Machias | B+ | 82.3 | 1K | 11 | Unresolved | |
| 89 | Newcastle | B+ | 82.2 | 2K | 71 | Health Unresolved | |
| 90 | Veazie | B+ | 81.7 | 27K | 4 | Health Unresolved | |
| 91 | Winthrop | B+ | 81.6 | 3K | 56 | Health Unresolved | |
| 92 | Pittsfield | B+ | 81.3 | 3K | 22 | Health Unresolved | |
| 93 | Monmouth | B+ | 81.3 | 588 | 13 | Health Unresolved | |
| 94 | Dexter | B+ | 81 | 2K | 10 | Health Unresolved | |
| 95 | Hampden | B+ | 80.5 | 5K | 11 | Health Unresolved | |
| 96 | Fort Fairfield | B+ | 80.4 | 2K | 22 | Health Unresolved | |
| 97 | Berwick | B+ | 80.3 | 4K | 77 | Health Unresolved | |
| 98 | Wilton | B+ | 80.2 | 3K | 10 | Unresolved | |
| 99 | Camden | B | 79.7 | 21K | 42 | Health Unresolved | |
| 100 | Eastport | B | 79.6 | 2K | 48 | Health Unresolved | |
| 101 | Perry | B | 79.6 | 2K | 48 | Health Unresolved | |
| 102 | Waterville | B | 79.3 | 22K | 15 | Health PFAS Unresolved | |
| 103 | Winslow | B | 79.3 | 22K | 15 | Health PFAS Unresolved | |
| 104 | Limerick | B | 79.3 | 740 | 43 | Health Unresolved | |
| 105 | Gorham | B | 79.2 | 853 | 38 | Health Unresolved | |
| 106 | Milo | B | 78.5 | 2K | 68 | Health Unresolved | |
| 107 | Orrington | B | 78.3 | 27K | 35 | Health Unresolved | |
| 108 | Bethel | B | 78.2 | 2K | 6 | Unresolved | |
| 109 | Indian Twp St Ind Rs | B | 78 | 535 | 113 | Health Unresolved | |
| 110 | Farmington | B | 77.9 | 4K | 18 | Health Unresolved | |
| 111 | Anson | B | 77.5 | 6K | 51 | Health Unresolved | |
| 112 | Embden | B | 77.5 | 6K | 51 | Health Unresolved | |
| 113 | Madison | B | 77.5 | 6K | 51 | Health Unresolved | |
| 114 | Ellsworth | B | 77.5 | 4K | 27 | Health Unresolved | |
| 115 | North Haven | B | 77.1 | 740 | 171 | Health Unresolved | |
| 116 | Bangor | B | 76.5 | 27K | 83 | Health Unresolved | |
| 117 | Charleston | B | 76.5 | 503 | 30 | Health Unresolved | |
| 118 | Waterboro | B | 75.2 | 4K | 61 | Health Unresolved | |
| 119 | Jackman | B | 75 | 1K | 52 | Health Unresolved | |
| 120 | Sanford | B- | 74.5 | 15K | 55 | Health PFAS Unresolved | |
| 121 | Damariscotta | B- | 74.4 | 2K | 115 | Health Unresolved | |
| 122 | Windham | B- | 74.1 | 135K | 77 | Health Unresolved | |
| 123 | Oakland | B- | 74.1 | 22K | 32 | Health PFAS Unresolved | |
| 124 | Wiscasset | B- | 74 | 2K | 42 | Health Unresolved | |
| 125 | Guilford | B- | 73.7 | 2K | 40 | Health Unresolved | |
| 126 | Rockport | B- | 73 | 21K | 15 | Health Unresolved | |
| 127 | Belfast | B- | 73 | 6K | 32 | Health Unresolved | |
| 128 | Gardiner | B- | 72.8 | 9K | 22 | Health Unresolved | |
| 129 | Southwest Hbr | B- | 72.6 | 2K | 94 | Health Unresolved | |
| 130 | Mount Desert | B- | 72.5 | 2K | 49 | Health Unresolved | |
| 131 | Alfred | B- | 72.3 | 1K | 62 | Health Unresolved | |
| 132 | Livermore | B- | 71.8 | 3K | 6 | Health Unresolved | |
| 133 | North Berwick | B- | 70.5 | 2K | 35 | Health Unresolved | |
| 134 | Gray | B- | 70.4 | 2K | 10 | Health Unresolved | |
| 135 | Moscow | B- | 70.4 | 1K | 60 | Health Unresolved | |
| 136 | Orono | B- | 70.2 | 6K | 233 | Health Unresolved | |
| 137 | Vinalhaven | C+ | 69.4 | 1K | 46 | Health Unresolved | |
| 138 | West Paris | C+ | 68.4 | 540 | 32 | Health Unresolved | |
| 139 | Hermon | C+ | 68.2 | 27K | 56 | Health Unresolved | |
| 140 | Topsham | C+ | 67.5 | 19K | 180 | Health Unresolved | |
| 141 | Carrabassett Vl | C+ | 67.5 | 2K | 35 | Health Unresolved | |
| 142 | Fort Kent | C+ | 67.4 | 2K | 46 | Health Unresolved | |
| 143 | Castine | C+ | 67.3 | 1K | 250 | Health Unresolved | |
| 144 | Jay | C+ | 65.7 | 1K | 54 | Health Unresolved | |
| 145 | Presque Isle | C+ | 65.6 | 6K | 81 | Health Unresolved | |
| 146 | Houlton | C | 64 | 5K | 65 | Health PFAS Unresolved | |
| 147 | Caribou | C | 63.9 | 4K | 284 | Health Unresolved | |
| 148 | Scarborough | C | 63.8 | 135K | 162 | Health Unresolved | |
| 149 | Vassalboro | C | 63.8 | 22K | 83 | Health PFAS Unresolved | |
| 150 | Brownville | C | 61.1 | 916 | 22 | Health Unresolved | |
| 151 | Raymond | C- | 55.9 | 135K | 39 | Health Unresolved | |
| 152 | Mars Hill | D+ | 50 | 2K | 113 | Health Unresolved | |
| 153 | Limestone | D | 49.6 | 875 | 178 | Health Unresolved | |
| 154 | Bridgton | D | 48.1 | 4K | 124 | Health Unresolved | |
| 155 | Princeton | D | 47 | 660 | 316 | Health Unresolved | |
| 156 | Fairfield | F | 36.4 | 22K | 160 | Health PFAS Unresolved |