- Lead
- 4,496
- Total
- 45,389
- vs nation
- D+11.4
- Turnout
- 72.7%
Cheshire County, NH
President margin by year
Place winner margin
President results by year
2024 turnout 72.7% of 62,652 citizens 18+
- Lead
- 7,624
- Total
- 44,370
- vs nation
- D+12.7
- Turnout
- 72.4%
- Lead
- 5,188
- Total
- 41,895
- vs nation
- D+10.3
- Turnout
- 69.6%
- Lead
- 10,224
- Total
- 41,360
- vs nation
- D+20.9
- Turnout
- —
- Lead
- 11,766
- Total
- 42,601
- vs nation
- D+20.3
- Turnout
- —
- Lead
- 7,975
- Total
- 41,347
- vs nation
- D+21.7
- Turnout
- —
- Lead
- 3,589
- Total
- 33,395
- vs nation
- D+10.2
- Turnout
- —
- Lead
- 5,907
- Total
- 29,701
- vs nation
- D+11.4
- Turnout
- —
Key facts
- 2024 presidential margin
- D+9.9MIT Election Lab
- Population
- 77,2972024 5-year
- Median household income
- $83,3292024 5-year
- White (non-Hispanic)
- 91.4%2024 5-year
- Black
- 0.7%2024 5-year
- Hispanic / Latino
- 2.6%2024 5-year
- Peak Democratic margin
- D+39.2 in 1964MIT Election Lab
- Peak Republican margin
- R+55.6 in 1896MIT Election Lab
- Most similar
- York County, ME · twin score 95.8
Midterm durability
Total general-election participants divided by same-year citizen voting-age population. These are total ballots or participating voters—not presidential candidate votes.
- 2024 total turnout
- 72.7%45,541 participants ÷ 62,652 CVAP
- 2020→2022 drop-off
- +16.6 ptsVolatile
- Drop-off versus state
- -2.5 ptsPositive means a larger decline than the statewide pattern
- Mechanical 2026 scenario
- 56.1%–56.3%Recent-cycle and two-cycle persistence scenarios; not a forecast
| Election | Participants | CVAP | Turnout | Quality |
|---|---|---|---|---|
| 2016 · Presidential | 42,602 | 61,233 | 69.6% | B/A |
| 2018 · Midterm | 32,860 | 61,654 | 53.3% | B/A |
| 2020 · Presidential | 44,595 | 61,618 | 72.4% | B/A |
| 2022 · Midterm | 34,692 | 62,177 | 55.8% | C/A |
| 2024 · Presidential | 45,541 | 62,652 | 72.7% | B/A |
Sources and methods
- 2016: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:aggregated; allocation share 0.0%; series 292/111.
- 2018: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:aggregated; allocation share 0.0%; series 296/138.
- 2020: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:aggregated; allocation share 0.0%; series 300/2.
- 2022: numerator source 159, denominator source 157; top ticket votes; canonical-complete-contest-floor-v1; allocation share 0.0%; series 154/183.
- 2024: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:aggregated; allocation share 0.0%; series 310/228.
Precinct data
Results by precinct
50 precincts · 45,389 votes
Precinct boundaries and identifiers are cycle-specific. This table does not join rows across years without a validated crosswalk.
| Precinct -005-Keene005-Keene | 8,541 | 4,183 | 231 | 12,955 | 65.9% | 32.3% | D+33.6 |
|---|---|---|---|---|---|---|---|
| Precinct -005-Swanzey005-Swanzey | 2,064 | 2,117 | 47 | 4,228 | 48.8% | 50.1% | R+1.3 |
| Precinct -005-Rindge005-Rindge | 1,380 | 2,348 | 44 | 3,772 | 36.6% | 62.2% | R+25.7 |
| Precinct -005-Jaffrey005-Jaffrey | 1,528 | 1,617 | 75 | 3,220 | 47.5% | 50.2% | R+2.8 |
| Precinct -005-Chesterfield005-Chesterfield | 1,368 | 1,039 | 51 | 2,458 | 55.7% | 42.3% | D+13.4 |
| Precinct -005-Walpole005-Walpole | 1,422 | 909 | 38 | 2,369 | 60.0% | 38.4% | D+21.7 |
| Precinct -005-Winchester005-Winchester | 907 | 1,141 | 29 | 2,077 | 43.7% | 54.9% | R+11.3 |
| Precinct -005-Hinsdale005-Hinsdale | 969 | 930 | 15 | 1,914 | 50.6% | 48.6% | D+2.0 |
| Precinct -005-Fitzwilliam005-Fitzwilliam | 638 | 802 | 25 | 1,465 | 43.5% | 54.7% | R+11.2 |
| Precinct -005-Marlborough005-Marlborough | 783 | 484 | 20 | 1,287 | 60.8% | 37.6% | D+23.2 |
| Precinct -005-Alstead005-Alstead | 669 | 527 | 19 | 1,215 | 55.1% | 43.4% | D+11.7 |
| Precinct -005-Troy005-Troy | 458 | 659 | 21 | 1,138 | 40.2% | 57.9% | R+17.7 |
| Precinct -005-Dublin005-Dublin | 680 | 425 | 23 | 1,128 | 60.3% | 37.7% | D+22.6 |
| Precinct -005-Westmoreland005-Westmoreland | 607 | 495 | 8 | 1,110 | 54.7% | 44.6% | D+10.1 |
| Precinct -005-Stoddard005-Stoddard | 433 | 497 | 17 | 947 | 45.7% | 52.5% | R+6.8 |
| Precinct -005-Harrisville005-Harrisville | 527 | 229 | 16 | 772 | 68.3% | 29.7% | D+38.6 |
| Precinct -005-Richmond005-Richmond | 288 | 457 | 9 | 754 | 38.2% | 60.6% | R+22.4 |
| Precinct -005-Surry005-Surry | 294 | 276 | 5 | 575 | 51.1% | 48.0% | D+3.1 |
| Precinct -005-Gilsum005-Gilsum | 243 | 267 | 7 | 517 | 47.0% | 51.6% | R+4.6 |
| Precinct -005-Marlow005-Marlow | 238 | 216 | 4 | 458 | 52.0% | 47.2% | D+4.8 |
| Precinct -005-Nelson005-Nelson | 257 | 180 | 10 | 447 | 57.5% | 40.3% | D+17.2 |
| Precinct -005-Sullivan005-Sullivan | 195 | 227 | 11 | 433 | 45.0% | 52.4% | R+7.4 |
| Precinct -005-Roxbury005-Roxbury | 90 | 58 | 2 | 150 | 60.0% | 38.7% | D+21.3 |
| KEENE WARD 133_33005KEEN01 | 0 | 0 | 0 | 0 | — | — | No votes |
| KEENE WARD 233_33005KEEN02 | 0 | 0 | 0 | 0 | — | — | No votes |
| KEENE WARD 333_33005KEEN03 | 0 | 0 | 0 | 0 | — | — | No votes |
| KEENE WARD 433_33005KEEN04 | 0 | 0 | 0 | 0 | — | — | No votes |
| KEENE WARD 533_33005KEEN05 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF ALSTEAD Voting District33_33005ALST01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF CHESTERFIELD Voting District33_33005CHES01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF DUBLIN Voting District33_33005DUBL01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF FITZWILLIAM Voting District33_33005FITZ01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF GILSUM Voting District33_33005GILS01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF HARRISVILLE Voting District33_33005HARR01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF HINSDALE Voting District33_33005HINS01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF JAFFREY Voting District33_33005JAFF01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF MARLBOROUGH Voting District33_33005MRLB01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF MARLOW Voting District33_33005MRLW01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF NELSON Voting District33_33005NELS01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF RICHMOND Voting District33_33005RICH01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF RINDGE Voting District33_33005RIND01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF ROXBURY Voting District33_33005ROXB01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF STODDARD Voting District33_33005STOD01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF SULLIVAN Voting District33_33005SULL01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF SURRY Voting District33_33005SURR01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF SWANZEY Voting District33_33005SWAN01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF TROY Voting District33_33005TROY01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF WALPOLE Voting District33_33005WALP01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF WESTMORELAND Voting District33_33005WEST01 | 0 | 0 | 0 | 0 | — | — | No votes |
| TOWN OF WINCHESTER Voting District33_33005WINC01 | 0 | 0 | 0 | 0 | — | — | No votes |
Presidential margin, 1892–2024
Democratic minus Republican, by election
| Year | Margin (D minus R) |
|---|---|
| 1892 | −14.4% |
| 1896 | −55.6% |
| 1900 | −34.8% |
| 1904 | −36.1% |
| 1908 | −34.9% |
| 1912 | −10.3% |
| 1916 | −8.9% |
| 1920 | −32.4% |
| 1924 | −42.2% |
| 1928 | −26.5% |
| 1932 | −16.4% |
| 1936 | −11.9% |
| 1940 | −9.1% |
| 1944 | −8.0% |
| 1948 | −17.5% |
| 1952 | −27.9% |
| 1956 | −38.6% |
| 1960 | −14.4% |
| 1964 | +39.2% |
| 1968 | −7.7% |
| 1972 | −18.6% |
| 1976 | −9.3% |
| 1980 | −21.2% |
| 1984 | −27.5% |
| 1988 | −9.7% |
| 1992 | +12.3% |
| 1996 | +19.9% |
| 2000 | +10.7% |
| 2004 | +19.3% |
| 2008 | +27.6% |
| 2012 | +24.7% |
| 2016 | +12.4% |
| 2020 | +17.2% |
| 2024 | +9.9% |
U.S. House
Each row shows U.S. House votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
U.S. Senate
Each row shows U.S. Senate votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
U.S. Senate special elections
Each row shows U.S. Senate special votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
Governor
Each row shows Governor votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
Registered voters
By party of registration, over time
Registration leans Democratic; the presidential vote runs 6.5 points more Republican.
54,092 registered voters · 2026
Who moves in and out
Net migration over time, and who arrivals are — where they came from and what those places vote
+304 net domestic migration · 2025
Net +1,379 over 2011–2025 · gain loss
Arrivals reported $77,831 in average income, against $95,621 for residents who stayed — 19% lower. (IRS SOI, 2022–23)
The places arrivals came from lean D+17.4 on average — 7.5 points more Democratic-leaning than Cheshire County, NH itself (D+9.9).
Where arrivals came from lean of each source
- Hillsborough County, NH330D+2.9
- Worcester County, MA149D+10.0
- Windham County, VT140D+42.3
- Middlesex County, MA106D+39.2
- Sullivan County, NH67R+0.7
- Franklin County, MA48D+37.6
Where departures went households, 2022–23
- Hillsborough County, NH255
- Windham County, VT110
- Middlesex County, MA79
- Worcester County, MA73
- Sullivan County, NH70
- Merrimack County, NH55
Migration is one input to a place’s political change, not its cause — a shift can also come from residents changing their minds, generational turnover, or turnout. These figures describe the places people moved between; they do not measure how any mover voted.
| Year | Net domestic migration |
|---|---|
| 2011 | −197 |
| 2012 | −68 |
| 2013 | −231 |
| 2014 | −309 |
| 2015 | −207 |
| 2016 | −345 |
| 2017 | +10 |
| 2018 | +31 |
| 2019 | +217 |
| 2021 | +368 |
| 2022 | +725 |
| 2023 | +430 |
| 2024 | +651 |
| 2025 | +304 |
Cheshire County's margins have tilted Democratic in recent presidential cycles, driven in part by Keene's student and professional population. Its rural hill towns remain more competitive, keeping the county's overall swing potential above zero.
Across the recorded series it reached a Democratic high of 39.2 points in 1964 and a Republican high of 55.6 points in 1896. Between 2020 and 2024 the county moved 7.3 points toward the Republican candidate; the 2024 margin was 9.9 points.
A population of 77,297, a 91% non-Hispanic-white share, and a median household income of $83,329 describe the county. The county's voting pattern over the last decade is most similar to that of York County and Kennebec County.
The counties whose fingerprint — 2000–2024 trajectory, demographics, ancestry, religion — sits closest to this one, and why.
Twin score (0–100) = weighted cosine between tier-standardized fingerprints: presidential margins 2000–2024 with 12-yr trend and elasticity, ACS income, age, education, population and race, top reported ancestries, and religious adherence — chips name the closest-shared dimensions and the widest gap. Re-weight the groups in the twins explorer.
Browse places by community — income, education, race & ethnicity, language — all community cuts →
Compare two places, side by side
Twelve curated comparisons line up election history, demographics, and the divergence story for two places at a glance. Browse all comparisons →
Cheshire County, New Hampshire. Akashic. https://akashic.app/county/33005/. Accessed May 20, 2026. License: CC BY 4.0.