NJ-07 by the numbers: The complete electoral history of New Jersey’s ultimate congressional battleground

By Matt Rooney

There are competitive congressional districts, Save Jerseyans, and then there is New Jersey’s 7th.

The current incarnation of NJ-07 has existed for only two completed congressional elections. Republicans won both. Donald Trump carried the district in 2024 after Joe Biden would’ve carried the same geography four years earlier. Jack Ciattarelli absolutely crushed Phil Murphy here in between, but then Mikie Sherrill scored a narrow victory in 2025.

Heading into November 2026, national Democrats are pouring millions of dollars into an effort to take the seat away from Republican Rep. Tom Kean Jr.

Why?

The answer becomes clearer when you go beyond the topline numbers and examine NJ-07 town by town.

The map that created today’s NJ-07

New Jersey’s current congressional map was adopted by the Congressional Redistricting Commission on December 22, 2021, filed with the Secretary of State in January 2022 and first used in that year’s midterm election.

The Democratic-backed map strengthened several Democratic incumbents while dramatically changing then-Rep. Tom Malinowski’s district.

Malinowski drew the short straw.

The new 7th contains all of Hunterdon and Warren counties and portions of Morris, Somerset, Sussex and Union.

Official congressional materials list 95 municipalities touching NJ-07. Four — Bridgewater, Hillsborough, Mendham Township and Linden — are divided between congressional districts. The others are entirely within NJ-07.

Geographically, it’s a political Frankenstein’s monster stretching from the Delaware River to the Arthur Kill: deep-red rural and exurban communities in the west attached to affluent swing suburbs and heavily Democratic Union County communities in the east.

That’s what makes the numbers so interesting.

Five elections tell the story

Using the current district’s geography, the recent political progression looks roughly like this:

Election Republican Democrat Result
2020 President* Trump 47% Biden 51% D +~4
2021 Governor* Ciattarelli 56% Murphy 43% R +12
2022 House Kean 51.4% Malinowski 48.6% R +2.8
2024 President Trump 49.6% Harris 48.5% R +1
2024 House Kean 51.8% Altman 46.4% R +5.4

*2020 and 2021 predated the current congressional map and therefore must be reconstructed onto the current geography.

Read that sequence again:

Biden +4 → Ciattarelli +12 → Kean +2.8 → Trump +1 → Kean +5.4.

That’s not the voting history of a conventional red or blue district.

It’s the history of a ticket-splitting suburban battlefield.

2021 was the warning shot

The first indication that Biden’s 2020 performance shouldn’t be mistaken for the district’s partisan floor came only one year later.

Republican Jack Ciattarelli walloped Phil Murphy across the territory that would become NJ-07.

The municipal results are even more striking.

Ciattarelli carried virtually every municipality in the western half of today’s district, including communities Biden had won in 2020.

In Hunterdon County, Murphy managed to carry only Flemington, Frenchtown, Lambertville and Stockton. Ciattarelli even flipped Biden towns like Califon, Clinton and High Bridge.

In Somerset, Murphy carried Somerville but lost Bernards, Bernardsville, Bridgewater, Green Brook, Raritan, Warren and Watchung.

And in Union County, Ciattarelli even managed to take Berkeley Heights while holding Republican strongholds Clark, Mountainside and Winfield.

The current NJ-07 wasn’t simply capable of voting Republican.

It had already demonstrated that it could vote very Republican under the right circumstances.

2022: Kean flips the district

That became relevant immediately.

Malinowski had narrowly defeated Tom Kean Jr. under the old congressional lines in 2020.

The rematch took place on dramatically different terrain.

2022 House Votes Share
Tom Kean Jr. (R) 159,392 51.4%
Tom Malinowski (D) 150,701 48.6%
Kean margin +8,691 R +2.8

The county breakdown established the electoral formula that still defines the district:

County/portion Malinowski Kean Margin
Hunterdon 27,657 32,678 R +5,021
Morris 21,164 25,684 R +4,520
Somerset 32,452 32,088 D +364
Sussex 9,050 14,752 R +5,702
Union 45,428 30,193 D +15,235
Warren 14,950 23,997 R +9,047

Kean lost Union County badly.

It didn’t matter.

His advantage in Warren alone erased almost 60% of Malinowski’s Union County margin. Add Hunterdon, Sussex and Morris, and Malinowski’s eastern firewall wasn’t enough.

Somerset was essentially a draw.

Kean won the district by 8,691 votes.

2024: Kean expands the margin

Democrats returned two years later with former New Jersey Working Families Alliance leader Sue Altman.

Millions of dollars poured into the race.

Kean didn’t merely survive.

He increased his margin.

2024 House Votes Share
Tom Kean Jr. (R) 223,331 51.8%
Sue Altman (D) 200,025 46.4%
Other 8,042 1.9%
Kean margin +23,306 R +5.4

Kean nearly tripled his raw victory margin, from 8,691 votes to 23,306.

And the county results show exactly how:

County/portion Kean Altman Kean–Altman margin
Warren 35,290 22,261 R +13,029
Sussex 20,491 12,828 R +7,663
Hunterdon 42,257 34,744 R +7,513
Morris 35,812 28,768 R +7,044
Somerset 44,577 42,416 R +2,161
Union 44,904 59,008 D +14,104

The big change?

Somerset County.

Malinowski had carried the NJ-07 portion by 364 votes in 2022.

Kean carried it by 2,161 in 2024.

Union remained strongly Democratic, but Altman’s 14,104-vote advantage there couldn’t begin to compensate for the Republican margins accumulated everywhere else.

Trump flips NJ-07, too

The other big 2024 development occurred at the top of the ballot.

Four years after Biden would’ve carried the current district by roughly four points, Trump carried it by approximately one.

Presidential election Democrat Republican Margin
2020 Biden ~51% Trump ~47% D +~4
2024 Harris 48.5% Trump 49.6% R +~1

That’s approximately a five-point Republican presidential shift.

And Kean still ran ahead of the Republican presidential ticket.

The district had gone from:

2020: Democratic for president

to

2022: Republican for Congress

to

2024: Republican for president AND Congress.

The definitive town-by-town NJ-07 history

Here is where it gets interesting.

The table below tracks which major-party candidate carried each of the 95 municipalities touching the current NJ-07 in the five elections that best explain the district’s modern political trajectory.

Key:
D = Democratic candidate
R = Republican candidate
† = municipality is split between congressional districts; pre-2022 statewide columns reflect the municipality-wide result and therefore are not used as a precise NJ-07-only reconstruction. The House columns are the actual NJ-07 portion.

Hunterdon County

Municipality 2020 President 2021 Governor 2022 House 2024 President 2024 House
Alexandria R R R R R
Bethlehem R R R R R
Bloomsbury R R R R R
Califon D R D D D
Clinton D R D D D
Clinton Township R R R R R
Delaware R R R D R
East Amwell R R R R R
Flemington D D D D D
Franklin R R R R R
Frenchtown D D D D D
Glen Gardner R R R R R
Hampton R R R R R
High Bridge D R D D D
Holland R R R R R
Kingwood R R R R R
Lambertville D D D D D
Lebanon Borough R R R R R
Lebanon Township R R R R R
Milford R R R R R
Raritan Township R R R R R
Readington R R R R R
Stockton D D D D D
Tewksbury R R R R R
Union Township R R R R R
West Amwell R R R R R

Hunterdon’s pattern is remarkably stable.

The Democratic islands are essentially Lambertville/Frenchtown/Stockton, Flemington and a handful of smaller communities such as Clinton, Califon and High Bridge.

The rest remains Republican territory.

One fascinating 2024 example is Delaware Township: Harris edged Trump there, 1,571 to 1,553, but Kean simultaneously defeated Altman there, 1,573 to 1,511.

That’s NJ-07 ticket splitting in miniature.

Official state returns support the presidential and House figures.

Morris County portion

Municipality 2020 President 2021 Governor 2022 House 2024 President 2024 House
Chester Borough R R R R R
Chester Township R R R R R
Long Hill D R R R R
Mendham Borough D R R D R
Mendham Township† D R R D R
Mine Hill D R R R R
Mount Arlington R R R R R
Mount Olive D R R R R
Netcong R R R R R
Roxbury R R R R R
Washington Township R R R R R
Wharton D R D D D

Morris may be the district’s most interesting ticket-splitting territory.

Biden carried Long Hill, both Mendhams, Mine Hill, Mount Olive and Wharton in 2020.

Ciattarelli swept every one of the NJ-07 Morris municipalities in 2021 — even Wharton, where he beat Murphy 884 to 883.

By 2024, Harris carried Mendham Borough, Mendham Township and Wharton, while Kean carried both Mendhams and lost only Wharton.

Official results:

Somerset County portion

Municipality 2020 President 2021 Governor 2022 House 2024 President 2024 House
Bedminster D R R R R
Bernards D R D D R
Bernardsville D R R D R
Branchburg R R R R R
Bridgewater† D R D D D
Far Hills R R R R R
Green Brook D R R D R
Hillsborough† D R R D R
Peapack-Gladstone D R R D R
Raritan D R D R R
Somerville D D D D D
Warren D R R R R
Watchung D R R D R

If you’re looking for the heart of the NJ-07 battlefield, this is it.

Somerset contains a large concentration of voters willing to vote Democratic for president and Republican farther down the ballot.

Bernards is a textbook example.

Biden carried it in 2020.

Ciattarelli carried it in 2021.

Malinowski carried it in 2022.

Harris carried it in 2024.

And Kean carried it on the exact same 2024 ballot — by only 13 votes, 7,598 to 7,585.

Watchung was another 2024 split-ticket town: Harris edged Trump municipality-wide while Kean defeated Altman in the congressional race.

Peapack-Gladstone followed the same pattern.

And then there’s Bridgewater, which remains Democratic-leaning federally but gave Ciattarelli the advantage in 2021.

Official results:

Sussex County portion

Municipality 2020 President 2021 Governor 2022 House 2024 President 2024 House
Andover Borough R R R R R
Byram R R R R R
Fredon R R R R R
Green R R R R R
Hopatcong R R R R R
Ogdensburg R R R R R
Sparta R R R R R
Stanhope R R R R R
Stillwater R R R R R
Walpack R R R R R

There’s considerably less mystery here.

Every Sussex municipality in NJ-07 voted Republican in all five contests.

It’s one of the district’s Republican turnout engines.

Official results:

Union County portion

Municipality 2020 President 2021 Governor 2022 House 2024 President 2024 House
Berkeley Heights D R D D D
Clark R R R R R
Fanwood D D D D D
Linden† D D D D D
Mountainside R R R R R
New Providence D D D D D
Rahway D D D D D
Scotch Plains D D D D D
Springfield D D D D D
Summit D D D D D
Westfield D D D D D
Winfield R R R R R

Union County is the Democratic counterweight to the Republican west.

Clark, Mountainside and Winfield are consistently Republican.

Most of the rest is reliably Democratic.

But even here there are clues about the district’s volatility.

Biden carried Berkeley Heights by more than 1,100 votes in 2020. One year later, Ciattarelli edged Murphy there by 63 votes. Malinowski then won it in 2022, Harris carried it in 2024, and Altman carried it as well.

Union County therefore supplies Democrats with their largest raw-vote reservoir, but even parts of that reservoir aren’t immune to Republican movement.

The current map puts only part of Linden in NJ-07: Ward 2, portions of Ward 3, Ward 6 and Ward 7. The congressional returns above correctly use that NJ-07 portion.

Official results and district assignment:

Warren County

Municipality 2020 President 2021 Governor 2022 House 2024 President 2024 House
Allamuchy R R R R R
Alpha R R R R R
Belvidere R R R R R
Blairstown R R R R R
Franklin R R R R R
Frelinghuysen R R R R R
Greenwich R R R R R
Hackettstown R R R R R
Hardwick R R R R R
Harmony R R R R R
Hope R R R R R
Independence R R R R R
Knowlton R R R R R
Liberty R R R R R
Lopatcong R R R R R
Mansfield R R R R R
Oxford R R R R R
Phillipsburg D R R R R
Pohatcong R R R R R
Washington Borough R R R R R
Washington Township R R R R R
White R R R R R

Warren is even more straightforward.

Biden’s 2020 victory in Phillipsburg is the sole Democratic win anywhere in Warren County on this entire five-election matrix.

Ciattarelli subsequently flipped Phillipsburg.

Kean carried it in 2022 by only 23 votes.

Trump carried it in 2024.

And Kean carried it again.

Every other Warren municipality went Republican in every contest.

That’s why Warren matters disproportionately to the districtwide math. Kean’s 13,029-vote Warren County advantage in 2024 came close to wiping out Altman’s entire 14,104-vote Union County advantage before a single Hunterdon, Morris, Somerset or Sussex vote was added.

Official results:

The five types of NJ-07 towns

Put the 95-town matrix together and you can essentially divide NJ-07 into five political categories.

1. The Republican wall

Most of Warren and Sussex, plus large sections of Hunterdon.

These communities aren’t particularly elastic. The Republican objective is largely turnout and margin.

2. The Democratic wall

Westfield, Summit, Scotch Plains, Fanwood, Rahway, Springfield, Lambertville, Frenchtown and a handful of others.

The Democratic objective is the same: maximize turnout and margin.

3. Presidential Democrats/down-ballot swing voters

This may be the most consequential category.

Bernards, Bernardsville, Watchung, Peapack-Gladstone and portions of Morris and Somerset have demonstrated an ability to support a Democratic presidential candidate while simultaneously voting for a Republican congressional or statewide candidate.

These voters help explain how Kean can outperform the Republican presidential ticket.

4. Biden-to-Trump territory

A separate category consists of municipalities that moved outright from Biden in 2020 to Trump in 2024.

Among them are Bedminster, Mine Hill, Mount Olive, Raritan Borough and Warren Township, based on the official municipal returns.

These places are evidence of the district’s broader rightward presidential movement.

5. The true knife-edge communities

Then there are towns where the margins become absurdly small.

Raritan Borough backed Malinowski by nine votes in 2022.

Bernards backed Kean by 13 votes in 2024.

Watchung’s 2024 presidential contest was Harris 1,819 to Trump 1,803 — 16 votes.

Long Hill went for Trump by four votes in 2024.

And Wharton gave Ciattarelli a one-vote victory in 2021.

Those aren’t typos.

Kean’s 2024 ticket-splitting advantage

The 2024 municipal returns reveal another important pattern.

There were municipalities where Harris beat Trump but Kean nevertheless beat Altman.

Among the clearest examples were:

Bernards — Harris for president; Kean for Congress.

Bernardsville — Harris; Kean.

Green Brook — Harris; Kean.

Peapack-Gladstone — Harris; Kean.

Watchung — Harris; Kean.

Mendham Borough — Harris; Kean.

Mendham Township — Harris municipality-wide; Kean in the NJ-07 congressional portion.

Delaware Township — Harris; Kean.

That’s politically significant because Kean doesn’t necessarily need the Republican presidential coalition to get across the finish line.

In 2024, he assembled a somewhat broader one.

The biggest presidential movement

The districtwide presidential movement between 2020 and 2024 was approximately five points toward Republicans.

But it wasn’t uniform.

Some affluent communities remained solidly Democratic. Others moved noticeably right.

The most consequential shift wasn’t necessarily in the reddest towns — Republicans were already winning those — but in suburban communities where shaving a few points off the Democratic advantage can change the districtwide math.

That’s what happened between Biden’s 2020 performance and Trump’s 2024 victory.

Trump didn’t need Westfield to become MAGA country.

He needed Republican margins in the west to remain enormous while moving the middle of the district several points to the right.

That’s essentially what happened.

The district’s electoral equation

After five elections on the current geography, the basic equation is pretty clear.

For Democrats:

Run up Union County. Win Somerset. Stay competitive in eastern Hunterdon and the softer Morris suburbs. Prevent the Republican west from getting completely out of control.

For Republicans:

Run up Warren, Sussex and western Hunterdon. Win the Morris portion. Keep Somerset close or carry it. Then survive the Democratic avalanche coming out of Union County.

Kean executed that formula in 2022.

He executed it more successfully in 2024.

And now: Kean vs. Bennett

That brings us to 2026.

Republican Tom Kean Jr. is seeking a third term against Democrat Rebecca Bennett.

The seat remains the focus of enormous national attention and outside spending.

But whatever happens this November, the history of the current map gives us a useful baseline.

Republicans are 2-0 in congressional elections conducted under these boundaries.

Kean is the only member of Congress ever elected from this version of NJ-07.

His margin increased from:

8,691 votes in 2022

to

23,306 votes in 2024.

At the presidential level, the district moved from approximately:

Biden +4

to

Trump +1.

And Republicans transformed Somerset County from a 364-vote congressional loss into a 2,161-vote win.

That doesn’t dictate what happens in 2026.

It does tell us where to look.

Forget the national talking points on Election Night.

Watch Somerset County.

Watch Bernards and Bridgewater.

Watch Morris County.

Watch whether Democrats can squeeze an even larger margin out of Westfield, Summit, Scotch Plains, Fanwood and Rahway.

And then watch the raw Republican vote coming out of Warren, Sussex and Hunterdon.

Because NJ-07 isn’t really one political district.

It’s several very different New Jerseys stitched together.

That’s why Biden could carry its present geography in 2020, Ciattarelli could clobber Murphy there one year later, Kean could flip it in 2022, and Trump and Kean could both carry it in 2024.

Ninety-five towns. Six counties. Four split municipalities. And, once again in 2026, one of the most consequential congressional fights in America.

Matt Rooney
About Matt Rooney 9360 Articles
MATT ROONEY is SaveJersey.com's founder and editor-in-chief, a practicing New Jersey attorney, and the host of 'The Matt Rooney Show' on 1210 WPHT every Saturday evening from 7-9 PM EST