Beaches—East York
Nathaniel Erskine-Smith (Liberal) resigned July 7, 2026.
2025 result: LPC 68.0 · CPC 24.0 · NDP 7.0
Liberals hold a commanding lead — projection moves to — seats, a — majority probability.
UPDATED RECENTLYNathaniel Erskine-Smith (Liberal) resigned July 7, 2026.
2025 result: LPC 68.0 · CPC 24.0 · NDP 7.0
Richard Martel (Conservative) resigned July 7, 2026, following his appointment to the Senate.
2025 result: CPC 34.0 · LPC 31.0 · BQ 31.0
Jonathan Wilkinson (Liberal) resigned June 19, 2026, following his appointment as ambassador to the European Union.
2025 result: LPC 60.0 · CPC 34.0 · NDP 4.0
Each polygon is one riding, coloured by projected winner. Saturation reflects margin: pale = tossup, deep = safe. Hover for details, click to scroll to that riding in the directory below.
Tip: scroll to zoom, drag to pan, double-click to reset.
| Riding | Province | Projected winner | Margin | P(win) |
|---|
| Riding ↕ | Prov. | Rating ↕ | Current | Projected | LPC% | CPC% | NDP% | BQ% | GPC% |
|---|
| 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 |
🗳️ Three federal by-elections are underway for August 31 — projections, vacancies, and countdown →
| Pollster | Dates | n | Method | LPC | CPC | NDP | BQ* | GPC | Lead |
|---|---|---|---|---|---|---|---|---|---|
| Angus ReidNEW | Jul 27 | 1,769 | Online | 40% | 36% | 13% | 27% | 3% | +4 |
| Liaison | Jul 25 | 1,526 | IVR | 44% | 35% | 11% | 23% | 2% | +9 |
| NanosNEW | Jul 24 | 1,034 | Phone+Online | 44.7% | 29.5% | 12.7% | 32% | 4.5% | +15.2 |
| Abacus | Jul 16 | 4,205 | Online | 43% | 37% | 9% | 30% | 3% | +6 |
| Liaison | Jul 11 | 1,526 | IVR | 41% | 35% | 14% | 26% | 2% | +6 |
| Nanos | Jul 10 | 1,018 | Phone+Online | 43% | 31% | 15.1% | 27% | 3.7% | +12 |
| Abacus | Jul 2 | 2,366 | Online | 44% | 36% | 8% | 31% | 2% | +8 |
| Liaison | Jun 27 | 1,526 | IVR | 42% | 34% | 13% | 26% | 2% | +8 |
| Leger | Jun 22 | 1,528 | Online | 48% | 34% | 6% | 26% | 4% | +14 |
| Abacus | Jun 17 | 3,080 | Online | 45% | 37% | 9% | 26% | 2% | +8 |
| Liaison | Jun 13 | 1,526 | IVR | 41% | 32% | 14% | 26% | 2% | +9 |
| Nanos | Jun 12 | 1,021 | Phone+Online | 42.7% | 30.7% | 11.5% | 29% | 5.9% | +12.0 |
National and regional polls are aggregated through a multi-stage statistical pipeline. Each step from raw polling data to seat projection is described below.
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.
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.
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.
National vote-share changes are distributed to individual ridings using a blend of uniform swing (adding the national change evenly) and proportional swing (scaling each party's local result by its national poll-to-baseline ratio). Since July 30, 2026 the blend is predominantly uniform (90% uniform, 10% proportional): backtesting the engine against the 2025 election showed uniform swing materially reduces seat error and better preserves parties' local-strength seats. 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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 165–222 seats as of July 30, 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.
The RidingWatch model uses a predominantly uniform swing (90/10 uniform-proportional blend, backtested against the 2025 election) 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.
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 🇨🇦
Click any riding to view its detailed projection, historical trends, and strategic analysis. Projections are updated frequently using a predominantly uniform swing model with 10,000 Monte Carlo simulations. Check Methodology for more information.
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 →The national polling average as of July 30, 2026 is: Liberals 43%, Conservatives 35%, NDP 10%, Bloc Québécois 6% (national), Greens 3%. The average aggregates every published federal poll, weighted by sample size with a 28-day exponential decay and pollster house-effect corrections.
Under the fixed-date provision of the Canada Elections Act (s. 56.1), the next federal general election is scheduled for October 15, 2029 — the third Monday of October in the fourth calendar year after the April 2025 election. An earlier election is possible at any time if one is called or the government loses the confidence of the House.
Three stages: (1) a polling aggregate of all published federal polls, weighted by sample size, recency (28-day half-life), and pollster house effects; (2) riding-level projection from a blend of 2025 and 2021 results with proportional-plus-uniform swing and incumbency adjustments; (3) 10,000 correlated Monte Carlo simulations producing seat distributions, win probabilities, and confidence intervals. Full details are on the Methodology page.
A projection is a probability statement, not a prediction. Its inputs are public polls, which carry both random sampling error and the risk of shared systematic error — if every pollster misses the same way, no aggregation fixes it. That is why RidingWatch reports confidence intervals and outcome probabilities rather than a single number, and why an outcome given a 10% chance should still happen about one time in ten.
Aggregators make different judgment calls: how fast old polls decay, how pollster house effects are estimated, how national swing is translated to individual ridings, and how much correlated error the simulations assume. Small input differences compound at the seat level, so two models reading the same polls can land several seats apart while both being reasonable.
Survey mode matters (live phone, automated IVR, and online panels reach different people), as do weighting schemes, how undecided and leaning voters are treated, and field dates. Persistent, directional differences are called house effects; RidingWatch estimates and corrects for them in the polling average rather than treating every poll as interchangeable.
The House of Commons has 343 seats under the 2023 Representation Order, so a majority requires 172. A party short of 172 can still govern as a minority, relying on other parties to pass legislation and survive confidence votes.
Canada uses first-past-the-post in 343 separate contests, so seat counts depend on where votes are, not just how many there are. Support spread efficiently across many competitive ridings converts to more seats than the same support piled up in safe ones — which is why the seat projection can move without the national vote share changing, and vice versa.
A riding (formally an electoral district) is the geographic constituency that elects one Member of Parliament. There are 343 of them under the 2023 Representation Order, and RidingWatch projects every one, including the three territories. Each riding page shows past results, the current projection, and win probabilities.
Both come from 10,000 Monte Carlo simulations. A 95% confidence interval means 95% of simulations landed inside that seat range; a majority probability is simply the share of simulations in which a party reached 172 seats. A high probability is not certainty — it is a statement about how often an outcome occurs across thousands of plausible polling-error scenarios.
Less than the national numbers — and that is by design, not failure. Riding projections start from a blend of 2025 and 2021 local results, apply regional swing, and adjust for incumbency, but local factors like star candidates or by-election dynamics are hard to model. Treat riding ratings probabilistically: a riding rated 70% is expected to go the other way three times in ten.
The model updates with each weekly poll cycle; the site headline refreshes daily; the API and embeds always serve the live model. Data is free for non-commercial use with attribution (CC BY-NC 4.0) — there is a JSON API documented at /openapi.json, a machine-readable summary at /llms.txt, and embeddable widgets at /embed/.
Yes — every one of the 343 ridings has its own page with the current projection, win probabilities, a competitiveness rating, and full 2025 and 2021 results. Use the search bar, browse the riding directory, or star ridings on the map to build a personal watchlist.
No. RidingWatch is independent and non-partisan, with no affiliation with or funding from any party, campaign, or advocacy group. The model applies identical mathematical treatment to every party, and the full methodology is published so that treatment can be verified.