← All councils

Bradford

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

9 cycles in our data
31.9% all-time seats elected below the quota (96 of 301)
15.0% all-time seats unfairly awarded (45 of 301 across 9 cycles)

Cycles

Council composition as of 2026

87 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, 87 seats were up across 29 wards. The table below shows what each party actually won — alongside what they would have won if the 87 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 %Δ
Reform UK95,01222.6%2933.3%2023.0%+9
Labour Party90,34321.5%1719.5%1921.8%-2
Green Party89,92621.4%910.3%1921.8%-10
Conservative Party73,07817.4%1820.7%1517.2%+3
Your Bradford Independent group39,6869.4%910.3%89.2%+1
Independent19,5544.6%44.6%44.6%0
Liberal Democrats12,7033.0%11.1%22.3%-1
Yorkshire Party2090.0%00.0%00.0%0
British Democratic Party1800.0%00.0%00.0%0
Trade Unionist and Socialist Coalition1470.0%00.0%00.0%0
Social Democratic Party1120.0%00.0%00.0%0
Heritage Party980.0%00.0%00.0%0
UK Independence Party (UKIP)330.0%00.0%00.0%0
Total421,081100.0%87100.0%87100.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.

Ward201620172018201920212022202320242026
Airedale44%
Baildon48%57%47%62%47%44%45%42%
Bingley45%47%40%48%49%47%62%
Bingley East49%
Bingley Rural38%56%56%67%40%47%50%
Bingley West42%
Bolton and Undercliffe52%45%45%45%44%60%43%36%
Bowling and Barkerend67%78%69%44%44%75%40%35%
Bradford Moor50%54%82%44%54%56%53%42%
City57%88%82%64%82%79%52%53%
Clayton and Fairweather Green54%62%60%56%55%69%41%33%
Craven38%55%28%32%44%49%41%
Eccleshill44%44%40%36%44%43%35%38%
Great Horton72%84%75%69%77%70%42%37%
Heaton48%75%75%73%46%58%41%
Heaton and Frizinghall50%
Holme Wood and Bierley54%
Idle and Thackley60%56%62%50%54%64%60%
Ilkley42%50%36%29%35%42%38%
Ilkley and Addingham47%
Keighley Central46%77%50%58%49%49%51%52%
Keighley East57%55%53%48%58%51%38%33%
Keighley West45%48%47%40%44%47%40%40%
Little Horton55%85%86%55%53%86%68%54%
Manningham70%84%89%78%55%51%77%72%
Queensbury38%56%39%32%55%35%35%54%53%
Royds44%47%43%49%56%64%51%52%
Shipley47%47%55%60%65%65%64%67%
Thornton and Allerton43%58%56%56%60%62%45%35%
Toller64%73%88%87%81%82%53%44%
Tong46%51%30%47%52%60%61%
Wharfedale54%52%47%52%39%39%41%39%
Wibsey47%48%46%53%42%56%32%
Wibsey and Odsal41%
Windhill and Wrose51%60%50%47%55%60%52%45%
Worth Valley41%56%61%60%54%59%56%59%
Wyke36%49%46%44%48%56%43%53%