North Carolina · Senate
election 2026-11-03 · forecast as of 2026-10-01 · margins and probabilities are for Roy Cooper
Who is running?
Roy Cooper (Democratic), Michael Whatley (Republican), Michael Dublin (Green), Shannon W. Bray (Libertarian). The margin below is Roy Cooper minus the other candidate in the main contest; the rest are on the ballot and not in it.
The race, in brief
This is the 2026 Senate election in North Carolina, held on November 3, 2026. The text calls the state a swing state, purple to slightly red at the federal level, that backed Donald Trump by 1.3% in 2020 and 3.2% in 2024; Democrats have not won a Senate election there since 2008. The state profile on file records a black share of 0.2, a Hispanic share of 0.1, a college share of 0.3 and a median household income of 69904.0.
Republican incumbent Thom Tillis is not seeking a third term; he announced this the day after Trump said he was considering backing a primary challenger. Michael Whatley, former chair of the Republican National Committee and Trump's endorsee, won the March 3 primary with 64.6% over author Don Brown (15.6%). Former governor Roy Cooper won the Democratic primary with 92.0%. Libertarian Shannon Bray and Green Michael Dublin are also nominees. As of June 30, 2026 Cooper had raised $34,975,789 with $20,717,567 on hand; Whatley $11,272,504 with $3,461,698.
All eleven raters listed record the race as 'flip', including the Cook Political Report (September 23, 2026) and Sabato's Crystal Ball (September 22, 2026); the text gives no Lean/Likely/Safe detail. The text's poll average is Cooper 49.8%, Whatley 41.0% (Cooper +8.8%). The most recent poll listed, Quantus Insights (R) on September 21–22, 2026, has Cooper 48%, Whatley 43%.
A paragraph quoting a model forecast from the day this brief was written is omitted; the current forecast is at the top of this page.
The facts, each beside its sentence
The following day, Tillis announced that he would not seek re-election.
Republican incumbent Thom Tillis is not seeking a third term.
Cooper won the Democratic nomination with 92% of the vote, facing minimal opposition.
Whatley, who emerged as the Republican frontrunner after being endorsed by President Donald Trump, won the nomination with 64.6% of the vote over author Don Brown.
Roy Cooper, former governor of North Carolina (2017–2025)
Michael Whatley, former chair of the Republican National Committee (2024–2025)
The state backed Donald Trump in both elections by 1.3% and 3.2%, respectively.
Democrats have not won a Senate election in North Carolina since 2008.
candidate: Michael Whatley party: Republican Party (United States) votes: 405,140 percentage: 64.6
CBS News flip September 13, 2026 The Cook Political Report flip September 23, 2026
|Roy Cooper (D) $34,975,789 $14,258,222 $20,717,567 |Michael Whatley (R) $11,272,504 $7,810,806 $3,461,698
On June 28, 2025, President Donald Trump stated he was considering backing a primary challenger after Tillis voted against a motion to consider the One Big Beautiful Bill Act.
Average 41.0% |49.8% 9.2% |Cooper +8.8%
Quantus Insights (R) September 21–22, 2026 686 (LV) ± 4.2% 43% |48%
YouGov September 15–18, 2026 3,864 (RV)
Shannon Bray, cybersecurity professional and perennial candidate
Not in the source: The forecast rows carry no `basis` field, so the input does not say whether the model used the statewide polls listed in the text.; Ratings appear only as 'flip', with no party direction or Lean/Likely/Safe detail; the table appears to have lost part of each entry.; Endorsement sections are empty in the text beyond Trump's endorsement of Whatley and those noted in the candidate lists.; No Libertarian or Green primary results are given.
Read from the district's section of Wikipedia's state page (CC BY-SA), archived as cd8b09876425; written by claude-opus-5-5 (batch reader) on 2026-09-30 and checked mechanically: every quote occurs verbatim in the archived text, every number in the brief occurs in the inputs. No probability here is the reader's.
Who holds the seat now
Thom Tillis (Republican), in this chamber since 2015, 2 terms, class 2 (term ends 2027). Committees: Senate Committee on Banking, Housing, and Urban Affairs; Senate Committee on Finance; Senate Committee on the Judiciary; Senate Committee on Veterans' Affairs; Commission on Security and Cooperation in Europe.
Ted Budd (Republican), in this chamber since 2023, 1 term, class 3 (term ends 2029). Committees: Senate Committee on Armed Services; Senate Committee on Commerce, Science, and Transportation; Senate Committee on Small Business and Entrepreneurship; Joint Economic Committee; Senate Select Committee on Intelligence.
From the congress-legislators dataset (CC0), archived as ae8cb9477c48. For a Senate race this lists both of the state's senators; the one whose term ends in the election year holds the seat on the ballot. For a House district redrawn for 2026 it is the member elected under the old lines with this number, who may be running elsewhere; the dossier above names who is running here.
The money
| Candidate | Raised | Cash on hand | PAC share | Self-funded | Outside $ for | Outside $ against |
|---|---|---|---|---|---|---|
| Cooper, Roy (DEM) open seat | $34,975,789 | $20,717,567 | 2% | 0% | $311,137 | $2,354,431 |
| Whatley, Michael (REP) open seat | $11,272,504 | $3,461,698 | 8% | 0% | $5,026,933 | $8,776,168 |
| Tillis, Thom R Sen (REP) incumbent · not on our roster | $4,707,960 | $3,646,200 | 32% | 0% | $0 | $3,958 |
| Nickel, Wiley (DEM) open seat · not on our roster | $588,995 | $0 | 7% | 0% | $0 | $0 |
| Brown, Don (REP) open seat · not on our roster | $224,689 | $0 | 0% | 5% | $9,950 | $0 |
| Mcginnis, Brian (GRE) open seat · not on our roster | $68,363 | $-13,363 | 0% | 0% | $0 | $0 |
| Dublin, Michael Louis Jr. (GRE) open seat · not on our roster | $25,276 | $10,027 | 0% | 79% | $0 | $0 |
| Morrow, Michele (REP) open seat · not on our roster | $13,014 | $-187 | 0% | 0% | $0 | $0 |
| Johnson, Thomas Lee (REP) open seat · not on our roster | $6,720 | $0 | 0% | 67% | $0 | $0 |
| Williams, Marcus W. (DEM) open seat · not on our roster | $5,656 | $0 | 0% | 0% | $0 | $0 |
| Dansie, Richard (REP) open seat · not on our roster | $2,410 | $630 | 0% | 100% | $0 | $0 |
FEC bulk candidate summaries through June 30, 2026; $16,482,577 of independent expenditures for or against these candidates this cycle (FEC Schedule E, types 24E and 24A), which is the parties' and outside groups' own revealed view of whether this seat is in play.
How it has voted for president
| Two-party margin | 2016 | 2020 | 2024 |
|---|---|---|---|
| President | R+3.8 | R+1.4 | R+3.3 |
A shift of 0.5 points toward the Democrats from 2016 to 2024. county returns summed; MEDSL county file (2016), an MIT-licensed county file (2020, checked against certified state results) and MEDSL precinct returns (2024). For a district split across counties this is an estimate, and where the state published the exact 2024 figure for these lines, that exact figure is the one the model uses.
The state in numbers
| Measure | State | Average state | Difference |
|---|---|---|---|
| Bachelor's degree or higher, 25+, 2023 | 34.7% | 34.0% | +0.7 pts |
| White, non-Hispanic, 2023 | 60.7% | 66.3% | -5.6 pts |
| Black, non-Hispanic, 2023 | 20.3% | 10.1% | +10.2 pts |
| Hispanic or Latino, 2023 | 10.9% | 12.9% | -1.9 pts |
| Asian, non-Hispanic, 2023 | 3.1% | 4.4% | -1.2 pts |
| Foreign-born, 2023 | 8.7% | 9.6% | -0.9 pts |
| Median age, 2023 | 39.1 | 39.1 | +0.02 |
| Median household income, 2023 | $69,904 | $77,633 | $-7,729 |
| Median home value, 2023 | $259,400 | $314,132 | $-54,732 |
| Owner-occupied homes, 2023 | 66.4% | 67.4% | -1.0 pts |
| Unemployment (ACS), 2023 | 4.8% | 4.8% | +0.0 pts |
| Federal government workers, 2023 | 2.2% | 3.0% | -0.9 pts |
| Work from home, 2023 | 14.5% | 12.3% | +2.2 pts |
| Households on SNAP, 2023 | 12.5% | 11.1% | +1.5 pts |
| Households with Social Security income, 2023 | 32.1% | 32.1% | -0.0 pts |
| Households with public assistance income, 2023 | 1.8% | 2.6% | -0.9 pts |
| Moved in from another state, past year, 2023 | 3.1% | 2.9% | +0.2 pts |
| Gini index, 2023 | 0.48 | 0.47 | +0.01 |
| Unemployment, latest month (BLS), 2026-07 | 3.7% | 4.0% | -0.3 pts |
| Change in unemployment, past 12 months, 2026-07 | -0.4 pts | -0.1 pts | -0.2 pts |
| Change since the last election (24 months), 2026-07 | -0.3 pts | -0.1 pts | -0.2 pts |
| Per-capita personal income (BEA), 2024 | $65,634 | $70,662 | $-5,028 |
| Per-capita income growth since 2019, nominal, 2024 | 35.7% | 32.4% | +3.3 pts |
| Government and other transfers, share of income, 2024 | 21.1% | 19.4% | +1.7 pts |
| Social Security, share of income, 2022 | 6.6% | 6.1% | +0.5 pts |
| Medicare, share of income, 2022 | 4.7% | 4.4% | +0.4 pts |
| Medicaid, share of income, 2022 | 3.1% | 3.8% | -0.7 pts |
| SNAP, share of income, 2022 | 0.8% | 0.6% | +0.3 pts |
| Earned Income Tax Credit, share of income, 2022 | 0.4% | 0.3% | +0.1 pts |
| Veterans' benefits, share of income, 2022 | 1.3% | 0.9% | +0.4 pts |
| Federal civilian jobs, share of all jobs, 2022 | 1.1% | 1.5% | -0.4 pts |
| Military jobs, share of all jobs, 2022 | 1.8% | 1.2% | +0.7 pts |
ACS 5-year state tables; BLS county unemployment and BEA county income, transfers and jobs summed to the state. Every figure is a named column of a named public-domain table, archived before it was read.
Who is ahead, and by how much?
Two numbers because they answer two questions. The nowcast is where opinion stands; the election-day forecast is where it is likely to end up.
How likely is each to win?
Monte Carlo error is ±0.1 points. A change smaller than that is simulation noise rather than news, and this page will not describe it as movement.
How wide is the range?
Nowcast: 90% of simulations fall between -1.2 and +16.6 points. Election day: -2.3 to +19.6. The election-day interval is 4.1 points wider, which is the 33 days of movement still to come.
What is the uncertainty made of?
Total sd 6.98 points, made of race-specific polling error 51%, drift to election day 33%, correlated polling error 12%, latent opinion 4%. The decomposition is stored with the forecast rather than reconstructed, so a probability whose dominant input is a placeholder is visibly that.
What evidence is this built on?
35 polls, most recent 2026-09-22. 33% verified against a primary source.
What changed since the last run?
Shaded band is the 90% interval, line is the central estimate, positive is Roy Cooper ahead of Michael Dublin. Over 18 stored forecasts the central estimate moved -0.2 points. There were 7 specification changes (marked on the axis) and no new polls arrived over this window — so every movement in this chart is a change to the model, not a change in the race.
Since 2026-10-01: margin +0.00 points, win probability +0.0 points, on +0 polls.
Not answered here: why it changed. Splitting a move into new polls, time and specification means re-running the earlier model against the later inputs -- two extra posterior fits -- so it is computed on a cadence (scripts/attribute_forecasts.py) rather than while you wait. This pair of runs has not been decomposed yet. The size of the move is shown; the cause is not guessed at.
How has this model done before?
Measured on 230 forecasts across 230 races in cycles 2016,2018,2020,2022,2024: mean absolute error 4.56 points, Brier score 0.0543. The nominal 90% interval contained the result 94% of the time, the 80% interval 84%, and the 50% interval 47%. Read that with care: a national polling miss moves every race in a cycle at once, so the sample size for a question about the intervals is 5 cycle(s), not 230 forecasts. Per cycle -- bias +1.644 pts; 2016: n=43 bias=+4.68 cov90=0.860; 2018: n=63 bias=-0.52 cov90=1.000; 2020: n=35 bias=+5.44 cov90=0.886; 2022: n=54 bias=-0.60 cov90=0.944; 2024: n=35 bias=+1.48 cov90=1.000.
Where did every number come from?
Nowcast run 06b677a8-ca1f-470f-9777-4fcac9471cc3 and election-day run d8899b83-1aff-42f3-a8e7-62129edf640d, model single_race_latent/0.8.1 at commit bdf7e83107c17a2399efe61a44ef1bbee48f9284, seeds 20260924 and 20260924.