Skip to main content
WaterVerge

Alabama Water Quality Rankings

351 cities ranked · Data from EPA SDWIS

83.3
State avg score
351
Cities ranked
88%
A or B grade
5%
D or F grade
249
Health violations
126
PFAS detected

Alabama water quality overview

Alabama's drinking water quality is good overall, with a state average score of 83.3 out of 100 — 8.8 points above the national average of 74.5. The median city score is 86.7, reflecting how water quality is distributed across the state's 351 ranked cities. 88% of Alabama 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 126 of 351 cities (36%). Of those, 62 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 2 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. 249 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 Alabama cities scored

58%
30%
A
202
58%
Excellent
B
106
30%
Good
C
25
7%
Fair
D
16
5%
Poor
F
2
1%
Failing

Score distribution by range

155 78 0
1
8
14
20
49
155
104
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+
Alabama
83.3/100
B-
National avg
74.5/100
▲ 8.8 pts above national average

Water quality across Alabama

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

All 351 cities in Alabama

# City Grade Score Score Population Violations Issues
1 Buhl
A+
99.9
4K 1 Health
2 Fayette
A+
98.9
13K 1
3 Brent
A+
98.6
7K 4 Health
4 Tallapoosa County
A+
98.6
6K 3 Health
5 Loxley
A+
97.9
10K 2
6 Anniston
A+
97.6
57K 1
7 Hokes Bluff
A+
97.5
6K 1
8 Ashland
A+
97.3
3K 17 Health
9 Graysville
A+
97.2
9K 5 Health
10 Randolph
A+
97
1K 0 Zero violations
11 Maplesville
A+
96.9
1K 3
12 Arab
A+
96.8
35K 2
13 Alexandria
A+
96.8
33K 24 Health Unresolved
14 Valley Head
A+
96.7
3K 3 Health
15 Ft. Rucker
A+
96.6
17K 10 Health Unresolved
16 Glencoe
A+
96
6K 26 Unresolved
17 Gordo
A+
96
4K 6 Unresolved
18 Trinity
A+
95.9
3K 2
19 Newsite
A+
95.9
2K 1 Health
20 Jemison
A+
95.8
4K 32 Health Unresolved
21 Ft Mitchell
A+
95.7
14K 29
22 Centreville
A+
95.7
6K 25 Unresolved
23 Brookside
A+
95.7
3K 3 Health
24 Notasulga
A+
95.5
3K 10
25 West Blocton
A+
95
5K 7 Health Unresolved
26 Samson
A
94.8
4K 3 Unresolved
27 Harpersville
A
94.7
3K 6
28 Allgood
A
94.7
861 5 Health Unresolved
29 Berry
A
94.5
5K 22 Health Unresolved
30 Banks
A
94.4
1K 8 Health
31 Riverside
A
94.3
4K 36 Health Unresolved
32 Ohatchee
A
94.3
2K 5 Unresolved
33 Brookwood
A
94.2
15K 9 Health Unresolved
34 Fayetteville
A
94.1
6K 3 Unresolved
35 Gulf Shores
A
94
37K 3 Health Unresolved
36 Roanoke
A
93.9
8K 23 Health Unresolved
37 Cuba
A
93.9
570 8 Health Unresolved
38 Oakman
A
93.8
5K 18 Health Unresolved
39 Munford
A
93.8
4K 39 Unresolved
40 Addison
A
93.7
3K 45 Health
41 Wilton
A
93.6
3K 23 Unresolved
42 Silverhill
A
93.6
2K 62 Unresolved
43 Elberta
A
93.3
13K 9 Health
44 Parrish
A
93.2
6K 4 Health Unresolved
45 Lapine
A
93.2
2K 11 Health Unresolved
46 Eldridge
A
93.1
2K 29 Health Unresolved
47 Hartselle
A
93
22K 21 Health Unresolved
48 Monroeville
A
93
10K 3 Health Unresolved
49 Geneva
A
93
10K 9 Unresolved
50 Tibbie
A
93
2K 5 Unresolved
51 Carbon Hill
A
92.9
3K 13 Health
52 Nauvoo
A
92.9
2K 7 Health Unresolved
53 Sardis
A
92.5
7K 10 Unresolved
54 Locust Fork
A
92.5
6K 5 Unresolved
55 Mcintosh
A
92.5
3K 26 Unresolved
56 Somerville
A
92.4
26K 7 Health Unresolved
57 Dennis
A
92.4
3K 67 Health Unresolved
58 Florala
A
92.3
4K 48 Health Unresolved
59 Akron
A
92.3
513 30 Unresolved
60 Crossville
A
92.1
2K 48 Health
61 Oneonta
A
92
20K 10 Health Unresolved
62 New Hope
A
91.9
6K 4 Health Unresolved
63 Walnut Grove
A
91.9
1K 59 Health Unresolved
64 Piedmont
A
91.8
14K 34 Health Unresolved
65 Ashville
A
91.7
5K 34 Health Unresolved
66 Deer Park
A
91.7
1K 4 Health Unresolved
67 Altoona
A
91.6
1K 4 Unresolved
68 Garden City
A
91.6
780 8 Health Unresolved
69 Lockhart
A
91.6
720 3 Unresolved
70 Townley
A
91.5
2K 4 Health Unresolved
71 Millport
A
91.5
1K 29 Unresolved
72 Cedar Bluff
A
91.4
5K 5 Health Unresolved
73 Billingsley
A
91.4
1K 4 Health Unresolved
74 Rainbow City
A
91.3
12K 5 Health Unresolved
75 Moundville
A
91.3
4K 8 Health Unresolved
76 Ralph
A
91.2
6K 2 Unresolved
77 Myrtlewood
A
91.2
4K 3 Health Unresolved
78 Snowdoun
A
91.2
3K 2 Unresolved
79 Phil Campbell
A
91.1
7K 2 Health Unresolved
80 Pinckard
A
91.1
1K 3 Unresolved
81 Highland Home
A
91
8K 2 Unresolved
82 Sycamore
A
91
2K 11 Health Unresolved
83 Rutledge
A
91
789 31 Health Unresolved
84 Rockford
A
90.9
4K 42 Unresolved
85 Thorsby
A
90.8
31K 24 Unresolved
86 Vernon
A
90.8
10K 9 Health Unresolved
87 Bakerhill
A
90.8
7K 28 Health Unresolved
88 Huguley
A
90.8
7K 7 Health PFAS Unresolved
89 Sumiton
A
90.8
6K 7 Health Unresolved
90 Uniontown
A
90.7
3K 42 Health Unresolved
91 Dauphin Island
A
90.6
6K 108 Health Unresolved
92 Pisgah
A
90.6
1K 4 Unresolved
93 Thomaston
A
90.6
960 9 Health Unresolved
94 Fort Deposit
A
90.5
2K 4 Health Unresolved
95 Ramer
A
90.5
2K 74 Unresolved
96 Hope Hull
A
90.4
5K 15 Health Unresolved
97 Jack
A
90.4
1K 10 Health Unresolved
98 Helena
A
90.3
21K 22 PFAS Unresolved
99 Vinemont
A
90.2
17K 4 Health Unresolved
100 Union Springs
A
90.2
4K 21 Health PFAS Unresolved
101 Calera
A
90.1
27K 26 Unresolved
102 Moulton
A
90
9K 6 Health Unresolved
103 Snead
A-
90
6K 12 Health Unresolved
104 Millry
A
90
2K 44 Health Unresolved
105 Blountsville
A-
89.9
4K 8 Health Unresolved
106 Opp
A-
89.8
10K 9 Health Unresolved
107 Pennington
A-
89.8
2K 23 Health Unresolved
108 Trussville
A-
89.7
36K 4 Unresolved
109 Cropwell
A-
89.7
7K 1 Unresolved
110 Cherokee
A-
89.7
2K 21 Health Unresolved
111 St. Stephens
A-
89.7
735 2 Unresolved
112 Friendship
A-
89.6
4K 38 Health PFAS Unresolved
113 Lowndesboro
A-
89.6
1K 8 Health Unresolved
114 Jacksonville
A-
89.5
14K 123 Health Unresolved
115 Headland
A-
89.5
6K 4 Unresolved
116 Millerville
A-
89.5
2K 24 Health Unresolved
117 Hobson City
A-
89.4
633 22 Unresolved
118 Owens Cross Roads
A-
89.3
12K 11 Unresolved
119 Union Grove
A-
89.3
3K 28 Health Unresolved
120 Pine Level
A-
89.3
3K 11 Health Unresolved
121 Summerdale
A-
89.3
2K 5 Health Unresolved
122 Birmingham
A-
89.2
585K 12 Health Unresolved
123 Town Creek
A-
89.2
2K 5 Health Unresolved
124 Goodsprings
A-
89.2
1K 17 Health Unresolved
125 Wattsville
A-
89.1
5K 8 Unresolved
126 Cowarts
A-
89.1
2K 2 Health Unresolved
127 Sylacauga
A-
89
29K 55 Health Unresolved
128 Gurley
A-
88.9
1K 12 Health Unresolved
129 Marbury
A-
88.8
9K 7 Health PFAS Unresolved
130 Dora
A-
88.8
4K 29 Unresolved
131 Leroy
A-
88.8
2K 5 Health Unresolved
132 Millers Ferry
A-
88.8
2K 12 Unresolved
133 Montgomery
A-
88.7
280K 51 Health Unresolved
134 Pelham
A-
88.7
39K 15 Health PFAS Unresolved
135 Cordova
A-
88.7
4K 1 Unresolved
136 Bear Creek
A-
88.7
3K 2 Unresolved
137 Winfield
A-
88.6
9K 14 Health Unresolved
138 Douglas
A-
88.5
17K 49 Health Unresolved
139 Hanceville
A-
88.5
7K 8 Health Unresolved
140 Coker
A-
88.5
5K 2 Unresolved
141 Lincoln
A-
88.4
14K 95 Health Unresolved
142 Sulligent
A-
88.4
3K 18 Health Unresolved
143 Wedowee
A-
88.3
8K 63 Health Unresolved
144 Coaling
A-
88.3
4K 3 Unresolved
145 Hollins
A-
88.2
1K 30 Health Unresolved
146 Leeds
A-
88.1
21K 68 Health Unresolved
147 Auburn
A-
88
65K 68 Health PFAS Unresolved
148 York
A-
88
3K 67 Health Unresolved
149 Hayden
A-
88
3K 20 Unresolved
150 Kennedy
A-
88
723 1 Unresolved
151 Mobile
A-
87.9
279K 49 Health
152 Wilsonville
A-
87.9
7K 5 Health Unresolved
153 White Hall
A-
87.9
1K 29 Health Unresolved
154 Frankville
A-
87.9
945 11 Health Unresolved
155 Eufaula
A-
87.8
20K 74 Health Unresolved
156 Red Level
A-
87.8
846 23 Health
157 Wetumpka
A-
87.7
50K 28 Health PFAS Unresolved
158 Elmore
A-
87.7
14K 6 Health Unresolved
159 Lynn
A-
87.7
2K 8 Health Unresolved
160 Falkville
A-
87.7
1K 13 Unresolved
161 Castleberry
A-
87.7
1K 75 Unresolved
162 Tuscaloosa
A-
87.6
182K 17 Health Unresolved
163 Hodges
A-
87.5
2K 3 Unresolved
164 Loachapoka
A-
87.4
14K 27 Health PFAS Unresolved
165 Arley - 3600
A-
87.4
9K 5 Health Unresolved
166 River Falls
A-
87.4
1K 38 Unresolved
167 St Elmo
A-
87.3
10K 74 Health Unresolved
168 Springville
A-
87.2
6K 7 PFAS Unresolved
169 Grant
A-
87
18K 9 Health Unresolved
170 Livingston
A-
87
16K 16 Health Unresolved
171 Alabaster
A-
86.9
41K 54 Health PFAS Unresolved
172 Tallassee
A-
86.9
8K 11 Health PFAS Unresolved
173 Ranburne
A-
86.9
2K 15 Health Unresolved
174 Hamilton
A-
86.8
11K 18 Health Unresolved
175 Childersburg
A-
86.8
10K 24 PFAS Unresolved
176 Taylor
A-
86.7
9K 5 Unresolved
177 Remlap
A-
86.7
3K 13 Unresolved
178 Beatrice
A-
86.7
1K 13 Health Unresolved
179 Haleyville
A-
86.6
12K 17 Health Unresolved
180 Montevallo
A-
86.6
10K 28 Health PFAS Unresolved
181 Ragland
A-
86.6
3K 2 Unresolved
182 Gantt
A-
86.6
801 3 Unresolved
183 Edwardsville
A-
86.6
585 17 Health Unresolved
184 Clanton
A-
86.5
14K 35 Health PFAS Unresolved
185 Lineville
A-
86.5
6K 32 Health Unresolved
186 Muscle Shoals
A-
86.2
22K 21 Health PFAS Unresolved
187 Ashford
A-
86.2
4K 79 Unresolved
188 Collinsville
A-
86.2
4K 6 PFAS Unresolved
189 Double Springs
A-
86.1
6K 36 Health Unresolved
190 Camp Hill
A-
86.1
2K 24 Unresolved
191 Linden
A-
85.9
10K 17 Health PFAS Unresolved
192 Daviston
A-
85.9
693 13 Health Unresolved
193 Northport
A-
85.8
57K 8 Health Unresolved
194 Joppa
A-
85.8
5K 3 Unresolved
195 Lafayette
A-
85.8
4K 54 Health Unresolved
196 Jackson
A-
85.7
17K 29 Health PFAS Unresolved
197 Napier Field
A-
85.7
2K 4 Unresolved
198 Forkland
A-
85.7
1K 76 Health Unresolved
199 Margaret
A-
85.5
6K 3 Health Unresolved
200 Bridgeport
A-
85.5
6K 37 Unresolved
201 Belk
A-
85.5
894 3 Health Unresolved
202 Malvern
A-
85.1
2K 25 Unresolved
203 Axis
B+
84.9
4K 127 Unresolved
204 Southside
B+
84.8
12K 24 PFAS Unresolved
205 Eclectic
B+
84.8
5K 24 Health PFAS Unresolved
206 Quinton
B+
84.8
3K 3 Unresolved
207 Mt Hope
B+
84.7
16K 8 Health Unresolved
208 Vina
B+
84.7
1K 2 Unresolved
209 Repton
B+
84.6
510 87 Health Unresolved
210 Decatur
B+
84.5
107K 20 Health Unresolved
211 Odenville
B+
84.5
26K 55 PFAS Unresolved
212 Irondale
B+
84.4
10K 23 PFAS Unresolved
213 Webb
B+
84.4
2K 27 Health Unresolved
214 Hurtsboro
B+
84.4
1K 28 Unresolved
215 Marion
B+
84.3
7K 101 Health Unresolved
216 Guntersville
B+
84.2
13K 6 Health PFAS Unresolved
217 Bayou La Batre
B+
84
8K 69 Unresolved
218 Madison
B+
83.9
54K 66 Unresolved
219 Jacksons Gap
B+
83.7
7K 18 Unresolved
220 Oxford
B+
83.5
30K 6 Health PFAS Unresolved
221 Woodland
B+
83.5
2K 71 Health Unresolved
222 Wadley
B+
83.5
1K 16 Health Unresolved
223 Boaz
B+
83.2
20K 12 Health PFAS Unresolved
224 Sterrett
B+
83
3K 10 Health PFAS Unresolved
225 Pine Hill
B+
83
2K 4 Health PFAS Unresolved
226 Glen Allen
B+
83
2K 14 Health Unresolved
227 Demopolis
B+
82.7
11K 65 Health Unresolved
228 Hackleburg
B+
82.6
3K 8 Health Unresolved
229 Reform
B+
82.6
2K 62 Health Unresolved
230 Weaver
B+
82.3
7K 25 PFAS Unresolved
231 Georgiana
B+
82.3
3K 21 Health Unresolved
232 Newville
B+
82.1
900 8 Unresolved
233 Huxford
B+
81.9
2K 10 Health Unresolved
234 Hayneville
B+
81.8
8K 78 Health Unresolved
235 Goshen
B+
81.8
546 35 Unresolved
236 Red Bay
B+
81.6
6K 102 Health Unresolved
237 Brundidge
B+
81.6
4K 55 Health Unresolved
238 Fulton
B+
81.6
3K 21 Health Unresolved
239 Newton
B+
81.6
2K 7 Unresolved
240 Frisco City
B+
81.6
2K 164 Health Unresolved
241 Grand Bay
B+
81.5
11K 16 PFAS
242 Alpine
B+
81.5
4K 30 Health Unresolved
243 Jasper
B+
81.3
52K 22 Health Unresolved
244 Alexander City
B+
81.2
32K 61 Health Unresolved
245 Russellville
B+
81.2
25K 7 Health PFAS Unresolved
246 Pell City
B+
81
22K 30 Health PFAS Unresolved
247 Mckenzie
B+
81
1K 6 Unresolved
248 Butler
B+
80.8
5K 14 Health Unresolved
249 Goodwater
B+
80.8
3K 48 Health Unresolved
250 Rogersville
B+
80.6
16K 9 PFAS Unresolved
251 Autaugaville
B+
80.4
7K 144 Unresolved
252 Kellyton
B+
80.4
2K 3 Health Unresolved
253 Sheffield
B+
80.3
14K 4 Health PFAS Unresolved
254 Cullman
B+
80.2
108K 59 Health Unresolved
255 Smiths
B+
80.2
32K 16 PFAS Unresolved
256 Brantley
B+
80.2
8K 53 Health Unresolved
257 Lanett
B+
80.2
7K 55 Health Unresolved
258 Vincent
B+
80.2
3K 39 Health Unresolved
259 Rainsville
B
80
35K 19 Health Unresolved
260 Redstone Arsenal
B
79.9
44K 109 Health Unresolved
261 Centre
B
79.9
7K 19 Health PFAS Unresolved
262 Opelika
B
79.7
58K 36 Health PFAS Unresolved
263 Triana
B
79.3
7K 47 Health Unresolved
264 Luverne
B
79.1
4K 21 Health Unresolved
265 Troy
B
79
36K 122 Health Unresolved
266 Mulga
B
78.9
6K 6 Health Lead Unresolved
267 Albertville
B
78.8
33K 27 PFAS Unresolved
268 Slocomb
B
78.6
4K 49 Lead Unresolved
269 Stevenson
B
78.4
4K 44 Health PFAS Unresolved
270 Columbiana
B
78.3
13K 63 Health PFAS Unresolved
271 Deatsville
B
78.2
13K 15 Health PFAS Unresolved
272 Eutaw
B
78.2
9K 50 Health Unresolved
273 Grove Hill
B
78.2
5K 91 Health PFAS Unresolved
274 Fairhope
B
78
59K 145 Health PFAS Unresolved
275 Foley
B
78
51K 36 Health Unresolved
276 Cleveland
B
77.9
26K 186 Health Unresolved
277 Steele
B
77.9
3K 21 Health Unresolved
278 Athens
B
77.7
106K 72 Health PFAS Unresolved
279 Clio
B
77.7
3K 30 Health Unresolved
280 Brilliant
B
77.6
2K 6 Health Unresolved
281 Valley
B
77.5
28K 25 Health PFAS Unresolved
282 Daleville
B
77.5
14K 34 Health Unresolved
283 Lexington
B
77.3
3K 31 Health Unresolved
284 Enterprise
B
77
48K 146 Health Unresolved
285 Attalla
B
77
18K 95 Health PFAS Unresolved
286 Ariton
B
77
1K 13 Health Unresolved
287 Ozark
B
76.6
28K 88 Health Unresolved
288 Camden
B
76.5
10K 46 Health PFAS Unresolved
289 Excel
B
76.5
4K 88 Health Unresolved
290 Dadeville
B
76.2
17K 56 Health Unresolved
291 Mt. Vernon
B
76
2K 98 Health Unresolved
292 Dothan
B
75.9
102K 146 Health Unresolved
293 East Brewton
B
75.5
4K 216 Health Unresolved
294 Eight Mile
B
75.4
6K 35 Unresolved
295 Leighton
B
75
2K 41 Health Unresolved
296 Carrollton
B-
74.9
16K 65 Health Unresolved
297 Coffeeville
B-
74.6
3K 10 Health Unresolved
298 Flomaton
B-
74
2K 75 Health Unresolved
299 Kinston
B-
74
2K 58 Unresolved
300 Mexia
B-
73.7
3K 34 Unresolved
301 Evergreen
B-
73
13K 188 Health Unresolved
302 Midland City
B-
72.8
3K 25 Unresolved
303 Aliceville
B-
72.7
6K 52 Health Unresolved
304 Clayton
B-
72.7
2K 60 Health Unresolved
305 Bessemer
B-
72.5
125K 17 Health PFAS Unresolved
306 Atmore
B-
72
18K 61 Health Unresolved
307 Millbrook
B-
71.4
17K 58 PFAS Unresolved
308 Thomasville
B-
70.7
8K 46 Health PFAS Unresolved
309 Midway
C+
69.9
2K 34 Health Unresolved
310 Huntsville
C+
69.8
381K 31 PFAS
311 Fort Payne
C+
69.2
72K 136 Health PFAS Unresolved
312 Scottsboro
C+
69
36K 18 Health Unresolved
313 Phenix City
C+
68.5
59K 105 Health PFAS Unresolved
314 New Brockton
C+
68.5
4K 87 Health Unresolved
315 Prichard
C+
68.2
29K 50 Health Unresolved
316 Gadsden
C+
67.9
57K 108 Health PFAS Unresolved
317 Greenville
C+
67.7
23K 49 Health Unresolved
318 Elba
C+
67.5
5K 35 Health Unresolved
319 Satsuma
C+
66.4
7K 70 Unresolved
320 Chatom
C+
66.3
5K 106 Health Unresolved
321 Spanish Fort
C+
66
10K 77 Unresolved
322 Cottonwood
C+
65.8
4K 62 Health Unresolved
323 Uriah
C+
65.7
3K 133 Health Unresolved
324 Andalusia
C+
65.5
29K 75 Health Unresolved
325 Columbia
C+
65.2
1K 88 Health Unresolved
326 Peterman
C
64.2
5K 65 Health Unresolved
327 Talladega
C
64
25K 95 Health PFAS Unresolved
328 Theodore
C
63.1
40K 141 Health Unresolved
329 Orange Beach
C-
57.2
18K 122 Health
330 Saraland
C-
57
20K 59 Health PFAS Unresolved
331 Hartford
C-
55.9
4K 103 Health Unresolved
332 Guin
C-
55.5
5K 114 Health Unresolved
333 Green Pond
C-
55
9K 55 Unresolved
334 Ider
D+
53.4
16K 45 Health
335 Tuscumbia
D+
53.3
37K 99 Health PFAS Unresolved
336 Abbeville
D+
53
16K 360 Health Unresolved
337 Lisman
D+
52.1
3K 83 Health Unresolved
338 Louisville
D+
52
1K 77 Unresolved
339 Selma
D+
51.3
26K 97 Health Unresolved
340 Robertsdale
D+
51
19K 403 Health Unresolved
341 Heflin
D+
51
13K 75 Health Unresolved
342 Gilbertown
D+
50.8
8K 44 Health Unresolved
343 Bay Minette
D
49.8
29K 221 Health PFAS Unresolved
344 Dickinson
D
49
2K 139 Health Unresolved
345 Citronelle
D
48.9
39K 120 Health
346 Daphne
D
46.6
52K 249 Health PFAS Unresolved
347 Brewton
D
45.8
20K 109 Health Unresolved
348 Florence
D
45.3
107K 77 Health PFAS Unresolved
349 Greensboro
D
45.2
14K 410 Health Unresolved
350 Prattville
F
42.2
54K 174 Health PFAS Unresolved
351 Tuskegee
F
38.4
22K 171 Health PFAS Unresolved