New Hampshire Water Quality Rankings
119 cities ranked · Data from EPA SDWIS
New Hampshire water quality overview
New Hampshire's drinking water quality is fair overall, with a state average score of 62.3 out of 100 — 11.9 points below the national average of 74.2. The median city score is 66, reflecting how water quality is distributed across the state's 119 ranked cities. 37% of cities scored a D or F, pointing to significant water quality challenges across much of the state. 49 cities did earn an A or B grade, showing that strong systems do exist. PFAS "forever chemicals" were detected in 21 of 119 cities (18%). Of those, 15 cities exceed the 2024 EPA maximum contaminant levels — a health concern requiring action. 58 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. 118 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 New Hampshire cities scored
Score distribution by range
State vs national average
Water quality across New Hampshire
Each dot is a city, colored by grade. Size reflects population served. Click any city to view its full report.
Top & bottom cities in New Hampshire
Best 10 cities
All 119 cities in New Hampshire
| # | City | Grade | Score | Score | Population | Violations | Issues |
|---|---|---|---|---|---|---|---|
| 1 | Litchfield | A | 93.5 | 7K | 1 | PFAS | |
| 2 | Claremont | A | 90.3 | 9K | 44 | Health Unresolved | |
| 3 | Antrim | A- | 89.9 | 920 | 12 | Health Unresolved | |
| 4 | Franklin | A- | 89.8 | 7K | 75 | Health Unresolved | |
| 5 | Somersworth | A- | 89.7 | 12K | 38 | Health Unresolved | |
| 6 | Bristol | A- | 89.7 | 4K | 5 | Health | |
| 7 | Keene | A- | 89.2 | 30K | 22 | Health Unresolved | |
| 8 | Hanover | A- | 89.2 | 9K | 50 | Health Unresolved | |
| 9 | Lancaster | A- | 89 | 2K | 44 | Health Unresolved | |
| 10 | Bedford | A- | 88.8 | 5K | 9 | Health PFAS Unresolved | |
| 11 | Nashua | A- | 88.7 | 89K | 4 | Health Unresolved | |
| 12 | Boscawen | A- | 88.6 | 4K | 15 | Health Unresolved | |
| 13 | Barnstead | A- | 87.5 | 2K | 74 | Health Unresolved | |
| 14 | Chester | A- | 87.3 | 578 | 60 | Health Unresolved | |
| 15 | Rye | A- | 86.7 | 4K | 6 | Health PFAS | |
| 16 | Marlborough | A- | 86.7 | 850 | 75 | Health Unresolved | |
| 17 | Unity | A- | 86.4 | 625 | 89 | Health Unresolved | |
| 18 | Littleton | A- | 85.8 | 7K | 77 | Health Unresolved | |
| 19 | Peterborough | A- | 85.3 | 5K | 46 | Health Unresolved | |
| 20 | Hooksett | A- | 85.2 | 8K | 78 | Health PFAS Unresolved | |
| 21 | Amherst | A- | 85.1 | 512 | 114 | Health Unresolved | |
| 22 | Merrimack | B+ | 84.2 | 26K | 42 | Health Unresolved | |
| 23 | Dover | B+ | 84 | 29K | 58 | Health Unresolved | |
| 24 | Berlin | B+ | 83.3 | 10K | 3 | Health Unresolved | |
| 25 | Whitefield | B+ | 81.9 | 2K | 16 | Health Unresolved | |
| 26 | Grantham | B+ | 81 | 3K | 50 | Health Unresolved | |
| 27 | Lincoln | B+ | 81 | 3K | 17 | Health Unresolved | |
| 28 | Jaffrey | B+ | 80.9 | 4K | 45 | Health PFAS Unresolved | |
| 29 | Portsmouth | B+ | 80.7 | 43K | 14 | Health PFAS Unresolved | |
| 30 | Newton | B+ | 80.1 | 533 | 111 | Health Unresolved | |
| 31 | Newmarket | B | 79.3 | 5K | 239 | Health Unresolved | |
| 32 | Durham | B | 78.8 | 16K | 55 | Health Unresolved | |
| 33 | Farmington | B | 77.5 | 3K | 17 | Health Lead Unresolved | |
| 34 | Epping | B | 76.7 | 2K | 106 | Health Unresolved | |
| 35 | Pembroke | B | 75.8 | 5K | 84 | Health PFAS Unresolved | |
| 36 | Hudson | B | 75.4 | 17K | 68 | Health PFAS Unresolved | |
| 37 | Bennington | B | 75.4 | 1K | 73 | Health Unresolved | |
| 38 | Wilton | B | 75.2 | 2K | 28 | Health Lead Unresolved | |
| 39 | Tilton | B- | 74.4 | 1K | 254 | Health Unresolved | |
| 40 | Henniker | B- | 73.8 | 3K | 70 | Health Lead Unresolved | |
| 41 | Woodstock | B- | 73.8 | 3K | 24 | Health Lead Unresolved | |
| 42 | Lebanon | B- | 72.9 | 10K | 128 | Health Unresolved | |
| 43 | Newfields | B- | 72.7 | 550 | 22 | Health Lead Unresolved | |
| 44 | Troy | B- | 71.5 | 1K | 52 | Health Lead Unresolved | |
| 45 | Hinsdale | B- | 71.2 | 3K | 231 | Health Unresolved | |
| 46 | Newport | B- | 71.1 | 5K | 168 | Health Unresolved | |
| 47 | Hampstead | B- | 71 | 7K | 96 | Health PFAS Unresolved | |
| 48 | Gorham | B- | 70.9 | 3K | 64 | Health Lead Unresolved | |
| 49 | Waterville Valley | B- | 70.6 | 3K | 13 | Health Lead Unresolved | |
| 50 | Laconia | C+ | 69.7 | 21K | 94 | Health Unresolved | |
| 51 | Northumberland | C+ | 69.3 | 3K | 43 | Health Lead Unresolved | |
| 52 | Seabrook | C+ | 68.2 | 14K | 221 | Health PFAS Unresolved | |
| 53 | Sunapee | C+ | 67.3 | 2K | 82 | Health Lead Unresolved | |
| 54 | Plainfield | C+ | 66.9 | 1K | 182 | Health Lead Unresolved | |
| 55 | Wolfeboro | C+ | 66.8 | 6K | 129 | Health Unresolved | |
| 56 | New Castle | C+ | 66.7 | 910 | 29 | Health Lead Unresolved | |
| 57 | Pittsfield | C+ | 66.6 | 2K | 124 | Health Lead Unresolved | |
| 58 | Colebrook | C+ | 66.6 | 1K | 69 | Health Lead Unresolved | |
| 59 | Brentwood | C+ | 66.5 | 1K | 7 | Health Lead Unresolved | |
| 60 | Sandown | C+ | 66 | 1K | 187 | Health Unresolved | |
| 61 | New London | C+ | 65.7 | 3K | 110 | Health Lead Unresolved | |
| 62 | Rollinsford | C+ | 65.6 | 2K | 47 | Health Lead Unresolved | |
| 63 | Franconia | C+ | 65.4 | 1K | 120 | Health Lead Unresolved | |
| 64 | Ashland | C+ | 65.3 | 2K | 105 | Health Lead Unresolved | |
| 65 | Lisbon | C | 64.9 | 1K | 65 | Health Lead Unresolved | |
| 66 | Warner | C | 64.7 | 878 | 28 | Health Lead Unresolved | |
| 67 | Plymouth | C | 64.2 | 7K | 255 | Health Unresolved | |
| 68 | Northwood | C | 64.1 | 996 | 118 | Health Lead Unresolved | |
| 69 | Winchester | C- | 59.5 | 3K | 62 | Health Unresolved | |
| 70 | Northfield | C- | 59.5 | 3K | 188 | Health Lead Unresolved | |
| 71 | Meredith | C- | 59.4 | 5K | 292 | Health Unresolved | |
| 72 | Allenstown | C- | 59.4 | 1K | 58 | Health Lead Unresolved | |
| 73 | Charlestown | C- | 58.1 | 3K | 217 | Health Lead Unresolved | |
| 74 | Stow | C- | 56.8 | 1K | 284 | Health Unresolved | |
| 75 | Jackson | C- | 55.6 | 755 | 92 | Health Lead Unresolved | |
| 76 | Swanzey | D+ | 53.3 | 3K | 291 | Health Lead Unresolved | |
| 77 | Bethlehem | D+ | 51.8 | 2K | 65 | Health Lead Unresolved | |
| 78 | Concord | D+ | 51.3 | 44K | 63 | Health Unresolved | |
| 79 | Kingston | D+ | 51.2 | 627 | 16 | Health Lead Unresolved | |
| 80 | Manchester | D+ | 50.9 | 124K | 20 | Health PFAS Unresolved | |
| 81 | Wakefield | D+ | 50.1 | 2K | 78 | Health Lead Unresolved | |
| 82 | Greenville | D | 48.9 | 2K | 153 | Health Lead Unresolved | |
| 83 | Walpole | D | 48.7 | 2K | 210 | Health Unresolved | |
| 84 | Madison | D | 47.6 | 1K | 61 | Health Lead Unresolved | |
| 85 | Salem | D | 47.4 | 22K | 292 | Health PFAS Unresolved | |
| 86 | Epsom | D | 47.3 | 2K | 99 | Health Lead Unresolved | |
| 87 | Haverhill | D | 46.7 | 4K | 246 | Health Lead Unresolved | |
| 88 | Alton | D | 46.1 | 2K | 214 | Health Lead Unresolved | |
| 89 | Goffstown | D | 45.9 | 5K | 61 | Health Lead Unresolved | |
| 90 | Hillsborough | D | 45.9 | 3K | 224 | Health Lead Unresolved | |
| 91 | Bartlett | D | 45.1 | 8K | 555 | Health Unresolved | |
| 92 | Milford | F | 43 | 10K | 195 | Health Unresolved | |
| 93 | Conway | F | 42.8 | 12K | 597 | Health Unresolved | |
| 94 | Rochester | F | 42.5 | 26K | 317 | Health Unresolved | |
| 95 | Derry | F | 42.5 | 21K | 390 | Health PFAS Unresolved | |
| 96 | Raymond | F | 40.2 | 5K | 154 | Health Unresolved | |
| 97 | Canaan | F | 40.1 | 1K | 121 | Health Lead Unresolved | |
| 98 | Andover | F | 39.9 | 650 | 89 | Health Lead Unresolved | |
| 99 | Londonderry | F | 39 | 9K | 605 | Health PFAS Unresolved | |
| 100 | Weare | F | 38.9 | 599 | 259 | Health Lead Unresolved | |
| 101 | Windham | F | 38.4 | 3K | 169 | Health Lead Unresolved | |
| 102 | Exeter | F | 37.5 | 14K | 203 | Health PFAS Unresolved | |
| 103 | Danville | F | 36.5 | 1K | 249 | Health Lead Unresolved | |
| 104 | Stratham | F | 36 | 2K | 387 | Health Lead Unresolved | |
| 105 | Freedom | F | 35.1 | 975 | 160 | Health Lead Unresolved | |
| 106 | Pelham | F | 35 | 2K | 220 | Health Lead Unresolved | |
| 107 | Enfield | F | 33.2 | 2K | 211 | Health Lead Unresolved | |
| 108 | Tamworth | F | 32 | 966 | 417 | Health Lead Unresolved | |
| 109 | Gilford | F | 31 | 4K | 1030 | Health Lead Unresolved | |
| 110 | Barrington | F | 31 | 2K | 619 | Health Lead Unresolved | |
| 111 | Belmont | F | 30 | 4K | 444 | Health Lead Unresolved | |
| 112 | Campton | F | 30 | 3K | 532 | Health Lead Unresolved | |
| 113 | Plaistow | F | 30 | 2K | 382 | Health Lead Unresolved | |
| 114 | Hopkinton | F | 29 | 2K | 119 | Health Lead Unresolved | |
| 115 | Ossipee | F | 29 | 2K | 791 | Health Lead Unresolved | |
| 116 | Loudon | F | 28 | 948 | 374 | Health Lead Unresolved | |
| 117 | New Hampton | F | 28 | 666 | 133 | Health Lead Unresolved | |
| 118 | Thornton | F | 27.1 | 1K | 355 | Health Lead Unresolved | |
| 119 | Moultonborough | F | 27 | 3K | 627 | Health Lead Unresolved |