WaterVerge

Idaho Water Quality Rankings

139 cities ranked · Data from EPA SDWIS

68.2
State avg score
139
Cities ranked
53%
A or B grade
40%
D or F grade
134
Health violations
37
PFAS detected

Idaho water quality overview

Idaho's drinking water quality is fair overall, with a state average score of 68.2 out of 100 — 6.0 points below the national average of 74.2. The median city score is 73.3, reflecting how water quality is distributed across the state's 139 ranked cities. 40% of cities scored a D or F, pointing to significant water quality challenges across much of the state. 73 cities did earn an A or B grade, showing that strong systems do exist. PFAS "forever chemicals" were detected in 37 of 139 cities (27%). Of those, 3 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 3 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. 134 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 Idaho cities scored

32%
21%
28%
12%
A
44
32%
Excellent
B
29
21%
Good
C
10
7%
Fair
D
39
28%
Poor
F
17
12%
Failing

Score distribution by range

42 21 0
3
42
14
7
18
31
24
0–9
10–19
20–29
30–39
40–49
50–59
60–69
70–79
80–89
90–100

State vs national average

C+
Idaho
68.2/100
B-
National avg
74.2/100
▼ 6.0 pts below national average

Water quality across Idaho

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

All 139 cities in Idaho

# City Grade Score Score Population Violations Issues
1 Shoshone
A+
96.4
1K 8 Health
2 Firth
A+
96.1
511 10 Health
3 Kooskia
A
94.5
607 9 Health Unresolved
4 Star
A
94.2
14K 26 Unresolved
5 Wendell
A
93.9
3K 40 Health Unresolved
6 Council
A
93.8
900 32 Health Unresolved
7 Teton
A
93.5
735 52 Health Unresolved
8 Aberdeen
A
93.3
2K 20 Health Unresolved
9 Dalton Gardens
A
93.1
3K 19 Health
10 Malad
A
92.9
2K 21 Health Unresolved
11 Greenleaf
A
92.9
846 44 Health Unresolved
12 Paul
A
92.6
1K 14 Health Unresolved
13 Mackay
A
92.2
566 31 Health Unresolved
14 Downey
A
92.1
625 71 Health Unresolved
15 Deary
A
92
529 20 Health Unresolved
16 Uconn
A
91.9
680 10
17 Craigmont
A
91.5
501 54 Health Unresolved
18 Weippe
A
91.4
527 14 Health Unresolved
19 Wilder
A
91.3
4K 31 Health Unresolved
20 Hauser
A
91.2
1K 37 Health Unresolved
21 Dubois
A
90.8
511 17 Health Unresolved
22 Sugar City
A
90.1
3K 43 Health Unresolved
23 Bayview
A
90.1
1K 31 Health Unresolved
24 Hagerman
A
90.1
1K 47 Health Unresolved
25 Carey
A-
89.8
993 36 Health Unresolved
26 Mccammon
A-
89.8
800 25 Health Unresolved
27 Glenns Ferry
A-
89.3
1K 33 Health Unresolved
28 Wallace
A-
88.9
3K 14 Health Unresolved
29 Riggins
A-
88.9
554 62 Health Unresolved
30 Weiser
A-
88.7
6K 41
31 Pinehurst
A-
88.7
2K 81 Unresolved
32 Clark Fork
A-
88.5
730 22 Health Unresolved
33 Kingston
A-
88.4
1K 46 Health Unresolved
34 Genesee
A-
88.3
1K 59 Health
35 Hope
A-
88.3
537 50 Health Unresolved
36 Richfield
A-
88
501 38 Health Unresolved
37 Fish Haven
A-
87.8
750 49 Health Unresolved
38 Ririe
A-
87.5
656 37 Health Unresolved
39 Roberts
A-
87.2
680 61 Health Unresolved
40 Iona
A-
87.1
3K 72 Health Unresolved
41 Blanchard
A-
87.1
1K 65 Health Unresolved
42 Montpelier
A-
86.7
3K 21 Health Unresolved
43 Ashton
A-
86
1K 57 Health Unresolved
44 Arco
A-
85.4
1K 65 Health Unresolved
45 Paris
B+
84.4
535 15 Health Unresolved
46 Coolin
B+
84.3
632 50 Health Unresolved
47 Ovid
B+
84.1
658 76 Health Unresolved
48 Old Town
B+
82.9
545 46 Unresolved
49 Gooding
B+
82.8
4K 118 Health Unresolved
50 Cascade
B+
82.6
1K 20 Health Unresolved
51 Melba
B+
82.3
636 122 Health Unresolved
52 Cottonwood
B+
82.2
2K 102 Health Unresolved
53 Kimberly
B+
81.9
5K 91 Health Unresolved
54 Homedale
B+
81.2
3K 76 Health Unresolved
55 Inkom
B+
80.6
844 48 Health Unresolved
56 Payette
B
79.8
8K 186 Health Unresolved
57 Dayton
B
79.5
560 48 Health Unresolved
58 New Meadows
B
79.1
1K 125 Health Unresolved
59 Priest River
B
78.3
2K 143 Health Unresolved
60 Hansen
B
77.1
1K 11 Health Unresolved
61 Challis
B
76.9
1K 134 Health Unresolved
62 Potlatch
B
76.8
1K 48 Health Unresolved
63 Donnelly
B
76
816 114 Health Unresolved
64 Fernwood
B
75.9
645 162 Health Unresolved
65 Moyie Springs
B
75.8
1K 126 Health Unresolved
66 Hazelton
B
75.7
954 199 Health Unresolved
67 Dover
B-
74.6
865 11 Health Unresolved
68 Grace
B-
73.5
1K 151 Health Unresolved
69 Victor
B-
73.4
2K 110 Health Unresolved
70 St Maries
B-
73.3
5K 129 Health Unresolved
71 Idaho City
B-
71.9
641 160 Health Unresolved
72 Filer
B-
70.8
3K 84 Health Unresolved
73 Grangeville
B-
70.5
3K 100 Health Unresolved
74 Kellogg
C+
68.6
6K 204 Health Unresolved
75 Troy
C+
67.7
900 218 Health Unresolved
76 Soda Springs
C+
66.7
3K 144 Health Unresolved
77 Chubbuck
C+
66.2
16K 93 Health Unresolved
78 Franklin
C+
66.2
6K 120 Health Unresolved
79 Notus
C
62.9
1K 312 Health Unresolved
80 Hailey
C
61.1
9K 108 Health Lead Unresolved
81 Garden City
C-
59.8
13K 270 Health PFAS Unresolved
82 Horseshoe Bend
C-
57.6
801 184 Health Unresolved
83 Moscow
C-
55
35K 130 Health Unresolved
84 Twin Falls
D+
52.5
56K 313 Health Unresolved
85 Ucon
D+
52
1K 193 Health Unresolved
86 Middleton
D+
51.6
14K 310 Health Unresolved
87 Rupert
D+
51.2
6K 121 Health Unresolved
88 Ammon
D+
50.2
17K 329 Health Unresolved
89 Athol
D+
50
4K 341 Health Unresolved
90 Driggs
D+
50
4K 240 Health Unresolved
91 Spirit Lake
D+
50
4K 239 Health Unresolved
92 New Plymouth
D+
50
2K 456 Health Unresolved
93 Marsing
D+
50
1K 297 Health Unresolved
94 Lapwai
D+
50
1K 850 Health Unresolved
95 Orofino
D
49.8
5K 174 Health Unresolved
96 Juliaetta
D
49.7
624 56 Health Lead Unresolved
97 Jerome
D
49.2
14K 226 Health Unresolved
98 Rigby
D
49.2
7K 305 Health Unresolved
99 Ketchum
D
49.2
5K 325 Health Unresolved
100 Sun Valley
D
49
4K 192 Health Unresolved
101 Fort Hall
D
48.8
3K 504 Health Unresolved
102 Kuna
D
48.2
33K 617 Health Unresolved
103 Mountain Home
D
48.2
16K 944 Health Unresolved
104 Shelley
D
48.2
5K 280 Health Unresolved
105 Sagle
D
48
2K 311 Health Unresolved
106 Fruitland
D
47.8
7K 349 Health Unresolved
107 Mountain Home Afb
D
47.5
8K 232 Health Unresolved
108 Buhl
D
47.2
5K 209 Health Unresolved
109 St Anthony
D
47.2
4K 206 Health Unresolved
110 Heyburn
D
47.1
3K 169 Health Unresolved
111 Bonners Ferry
D
47
10K 1001 Health Unresolved
112 Bellevue
D
47
3K 120 Health Unresolved
113 Kamiah
D
47
2K 408 Health Unresolved
114 Idaho Falls
D
46.6
97K 1042 Health Unresolved
115 Oakley
D
46.5
1K 154 Health Unresolved
116 Post Falls
D
46
42K 486 Health Unresolved
117 Garden Valley
D
46
1K 518 Health Unresolved
118 Rathdrum
D
45.5
25K 704 Health Unresolved
119 Emmett
D
45.2
7K 386 Health Unresolved
120 Hayden
D
45
22K 369 Health Unresolved
121 Burley
F
45
11K 362 Health Unresolved
122 Coeur D'Alene
D
45
5K 446 Health Unresolved
123 Salmon
D
45
4K 314 Health Unresolved
124 Lewiston
F
44.2
36K 522 Health Unresolved
125 Coeur D Alene
F
44
57K 629 Health Unresolved
126 Sandpoint
F
44
18K 909 Health Unresolved
127 Mccall
F
44
5K 161 Health Unresolved
128 Plummer
F
44
2K 1001 Health Unresolved
129 Eagle
F
43.2
13K 583 Health Unresolved
130 American Falls
F
43.2
5K 232 Health Unresolved
131 Rexburg
F
43.1
42K 848 Health Unresolved
132 Meridian
F
42.9
149K 327 Health PFAS Unresolved
133 Pocatello
F
42.5
60K 1261 Health Unresolved
134 Blackfoot
F
42.5
13K 575 Health Unresolved
135 Nampa
F
41.8
105K 2009 Health Unresolved
136 Preston
F
41
13K 943 Health Unresolved
137 Caldwell
F
38.5
78K 1720 Health Unresolved
138 Worley
F
36
1K 138 Health Lead Unresolved
139 Boise
F
33.6
286K 2299 Health PFAS Unresolved