ME-02 · U.S. House
Matthew Dunlap is slightly favored to take Maine’s 2nd congressional district in the final ranked-choice round. Predicted margin: D+0.8.
Under each share, its likely range (80 in 100 simulations) · ranked-choice transfers are not modeled; the two-candidate forecast is read as the final round
Background
Open after Golden retired (announced Nov 2025); Dunlap won a contested D primary (RCV, Jun 9); LePage unopposed for the GOP, Trump-endorsed.
Forecast history
Latest reading · Oct 28 · first published Sep 9 · 80% range · margin points R+6.6 to D+8.1. Methodology
About this series
Reconstructed with the current model Aug 1 – Sep 8 and Sep 16 – Sep 18; published readings Sep 9 – 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 | Margin | Chance | 80% range | Reading |
|---|---|---|---|---|
| Oct 28 | D+0.8 | D win 55.8% | R+6.6 to D+8.1 | Published forecast |
| Oct 27 | D+0.8 | D win 55.7% | R+6.6 to D+8.1 | Published forecast |
| Oct 26 | D+0.8 | D win 55.7% | R+6.6 to D+8.1 | Published forecast |
| Oct 25 | D+0.7 | D win 55.6% | R+6.6 to D+8.1 | Published forecast |
| Oct 24 | D+0.7 | D win 55.6% | R+6.6 to D+8.1 | Published forecast |
| Oct 23 | D+0.7 | D win 55.6% | R+6.6 to D+8.1 | Published forecast |
| Oct 22 | D+0.7 | D win 55.5% | R+6.6 to D+8.1 | Published forecast |
| Oct 21 | D+0.7 | D win 55.5% | R+6.6 to D+8.1 | Published forecast |
| Oct 20 | D+0.7 | D win 55.4% | R+6.6 to D+8.1 | Published forecast |
| Oct 19 | D+0.7 | D win 55.3% | R+6.7 to D+8.1 | Published forecast |
| Oct 18 | D+0.7 | D win 55.3% | R+6.7 to D+8.0 | Published forecast |
| Oct 17 | D+0.7 | D win 55.3% | R+6.7 to D+8.0 | Published forecast |
| Oct 16 | D+0.4 | D win 53.4% | R+6.9 to D+7.8 | Published forecast |
| Oct 15 | D+0.4 | D win 53.3% | R+6.9 to D+7.8 | Published forecast |
| Oct 14 | D+0.4 | D win 53.3% | R+7.0 to D+7.8 | Published forecast |
| Oct 13 | D+0.4 | D win 53.2% | R+7.0 to D+7.8 | Published forecast |
| Oct 12 | D+0.4 | D win 53.1% | R+7.0 to D+7.8 | Published forecast |
| Oct 11 | D+0.4 | D win 53.1% | R+7.0 to D+7.8 | Published forecast |
| Oct 10 | D+0.4 | D win 53.1% | R+7.0 to D+7.8 | Published forecast |
| Oct 9 | D+0.4 | D win 53.1% | R+7.0 to D+7.8 | Published forecast |
| Oct 8 | D+0.4 | D win 53.0% | R+7.0 to D+7.8 | Published forecast |
| Oct 7 | D+0.4 | D win 53.0% | R+7.0 to D+7.8 | Published forecast |
| Oct 6 | D+0.4 | D win 52.9% | R+7.0 to D+7.7 | Published forecast |
| Oct 5 | D+0.4 | D win 52.4% | R+7.0 to D+7.7 | Published forecast |
| Oct 4 | D+0.4 | D win 52.4% | R+7.0 to D+7.7 | Published forecast |
| Oct 3 | D+0.3 | D win 52.6% | R+7.0 to D+7.7 | Published forecast |
| Oct 2 | D+0.4 | D win 52.4% | R+7.1 to D+7.8 | Published forecast |
| Oct 1 | D+0.3 | D win 52.5% | R+7.1 to D+7.8 | Published forecast |
| Sep 30 | D+0.3 | D win 52.2% | R+7.1 to D+7.8 | Published forecast |
| Sep 29 | D+0.3 | D win 52.2% | R+7.1 to D+7.8 | Published forecast |
| Sep 28 | D+0.3 | D win 52.6% | R+7.1 to D+7.8 | Published forecast |
| Sep 27 | D+0.3 | D win 52.3% | R+7.1 to D+7.8 | Published forecast |
| Sep 26 | D+0.3 | D win 52.5% | R+7.1 to D+7.8 | Published forecast |
| Sep 25 | D+0.3 | D win 52.3% | R+7.1 to D+7.8 | Published forecast |
| Sep 24 | R+1.7 | R win 61.6% | R+9.3 to D+5.9 | Published forecast |
| Sep 23 | R+1.7 | R win 61.7% | R+9.3 to D+5.9 | Published forecast |
| Sep 22 | R+1.4 | R win 59.4% | R+9.1 to D+6.4 | Published forecast |
| Sep 21 | R+1.4 | R win 59.4% | R+9.1 to D+6.4 | Published forecast |
| Sep 20 | R+1.4 | R win 59.2% | R+9.1 to D+6.4 | Published forecast |
| Sep 19 | R+1.4 | R win 59.4% | R+9.1 to D+6.4 | Published forecast |
| Sep 18 | R+1.4 | R win 58.8% | R+9.1 to D+6.4 | Reconstructed with the stated inputs |
| Sep 17 | R+1.4 | R win 59.0% | R+9.1 to D+6.4 | Reconstructed with the stated inputs |
| Sep 16 | R+1.4 | R win 59.0% | R+9.2 to D+6.4 | Reconstructed with the stated inputs |
| Sep 15 | R+1.1 | R win 57.0% | R+9.1 to D+7.0 | Published forecast |
| Sep 14 | R+1.1 | R win 57.1% | R+9.1 to D+7.0 | Published forecast |
| Sep 13 | R+1.1 | R win 57.2% | R+9.1 to D+7.0 | Published forecast |
| Sep 12 | R+1.1 | R win 57.3% | R+9.2 to D+6.9 | Published forecast |
| Sep 11 | R+1.1 | R win 57.7% | R+9.2 to D+6.9 | Published forecast |
| Sep 10 | R+1.2 | R win 57.7% | R+9.2 to D+6.9 | Published forecast |
| Sep 9 | R+1.3 | R win 58.2% | R+9.3 to D+6.8 | Published forecast |
| Sep 8 | R+1.2 | R win 57.6% | R+9.3 to D+6.8 | Reconstructed with the stated inputs |
| Sep 7 | R+1.3 | R win 57.9% | R+9.3 to D+6.8 | Reconstructed with the stated inputs |
| Sep 6 | R+1.3 | R win 57.9% | R+9.3 to D+6.8 | Reconstructed with the stated inputs |
| Sep 5 | R+1.3 | R win 58.1% | R+9.4 to D+6.8 | Reconstructed with the stated inputs |
| Sep 4 | R+1.3 | R win 58.3% | R+9.4 to D+6.7 | Reconstructed with the stated inputs |
| Sep 3 | R+1.3 | R win 58.4% | R+9.4 to D+6.7 | Reconstructed with the stated inputs |
| Sep 2 | R+1.4 | R win 58.5% | R+9.4 to D+6.7 | Reconstructed with the stated inputs |
| Sep 1 | R+1.4 | R win 58.5% | R+9.4 to D+6.7 | Reconstructed with the stated inputs |
| Aug 31 | R+1.4 | R win 58.6% | R+9.4 to D+6.7 | Reconstructed with the stated inputs |
| Aug 30 | R+1.4 | R win 58.7% | R+9.5 to D+6.7 | Reconstructed with the stated inputs |
| Aug 29 | R+1.4 | R win 58.7% | R+9.5 to D+6.7 | Reconstructed with the stated inputs |
| Aug 28 | R+1.4 | R win 58.8% | R+9.5 to D+6.7 | Reconstructed with the stated inputs |
| Aug 27 | R+1.4 | R win 58.8% | R+9.5 to D+6.6 | Reconstructed with the stated inputs |
| Aug 26 | R+1.5 | R win 59.0% | R+9.5 to D+6.6 | Reconstructed with the stated inputs |
| Aug 25 | R+1.5 | R win 59.0% | R+9.6 to D+6.6 | Reconstructed with the stated inputs |
| Aug 24 | R+1.5 | R win 59.1% | R+9.6 to D+6.6 | Reconstructed with the stated inputs |
| Aug 23 | R+1.5 | R win 59.2% | R+9.6 to D+6.6 | Reconstructed with the stated inputs |
| Aug 22 | R+1.5 | R win 59.3% | R+9.6 to D+6.6 | Reconstructed with the stated inputs |
| Aug 21 | R+1.5 | R win 60.1% | R+9.6 to D+6.6 | Reconstructed with the stated inputs |
| Aug 20 | R+1.5 | R win 60.2% | R+9.6 to D+6.5 | Reconstructed with the stated inputs |
| Aug 19 | R+1.6 | R win 60.3% | R+9.6 to D+6.5 | Reconstructed with the stated inputs |
| Aug 18 | R+1.6 | R win 60.3% | R+9.7 to D+6.5 | Reconstructed with the stated inputs |
| Aug 17 | R+1.6 | R win 60.4% | R+9.7 to D+6.5 | Reconstructed with the stated inputs |
| Aug 16 | R+1.6 | R win 60.5% | R+9.7 to D+6.5 | Reconstructed with the stated inputs |
| Aug 15 | R+1.6 | R win 60.5% | R+9.7 to D+6.5 | Reconstructed with the stated inputs |
| Aug 14 | R+1.6 | R win 60.8% | R+9.7 to D+6.5 | Reconstructed with the stated inputs |
| Aug 13 | R+1.6 | R win 60.9% | R+9.7 to D+6.4 | Reconstructed with the stated inputs |
| Aug 12 | R+1.7 | R win 60.9% | R+9.7 to D+6.4 | Reconstructed with the stated inputs |
| Aug 11 | R+1.7 | R win 61.0% | R+9.8 to D+6.4 | Reconstructed with the stated inputs |
| Aug 10 | R+1.7 | R win 61.1% | R+9.8 to D+6.4 | Reconstructed with the stated inputs |
| Aug 9 | R+1.7 | R win 61.2% | R+9.8 to D+6.4 | Reconstructed with the stated inputs |
| Aug 8 | R+1.7 | R win 61.2% | R+9.8 to D+6.4 | Reconstructed with the stated inputs |
| Aug 7 | R+1.7 | R win 61.3% | R+9.8 to D+6.4 | Reconstructed with the stated inputs |
| Aug 6 | R+1.8 | R win 61.5% | R+9.9 to D+6.4 | Reconstructed with the stated inputs |
| Aug 5 | R+1.8 | R win 61.6% | R+9.9 to D+6.3 | Reconstructed with the stated inputs |
| Aug 4 | R+1.8 | R win 61.7% | R+9.9 to D+6.3 | Reconstructed with the stated inputs |
| Aug 3 | D+3.2 | D win 68.2% | R+5.6 to D+11.9 | Reconstructed with the stated inputs |
| Aug 2 | D+3.1 | D win 68.1% | R+5.6 to D+11.9 | Reconstructed with the stated inputs |
| Aug 1 | D+3.1 | D win 68.1% | R+5.6 to D+11.9 | Reconstructed with the stated inputs |
The polls
Poll average D+1.5A 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 House races the forecast then counts a poll sponsored by a party or campaign at full weight and moves its margin 2 points against that party, which puts the average it reads at D+0.3.9 recorded polls · 8 in the poll average
| Fieldwork | Added | Pollster | Result | Sample |
|---|---|---|---|---|
| from 2026-10-12 | Tulchin Research ↗ | D+4.0D 50% · R 46% | 500 LV | |
| from 2026-09-27 | Tulchin Research ↗ | D+2.0D 50% · R 48% | 500 LV | |
| from 2026-09-17 | University of New Hampshire ↗ | D+6.0D 51% · R 45% | 622 LV | |
| from 2026-08-11 | DCCC Targeting Team ↗ | R+1.0D 48% · R 49% | 621 LV | |
| from 2026-09-08 | Impact Research ↗House Majority PAC | EVEND 49% · R 49% | 500 LV | |
| from 2026-02-12 | University of New Hampshire ↗ | R+1.0D 46% · R 47% | 520 LV | |
| from 2026-07-11 | Tulchin Research ↗ | D+1.0D 49% · R 48% | 600 LV | |
| from 2026-04-26 | co/efficient ↗NRCC | R+10.0D 40% · R 50% | 918 LV |
Explore each poll’s weight in the average
Poll average D+1.5
- Published result
- D+4.0
- Weight in the poll average
- 0.52 · 14% of the average
- Fieldwork
- 12 Oct–14 Oct
- Sample
- 500 LV
- Sponsor
- Democratic sponsor · organization not listed
- Published result
- D+2.0
- Weight in the poll average
- 0.44 · 12% of the average
- Fieldwork
- 27 Sep–30 Sep
- Sample
- 500 LV
- Sponsor
- DEM sponsor · organization not listed
- Published result
- D+6.0
- Weight in the poll average
- 0.44 · 24% of the average
- Fieldwork
- 17 Sep–21 Sep
- Sample
- 622 LV
- Sponsor
- Not listed
- Published result
- EVEN
- Weight in the poll average
- 0.36 · 21% of the average
- Fieldwork
- 8 Sep–12 Sep
- Sample
- 500 LV
- Sponsor
- House Majority PAC
- Published result
- R+1.0
- Weight in the poll average
- 0.28 · 17% of the average
- Fieldwork
- 11 Aug–13 Aug
- Sample
- 621 LV
- Sponsor
- DEM sponsor · organization not listed
- Published result
- D+1.0
- Weight in the poll average
- 0.20 · 5.3% of the average
- Fieldwork
- 11 Jul–16 Jul
- Sample
- 600 LV
- Sponsor
- DEM sponsor · organization not listed
- Published result
- R+10.0
- Weight in the poll average
- 0.10 · 5.9% of the average
- Fieldwork
- 26 Apr–28 Apr
- Sample
- 918 LV
- Sponsor
- NRCC
- Published result
- R+1.0
- Weight in the poll average
- 0.03 · 1.8% of the average
- Fieldwork
- 12 Feb–16 Feb
- Sample
- 520 LV
- Sponsor
- Not listed
How the margin was built
Tap an input for its calculation and source.
Displayed values are rounded. This is the model coordinate before ranked-choice transfers.
Winning chances include ranked-choice transfers; this walk is on first choices, before them.
All calculations & sources
This district's measured terrain −8.948 points
Call the Map's partisan lean on the CURRENT district lines, before any current-cycle evidence. Every pull below is measured from here — not from EVEN.
- Call the Map partisan lean, district geography bound to this forecast edition.
- Prior source: observed_unchanged_lines.
Fitted model, above the terrain shown +11.311 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 2.363 minus starting point -8.948 = 11.311 points.
- One fitted structural total; this edition does not split it into partisan lean and incumbency.
- Fundamentals: +2.4 — the district's structural lean before this year's polling, money and candidate quality are added.
- This edition publishes that as one fitted total. It does not break it into a partisan-lean and an incumbency term, so this page does not invent that split.
- 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)
- 40-term formula, held-out validated.
National environment +2.071 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 +2.1.
- 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: +2.1 of this margin.
This race’s polls −3.649 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.
- Tulchin Research (2026-10-14, n=500): D+4.0 · weight 0.52 in the poll average
- Tulchin Research (2026-09-30, n=500): D+2.0 · weight 0.44 in the poll average
- University of New Hampshire (2026-09-21, n=622): D+6.0 · weight 0.44 in the poll average
- Impact Research (2026-09-12, n=500): ±0.0 · weight 0.36 in the poll average
- DCCC Targeting Team (2026-08-13, n=621): R+1.0 · weight 0.28 in the poll average
- Tulchin Research (2026-07-16, n=600): D+1.0 · weight 0.20 in the poll average
- … and 3 more below.
- Poll average D+1.5, from 8 polls · 9 recorded polls. This is the polls’ own average, each poll at its published margin, the figure this page’s poll summary shows. In House races the forecast then counts a poll sponsored by a party or campaign at full weight and moves its margin 2 points against that party, which puts the average it reads at D+0.3. The forecast gives the polls 88% of the weight against its structural prior for this race, which moves the margin 3.6 points toward Republicans from where it stood before the polls. Eligible polls: latest poll: 2026-10-14 (14 days old).
Votes for other candidates −0.024 points
Every step above is measured between the two major-party candidates alone, as if nobody else were on the ballot. The forecast sets 3.0% of the vote aside for other candidates and write-ins, so as a share of every vote cast the gap between the two is smaller by that much. This step is exactly that: the two-party margin times the share going to other candidates. It is the same arithmetic that turns the two-party margin into the two shares printed at the top of the page.
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. | −3.65 |
| FundamentalsThe admitted fitted baseline. Its surviving variables differ by office; the source detail above identifies those used for this race. | +2.36 |
| National environmentThe national environment’s contribution to the prior. Polling can attenuate its influence; this value is not the national polling margin. | +2.07 |
| Other factors | 0.00 |
Where the votes are
The map of this race loads here.
Recent elections
| Election | Result | Votes cast |
|---|---|---|
| 2024 · U.S. House ↗ | Ranked-choice electionRanked-choice election. The retained party totals alone do not establish the final-round winner. | 402,936 |
| 2022 · U.S. House ↗ | Ranked-choice electionRanked-choice election. The retained party totals alone do not establish the final-round winner. | 656,104 |
| 2020 · U.S. House ↗ | Ranked-choice electionRanked-choice election. The retained party totals alone do not establish the final-round winner. | 380,324 |
| 2018 · U.S. House ↗ | Ranked-choice electionRanked-choice election. The retained party totals alone do not establish the final-round winner. | 281,371 |
Historical district boundaries may differ. Margins are the Democrat’s share of all votes cast minus the Republican’s.
The money
Paul LePage ↗
R$2.6Mraised
$1.7M cash on hand
Matthew Dunlap ↗
D$1.2Mraised
$229K 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 Matthew Dunlap$1.6M
10 spending groups
| Group | For | Against |
|---|---|---|
| National Nurses United for Patient Protection | $436K | $0 |
| REAL CHANGE PAC | $292K | $0 |
| America PAC | $0 | $229K |
| CFFE PAC | $210K | $0 |
| Poverty To Prosperity | $0 | $190K |
| MAGA INC. | $0 | $105K |
| NO GOING BACK PAC INC. | $0 | $60K |
| Community Change Voters | $45K | $0 |
| Progressive Turnout Project | $15K | $0 |
| THE CONSERVATIVE CAUCUS DBA AMERICANS FOR CONSTITUTIONAL LIBERTY | $0 | $4K |
For and against Paul LePage$3.9M
6 spending groups
| Group | For | Against |
|---|---|---|
| HMP | $0 | $3.4M |
| Poverty To Prosperity | $290K | $0 |
| America PAC | $154K | $0 |
| THE CONSERVATIVE CAUCUS DBA AMERICANS FOR CONSTITUTIONAL LIBERTY | $46K | $0 |
| NO GOING BACK PAC INC. | $34K | $0 |
| NATIONAL RIFLE ASSOCIATION OF AMERICA POLITICAL VICTORY FUND | $9K | $0 |
Includes primary spending. Opposition is recorded against its named target; no benefit to another candidate is assumed.
$1.9M in outside spending on earlier candidates.
FEC filings · through 06/30/2026 · Definitions & method
Race context
- 2024 presidential vote here
- 397,438
- 2024 presidential margin
- R+9.2between the two parties
Population profile
U.S. Census Bureau, 2022 American Community Survey 5-year estimates ↗
Coverage
2 quotes
- Maine students, if able to vote, would send Democrat Hannah Pingree to the Blaine House, and would elect Troy Jackson, Chellie Pingree and Paul LePage to Congress, according to results from the mock election organized by the Secretary of State’s Office. ↗
States Newsroom · Official · 6h ago
curated newsroom network · recent Bluesky post · named-race match · election-topic match - Maine students, if able to vote, would send Democrat Hannah Pingree to the Blaine House, and would elect Troy Jackson, Chellie Pingree and Paul LePage to Congress, according to results from the mock election organized by the Secretary of State’s Office. mainemorningstar.com/2026/10/28/m... ↗
Maine Morning Star · Official · 10h ago
curated state newsroom · recent Bluesky post · named-race match · election-topic match
Forecast as of October 28, 2026: Call the Map currently has Matthew Dunlap ahead of Paul LePage by D+0.8, with a 56 in 100 chance in the final round. This is an open seat. That result would keep the seat with Democrats. The current poll average is D+1.5; 9 public polls are recorded.