Compare towns

Keene vs Portsmouth vs Milford vs Swanzey

Cost, people, housing, commute and schools, side by side, each benchmarked against New Hampshire.

What stands out worked out from the figures below

Keene has the shortest commute (17 min average).
Portsmouth has the most expensive homes ($689k median).
Milford has the most kids (23.7% under 18).
Swanzey has the oldest population (median age 50).

What matters to you?

Pick a few. We’ll pull those rows to the top and mark which town comes out ahead on each. There’s no overall score: what matters is up to you.

MeasureKeenePortsmouthMilfordSwanzey
People
Population
22,939Highest
22,545
16,337
7,398Lowest
Growth since 20102010 → 2020 census
-1.5%Lowest
NH: +4.6%
+5.7%
NH: +4.6%
+6.7%Highest
NH: +4.6%
+0.6%
NH: +4.6%
Median age
37.6±2.3
13% below NH
42.9±2
about the NH average
36.8±2.5Lowest
15% below NH
50±3.1Highest
15% above NH
Kids under 18
14.1%±1.6
NH: 18.2%
14%±1.9Lowest
NH: 18.2%
23.7%±3.6Highest
NH: 18.2%
18%±3.2
NH: 18.2%
Milford and Swanzey are within the Census margin of error here, so we can’t say which is really higher.
Age 65+
19.5%±1.8
NH: 20.1%
21.9%±2.4
NH: 20.1%
15.1%±1.9Lowest
NH: 20.1%
24.2%±4.2Highest
NH: 20.1%
Swanzey and Portsmouth are within the Census margin of error here, so we can’t say which is really higher.
Bachelor’s degree+adults 25+
44.1%
NH: 40.6%
64%Highest
NH: 40.6%
37.2%
NH: 40.6%
30.2%Lowest
NH: 40.6%
Enrolled in collegeshare of residents
13.8%±1.4Highest
NH: 6%
3.8%±1.2
NH: 6%
4.2%±1.3
NH: 6%
3.4%±2Lowest
NH: 6%
Cost of living
Household incomemedian
$78,445±$8kLowest
21% below NH
$106,219±$7kHighest
7% above NH
$97,768±$14k
about the NH average
$81,595±$11k
18% below NH
Portsmouth and Milford are within the Census margin of error here, so we can’t say which is really higher.
Home valuemedian, owner-occupied
$252,500±$12kLowest
37% below NH
$688,500±$39kHighest
71% above NH
$398,800±$20k
about the NH average
$259,200±$15k
36% below NH
Rentmedian gross, monthly
$1,342±$68Lowest
10% below NH
$1,869±$111Highest
25% above NH
$1,661±$126
11% above NH
$1,508±$303
about the NH average
Portsmouth and Milford are within the Census margin of error here, so we can’t say which is really higher.
Property taxmedian, yearly
$6,812
about the NH average
$8,018Highest
20% above NH
$7,522
13% above NH
$5,558Lowest
17% below NH
Renters paying 30%+of income on rent
44.5%±6.1Lowest
NH: 48.2%
50.4%±7.2
NH: 48.2%
49.6%±15.8
NH: 48.2%
67.7%±19.4Highest
NH: 48.2%
Swanzey and Portsmouth are within the Census margin of error here, so we can’t say which is really higher.
Below poverty line
10.1%Highest
NH: 7.2%
6.8%
NH: 7.2%
3.9%Lowest
NH: 7.2%
7.8%
NH: 7.2%
Housing
Homeownersof occupied homes
55.1%
NH: 72.8%
51.9%Lowest
NH: 72.8%
64.9%
NH: 72.8%
71.7%Highest
NH: 72.8%
Typical home builtmedian year
1961
18 yrs older than NH
1959Lowest
20 yrs older than NH
1982Highest
3 yrs newer than NH
1978
1 yr older than NH
Getting to work
Average commuteone way
17 minLowest
36% below NH
22 min
17% below NH
27 minHighest
about the NH average
24 min
9% below NH
Work from home
15.6%±2.7
NH: 16.8%
21.9%±4Highest
NH: 16.8%
15.6%±3.3
NH: 16.8%
9.3%±4Lowest
NH: 16.8%
Portsmouth and Keene are within the Census margin of error here, so we can’t say which is really higher.
Schools
Public school scoresrank in state, math + reading #81 of 120 in NH #11 of 120 in NH #55 of 120 in NH #102 of 120 in NH
School district Keene School District Portsmouth School District Milford School District Monadnock Regional School District
High school in town Keene High School Portsmouth High School Milford High School Monadnock Regional High School
Students per teacherat that high school
12.3
11.4
10.7Lowest
12.8Highest
On TownTapestry
Old photos in Our Story None yet None yet None yet None yet

NH average · Sources: U.S. Census Bureau, American Community Survey 5-year estimates 2020–2024; 2010 & 2020 decennial census; NCES Common Core of Data. “±” is the Census margin of error. Property tax is top-coded by the Census at $10,000+. School rank compares math and reading proficiency against the state average.