Idaho Water Quality Rankings
139 cities ranked · Data from EPA SDWIS
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
Score distribution by range
State vs 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.
Top & bottom cities in Idaho
Best 10 cities
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 |