Skip to main content
WaterVerge

Vermont Water Quality Rankings

90 cities ranked · Data from EPA SDWIS

76.7
State avg score
90
Cities ranked
72%
A or B grade
16%
D or F grade
82
Health violations
3
PFAS detected

Vermont water quality overview

Vermont's drinking water quality is good overall, with a state average score of 76.7 out of 100 — 2.2 points above the national average of 74.5. The median city score is 82.4, reflecting how water quality is distributed across the state's 90 ranked cities. 72% of Vermont cities earned an A or B grade, indicating broadly strong water quality infrastructure. Only 5 cities received a failing grade. PFAS "forever chemicals" were detected in 3 of 90 cities (3%). Of those, 1 city exceeds the 2024 EPA maximum contaminant levels — a health concern requiring action. 1 city has lead levels exceeding the EPA action level of 15 ppb, typically a sign of aging lead service lines or lead solder in older plumbing. Residents in these areas should use an NSF 53-certified filter. 82 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 Vermont cities scored

34%
38%
12%
10%
A
31
34%
Excellent
B
34
38%
Good
C
11
12%
Fair
D
9
10%
Poor
F
5
6%
Failing

Score distribution by range

33 17 0
1
1
8
6
8
15
33
18
0–9
10–19
20–29
30–39
40–49
50–59
60–69
70–79
80–89
90–100

State vs national average

B
Vermont
76.7/100
B-
National avg
74.5/100
▲ 2.2 pts above national average

Water quality across Vermont

Each dot is a city, colored by grade. Size reflects population served. Click any city to view its full report.

Vermont city water quality map

All 90 cities in Vermont

# City Grade Score Score Population Violations Issues
1 Essex
A+
95
19K 4
2 Brandon
A+
95
4K 36 Health Unresolved
3 Bridport
A
94.8
4K 15 Health Unresolved
4 Winooski
A
94.3
9K 2
5 Fairlee
A
94.2
967 5 Health Unresolved
6 Shaftsbury
A
94.2
950 11 Unresolved
7 Peru
A
93.9
4K 13 Health Unresolved
8 Arlington
A
93.9
1K 10 Health Unresolved
9 West Windsor
A
93.8
750 11 Health Unresolved
10 Pittsford
A
92.3
2K 87 Health Unresolved
11 Barre City
A
92.2
14K 6 Health Unresolved
12 Rutland City
A
91.8
19K 26 Health Unresolved
13 West Rutland
A
91.7
2K 7 Health Unresolved
14 Bristol
A
91.7
2K 38 Health Unresolved
15 Springfield
A
91.6
10K 15 Health Unresolved
16 Bethel
A
91.5
2K 22 Health Unresolved
17 Poultney
A
91.3
2K 8 Unresolved
18 Fair Haven
A
90.7
3K 15 Health Unresolved
19 Underhill
A-
89.9
825 7 Health Unresolved
20 Brighton
A-
89.2
1K 4 Unresolved
21 Saint Albans City
A-
88.6
10K 13 Health Unresolved
22 Middlebury
A-
88.2
9K 39 Health Unresolved
23 Vergennes
A-
87.8
5K 82 Health Unresolved
24 Richford
A-
87.8
3K 65 Health Unresolved
25 Lyndon
A-
87.6
4K 37 Health Unresolved
26 Williamstown
A-
86.8
985 59 Health Unresolved
27 Stratton
A-
86.6
6K 26 Health Unresolved
28 North Hero
A-
86.4
3K 74 Health Unresolved
29 Chester
A-
85.9
3K 85 Health Unresolved
30 Norwich
A-
85.7
906 149 Health Unresolved
31 Montpelier
A-
85.4
9K 11 Health Unresolved
32 South Burlington
B+
84.9
20K 22 Health Unresolved
33 Bradford
B+
84.7
2K 133 Health Unresolved
34 Burlington
B+
84.6
42K 21 Unresolved
35 Northfield
B+
84.6
5K 12 Health Unresolved
36 Newport City
B+
84.6
5K 23 Health Unresolved
37 Woodstock
B+
84.5
2K 25 Health Unresolved
38 Plainfield
B+
84.4
985 48 Unresolved
39 Lunenburg
B+
83.7
650 90 Health Unresolved
40 Williston
B+
83.6
8K 17 Unresolved
41 Enosburgh
B+
83.5
2K 24 Health Unresolved
42 Windsor
B+
83.3
2K 86 Health Unresolved
43 Shelburne
B+
83
7K 75 Health Unresolved
44 Waitsfield
B+
82.9
532 42 Health Unresolved
45 Johnson
B+
82.7
1K 139 Health Unresolved
46 Grand Isle
B+
82.4
3K 54 Health Unresolved
47 Hardwick
B+
82.1
2K 63 Health Unresolved
48 Putney
B+
81.9
2K 29 Health Unresolved
49 Montgomery
B+
81.9
530 28 Health Unresolved
50 Dorset
B+
81.2
530 141 Health Unresolved
51 Cavendish
B+
80.9
950 93 Health Unresolved
52 Hinesburg
B
79.8
3K 111 Health Unresolved
53 Derby
B
79.6
1K 94 Health Unresolved
54 Brattleboro
B
79.5
12K 32 Health Unresolved
55 South Hero
B
79.5
760 84 Health Unresolved
56 Danville
B
79
500 30 Health Unresolved
57 Richmond
B
78.9
1K 78 Health Unresolved
58 Jay
B
78.2
7K 144 Health Unresolved
59 Swanton
B
77.8
4K 57 Health Unresolved
60 Manchester
B
77.5
4K 102 Health Unresolved
61 Canaan
B
77.2
1K 80 Health Unresolved
62 Waterbury
B
76.6
6K 196 Health Unresolved
63 Troy
B
76.6
864 74 Health Unresolved
64 Hyde Park
B
75.2
737 155 Health Unresolved
65 Morristown
B-
73.8
3K 159 Health Unresolved
66 Saint Johnsbury
C+
70
5K 128 Health Unresolved
67 Proctor
C+
67.7
2K 139 Health Unresolved
68 Wallingford
C+
66.9
1K 179 Health Unresolved
69 Jericho
C+
66.6
2K 128 Health Unresolved
70 Randolph
C+
66.4
4K 176 Health Unresolved
71 Bolton
C+
65.2
1K 237 Health Unresolved
72 Greensboro
C+
65.1
551 140 Health Unresolved
73 Colchester
C
63.4
9K 104 Health Unresolved
74 Rockingham
C
62.9
4K 229 Health Unresolved
75 Royalton
C-
58.8
2K 177 Health Unresolved
76 Walpole
C-
56
625 96 Health Unresolved
77 Milton
D+
54.5
8K 101 Health Unresolved
78 Pownal
D+
51.2
925 300 Health Unresolved
79 Castleton
D+
50
2K 198 Health Unresolved
80 Burke
D+
50
1K 258 Health Unresolved
81 Stowe
D
46
5K 213 Health Unresolved
82 Berlin
D
46
4K 395 Health PFAS Unresolved
83 Dover
D
46
1K 668 Health Unresolved
84 Wilmington
D
45
3K 200 Health Unresolved
85 Alburgh
D
45
963 183 Health Unresolved
86 Bennington
F
44.9
16K 343 Health Unresolved
87 Ludlow
F
44
6K 418 Health Unresolved
88 Killington
F
42
3K 1618 Health Unresolved
89 Rutland Town
F
39
1K 625 Health Unresolved
90 Warren
F
29
4K 383 Health Lead Unresolved