Montana · U.S. Senate
Kurt Alme is heavily favored to win. Projected candidate margin: Kurt Alme over Seth Bodnar by 17.6 points. No two-party forecast is published for this race: this race is between an independent and a major-party candidate, so the forecast is published per candidate rather than as a two-party margin.
Show all others (2)
Kyle Austin
Other is a combined forecast; individual estimates are not published.
Ballot eligibility alone supplies no quantitative estimate. Other is a collective share, not any named candidate’s forecast. Official ballot sources: Seth Bodnar (checked 2026-08-31); Kyle Austin (checked 2026-08-31).
Under each share, its likely range (80 in 100 simulations)
Background
Alme is the Republican nominee after incumbent Steve Daines withdrew; Democrat Alani Bankhead and independent Seth Bodnar complete the principal field.
Forecast history
Latest reading · Oct 28 · first published Oct 6 · Lead between the top two candidates, in points of all votes. Methodology
Aug 12: The top two candidates changed: from this day the lead is between Kurt Alme and Seth Bodnar. Earlier readings compare a different pair.
About this series
Reconstructed with the current model Aug 1 – Oct 5; published readings Oct 6 – Oct 28. Each reconstructed day is the current model on that day’s own inputs, not a forecast published then. Corrections are dated in the changelog.
Faded: CTMM 2.2 reconstructed history: computed after the fact with each date's available polls and environment, without expert ratings; not an issued forecast. Issued forecasts begin at the launch marker.
CTMM 2.2 readings for 2026-09-16, 2026-09-17, 2026-09-18 were computed after the fact with each day's available inputs: no edition was issued on those days. Not an issued forecast.
Data table
| Date | Lead | Chance | Reading |
|---|---|---|---|
| Oct 28 | R+17.6 | Kurt Alme win 94.3% | Published forecast |
| Oct 27 | R+17.6 | Kurt Alme win 94.3% | Published forecast |
| Oct 26 | R+17.6 | Kurt Alme win 94.5% | Published forecast |
| Oct 25 | R+17.6 | Kurt Alme win 94.6% | Published forecast |
| Oct 24 | R+17.7 | Kurt Alme win 94.5% | Published forecast |
| Oct 23 | R+17.6 | Kurt Alme win 94.6% | Published forecast |
| Oct 22 | R+17.7 | Kurt Alme win 94.7% | Published forecast |
| Oct 21 | R+17.7 | Kurt Alme win 94.8% | Published forecast |
| Oct 20 | R+17.4 | Kurt Alme win 94.1% | Published forecast |
| Oct 19 | R+17.5 | Kurt Alme win 94.1% | Published forecast |
| Oct 18 | R+17.5 | Kurt Alme win 94.1% | Published forecast |
| Oct 17 | R+17.5 | Kurt Alme win 94.2% | Published forecast |
| Oct 16 | R+15.0 | Kurt Alme win 91.7% | Published forecast |
| Oct 15 | R+17.6 | Kurt Alme win 94.4% | Published forecast |
| Oct 14 | R+17.6 | Kurt Alme win 94.5% | Published forecast |
| Oct 13 | R+17.6 | Kurt Alme win 94.4% | Published forecast |
| Oct 12 | R+17.7 | Kurt Alme win 94.6% | Published forecast |
| Oct 11 | R+17.6 | Kurt Alme win 94.6% | Published forecast |
| Oct 10 | R+17.6 | Kurt Alme win 94.7% | Published forecast |
| Oct 9 | R+17.6 | Kurt Alme win 94.9% | Published forecast |
| Oct 8 | R+17.6 | Kurt Alme win 95.0% | Published forecast |
| Oct 7 | R+17.6 | Kurt Alme win 94.9% | Published forecast |
| Oct 6 | R+17.6 | Kurt Alme win 94.9% | Published forecast |
| Oct 5 | R+17.6 | Kurt Alme win 94.8% | Recomputed with the current model |
| Oct 4 | R+17.6 | Kurt Alme win 95.1% | Recomputed with the current model |
| Oct 3 | R+17.5 | Kurt Alme win 94.7% | Recomputed with the current model |
| Oct 2 | R+17.6 | Kurt Alme win 95.2% | Recomputed with the current model |
| Oct 1 | R+17.6 | Kurt Alme win 95.1% | Recomputed with the current model |
| Sep 30 | R+17.6 | Kurt Alme win 95.2% | Recomputed with the current model |
| Sep 29 | R+17.6 | Kurt Alme win 95.2% | Recomputed with the current model |
| Sep 28 | R+17.8 | Kurt Alme win 95.7% | Recomputed with the current model |
| Sep 27 | R+17.1 | Kurt Alme win 94.2% | Recomputed with the current model |
| Sep 26 | R+17.1 | Kurt Alme win 94.1% | Recomputed with the current model |
| Sep 25 | R+17.2 | Kurt Alme win 94.1% | Recomputed with the current model |
| Sep 24 | R+17.2 | Kurt Alme win 94.2% | Recomputed with the current model |
| Sep 23 | R+17.9 | Kurt Alme win 94.1% | Recomputed with the current model |
| Sep 22 | R+17.9 | Kurt Alme win 93.9% | Recomputed with the current model |
| Sep 21 | R+17.9 | Kurt Alme win 94.1% | Recomputed with the current model |
| Sep 20 | R+17.8 | Kurt Alme win 94.1% | Recomputed with the current model |
| Sep 19 | R+17.9 | Kurt Alme win 94.2% | Recomputed with the current model |
| Sep 18 | R+17.8 | Kurt Alme win 94.2% | Reconstructed with the stated inputs |
| Sep 17 | R+17.5 | Kurt Alme win 93.9% | Reconstructed with the stated inputs |
| Sep 16 | R+17.0 | Kurt Alme win 92.0% | Reconstructed with the stated inputs |
| Sep 15 | R+17.0 | Kurt Alme win 92.3% | Recomputed with the current model |
| Sep 14 | R+16.9 | Kurt Alme win 91.9% | Recomputed with the current model |
| Sep 13 | R+16.9 | Kurt Alme win 92.0% | Recomputed with the current model |
| Sep 12 | R+17.0 | Kurt Alme win 92.4% | Recomputed with the current model |
| Sep 11 | R+19.3 | Kurt Alme win 92.7% | Recomputed with the current model |
| Sep 10 | R+19.3 | Kurt Alme win 92.9% | Recomputed with the current model |
| Sep 9 | R+19.3 | Kurt Alme win 93.2% | Recomputed with the current model |
| Sep 8 | R+19.3 | Kurt Alme win 93.3% | Reconstructed with the stated inputs |
| Sep 7 | R+18.9 | Kurt Alme win 92.5% | Reconstructed with the stated inputs |
| Sep 6 | R+18.8 | Kurt Alme win 92.5% | Reconstructed with the stated inputs |
| Sep 5 | R+18.9 | Kurt Alme win 92.6% | Reconstructed with the stated inputs |
| Sep 4 | R+19.0 | Kurt Alme win 92.6% | Reconstructed with the stated inputs |
| Sep 3 | R+19.0 | Kurt Alme win 92.6% | Reconstructed with the stated inputs |
| Sep 2 | R+18.8 | Kurt Alme win 92.6% | Reconstructed with the stated inputs |
| Sep 1 | R+20.0 | Kurt Alme win 94.5% | Reconstructed with the stated inputs |
| Aug 31 | R+20.0 | Kurt Alme win 94.5% | Reconstructed with the stated inputs |
| Aug 30 | R+20.0 | Kurt Alme win 94.6% | Reconstructed with the stated inputs |
| Aug 29 | R+20.0 | Kurt Alme win 94.7% | Reconstructed with the stated inputs |
| Aug 28 | R+20.1 | Kurt Alme win 94.9% | Reconstructed with the stated inputs |
| Aug 27 | R+20.0 | Kurt Alme win 94.8% | Reconstructed with the stated inputs |
| Aug 26 | R+20.1 | Kurt Alme win 95.0% | Reconstructed with the stated inputs |
| Aug 25 | R+20.1 | Kurt Alme win 95.0% | Reconstructed with the stated inputs |
| Aug 24 | R+20.1 | Kurt Alme win 95.1% | Reconstructed with the stated inputs |
| Aug 23 | R+20.0 | Kurt Alme win 95.0% | Reconstructed with the stated inputs |
| Aug 22 | R+20.2 | Kurt Alme win 94.9% | Reconstructed with the stated inputs |
| Aug 21 | R+20.1 | Kurt Alme win 95.1% | Reconstructed with the stated inputs |
| Aug 20 | R+20.1 | Kurt Alme win 95.1% | Reconstructed with the stated inputs |
| Aug 19 | R+20.1 | Kurt Alme win 95.1% | Reconstructed with the stated inputs |
| Aug 18 | R+20.1 | Kurt Alme win 95.2% | Reconstructed with the stated inputs |
| Aug 17 | R+20.1 | Kurt Alme win 95.3% | Reconstructed with the stated inputs |
| Aug 16 | R+20.1 | Kurt Alme win 95.3% | Reconstructed with the stated inputs |
| Aug 15 | R+20.1 | Kurt Alme win 95.4% | Reconstructed with the stated inputs |
| Aug 14 | R+20.1 | Kurt Alme win 95.4% | Reconstructed with the stated inputs |
| Aug 13 | R+20.1 | Kurt Alme win 95.4% | Reconstructed with the stated inputs |
| Aug 12 | R+20.1 | Kurt Alme win 95.5% | Reconstructed with the stated inputs |
| Aug 11 | R+20.6 | Kurt Alme win 94.5% | Reconstructed with the stated inputs |
| Aug 10 | R+20.6 | Kurt Alme win 94.5% | Reconstructed with the stated inputs |
| Aug 9 | R+20.6 | Kurt Alme win 94.6% | Reconstructed with the stated inputs |
| Aug 8 | R+20.6 | Kurt Alme win 94.6% | Reconstructed with the stated inputs |
| Aug 7 | R+20.6 | Kurt Alme win 94.7% | Reconstructed with the stated inputs |
| Aug 6 | R+20.6 | Kurt Alme win 94.8% | Reconstructed with the stated inputs |
| Aug 5 | R+20.6 | Kurt Alme win 94.8% | Reconstructed with the stated inputs |
| Aug 4 | R+20.6 | Kurt Alme win 94.9% | Reconstructed with the stated inputs |
| Aug 3 | R+20.6 | Kurt Alme win 94.7% | Reconstructed with the stated inputs |
| Aug 2 | R+20.6 | Kurt Alme win 94.8% | Reconstructed with the stated inputs |
| Aug 1 | R+20.6 | Kurt Alme win 94.8% | Reconstructed with the stated inputs |
The polls
Polling average · 15 polls · newer and larger polls count for more
46.4Kurt Alme30.7Seth Bodnar20.3Alani Bankhead
| Fieldwork | Added | Pollster | Result | Sample |
|---|---|---|---|---|
| from 2026-10-22 | 1h ago | Concord Public Opinion Partners ↗ | 42.7Kurt Alme43.8Seth Bodnar11.2Alani BankheadEvery candidate named | 410 LV |
| from 2026-10-06 | Concord Public Opinion Partners ↗ | 40.7Kurt Alme43.0Seth Bodnar15.1Alani BankheadEvery candidate named | 405 LV | |
| from 2026-10-15 | Quantus Insights ↗ | 46.9Kurt Alme21.4Seth Bodnar29.6Alani BankheadEvery candidate named | 667 LV | |
| from 2026-10-07 | Peak Insights ↗ | 50.0Kurt Alme33.0Seth Bodnar13.6Alani BankheadEvery candidate named | 500 LV | |
| from 2026-09-19 | American Pulse Research & Polling ↗NonStop Local | 50.0Kurt Alme28.9Seth Bodnar21.1Alani BankheadEvery candidate named | 604 LV | |
| from 2026-09-07 | Aspect Strategic ↗Montana Freedom PAC | 47.3Kurt Alme34.4Seth Bodnar15.1Alani BankheadEvery candidate named | 715 LV | |
| from 2026-09-14 | Quantus Insights ↗ | 48.4Kurt Alme26.4Seth Bodnar25.3Alani BankheadEvery candidate named | 625 LV | |
| from 2026-08-27 | Rutgers-Eagleton ↗Montana Free Press | 42.7Kurt Alme33.7Seth Bodnar18.0Alani BankheadEvery candidate named | 845 RV |
How the forecast uses these polls
The polling average above is the polls’ own: every poll in this race’s poll average, newer and larger polls counting for more and each pollster once, with nothing adjusted. What the forecast does with the polls is a separate matter, set out here.
The forecast’s numbers for this race start from a weighted average of the 17 polls above that named every candidate: Kurt Alme 46.6%, Seth Bodnar 29.6% and Alani Bankhead 21.2%. Newer and larger polls count for more. A poll paid for by a party or a campaign counts for a quarter as much and has the gap between Alani Bankhead and Kurt Alme moved 2.0 points against the side that paid for it. The average is not blended with past results or the national mood, because the contest here is not simply the Democrat against the Republican.
From there the forecast scales the shares to add up to 100%, with 1.6% set aside for candidates the polls do not name, simulates the election many times with every share free to move, and publishes the average result: Kurt Alme 47.1%, Seth Bodnar 29.5% and Alani Bankhead 21.8%, a lead of 17.6 points for Kurt Alme.
Democrat-versus-Republican poll average R+22.6Of the Democratic and Republican support in each poll. It is not this race’s headline: the two leading candidates here are not a Democrat and a Republican, and the candidates’ numbers start from the polls of the full field listed above. This average feeds only the forecast’s Democrat-versus-Republican estimate for the race.A poll’s weight halves every 60 days and grows with its sample. Each pollster counts once, at its best release. Every poll counts at its published margin, sponsored or not.In Senate races the forecast then counts a poll sponsored by a party or campaign at a quarter of its weight and moves its margin 2 points against that party, which puts the average it reads at R+21.7. It then applies a fitted correction of 1.6 points toward Republicans for Senate races, measured from past polling error, before blending it with its other evidence.17 recorded polls · 15 in the poll average
Weighted average, as the forecast took it: 21.2Alani Bankhead46.6Kurt Alme29.6Seth Bodnar · 17 polls
Each poll’s figures are shares of the people who picked a candidate. Undecided voters are left out, so the numbers run a little higher than the poll’s own headline figures, and a candidate who has since left the race is not counted.
How the partisan coordinate was built
Tap an input for its calculation and source.
Displayed values are rounded. This is a modeled partisan coordinate. It compares Alani Bankhead (D) with Kurt Alme (R), not Kurt Alme with Seth Bodnar.
Kurt Alme leads Seth Bodnar by 17.6 points (forecast share difference). The named candidate forecast also accounts for the field and election rules; its lead is a separate quantity from the partisan coordinate above.
All calculations & sources
How this state voted, 2024 −19.930 points
The state's presidential margin in 2024 as a share of all votes cast, from our own county sums — the same measurement the model's statewide terrain center is built from. Every pull below is measured from here, not from EVEN, which is why a landslide seat's listed pulls are small numbers and still land where the forecast does.
- 2024 presidential result for this state, as a share of all votes cast, from Call the Map's own county sums.
- Same source as Act I's 2024-president reference mark, so the origin lands on it.
Fitted model, above the terrain shown +12.738 points
What the fitted model adds on top of the starting terrain above — incumbency, past results, campaign finance and the other fitted terms — measured from that terrain rather than from EVEN. It is a comparison with the starting point already shown, not a separate input. The source detail lists the variables the fit uses.
- Fitted baseline -7.192 minus starting point -19.930 = 12.738 points.
- For orientation, the presidential results here: 2024 R+19.9, 2020 R+16.3.
- The work: the −7.2 D fundamentals push is the sum of the dynamic formula's surviving variables for this race — each one's own contribution is listed below.
- fundamentals core = 25-term dynamic formula (mass fit over the master feature matrix, held-out-cycle validated; see matrix/feature_dictionary.md + mass_fit_report.json)
- 9-term formula, held-out validated.
National environment +3.187 points
The contribution to this race’s margin, not the national polling margin itself. The race’s loading, reference level and polling blend determine how much of the national climate reaches its final forecast.
- Three-source blend, updated 2026-10-14: 53% generic-ballot aggregates (D+7.7) · 28% special-election overperformance (D+9.0 across 46 specials) · 20% approval-implied (D+9.1 from net approval -24.3).
- Latest polls — generic ballot 2026-10-14 (14 days old), approval 2026-10-14 (14 days old).
- Generic-ballot average D+7.7 · support factor 0.87 (the share of that channel's capacity the admitted polls carry) — separate inputs; their product is a capacity diagnostic, not a margin.
- Weights are the 55/25/20 capacities scaled by each channel's evidence and renormalized, so thin polling widens the interval instead of pulling the center toward zero — 12% of the weight is carried that way.
- Blended national environment: D+8.3.
- Applied at full strength to this chamber's races.
- This step’s recorded contribution to the margin is +3.2 D.
- Blended national environment: D+8.3 (updated 2026-10-14).
- Effective poll weight 88%; fundamentals share 12%, carried by the interval (×1.06) rather than by the center.
- The support factor is the share of the generic-ballot capacity the admitted polls carry; average × support is a capacity diagnostic, not a margin, and is not what the row above multiplies.
- Applied at full strength to this chamber: +3.2 of this margin.
This race’s polls −18.904 points
What this race’s own recent polling adds beyond its prior. The forecast weights each poll for recency and sample size and counts each pollster once; the weights listed here are those of the polls’ own average.
- Concord Public Opinion Partners (2026-10-23, n=410): R+28.0 · weight 0.52 in the poll average
- Quantus Insights (2026-10-18, n=667): R+24.4 · weight 0.63 in the poll average
- Peak Insights (2026-10-12, n=500): R+32.0 · weight 0.51 in the poll average
- Concord Public Opinion Partners (2026-10-08, n=405): R+22.0 · weight 0.43 in the poll average
- American Pulse Research & Polling (2026-09-24, n=604): R+26.2 · weight 0.45 in the poll average
- Aspect Strategic (2026-09-15, n=715): R+30.0 · weight 0.44 in the poll average
- … and 9 more below.
- Democrat-versus-Republican poll average R+22.6, from 15 polls · 15 recorded polls. This is the polls’ own average, each poll at its published margin, the figure this page’s poll summary shows. In Senate races the forecast then counts a poll sponsored by a party or campaign at a quarter of its weight and moves its margin 2 points against that party, which puts the average it reads at R+21.7. It then applies a fitted correction of 1.6 points toward Republicans for Senate races, measured from past polling error, before blending it with its other evidence. The forecast gives the polls 98% of the weight against its structural prior for this race, which moves the margin 18.9 points toward Republicans from where it stood before the polls. Eligible polls: latest poll: 2026-10-23 (5 days old).
Structural safeguards −3.707 points
Bounded corrections that keep the model consistent with structural facts.
- Applied only when a safe state's dynamic fundamentals point in the same direction as its strong presidential lean but are materially compressed toward zero.
- The 25% correction toward that lean improved safe-race MAE in strict expanding-window validation without changing a historical call.
- The disclosed adjustment is −3.7 D.
These are the fitted model’s named contributions to the partisan coordinate, before the candidate-field calculation.
| Named factor | Contribution |
|---|---|
| This race's pollsAdmitted head-to-head polls of this race, recency- and quality-weighted. | −18.90 |
| FundamentalsThe admitted fitted baseline. Its surviving variables differ by office; the source detail above identifies those used for this race. | −7.19 |
| Structural terrain safeguardA bounded pull toward presidential terrain in heavily partisan states. | −3.71 |
| National environmentThe national environment’s contribution to the prior. Polling can attenuate its influence; this value is not the national polling margin. | +3.19 |
| Other factors | 0.00 |
Where the votes are
The map of this race loads here.
Recent elections
| Election | Result | Votes cast |
|---|---|---|
| 2020 · U.S. Senate ↗ | R+10.0 | 605,637 |
| 2014 · U.S. Senate ↗ | R+17.7 | 369,826 |
| 2008 · U.S. Senate ↗ | D+45.8 | 477,658 |
| 2002 · U.S. Senate ↗ | D+31.0 | 326,537 |
Margins are the Democrat’s share of all votes cast minus the Republican’s.
The money
Seth Bodnar ↗
I$3.2Mraised
$978K cash on hand
Kurt Alme ↗
R$2.0Mraised
$1.5M cash on hand
Alani Bankhead ↗
D$59Kraised
$21K cash on hand
The tick marks cash on hand. A missing filing stays blank rather than becoming $0.
One more fundraising reportCall the Map · $325
The candidates are comfortably out-fundraising the website covering them. A little rude, perhaps, but statistically unsurprising.
- Received so far
- $325
- Measured compute
- $26,188.58
Ko-fi and Buy Me a Coffee supports are counted as each one arrives. Measured compute prices model runs at standard published API rates; it is not what I paid. Hosting, data and subscriptions, the domain and my own time are not counted. Donations buy gratitude, never a forecast adjustment.
Supporters are listed by first name and last initial; a username alone is shortened to its first eight characters. Want your full name shown? Say so in your message. Give privately, or leave the name blank, and you are listed as Anonymous, with the platform and date. Supporters who give a name may also be thanked by name in the newsletter.
Thank you to Tom H., ColoradoFlyer, Chris, EW, gbaileym…, True Independent, MT V., JBL, Erin G., Caroline M., Melanie, MKV and 7 more.
Outside spending
Separate from what the campaigns raisedFor and against Seth Bodnar$10.3M
7 spending groups
| Group | For | Against |
|---|---|---|
| INDEPENDENT PAC | $5.7M | $0 |
| MONTANA FREEDOM PAC | $2.5M | $0 |
| MORE JOBS, LESS GOVERNMENT | $0 | $2.0M |
| AB PAC | $81K | $0 |
| Montanans for Public Lands | $65K | $0 |
| WILD MONTANA ACTION FUND | $30K | $0 |
| Leadership in Action | $0 | $10K |
For and against Kurt Alme$4.3M
9 spending groups
| Group | For | Against |
|---|---|---|
| Americans for Prosperity Action, Inc. (AFP Action) DBA CVA Action and DBA LIBRE Action | $2.1M | $0 |
| MONTANA FREEDOM PAC | $0 | $1.0M |
| HIGH PLAINS PAC | $515K | $0 |
| AMERICAN MISSION | $497K | $0 |
| HUNTER ACTION FUND (HAF) | $61K | $0 |
| MORE JOBS, LESS GOVERNMENT | $40K | $0 |
| SEAL PAC USA | $10K | $0 |
| WILD MONTANA ACTION FUND | $0 | $5K |
| NRA VICTORY FUND, INC. | $5K | $0 |
Includes primary spending. Opposition is recorded against its named target; no benefit to another candidate is assumed.
$4.8M in outside spending on earlier candidates.
No filing matched: Kyle Austin.
FEC filings · through 06/30/2026 · Definitions & method
Race context
- Turnout, 2018 midterm
- 60.8% 509,213 ballots
- Turnout, 2022 midterm
- 53.3% 468,326 ballots
- 2024 presidential margin
- R+20.6between the two parties
Turnout is ballots cast statewide as a share of the voting-eligible population. Source: University of Florida Election Lab ↗
Population profile
U.S. Census Bureau, 2022 American Community Survey 5-year estimates ↗
Coverage
4 stories · 1 quote
- Libertarian Senate candidate’s ‘pet of society’ remark draws backlash ↗
Montana Free Press · Oct 28
- Senate candidate Kyle Austin’s “pet of society” comments have sparked controversy, prompting attacks among candidates and garnering criticism from tribal community members. ↗
Montana Free Press · Official · 5h ago
curated state newsroom · recent Bluesky post · named-race match - Four candidates face-off in chaotic Senate race ↗
Montana Public Radio · Oct 15
- Montana Democratic Party chair resigns to back independent in the U.S. Senate race ↗
Montana Public Radio · Oct 14
- Montana's Senate hopefuls face off in first all-candidate debate ↗
Montana Public Radio · Oct 12
Forecast as of October 28, 2026: Call the Map currently has Kurt Alme ahead of Seth Bodnar by 17.6 points, with a 94 in 100 chance to lead. This is an open seat. That result would keep the seat with Republicans. The forecast reads 17 polls that named every candidate in this race, listed under “The polls”. The current poll average of the Democrat against the Republican is R+22.6; 15 public polls are recorded.