WaterVerge

Washington Water Quality Rankings

294 cities ranked · Data from EPA SDWIS

70.1
State avg score
294
Cities ranked
56%
A or B grade
32%
D or F grade
261
Health violations
74
PFAS detected

Washington water quality overview

Washington's drinking water quality is fair overall, with a state average score of 70.1 out of 100 — 4.1 points below the national average of 74.2. The median city score is 74.8, reflecting how water quality is distributed across the state's 294 ranked cities. 32% of cities scored a D or F, pointing to significant water quality challenges across much of the state. 165 cities did earn an A or B grade, showing that strong systems do exist. PFAS "forever chemicals" were detected in 74 of 294 cities (25%). Of those, 26 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 5 cities have 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. 261 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 Washington cities scored

33%
23%
12%
18%
15%
A
97
33%
Excellent
B
68
23%
Good
C
34
12%
Fair
D
52
18%
Poor
F
43
15%
Failing

Score distribution by range

91 46 0
9
68
25
27
30
91
44
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-
Washington
70.1/100
B-
National avg
74.2/100
▼ 4.1 pts below national average

Water quality across Washington

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

All 294 cities in Washington

# City Grade Score Score Population Violations Issues
1 Steilacoom
A+
96.8
9K 2 Health
2 Asotin
A+
96.6
3K 7 Health
3 Nas Whidbey Island
A+
96.5
17K 10
4 Newman Lake
A+
95.3
2K 23 Health
5 Waitsburg
A
94.4
2K 21 Health
6 Tukwila
A
94.2
45K 0 Zero violations
7 Sedro Woolley
A
94
2K 15 Health Unresolved
8 Manchester
A
93.8
10K 34 Health Unresolved
9 Union Gap
A
93.8
6K 24 Health Unresolved
10 Randle
A
93.8
611 19 Unresolved
11 Kittitas
A
93.6
2K 17 Health Unresolved
12 Electric City
A
93.5
2K 31 Health Unresolved
13 Twisp
A
93.5
1K 42 Health
14 Nooksack
A
93.4
2K 20 Health Unresolved
15 Bainbridge Island
A
93.3
13K 17 Health Unresolved
16 Birch Bay
A
93.2
9K 29 Health Unresolved
17 Littlerock
A
93.2
639 19 Health Unresolved
18 Fife
A
93.1
32K 12 Health
19 Ion
A
93.1
2K 15 Health Unresolved
20 Liberty Lake
A
92.8
14K 25 Health
21 Laconner
A
92.8
3K 15 Unresolved
22 Mt Vernon
A
92.7
2K 12 Unresolved
23 Ilwaco
A
92.6
3K 50 Health Unresolved
24 Malaga
A
92.5
3K 28 Health Unresolved
25 Dupont
A
92.4
13K 5 Unresolved
26 Granger
A
92
4K 14 Health Unresolved
27 Bellevue
A
91.6
317K 9 Health Unresolved
28 Palouse
A
91.4
1K 37 Health
29 Startup
A
91.4
643 20 Health Unresolved
30 Wilkeson
A
91
1K 20 Unresolved
31 Naches
A
90.9
4K 103 Health Unresolved
32 Newcastle
A
90.8
16K 10 Health Unresolved
33 Harrah
A
90.8
1K 21 Health Unresolved
34 Albion
A
90.8
606 65 Health Unresolved
35 Coulee Dam
A
90.7
1K 3 Health Unresolved
36 Mccleary
A
90.6
3K 70 Unresolved
37 Graham
A
90.5
2K 39 Health Unresolved
38 Pouslbo
A
90.4
1K 19 Health Unresolved
39 Coulee City
A
90.4
944 20 Health Unresolved
40 Yacolt
A
90.4
705 82
41 Blaine
A
90.3
6K 95 Health Unresolved
42 Goldbar
A
90.3
3K 25 Health Unresolved
43 Adna
A
90.1
2K 85 Health Unresolved
44 Kettle Falls
A
90
3K 6 Health Unresolved
45 Toledo
A-
89.9
2K 22 Health Unresolved
46 Colton
A-
89.9
632 37 Health Unresolved
47 Royal City
A-
89.8
3K 37 Health Unresolved
48 Thorp
A-
89.7
510 9 Unresolved
49 Desert Aire
A-
89.5
3K 108 Health
50 Ashford
A-
89.3
1K 57 Health Unresolved
51 Grand Coulee
A-
89.2
2K 6 Health Unresolved
52 Anderson Island
A-
89.2
1K 67 Health Unresolved
53 Dayton
A-
89.1
3K 15 Health Unresolved
54 Duvall
A-
89
14K 9 Unresolved
55 Des Moines
A-
88.6
5K 12 Health Unresolved
56 Point Roberts
A-
88.6
1K 19 Health Unresolved
57 Snoqualime
A-
88.5
16K 24 Health Unresolved
58 Sumas
A-
88.5
2K 69 Health Unresolved
59 Edmonds
A-
88.4
50K 13 Unresolved
60 Eatonville
A-
88.3
4K 53 Health Unresolved
61 Castle Rock
A-
88.2
4K 51 Health Unresolved
62 Mabton
A-
88
2K 118 Health Unresolved
63 Bingen
A-
88
2K 132 Unresolved
64 Entiat
A-
88
2K 59 Unresolved
65 North Bonneville
A-
87.9
1K 16 Unresolved
66 Shoreline
A-
87.7
32K 6 Unresolved
67 Ritzville
A-
87.7
2K 58 Health Unresolved
68 Port Gamble
A-
87.5
2K 88 Health Unresolved
69 Sumner
A-
87.4
16K 83 Unresolved
70 Edgewood
A-
87.4
10K 7 Health Unresolved
71 Malott
A-
87.4
636 14 Health Unresolved
72 South Cle Elum
A-
87.4
541 52 Unresolved
73 Granite Falls
A-
87.3
7K 8 Unresolved
74 Glacier
A-
87.3
2K 13 Health Unresolved
75 Allyn
A-
87.3
2K 89 Health Unresolved
76 Davenport
A-
87.3
2K 47 Health Unresolved
77 Rosalia
A-
87.3
1K 88 Health Unresolved
78 Joyce
A-
87.2
2K 46 Health Unresolved
79 Mukilteo
A-
86.9
25K 5 Unresolved
80 Mercer Island
A-
86.8
31K 12 Health Unresolved
81 Packwood
A-
86.7
1K 83 Health Unresolved
82 Rock Island
A-
86.6
4K 80 Health Unresolved
83 Anacortes
A-
86.5
794 23 Health Unresolved
84 Mckenna
A-
86.5
600 7 Unresolved
85 Bow
A-
86.3
2K 39 Health Unresolved
86 Manson
A-
86.2
7K 45 Health Unresolved
87 Woodinville
A-
86.1
60K 50 Health Unresolved
88 Oroville
A-
86.1
3K 79 Health Unresolved
89 George
A-
86.1
1K 61 Health Unresolved
90 Snoqualmie
A-
86
2K 85 Health Unresolved
91 Fircrest
A-
85.8
8K 55 Health Unresolved
92 Acme
A-
85.8
666 32 Health Unresolved
93 Chinook
A-
85.5
664 37 Health Unresolved
94 Rainier
A-
85.4
3K 66 Health Unresolved
95 Cheney
A-
85.2
32K 99 Health Unresolved
96 Rochester
A-
85.2
2K 79 Health Unresolved
97 Sunnyside
A-
85.1
17K 49 Health Unresolved
98 Clarkston
B+
84.9
22K 101 Health Unresolved
99 Snoqualmie Pass
B+
84.9
6K 105 Health Unresolved
100 Orting
B+
84.8
10K 27 Health Unresolved
101 La Conner
B+
84.8
2K 10 Health Unresolved
102 Lind
B+
84.8
903 18 Health Unresolved
103 Algona
B+
84.7
3K 11 Health Unresolved
104 Cusick
B+
84.6
672 30 Health Unresolved
105 Ocean Park
B+
84.5
11K 69 Health Unresolved
106 Sprague
B+
84.5
570 98 Health Unresolved
107 Falls City
B+
84.3
2K 35 Health Unresolved
108 Roy
B+
84.2
1K 7 Unresolved
109 Pateros
B+
84.1
1K 77 Health Unresolved
110 Enumclaw
B+
83.9
23K 66 Health Unresolved
111 North Bend
B+
83.8
14K 98 Health Unresolved
112 Tenino
B+
83.6
4K 96 Health Unresolved
113 Milton
B+
83.5
8K 56 Unresolved
114 Okanogan
B+
83.5
4K 183 Health Unresolved
115 Bucoda
B+
83.5
579 23 Health Unresolved
116 Burien
B+
83.2
16K 7 Health Unresolved
117 Winlock
B+
83.2
4K 241 Health Unresolved
118 Washougal
B+
82.8
21K 81 Health PFAS Unresolved
119 Fairchild Afb
B+
82.8
6K 9 PFAS Unresolved
120 Greenacres
B+
82.6
31K 45 Health Unresolved
121 Chewelah
B+
82.6
3K 93 Health Unresolved
122 Mountlake Terrace
B+
82.4
26K 12 Unresolved
123 Roslyn
B+
82.4
2K 13 Health Unresolved
124 Pomeroy
B+
82.4
1K 105 Health Unresolved
125 Trout Lake
B+
82.4
992 11 Health Unresolved
126 Vashion Island
B+
82.4
685 118 Health Unresolved
127 Pullman
B+
82.3
51K 26 Unresolved
128 Longview
B+
82
49K 15 Unresolved
129 Fox Island
B+
81.7
3K 214 Health Unresolved
130 Lapush
B+
81.5
885 130 Health Unresolved
131 Spangle
B+
80.9
650 60 Health Unresolved
132 Suquamish
B+
80.8
653 128 Health Unresolved
133 Everson
B+
80.7
5K 82 Health Unresolved
134 Lakewood
B+
80.6
62K 40 Health PFAS Unresolved
135 Joint Base Lewis-Mcchord
B+
80.4
72K 133 Health PFAS Unresolved
136 Carbonado
B
79.8
875 111 Health Unresolved
137 Sultan
B
79.7
7K 119 Health Unresolved
138 Long Beach
B
79.5
5K 178 Health Unresolved
139 Rockford
B
79.3
570 70 Unresolved
140 Airway
B
79.1
9K 84 Health Unresolved
141 East Wenatchee
B
78.8
27K 60 Health Unresolved
142 Selah
B
78.7
13K 133 Health Unresolved
143 Federal Way
B
77.3
118K 51 Health PFAS Unresolved
144 Colfax
B
76.8
4K 157 Health Unresolved
145 Moxee
B
76.5
6K 87 Health
146 Waterville
B
76
2K 126 Health Unresolved
147 Winthrop
B
75.6
1K 84 Health Unresolved
148 Lynnwood
B-
74.8
268K 14 Lead Unresolved
149 Lake Tapps
B-
74.8
2K 95 Health Unresolved
150 Greenbank
B-
74.8
605 221 Health Unresolved
151 Elma
B-
74.5
7K 149 Health Unresolved
152 Centralia
B-
74
29K 64 Health PFAS Unresolved
153 Skokomish Nation
B-
74
1K 170 Health Unresolved
154 Carlsborg
B-
73.4
15K 139 Health Unresolved
155 Redmond
B-
73.3
175K 177 Health PFAS Unresolved
156 Hoquiam
B-
73
21K 249 Health Unresolved
157 Goldendale
B-
73
8K 239 Health Unresolved
158 Ravensdale
B-
72.6
557 257 Health Unresolved
159 Mead
B-
72.5
27K 183 Health PFAS Unresolved
160 Kenmore
B-
72.2
105K 5 Lead Unresolved
161 Medical Lake
B-
72
6K 111 Health PFAS Unresolved
162 Morton
B-
72
2K 349 Health Unresolved
163 Pe Ell
B-
70.7
859 161 Health Unresolved
164 Battle Ground
B-
70.2
30K 226 Health Unresolved
165 Fall City
B-
70.1
3K 257 Health Unresolved
166 Hoodsport
C+
69.5
5K 105 Health Unresolved
167 Stevenson
C+
69.5
3K 178 Health Unresolved
168 Onalaska
C+
69.4
2K 516 Health Unresolved
169 Washtucna
C+
68.9
1K 114 Health Unresolved
170 Kalama
C+
68.2
8K 51 Unresolved
171 Port Ludlow
C+
67.9
4K 65 Health Lead Unresolved
172 Spanaway
C+
67.8
33K 70 Health PFAS Unresolved
173 Maple Valley
C+
67.7
29K 226 Health Unresolved
174 Connell
C+
67.2
5K 311 Health Unresolved
175 Mesa
C+
67.1
2K 99 Health Unresolved
176 White Salmon
C+
67
4K 92 Health Unresolved
177 Dallesport
C+
67
923 325 Health Unresolved
178 Custer
C+
66
1K 170 Health Unresolved
179 Ronald
C+
65.5
525 95 Health Unresolved
180 Richland
C+
65.4
106K 163 Health PFAS Unresolved
181 Prosser
C+
65.4
7K 241 Health Unresolved
182 Clinton
C
64.6
3K 284 Health Unresolved
183 Camano Island
C
64.5
744 135 Health Unresolved
184 Bridgeport
C
64
3K 421 Health Unresolved
185 Leavenworth
C
63.6
11K 128 Health Unresolved
186 Bremerton
C
63.5
97K 203 Health Unresolved
187 Tekoa
C
63.5
2K 308 Health Unresolved
188 Camas
C
63.1
32K 164 Health PFAS Unresolved
189 Lake Stevens
C
62.9
558 184 Health Unresolved
190 Cathlamet
C
62.1
4K 299 Health Unresolved
191 Monroe
C
60.4
27K 238 Health Unresolved
192 Mattawa
C
60
5K 354 Health Unresolved
193 Black Diamond
C-
59.8
3K 464 Health Unresolved
194 Belfair
C-
59.7
6K 304 Health Unresolved
195 Spokane Valley
C-
59.1
34K 112 Health PFAS Lead Unresolved
196 Issaquah
C-
57.9
44K 338 Health Unresolved
197 Sammamish
C-
56
88K 433 Health PFAS Unresolved
198 Mossyrock
C-
56
2K 104 Health Unresolved
199 Carson
C-
55.4
4K 447 Unresolved
200 South Bend
D+
54.8
3K 323 Health Lead Unresolved
201 Yelm
D+
54.4
20K 196 Health Unresolved
202 Westport
D+
54.4
6K 405 Health Unresolved
203 Warden
D+
54.4
5K 486 Health Unresolved
204 Renton
D+
54.1
193K 207 Health Unresolved
205 Lummi Island
D+
53.7
529 112 Health Unresolved
206 Grandview
D+
52.8
11K 252 Health Unresolved
207 Auburn
D+
52.5
117K 264 Health Unresolved
208 Lake Forest Park
D+
52
4K 1999 Health Unresolved
209 Buckley
D+
51.6
59K 425 Health Unresolved
210 Maple Falls
D+
51
5K 371 Health Unresolved
211 Tumwater
D+
50.9
67K 92 Health Unresolved
212 Kirkland
D+
50
67K 260 Health Unresolved
213 Quincy
D+
50
17K 719 Health Unresolved
214 Newport
D+
50
6K 395 Health Unresolved
215 Zillah
D+
50
4K 240 Health Unresolved
216 Wellpinit
D+
50
2K 1861 Health Unresolved
217 Nespelem
D+
50
2K 1984 Health Unresolved
218 College Place
D
49.2
9K 428 Health Unresolved
219 Waverly
D
49.2
3K 454 Health Unresolved
220 Colville
D
49
6K 376 Health Unresolved
221 Omak
D
48.9
5K 172 Health Unresolved
222 Stanwood
D
48.2
22K 481 Health Unresolved
223 Freeland
D
48
14K 3935 Health Unresolved
224 Cle Elum
D
48
9K 1259 Health Unresolved
225 Tonasket
D
48
7K 1524 Health Unresolved
226 Brewster
D
48
5K 408 Health Unresolved
227 Langley
D
48
2K 186 Health Unresolved
228 Quinault
D
48
1K 751 Health Unresolved
229 Burbank
D
48
872 388 Health Unresolved
230 Walla Walla
D
47.8
49K 1022 Health Unresolved
231 Pasco
D
47.4
120K 1370 Health Unresolved
232 Ephrata
D
47.4
10K 299 Health Unresolved
233 Deer Park
D
47.3
5K 71 Health PFAS Unresolved
234 Union
D
47
5K 529 Health Unresolved
235 Neah Bay
D
47
1K 763 Health Unresolved
236 Ellensburg
D
46.9
22K 608 Health Unresolved
237 Othello
D
46.8
13K 1166 Health Unresolved
238 Ridgefield
D
46.5
21K 1369 Unresolved
239 Marysville
D
46.2
98K 1045 Health Unresolved
240 Snohomish
D
46.2
41K 415 Health Unresolved
241 Wenatchee
D
46
62K 616 Health Unresolved
242 Aberdeen
D
46
18K 237 Health Unresolved
243 Napavine
D
46
7K 2238 Health Unresolved
244 Marshall
D
46
3K 560 Health Unresolved
245 Republic
D
46
3K 647 Health Unresolved
246 Darrington
D
46
2K 256 Health Unresolved
247 Tahola
D
46
2K 951 Health Unresolved
248 Deming
D
46
854 685 Health Unresolved
249 Everett
D
45.4
282K 229 Health Unresolved
250 Chelan
D
45.2
10K 278 Health Unresolved
251 Forks
D
45
5K 942 Health Unresolved
252 Lopez Island
F
44.9
2K 229 Health Unresolved
253 Kent
F
44.4
360K 244 Health PFAS Unresolved
254 Shelton
F
44.1
42K 2891 Health Unresolved
255 Raymond
F
44
18K 826 Health Unresolved
256 Eastsound
F
44
5K 525 Health Unresolved
257 Oakville
F
44
2K 394 Health Unresolved
258 Friday Harbor
F
43.9
7K 961 Health Unresolved
259 Bellingham
F
43.5
157K 747 Health Unresolved
260 Port Angeles
F
43.5
33K 386 Health Unresolved
261 Kelso
F
43.5
31K 794 Health Unresolved
262 Oak Harbor
F
43.5
27K 475 Health Unresolved
263 West Richland
F
43.5
19K 444 Health Unresolved
264 Chehalis
F
43.4
13K 522 Health Unresolved
265 Sequim
F
43
29K 1235 Health Unresolved
266 Gig Harbor
F
43
24K 543 Health Unresolved
267 Ferndale
F
42.9
25K 1229 Health Unresolved
268 Poulsbo
F
42.8
65K 1640 Health Unresolved
269 Wapato
F
42.8
8K 1480 Health Unresolved
270 Benton City
F
42.8
6K 1357 Health PFAS Unresolved
271 Lynden
F
42.5
28K 1622 Health Unresolved
272 Woodland
F
42.5
13K 2789 Health Unresolved
273 Seattle
F
42.3
1.2M 1889 Health Unresolved
274 Vashon
F
42.3
9K 350 Health Unresolved
275 Mount Vernon
F
42
149K 1919 Health Unresolved
276 Arlington
F
42
25K 1630 Health Unresolved
277 Lacey
F
41.8
129K 1813 Health Unresolved
278 Loon Lake
F
41.8
18K 972 Health Unresolved
279 Bothell
F
41.6
91K 293 Health Unresolved
280 Port Townsend
F
41.3
33K 687 Health Unresolved
281 Cashmere
F
41.2
10K 422 Health Unresolved
282 Toppenish
F
41.2
10K 1044 Health Unresolved
283 Silverdale
F
41.1
63K 358 Health Unresolved
284 Montesano
F
41
16K 520 Health Unresolved
285 Yakima
F
40.4
174K 4018 Health Unresolved
286 Spokane
F
39.2
427K 2463 Health PFAS Unresolved
287 Olympia
F
38.2
125K 1687 Health PFAS Unresolved
288 Coupeville
F
38
25K 4333 Health PFAS Unresolved
289 Moses Lake
F
36.4
37K 2414 Health PFAS Unresolved
290 Port Orchard
F
36.2
94K 10227 Health PFAS Unresolved
291 Kennewick
F
34.8
123K 841 Health PFAS Unresolved
292 Puyallup
F
33.1
98K 949 Health PFAS Unresolved
293 Vancouver
F
32.9
496K 1604 Health PFAS Unresolved
294 Tacoma
F
32.2
628K 2772 Health PFAS Unresolved