North Carolina · U.S. House · District 7 · November 3, 2026

What it would have taken for Kimberly Hardy.

Before the election, as last updated September 26, 2026: Rouzer starts 6.9 points ahead on our starting line from 2026 polls. Hardy needs 20,155 net votes, and the plan uses 53 percent of what history allows. The most net votes are in Mosquito 2 (Brunswick County), Grissettown (Brunswick County) and Shingletree 2 (Brunswick County).

20,155
net votes between Hardy and a win
Counting
David Rouzer leads, still counting. Election held November 3, 2026.
6.9 pts
Rouzer lead, our starting line from 2026 polls
The result · November 3, 2026

David Rouzer leads, still counting.

Kimberly Hardy ran 6.1 points ahead of our starting line, with votes still being counted.

David Rouzer · Republican49.9%
Kimberly Hardy · Democratic49.1%
Maad Abu-Ghazalah · Libertarian1.0%

Votes are still being counted, about 99% in. Source · Second source

The number

146,127 votes.

That is half of the 292,252 ballots we expect in this race, plus one. Where Hardy stands today, and what is missing:

133,349 Kimberly Hardy baseline
153,504 David Rouzer baseline

Starting line: Rouzer +6.9 among decided voters, from published 2026 polls, applied to each precinct's pattern in the 2022 and 2024 official returns. 2026 turnout modeled on 2022, the last midterm.

The odds

8% today. 53% with the plan.

We ran this race 20,000 times with realistic error on every assumption. Drag the slider to see the odds move as the campaign captures more of what history says is available.

Hardy wins in
53%
of 20,000 simulated elections
With no plan
8%
tieHardy loses by 39,200wins by 42,255
How much of what history allows the campaign achieves53%
The plan on this page sits at 53%. Median outcome at this setting: Hardy by 1,035.

Each simulation draws the starting line with an error of 5 points of margin (the starting line comes from 2026 polls) and lets the plan over- or under-deliver by 30 percent. Seeded and reproducible; the method and data are at the bottom of the page.

Three moves

The gap closes three ways.

Change minds. Bring out voters who skip midterms. Win back the third-party vote. Every pool below is counted from official precinct returns and published polls.

Persuade
19K
net votes in the plan, from a pool of 35,199

Who. 35,199 voters in play: ticket splitters now leaning Rouzer, plus the 13 percent still undecided in the latest poll.

How. Live conversations on the call list that matters: voters who crossed party lines, plus the undecided. Hardy needs to win 27 percent of the ones now leaning Rouzer.

Mobilize
2,017
net votes in the plan, from a pool of 31,119

Who. At least 31,119 people who voted in 2024 but not in 2022, in precincts where Hardy's side wins at least 55 percent.

How. Voter ID calls to people who voted in 2024 and skipped 2022, then a ballot chase until each one has voted.

Consolidate
474
net votes in the plan, from a pool of 2,554

Who. Voters who went third party in recent races, in the precincts that lean Hardy's way.

How. A direct appeal to voters who went third party last time. They have already shown they will leave the two-party default.

Together: 21,162 net votes against a gap of 20,155. That is a win.

Where it is won

12 precincts carry 34% of it.

Ranked by the net votes each one gives the plan. The darker the county, the more of the upset lives there.

Alamance CountyAlexander CountyAlleghany CountyAnson CountyAshe CountyAvery CountyBeaufort CountyBertie CountyBladen County: 35 net votes in the planBrunswick County: 8,460 net votes in the planBuncombe CountyBurke CountyCabarrus CountyCaldwell CountyCamden CountyCarteret CountyCaswell CountyCatawba CountyChatham CountyCherokee CountyChowan CountyClay CountyCleveland CountyColumbus County: 4 net votes in the planCraven CountyCumberland County: 1,701 net votes in the planCurrituck CountyDare CountyDavidson CountyDavie CountyDuplin CountyDurham CountyEdgecombe CountyForsyth CountyFranklin CountyGaston CountyGates CountyGraham CountyGranville CountyGreene CountyGuilford CountyHalifax CountyHarnett CountyHaywood CountyHenderson CountyHertford CountyHoke CountyHyde CountyIredell CountyJackson CountyJohnston CountyJones CountyLee CountyLenoir CountyLincoln CountyMacon CountyMadison CountyMartin CountyMcDowell CountyMecklenburg CountyMitchell CountyMontgomery CountyMoore CountyNash CountyNew Hanover County: 9,355 net votes in the planNorthampton CountyOnslow CountyOrange CountyPamlico CountyPasquotank CountyPender County: 1,609 net votes in the planPerquimans CountyPerson CountyPitt CountyPolk CountyRandolph CountyRichmond CountyRobeson County: 0 net votes in the planRockingham CountyRowan CountyRutherford CountySampson County: 0 net votes in the planScotland CountyStanly CountyStokes CountySurry CountySwain CountyTransylvania CountyTyrrell CountyUnion CountyVance CountyWake CountyWarren CountyWashington CountyWatauga CountyWayne CountyWilkes CountyWilson CountyYadkin CountyYancey CountyBladenBrunswickCumberlandNew HanoverPender
Fewer net votesMore net votes for the upset
  1. 01
    Mosquito 2 (Brunswick County)persuade
    Starting line Rouzer +7. 17.2% split their ticket.
    +1,010
  2. 02
    Grissettown (Brunswick County)persuade
    Starting line Rouzer +28. 16.2% split their ticket.
    +676
  3. 03
    Shingletree 2 (Brunswick County)persuade
    Starting line Rouzer +25. 15.6% split their ticket.
    +634
  4. 04
    Precinct H08 (New Hanover County)persuade
    Starting line Rouzer +7. 15.8% split their ticket.
    +606
  5. 05
    Precinct M02 (New Hanover County)persuade
    Starting line Hardy +6. 14.4% split their ticket.
    +582
  6. 06
    Belville 2 (Brunswick County)persuade
    Starting line Rouzer +1. 12.9% split their ticket.
    +571
  7. 07
    Brunswick Forest (Brunswick County)persuade
    Starting line Hardy +8. 14.2% split their ticket.
    +560
  8. 08
    Leland (Brunswick County)persuade
    Starting line Rouzer +2. 12.7% split their ticket.
    +551
  9. 09
    Hickmans Crossroads (Brunswick County)persuade
    Starting line Rouzer +25. 15.9% split their ticket.
    +547
  10. 10
    Precinct M04 (New Hanover County)persuade
    Starting line Hardy +8. 12.2% split their ticket.
    +533
  11. 11
    Precinct W33 (New Hanover County)persuade
    Starting line Rouzer +4. 15.5% split their ticket.
    +487
  12. 12
    Precinct H11 (New Hanover County)persuade
    Starting line Rouzer +3. 12.5% split their ticket.
    +472
What the numbers say that the polls do not

The hidden path.

Mosquito 2 (Brunswick County) carries the most.

Mosquito 2 (Brunswick County) gives this plan more net votes than any other precinct: 1,010. It sits at Rouzer +7 on our starting line, and 17.2 percent of its voters split their ticket in recent elections.

Spend it where it counts.

As of June 30, 2026, Rouzer had $2.30 million in cash on hand to Hardy's $65K. That is exactly why the plan ranks every place by net votes and spends in that order instead of across the whole map.

The evidence

Where voters cross over.

Every dot is a precinct. If no one split a ticket, every dot would sit on the line. The orange ones are where Hardy's side lost voters it won further up the ballot.

-100-100-80-80-60-60-40-40-20-2000+20+20+40+40+60+60+80+80+100+100Hardy's side, President 2024 margin (points) margin (points)
Precincts
192
Slope
0.964
R²
0.996
Residual SD
1.7 pts
Crossover precincts
36

Weighted least squares, one point per precinct, weighted by ballots cast. Orange precincts sit more than one residual standard deviation below the line: Hardy's side did worse there in this race than the top of the ticket predicts. Hover any dot for the precinct.

The plan, as published

The calendar it ran on.

  1. Now to October 9
    Find them

    Voter ID calls across the persuasion list in these precincts. Every conversation tags the voter: with Hardy, with Rouzer, or undecided. The undecided become the persuasion universe; the supporters become the ballot chase list.

  2. October 10 to 14
    Persuade

    Second conversations with every undecided and soft voter, built around the one issue they named on the first call. The goal is 18,671 net votes from people who have crossed party lines before. Every supporter it finds goes straight onto the ballot chase.

  3. October 15 to 24
    Bank the ballots

    One-stop early voting runs October 15 through October 31, with same-day registration at early voting sites. Absentee ballots must be received by 7:30 p.m. on November 3; a postmark does not count. Chase every supporter's mail ballot until it is returned, and move supporters to early voting while it is open. Requests must be received by October 20.

  4. October 25 to November 2
    Turn them out

    The drop-off voters: people who voted in 2024 and skipped 2022. At least 31,119 of them live where Hardy is favored. Absentee ballots must be received by the county board of elections by 7:30 p.m. on November 3; a postmark does not count. North Carolina has no drop boxes.

  5. November 3
    Election day

    Polls are open 6:30 a.m. to 7:30 p.m. and photo ID is required. Registration closes October 9; same-day registration is available only during one-stop early voting. The last calls go to identified supporters who have not voted, with their polling place in hand.

What has to be true

No wishful thinking.

Official results in this district: Trump carried the 2024 presidential race by 13.8 points; Stein carried the 2024 governor's race by 8.0 points; Budd carried the 2022 U.S. Senate race by 13.0 points.

  1. Hardy wins 27 percent of the ticket splitters and undecided voters now leaning Rouzer.
  2. No national wave is required. The plan uses 53 percent of what recent North Carolina results show is possible.
  3. The starting line comes from the published 2026 head-to-head polls between these two finalists, sponsored ones included; if the true gap is different, so is the plan.
The work

5,206 conversations.

That is how many live voter conversations this plan called for: about 99,351 dials to 33,117 households, before the last ballot was cast.

33K
households on the target list
99K
dials across three attempts
5,206
live conversations: persuasion, voter ID, ballot chase

Call list: every ticket splitter and undecided voter in the targeted places (you cannot tell which way they lean before the call), every targeted drop-off voter, and the reachable third-party voters. About 69 households for every 100 voters on the list, three attempts each, and a 5.24 percent live answer rate per attempt, the per-program average across 1.2 million real 2026 dials in our published benchmarks.

HyperPhonebank

Running next cycle? We run lists like this.

Calls are the voter ID and ballot chase engine of this plan. They find the persuadable voters and the supporters, so every other dollar lands on the right door. The full call program for this list is an estimated $10,660 at our published rates: 33,117 households, three attempts each.

Professional live callers working exactly these precincts: persuasion on the ticket splitters, voter ID on the fence, ballot chase on every absentee request until it is returned. A live dashboard shows every conversation as it happens. Days to launch, not weeks.

The candidates

Who is on the ballot.

Underdog

Kimberly Hardy (D)

An associate professor of social work at Fayetteville State University who lives in the Linden area of Cumberland County. She holds a bachelor's degree (1997) and a Ph.D. in social work from Morgan State University and a master's in social work from Ohio State University.

Cash on hand $65,017 and $293,818 raised since January 1, 2025, per FEC reports through June 30, 2026.

Favorite · incumbent

David Rouzer (R)

U.S. representative for the 7th District since 2015 and a North Carolina state senator from 2009 to 2012. A 1994 North Carolina State University graduate in agricultural business management, agricultural economics and chemistry, he was a senior aide to U.S. Sens. Jesse Helms and Elizabeth Dole and an associate administrator at USDA Rural Development.

Cash on hand $2,301,487 and $1,990,423 raised since January 1, 2025, per FEC reports through June 30, 2026.

Also on the ballot

Maad Abu-Ghazalah (L)

A Wilmington entrepreneur, consultant and animal rescue advocate. He holds a bachelor's degree from the University of Notre Dame (1983), a graduate degree from the University of Virginia (1985) and a law degree from Santa Clara University (1993).

Cash on hand $450 and $7,341 raised since January 1, 2025, per FEC reports through June 30, 2026.

Underdog Updates

What changed, and when.

We re-ran this race as new polls, fundraising reports and early vote counts arrived, and logged the result against the plan. Every change is listed here.

  1. November 5, 2026
    Early count: David Rouzer leads, still counting

    Count so far: Kimberly Hardy 49.1%, David Rouzer 49.9%, a margin of 0.8 points. Our starting line had Rouzer +6.9; Hardy ran ahead of that line by 6.1 points. This page stays up as the record of the plan and how it compared with the outcome.

  2. September 26, 2026
    Underdog plan published

    Starting line: Rouzer +6.9. Kimberly Hardy needs 20,155 net votes. Odds 8% today, 53% with the plan.

Share this plan. Running this campaign, or backing it? This page is yours to share with your team and supporters.
Share

Questions

Can Kimberly Hardy win North Carolina's 7th Congressional District in 2026?

Yes, on the math. Kimberly Hardy needs 20,155 net votes, and recent North Carolina results show about 39,896 are reachable through persuasion, turnout and third-party voters. The plan closes the gap using 53 percent of that.

Where are the votes Kimberly Hardy needs?

Ranked by net votes in the plan: Mosquito 2 (Brunswick County), Grissettown (Brunswick County), Shingletree 2 (Brunswick County), Precinct H08 (New Hanover County), Precinct M02 (New Hanover County). Persuadable voters are counted from ticket splitting in 2022 and 2024 official returns; turnout targets are people who voted in 2024 and skipped 2022.

How many voters does Kimberly Hardy need to persuade?

About 9,336 voters who lean David Rouzer today, each worth two votes of margin when they switch. That is 27 percent of the 35,199 persuadable voters leaning David Rouzer.

When does early voting start in North Carolina in 2026?

One-stop early voting in North Carolina runs October 15 through 3 p.m. on October 31, 2026, at any early voting site in the voter's county, with same-day registration available there. The regular registration deadline is October 9. Absentee ballot requests must be received by October 20, and absentee ballots must be received by 7:30 p.m. on Election Day; postmarks do not count. Photo ID is required.

Who made this analysis?

The Political Group, an independent campaign services firm, from official North Carolina State Board of Elections precinct returns, Census data, FEC filings and published polls. It is not affiliated with any candidate or party.

Method and sources

Precinct math from official North Carolina State Board of Elections returns for 2022 and 2024, projected onto current district lines. Polls, ratings and fundraising as published on the dates shown. This is independent analysis by The Political Group, as of September 26, 2026. It is not affiliated with or endorsed by any candidate or party, and it is written for every campaign that starts behind.

Statistics: a weighted least squares crossover regression on every precinct, and 20,000 seeded Monte Carlo simulations. The baseline error (5 points of margin) and plan efficacy spread (30 percent) are our stated assumptions. Download the precinct data (CSV, ready for JASP). Free to cite under CC BY 4.0 with a link to this page.

Race coverage

More North Carolina underdogs