About this site
This site is developed by Jon Skeet, with ideas from friends and family. (If it breaks, it's my fault. If it's useful, it's down to the inspiration of others.) Please contact me at skeet@pobox.com with any feature requests or feedback.
This site has no financial incentives: there are no affiliate links, no adverts, no subscription-only features.
Much of the rest of this page goes into more technical detail than many users will need. I'm expecting the site to have a higher-than-normal proportion of users who are election geeks, however, and may wish to know exactly what the data means for any given page. If that's you, read on.
"No original thought"
As far as possible, this site simply presents data obtained from elsewhere. I'm not a political analyst by any means. That said, presenting data inherently involves some choices. The most obvious choice is the data sources used; the site code could stay exactly the same but only use polls and seat projections from massively biased data providers, and the pages would look very different. (Hopefully there's little or no dispute about the actual results of the elections, admittedly.) Other choices such as which colours to use for parties, when to categorise projections as "Safe" or "Likely" etc could change the impression given to users of the site as well, and there's no purely-neutral choice available in many cases.
The intention is that this page clarifies as many of those choices as possible. Please contact me if you feel any of these choices have been made or described poorly, or if there are choices which aren't described at all. I would like this site to be as unbiased as possible, and for it to be perceived that way too.
Data sources
Data on the site is obtained from:
- The Democracy Club
- The Office for National Statistics
- The UK Parliament APIs
- Individual seat projection and voting intention poll providers, who have all granted permission for the data to appear on this site
- The notional 2019 results based on 2024 constituencies.
- mySociety

Party colours
Many pages on the site use colours to indicate a party and (when a projection is involved) the strength of a projection. The table below shows what to expect across all parties and projection strengths.
In tables with multiple projections in each row, hovering your mouse pointer over a projection will show any more details if there are any. (These are typically projected vote shares or chances of winning the seat by party.) Tables with a single projection per row show any projection details in a separate column.
Party | Safe | Likely | Lean | Toss-up |
---|---|---|---|---|
Labour | Safe Lab | Likely Lab | Lean Lab | Toss-up Lab |
Conservative | Safe Cons | Likely Cons | Lean Cons | Toss-up Cons |
Liberal Democrats | Safe LD | Likely LD | Lean LD | Toss-up LD |
Scottish Nationalist | Safe SNP | Likely SNP | Lean SNP | Toss-up SNP |
Reform UK | Safe Ref | Likely Ref | Lean Ref | Toss-up Ref |
Green | Safe Green | Likely Green | Lean Green | Toss-up Green |
Plaid Cymru | Safe PC | Likely PC | Lean PC | Toss-up PC |
Sinn Féin | Safe SF | Likely SF | Lean SF | Toss-up SF |
Democratic Unionist | Safe DUP | Likely DUP | Lean DUP | Toss-up DUP |
Social Democratic Labour | Safe SDLP | Likely SDLP | Lean SDLP | Toss-up SDLP |
Ulster Unionist | Safe UUP | Likely UUP | Lean UUP | Toss-up UUP |
Alliance | Safe Alliance | Likely Alliance | Lean Alliance | Toss-up Alliance |
Traditional Unionist Voice | Safe TUV | Likely TUV | Lean TUV | Toss-up TUV |
Independent | Safe Ind | Likely Ind | Lean Ind | Toss-up Ind |
Other | Safe Other | Likely Other | Lean Other | Toss-up Other |
Notional 2019 results
In 2023, the "2023 Periodic Review of Westminster constituencies" changed many constituency boundaries. Professors Michael Thrasher and Colin Rallings performed analysis on how the 2019 election results might have been affected by the boundary changes, publishing a notional 2019 result for each new constituency. These results have been widely used by news organisations when compiling statistics such as the direction and magnitude of swing in the 2024 election or in by-elections. These are still notional results of course; aspects such as tactical voting (and inherent inaccuracies due to lack of data) mean that the results can't be considered to be definitive.
On this site, the notional results are always highlighted as being notional. They are associated with the expected winning party rather than any given candidate, given that the votes were attributed by party.
Additionally, for the sake of statistical convenience, notional results for the Brexit Party in 2019 are attributed to Reform UK on this site. (Reform UK didn't "break away" from the Brexit Party or anything like that; the Brexit Party was renamed to Reform UK in 2020.) I hope this doesn't cause too much confusion.
Party consolidation
Various parties are distinct in terms of registrations with the Electoral Commission, but are generally regarded as equivalent for statistical purposes. This site consolidates the parties in the following ways. The ID at the start of each full name (e.g. "PP53") is the Electoral Commission ID, as per the Electoral Commission party register, or a pseudo-ID constructed by The Democracy Club (starting with "joint-party") for joint candidacies.
- Labour:
- PP53: Labour Party
- joint-party:53-119: Labour and Co-operative Party
- Conservative:
- PP52: Conservative and Unionist Party
- PP51: Conservative and Unionist Party
- Liberal Democrats:
- PP90: Liberal Democrats
- Scottish Nationalist:
- PP102: Scottish National Party (SNP)
- Reform UK:
- PP7931: Reform UK
- Green:
- PP63: Green Party
- PP130: Scottish Green Party
- PP305: Green Party
- Plaid Cymru:
- PP77: Plaid Cymru - The Party of Wales
- Sinn Féin:
- PP39: Sinn Féin
- Democratic Unionist:
- PP70: Democratic Unionist Party - D.U.P.
- Social Democratic Labour:
- PP55: SDLP (Social Democratic & Labour Party)
- Ulster Unionist:
- PP83: Ulster Unionist Party
- Alliance:
- PP103: Alliance - Alliance Party of Northern Ireland
- Traditional Unionist Voice:
- PP680: Traditional Unionist Voice - TUV
Additionally, the Speaker of the House, when seeking re-election, is counted within the "Other" group of parties, as they cannot vote with the party they are naturally associated with.
Seat projection summaries
Each seat projection set (MRP, SRP etc) makes a projection about the winner of each seat, usually with more nuance - at least a strength of the projection (safe, likely etc) and sometimes with more detail such as the projected chances of various parties winning the seat. When showing the map or Sankey diagram for a seat projection set, or simply summarising it along with all seat projections, the site only uses the information about the most likely winning party. (That's the simplest way of understanding the numbers - for example, on the seat projections page it means the summary table at the top is effectively a count of the per-seat results listed below.) However, that doesn't tell the whole story, and sometimes it disagrees with the information that the data provider will publish.
Consider the following scenario with only the Conservative and Labour parties in the running (for simplicity). Any constituency with a name beginning with A to K has a 100% chance of going to Labour; any constituency with a name beginning with M to Z has a 51% chance of going to the Conservatives, and a 49% chance of going to Labour. You can see this precise scenario on the staging site (which includes various aspects of test data, and should always include this demonstration scenario). When counting purely "most likely winners", we'd end up with 312 Labour seats and 320 Conservative seats. However, when taking the probabilities into account - and assuming no systemic polling bias - the results are more likely to be around 469 Labour seats and 163 Conservative seats.
The details seat projection summaries always show a "Per-seat winner" summary row, simply counting the number of seats for each party listed as the most likely winner. Where victory chances have been provided, a "Victory chance basis" row is also added. Where the data provider has given their own summary (usually based on their more fine-grained data), that's listed as "Provider distribution".
Projection strengths
This site uses "Safe", "Likely", "Lean" and "Toss-up" to describe how confident a projection is. Some data providers will use similar categorisations themselves, in which case the site follows suit. Otherwise:
Where the provider provides projected win probabilities, the probability is used as following:
- A probability of 90% or more is "Safe".
- A probability in the range [75%, 90%) is "Likely".
- A probability in the range [50%, 75%) is "Lean".
- A probability of less than 50% is toss-up.
Where the provider provides projected vote shares, the majority (as a percentage) is used as following:
- A projected majority of 25% or more is "Safe".
- A projected majority in the range [15%, 25%) is "Likely".
- A projected majority in the range [7.5%, 15%) is "Lean".
- A projected majority of less than 7.5% is "Toss-up".
The boundaries for the majority/probability-based descriptions may be adjusted over time based on feedback. If they are adjusted, all the displayed data will be adjusted for the new boundaries as well. In other words, the currently-shown data shown will always be consistent with the currently-shown details on this page.
Third-party resources
The Sankey diagrams are rendered using the Plotly.js Library, available under the MIT licence.
The hex maps are rendered using the Open Innovations Hexmap Library, available under a CC BY 4.0 licence.
The hover prompt "question mark in circle" icon is from Wikimedia Commons, available under a CC0 1.0 licence.
Privacy
This site does not accept or store any data, beyond regular HTTP logs containing IP addresses. This site does not use any cookies or any other tracking devices. Local storage may be used for some features, to remember preferences.