Local Elections

This site is primarily concerned with the next general election, but it's hard to resist including information about local elections as well, where interesting data can be displayed. Only the main local elections each year are included here; no local by-elections, and no mayoral elections.

See the methodology at the end of the page for details on how the Sankey diagrams are constructed.

May 1, 2025

Results as per Wikipedia:

Party Seats Won Total Seats Change
Labour 99 6132 -186
Conservative 316 4358 -676
Liberal Democrats 370 3179 +163
Green 80 895 +45
Reform 677 805 +677
Other/Independent 94 2602 -23

Sankey diagrams (partial information)

Select one of the options below to see a Sankey diagram of how seat counts flowed (or are projected to flow) between parties.

























Represented seat counts

Missing data reasons

Methodology

Many web sites provide overall numbers of how many seats a party has won or lost compared with the previous time those seats were contested. That information is included here, but additionally, there's an attempt - as far as possible - to show the flow of seats from one party to another, via Sankey diagrams. These diagrams show fewer seats than the total number contested, for various different reasons:

(In the future, I may represent ambiguities with an intervening "unknown" node.)

Multi-seat algorithm

When multiple seats are filled in an electoral district, and when the previous election had the same number of seats available, the following algorithm is used to construct transitions from "party before" to "party after":

Algorithm examples

Simple (no left-overs to consider): (Con, Lab, Con) => (Con, Con, Lab):

All "unused current winners" are in the same party: (Con, Lab, LibDem, Green) => (Ref, Con, Lab, Ref):

All "previous" entries are in the same party: (Con, Lab, Lab, Lab) => (Ref, Con, Lab, LibDem):

Both remaining pools have multiple parties: (Con, Lab, Green) => (Lab, Ref, LibDem):

(In this case, only two of the seats count as being "missing".)