Interactive seat projection

UK Election Projection

Explore how national swing, tactical voting and regional shifts could reshape the Commons from the 2024 baseline.

2024 general election baseline 650 Westminster seats Proportional swing
Largest party β€”
Projected changes β€”
Tightest marginal β€”
πŸ“Š Sliders pre-loaded from as of 2026-04-02 Data: 2 April 2026
Vote share inputs
βˆ’
GB β€” England, Scotland & Wales
Scotland only
Wales only
GB total (main parties) β€”
~7% held constant for independents & minor parties
Swing model
βˆ’
Polling smoother
Scenarios
+
Tactical voting
+
Projected seat totals (650) β€”
Summary
Marginals
Seat changes
Tactical impact
Regional
All seats
πŸ—Ί Map
πŸ“ˆ Polling
About
PartySeatsΒ±2024With tacticalTact. Ξ”Vote %2024 %
ConstituencyRegionWinner2ndMajority %Swing needed
ConstituencyRegion2024 winnerProjectedMP (2024)Majority %
ConstituencyRegionWithout tacticalWith tacticalEffect
RegionSeatsLabConLDRUKGreenSNPPCOther
ConstituencyRegion2024ProjectedMajority %MP
Loading boundaries…
National vote share polls from 18+ pollsters (Jul 2024 – Mar 2026) Β· Three smoothing methods: LOWESS Rolling 21d Kalman Β· Use the buttons below the chart to switch smoother and toggle quality-weighted / unweighted Β· Select a polling smoother in the left panel to pre-set the vote share sliders Β· Hover over any data point for pollster name and sample size
πŸ“Š
Data sources
Constituency results: House of Commons Library 2024 GE dataset (650 seats) Β· Polling: Wikipedia "Opinion polling for the next UK general election" aggregate Β· Boundaries: ONS Open Geography Portal (Dec 2024, simplified to 500m tolerance)
πŸ“…
Last updated
2 April 2026 Β· Kalman / LOWESS / Rolling smoothers as of 2026-04-02 Β· Polling data: 18+ pollsters (Jul 2024 – Apr 2026)
βš™οΈ
Swing models
UNS, Proportional swing, and Bayesian hierarchical Β· Applied at constituency level with renormalisation Β· Bayesian model includes region-level partial pooling and immigration covariates Β· Regional sliders for Scotland (SNP) and Wales (PC)
πŸ—ΊοΈ
Coverage
All 650 seats Β· GB parties projected nationally Β· SNP Scotland-only (57 seats) Β· PC Wales-only (32 seats) Β· NI parties (18 seats) held at 2024 result

How the projection works

The tool takes the actual 2024 constituency-level vote shares as a baseline and applies a national swing β€” derived from polling data β€” to project what would happen if an election were held today. Users control the assumed national vote share for each party via sliders, pre-loaded from the selected polling smoother. The swing is applied independently to each of the 650 constituencies, and a winner is determined seat by seat.

Three swing models are available. Uniform National Swing (UNS) adds the same percentage-point change to every constituency: new_share = old_share + (new_national βˆ’ 2024_national). Proportional swing scales each constituency in proportion to its existing share: new_share = old_share Γ— (new_national / 2024_national). After either method, constituency vote shares are renormalised to sum to 100%. Proportional swing tends to produce smaller changes in safe seats and larger changes in marginals, which can be more realistic for large swings.

Bayesian hierarchical extends proportional swing by allowing each region to swing differently, calibrated from empirical 2019β†’2024 constituency-level data. The model works in additive log-ratio (ALR) space with Labour as the reference party, where proportional swing is a natural linear operation. For each party p and constituency c in region r, the projected log-ratio swing is:

Ξ΄c,p = Ξ”national,p + (Ξ³r,p βˆ’ ΞΌp) + Ξ²p Β· Ξ”Fc

where Ξ”national is the poll-implied national swing, (Ξ³r βˆ’ ΞΌ) is the region-specific deviation learned from the 2019β†’2024 data, and Ξ”F is a constituency-level covariate measuring the change in foreign-born population share (2011β†’2021 Census). The hierarchical structure is: Ξ³r,p ~ N(ΞΌp, τ²p) and Ξ΄c,p ~ N(Ξ³r[c],p, σ²p), with half-Cauchy(1.5) priors on the scale parameters. The model was fit via NUTS (No-U-Turn Sampler) in PyMC with 2 chains Γ— 2,000 draws on 643 GB constituencies across 11 regions.

Key posterior findings: Reform UK swing varied most across regions (Ο„ = 0.80) compared to Conservative (0.33), Lib Dem (0.40), or Green (0.39). The immigration-change covariate was most informative for Reform (Ξ² = βˆ’0.15, indicating areas with high 2011–2021 immigration change already swung to Reform by 2024 and are less likely to swing further) and Green (Ξ² = +0.15). The foreign-born data covers 316 of 650 constituencies; constituencies without coverage are pooled toward their regional mean. SNP and Plaid Cymru use proportional swing within Scotland and Wales respectively, as for the other models.

SNP and Plaid Cymru are handled regionally. The slider values represent their share within Scotland or Wales respectively, and are converted to GB-equivalent figures using 2024 electorate ratios (Scotland β‰ˆ 8.7% of GB electorate, Wales β‰ˆ 5.0%) before the swing is applied.

Polling smoothers

Three smoothing methods are available on the Polling tab, each offering a different trade-off between responsiveness and stability. All three can be toggled between quality-weighted and unweighted variants using the buttons below the chart.

LOWESS (Locally Weighted Scatterplot Smoothing) β€” fits a weighted linear regression at each point using a tricube kernel with bandwidth = 25% of the data span. In the weighted variant, each poll's kernel weight is multiplied by its pollster's quality rating (from a curated ratings table), so higher-rated firms like Savanta, Opinium, and YouGov exert more pull on the trend line.

Rolling 21-day β€” a simple quality-weighted mean of all polls falling within a Β±10.5-day window centred on each date. Highly responsive to short-term shifts but noisier than the other methods. Useful for spotting sudden movements.

Kalman smoother β€” a local-level state-space model estimated via statsmodels.UnobservedComponents. The signal-to-noise ratio is determined by maximum likelihood estimation (MLE), allowing the model to learn the appropriate degree of smoothing from the data itself. This is the primary source for the slider defaults and generally offers the best balance of stability and responsiveness.

Note: the Green party estimate may be understated in periods where the Wikipedia source has sparse Green polling entries. The "Others" category (β‰ˆ 7%) is held constant and not projected.

Tactical voting models

Three tactical voting scenarios can be layered on top of the swing projection. Each operates at the constituency level, redistributing votes between specific groups of parties. The slider controls the proportion of eligible voters assumed to vote tactically (0–50%).

Progressive consolidation β€” in each constituency, a proportion t of non-leading Labour, Lib Dem, and Green voters (plus SNP in Scotland, Plaid Cymru in Wales) switch to whichever progressive candidate is locally strongest. This simulates coordinated anti-Conservative/anti-Reform tactical voting on the centre-left.

Right consolidation β€” the mirror image: a proportion t of the trailing party's voters among Conservative and Reform switch to whichever of those two is locally ahead. This models right-wing tactical voting to prevent vote-splitting.

Anti-Reform squeeze β€” a proportion t of Reform UK's local vote share shifts to whoever is best-placed to beat them, regardless of that candidate's party. This models a scenario where opposition to Reform specifically drives voter behaviour.

Tactical effects are applied after the swing model, so the "Tactical impact" tab shows seats that flip solely due to tactical behaviour, holding swing constant.

Scenarios

Three pre-built scenarios are available as quick-set buttons, each applying offsets from the current polling baseline:

🌿 Green surge β€” Green +8pp, offset by Lab βˆ’3, LD βˆ’2, RUK βˆ’2. Models a scenario where environmental issues drive a significant Green breakthrough at the expense of other progressive and protest-vote parties.

πŸ“‰ Reform decline β€” RUK βˆ’8pp, with Con +5, Lab +2, LD +1. Models Reform UK losing support back to the Conservatives and, to a lesser extent, Labour β€” a return toward a two-party pattern.

πŸ”„ Lab/Con recovery β€” Lab +5, Con +5, with RUK βˆ’6, LD βˆ’2, Green βˆ’2, SNP βˆ’2, PC βˆ’1. Models a reversion where the two main parties regain ground from smaller parties as election day approaches.

Constituency map

The Map tab displays all 650 constituencies using simplified boundary polygons from the ONS Open Geography Portal (December 2024 boundaries). Geometries were simplified from 314 MB to 3.6 MB using a 500-metre tolerance in EPSG:3857, preserving constituency shapes while enabling fast browser rendering. The map supports three views: Projected (coloured by projected winner), 2024 actual (coloured by 2024 result), and Changes only (highlighting only seats projected to change hands). Hover over any constituency for a tooltip showing projected winner, majority, and the sitting MP.

Data notes

Baseline correction: Islington North is corrected to reflect Jeremy Corbyn's win as an Independent (49.3% vote share), not as Labour.

Northern Ireland: the 18 NI constituencies (DUP, SF, SDLP, UUP, APNI) are held at their 2024 results throughout. National swing models do not apply meaningfully to NI's distinct party system.

Boundary mapping: 2019 results are projected onto 2024 boundaries using a closest-successor mapping derived from boundary overlap data. Of 650 constituencies, 649 have a clean 2019 predecessor.

Self-contained deployment: all constituency data (650 seats), boundary geometries (simplified GeoJSON), and polling data (406 polls) are embedded directly in this HTML file. The only external dependencies are CDN-hosted Leaflet.js (map rendering) and Plotly.js (charts). No server, no uploads, no API calls required.

Caveats & limitations

  • UNS limitations: Uniform National Swing systematically underperforms in very safe or very marginal seats. It assumes the same swing everywhere, which rarely holds in practice β€” incumbency effects, local issues, and differential turnout all cause deviations.
  • No uncertainty intervals: all figures shown are point estimates, not probabilistic forecasts. A seat projected with a 0.5% majority is shown identically to one with 25%. Real forecasters (e.g. Electoral Calculus, YouGov MRP) use simulation-based approaches that produce probability distributions.
  • By-elections not reflected: any by-election results between July 2024 and the next general election are not incorporated into the baseline. The starting point is the 4 July 2024 general election result.
  • No incumbency or candidate effects: the model does not account for personal votes, deselections, retirements, defections, or candidate quality β€” all of which can materially affect individual constituency results.
  • Polling uncertainty: national polls typically carry a margin of error of Β±2–3pp. Small differences between parties in the sliders can flip dozens of marginal seats, producing a false sense of precision.
  • This is a research and educational tool. It should not be cited as an official electoral forecast or used for betting purposes.