← All councils

Stockport

Every election cycle we have data for, most recent first.

8 cycles in our data
32.9% all-time seats elected below the quota (69 of 210)
21.4% all-time seats unfairly awarded (45 of 210 across 8 cycles)

Cycles

Council composition as of 2026

63 councillors, by party. One square per seat. Source: opencouncildata annual snapshot — reflects the council at the end of 2026 (after that year's elections, by-elections and defections). Hover any seat for the party.

Most recent election (2026)

In 2026, 21 seats were up across 21 wards. The table below shows what each party actually won — alongside what they would have won if the 21 seats had been shared in proportion to votes received (how, with caveats). The Δ column is the actual seat count minus the proportional seat count — positive numbers are parties First-Past-the-Post over-represented; negative are parties it under-represented.

PartyVotesVote %Seats won% of seatsProportional seatsProportional %Δ
Liberal Democrats32,05032.1%1361.9%733.3%+6
Reform UK24,79724.9%29.5%523.8%-3
Green Party16,78816.8%29.5%419.0%-2
Labour Party12,83112.9%29.5%314.3%-1
Conservative Party9,5769.6%00.0%29.5%-2
Independent1,7801.8%14.8%00.0%+1
Edgeley Community Association1,7701.8%14.8%00.0%+1
Trade Unionist and Socialist Coalition640.1%00.0%00.0%0
Your Party540.1%00.0%00.0%0
Party Of Women470.0%00.0%00.0%0
Total99,757100.0%21100.0%21100.0%0

Vote share vs seats won

The top bar is each party's share of votes cast in this council. Below, one square per seat, coloured by the party that won it — first the actual First-Past-the-Post result, then what a proportional method would have produced from the same vote totals. Divergence between the bar and the actual grid is the indictment of the method.

Vote share
Actual seats
Proportional seats

Full ward-by-ward results for 2026 →

Composition history

One row per opencouncildata annual snapshot — the council at the end of each year (after that year's elections, by-elections and defections). Newest first; hover any seat for the party.

2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016

Ward by ward

Each row is a ward, each column a cycle. Each cell shows the top-of-poll candidate's party (swatch) and their share of valid ballots. Wards are matched by name across cycles — boundary reviews can mean a ward of the same name is a slightly different area in a later cycle.

Ward20162018201920212022202320242026
Bramhall North53%53%47%52%42%54%48%45%
Bramhall South and Woodford44%53%45%48%49%52%45%41%
Bredbury and Woodley45%54%53%49%41%46%47%43%
Bredbury Green and Romiley51%51%60%57%59%69%59%46%
Brinnington and Central77%78%60%
Brinnington and Stockport Central80%61%31%
Brinnington Central62%65%
Cheadle and Gatley42%47%49%46%55%
Cheadle East and Cheadle Hulme North52%45%44%
Cheadle Hulme North47%39%51%45%46%
Cheadle Hulme South60%56%55%61%58%71%57%56%
Cheadle West and Gatley60%57%46%
Davenport and Cale Green57%66%57%64%65%75%54%28%
Edgeley58%59%46%
Edgeley and Cheadle Heath68%74%63%72%72%
Hazel Grove39%44%48%45%48%52%42%37%
Heald Green54%59%69%54%50%49%43%36%
Heatons North61%61%50%66%61%76%62%34%
Heatons South68%66%59%67%67%79%64%41%
Manor41%55%45%47%51%49%52%36%
Marple North42%48%51%54%57%68%50%52%
Marple South37%
Marple South and High Lane42%46%50%58%62%55%47%
Norbury and Woodsmoor47%43%45%
Offerton35%52%57%36%46%49%40%36%
Reddish North56%73%58%61%69%79%67%36%
Reddish South58%64%47%48%50%60%55%51%
Stepping Hill39%37%37%35%36%