LIVE NATIONAL POLLING AVERAGE
LPC
CPC
NDP
BQ
GRN
LPC LEAD
30D POLLS
P(MAJ)

See where the race is tightening, shifting, and slipping away.

Riding Watch gives politicos, reporters, and plugged-in voters a sharper read on Canada's federal election — from national momentum to battleground ridings and the local shifts that could decide the outcome.
View battleground ridings
Last updated: May 5, 2026 🇨🇦

Polling Averages — National

LPC
%
vs. last week
vs. 3 months
vs. last election
Liberal Party
CPC
%
vs. last week
vs. 3 months
vs. last election
Conservative Party
NDP
%
vs. last week
vs. 3 months
vs. last election
New Democratic Party
BQ
%
vs. last week
vs. 3 months
vs. last election
Bloc Québécois (nat.)
GPC
%
vs. last week
vs. 3 months
vs. last election
Green Party
PM

Seat Projection

343 seats · 172 for majority · 10,000 simulations

LPC
seats
vs. last week
vs. 3 months
vs. last election
Liberal Party
Current Seats: 170
CPC
seats
vs. last week
vs. 3 months
vs. last election
Conservative Party
Current Seats: 141
BQ
seats
vs. last week
vs. 3 months
vs. last election
Bloc Québécois
Current Seats: 22
NDP
seats
vs. last week
vs. 3 months
vs. last election
New Democratic Party
Current Seats: 6
GRN
seats
vs. last week
vs. 3 months
vs. last election
Green Party
Current Seats: 1
LPC Majority
LPC Minority
CPC Official Opposition
CPC Wins Government
172 seats needed for majority 95% CI: LPC · CPC Vacant Seats: 3

Riding-by-Riding Projections — All 343 Federal Ridings

Quick views:
343 ridings
Riding ↕ Prov. Rating ↕ Current Projected LPC% CPC% NDP% BQ% GPC%
Page 1 of 14

Leader Popularity

Preferred prime minister · Nanos Research rolling average
Mark Carney
Prime Minister
55%
preferred PM
vs. last week−2.0%
vs. 3 months+2.0%
vs. last election+11.2%
Liberal Party
Pierre Poilievre
Opposition Leader
22%
preferred PM
vs. last week
vs. 3 months−3.0%
vs. last election−19.3%
Conservative Party
Elizabeth May
Green Leader
2%
preferred PM
vs. last week−0.4%
vs. 3 months
vs. last election+1.4%
Green Party
Yves-F. Blanchet
Bloc Leader
2%
preferred PM
vs. last week−0.2%
vs. 3 months−0.6%
vs. last election−4.3%
Bloc Québécois
Avi Lewis
NDP Leader
N/A
preferred PM
vs. last weekN/A
vs. 3 monthsN/A
vs. last electionN/A
New Democratic Party

Poll Tracker

5-month rolling average · All pollsters included

Regional Breakdown

Click ▶ any region to expand by province / territory
Region LPC CPC NDP BQ GPC Leader
Atlantic 56%30%10%3% LPC
Québec 46%16%7%26%3% LPC
Ontario 49%34%11%3% LPC
Prairies 35%46%15%2% CPC
Alberta 35%49%12%2% CPC
Brit. Columbia 44%33%17%4% LPC
North 47%23%28%2% LPC

Recent Polls

PollsterDatesnMethodLPCCPCNDPBQ*GPCLead
Abacus DataNEWMay 22,800Online44%37%8%26%2%+7
Nanos ResearchNEWApr 301,050Phone+Online45%33%11%24%3%+12
Liaison StrategiesNEWApr 252,508Online45%34%9%24%2%+11
Nanos ResearchNEWApr 241,050Phone+Online45%32%12%25%4%+13
Abacus DataNEWApr 222,800Online45%36%8%25%2%+9
LégerApr 171,521Online44%35%9%26%3%+9
Angus ReidApr 145,029Online44%36%9%25%3%+8
Spark AdvocacyApr 61,504Online46%32%9%3%+14
Spark AdvocacyMar 261,504Online46%31%11%4%+15
Abacus DataMar 242,800Online45%36%9%25%3%+9
Liaison StrategiesMar 212,508Online46%32%8%24%3%+14
Nanos ResearchMar 201,050Phone+Online46.8%33.1%10.5%25.8%1.9%+13.7
Angus ReidMar 175,029Online44%37%9%24%3%+7
EKOSMar 151,847IVR47.5%27%15.1%25%3.1%+20.5
IpsosMar 121,501Online44%36%8%24%3%+8
* BQ figure = Quebec share only. Raw figures shown; house effects not applied to table.

🔬 Scenario Modeler

Drag the sliders to model different vote share outcomes. The parliament chamber and seat counts update live.
Vote Share Distribution = 100%
LPC CPC NDP BQ GRN Other
auto
All parties must sum to 100% — others rescale automatically when you drag.
Seats to Majority (172)
0172 ←343
Liberal
Conserv.
Bloc
NDP
Green
🏛 Liberal Majority Government — 196 seats

Paths to Victory — Strategic Outcome Analysis

Methodology

National and regional polls are aggregated through a multi-stage statistical pipeline. Each step from raw polling data to seat projection is described below.

Poll Collection & Weighting

We collect every publicly released federal voting-intention poll from all major Canadian firms: Abacus Data, Ipsos, Léger, Research Co., Nanos, Angus Reid, Mainstreet, Ekos, and Campaign Research. Each poll is weighted by recency (exponential time-decay with a 28-day half-life outside campaigns, 14-day during writ periods), sample size, and methodology. Polls older than 90 days are excluded. House effect corrections are applied to each firm before aggregation.

Province-Level Partial Pooling

When provincial poll crosstabs are available, they are blended with national-implied provincial estimates using a partial-pooling formula: the more provincial data we have, the more weight it receives. This prevents small provincial samples from dominating while still incorporating genuine regional signal. The Bloc Québécois is modelled only in Quebec; its share is held at zero in all other provinces.

Riding Prior

Each riding's starting point is a weighted blend of historical election results: 75% from the 2025 (45th) federal election and 25% from the 2021 (44th) election, adjusted where riding boundaries changed. This multi-election baseline provides more stability than relying on a single cycle. The model is structured to incorporate riding-level demographic data as a third prior component in future updates.

Adaptive Swing Model

National vote-share changes are distributed to individual ridings using a blend of proportional swing (scaling each party's local result by its national poll-to-baseline ratio) and uniform swing (adding the national change evenly). The blend weight varies per party: parties with a stronger local base receive more proportional swing, while marginal parties receive more uniform swing. Proportional ratios are capped between 0.40 and 1.40 to prevent extreme distortions. Quebec is modelled separately to handle the Bloc's regionally concentrated vote.

Incumbency & Local Effects

Incumbency advantage is applied conditionally: only if the sitting MP is actually seeking re-election (+1.5 points) or holds a cabinet/leadership position (+2.0 points). Open seats where the incumbent is not running receive no incumbency bonus. This is more realistic than a blanket party-hold boost. Individual riding-level overrides can be applied for known local factors such as star candidates or controversies.

Turnout Layer

A riding-level turnout index is computed from age demographics, using Statistics Canada census data and age-group turnout rates from Elections Canada. Ridings with lower expected turnout (younger populations) receive slightly wider uncertainty bounds in the simulation, reflecting the greater unpredictability of low-turnout areas. This layer is scaffolded for demographic data — currently using national defaults pending census integration.

Monte Carlo Simulation

We run 10,000 full-election simulations on every page load. In each simulation, correlated random errors are added at three levels: national (affecting all ridings), provincial (affecting ridings within a province), and local (riding-specific noise). Errors are correlated between parties using Cholesky decomposition — when one major party gains, the other tends to lose. The seat ranges, win probabilities, and confidence intervals you see are the direct output of these simulations.

Riding Ratings

Ratings are assigned based on win probability from the Monte Carlo simulations: Safe (≥95% probability of the leading party winning), Likely (80–95%), Lean (60–80%), and Toss-up (<60%). This is more informative than simple margin-based ratings because it accounts for the full distribution of possible outcomes, including correlated errors across ridings.

Limitations & Future Work

All models are simplifications. The model does not yet incorporate riding-level demographic regression priors (structured for future addition), sub-provincial polling crosstabs, or candidate-quality scoring. Seat projections widen in uncertainty during periods of rapid vote-share movement. The scenario modeller uses a fast deterministic projection without Monte Carlo. Treat all projections as probability estimates, not predictions.

Data Sources

Poll data is sourced from public press releases and media coverage from Abacus Data, Ipsos, Léger, Research Co., Nanos, Angus Reid, Mainstreet, Ekos, and Campaign Research. Historical riding results are drawn from Elections Canada official returns for the 44th (2021) and 45th (2025) general elections.

About

Why I Built This

I'm a technology professional based in Vancouver, BC who has always been fascinated by data modelling and Canadian politics. I built RidingWatch because I wanted a tool that let me (and anyone else who's curious) dig into riding-level projections, play with scenarios, and actually understand what's happening across all 343 federal ridings. This is a passion project, updated mostly in the evenings and on weekends, as time permits. I care about connecting data to real conversations and people. Understanding how the numbers align (or don't) with what's unfolding on the ground and in the national conversation. I hope this can be one tool in your toolbox to aid in that.

Independence & Transparency

In the interest of full transparency: I was once a federal candidate. That experience gave me a deep appreciation for how elections work at the riding level, but RidingWatch is purely a data project — it has no affiliation with any political party, campaign, media outlet, or polling firm. I'm committed to following the data wherever it leads, regardless of which party benefits. If you spot an error or think something looks off, I genuinely want to hear about it — reach out and I'll look into it.

Using This Site

National averages and the seat projection are at the top. Search for any riding directly or browse the full table. Click any riding for its detailed projection, historical trends, and local context. The Scenario Modeler lets you explore how national vote shifts would redistribute seats — try it out and see what happens.

On Uncertainty

These are probability estimates, not predictions — I want to be upfront about that. Seat totals are the mean of 10,000 correlated Monte Carlo simulations, with 95% confidence intervals shown (e.g. LPC 177–237 seats as of May 5, 2026). Local candidate effects and ground-game dynamics aren't fully captured by any model. The error standard deviations used in the simulation are starting estimates that will be calibrated through backtesting against 2019, 2021, and 2025 actual results. Treat this as one input among many when forming your own view.

How RidingWatch Is Different

The RidingWatch model uses an adaptive proportional-uniform swing with conditional incumbency, multi-election riding priors, and 10,000 correlated Monte Carlo simulations with three error layers (national, provincial, riding). Beyond the projections, RidingWatch is focused on interactive tools that let you explore the data in more meaningful ways — things like a real-time scenario modeler, per-riding strategic voting analysis, leader approval tracking, and AI-inferred and generated explanations for why projections might have changed.

Contact

RidingWatch was built in Vancouver, BC by a single technology professional who likes to model data and build with AI.

For inquiries, partnerships, or feedback, please email hello@ridingwatch.ca 🇨🇦

All 343 Federal Riding Projections

Click any riding to view its detailed projection, historical trends, and strategic analysis. Projections are updated frequently using an adaptive proportional-uniform swing model with 10,000 Monte Carlo simulations. Check Methodology for more information.

A Living Project — Built by One Person

RidingWatch is an independent, one-person project. I'm constantly refining the model, expanding data sources, and building new tools — all driven by a commitment to following the data, not any party or agenda.

I embrace AI tools to help me build and maintain this site — they're a big part of how one person can do what would normally take a team. That said, AI isn't perfect and sometimes makes mistakes. If you spot something that doesn't look right, please let me know — your feedback helps me improve both the site and the AI models behind it.

Share feedback →