← Bradford (all cycles) · 4 May 2023 cohort
Bradford 2023
Local elections held 4 May 2023.
How to read this page
Each race below shows the share of valid ballots the marginal elected candidate actually won, and compares it to the proportional quota: the share that would be needed to be guaranteed that seat under any proportional voting method (1 seats + 1). For a 1-seat ward the quota is 50%; for 2 seats, 33.3%; for 3 seats, 25%.
Where the actual winning share fell below the quota, we show the gap as points under par — the editorial indictment. Above-par results are just majority mandates and pass without comment. The voting method is the subject of every observation here. Named candidates appear as the public election record requires; the cause being audited is the voting method, not the individuals. See the methodology page for derivations.
If votes were counted by party
Across the 30 wards in this cycle, parties received the vote totals below. The proportional column shows what each party would have won if the 30 seats had been allocated to those vote totals in proportion (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 in this council, negative are parties it under-represented.
| Party | Votes | Vote % | Seats won | % of seats | Proportional seats | Proportional % | Δ |
|---|---|---|---|---|---|---|---|
| Labour Party | 56,916 | 47.0% | 22 | 73.3% | 15 | 50.0% | +7 |
| Conservative and Unionist Party | 29,093 | 24.0% | 4 | 13.3% | 8 | 26.7% | -4 |
| Green Party | 17,607 | 14.5% | 3 | 10.0% | 4 | 13.3% | -1 |
| Liberal Democrats | 10,353 | 8.5% | 1 | 3.3% | 2 | 6.7% | -1 |
| Independent | 5,073 | 4.2% | 0 | 0.0% | 1 | 3.3% | -1 |
| Yorkshire Party | 1,408 | 1.2% | 0 | 0.0% | 0 | 0.0% | 0 |
| Reform UK | 443 | 0.4% | 0 | 0.0% | 0 | 0.0% | 0 |
| BDP | 140 | 0.1% | 0 | 0.0% | 0 | 0.0% | 0 |
| Social Democratic Party | 37 | 0.0% | 0 | 0.0% | 0 | 0.0% | 0 |
| Trade Unionist and Socialist Coalition | 35 | 0.0% | 0 | 0.0% | 0 | 0.0% | 0 |
| Total | 121,105 | 100.0% | 30 | 100.0% | 30 | 100.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.
Wards in this council
Sorted with the largest gap below the quota first. Click any ward to jump to its full result.
- Queensbury · 1 seat · won at 35.3% · +14.7 pts below quota
- Wharfedale · 1 seat · won at 39.4% · +10.6 pts below quota
- Ilkley · 1 seat · won at 41.9% · +8.1 pts below quota
- Eccleshill · 1 seat · won at 43.1% · +6.9 pts below quota
- Baildon · 1 seat · won at 44.5% · +5.5 pts below quota
- Bingley Rural · 1 seat · won at 46.8% · +3.2 pts below quota
- Bingley · 1 seat · won at 46.9% · +3.1 pts below quota
- Keighley West · 1 seat · won at 47.3% · +2.7 pts below quota
- Keighley Central · 1 seat · won at 49.3% · +0.7 pts below quota
- Craven · 1 seat · won at 49.5% · +0.5 pts below quota
- Manningham · 1 seat · won at 50.9% · above quota
- Keighley East · 1 seat · won at 51.2% · above quota
- Wibsey · 1 seat · won at 55.9% · above quota
- Bradford Moor · 1 seat · won at 56.0% · above quota
- Wyke · 1 seat · won at 56.0% · above quota
- Heaton · 1 seat · won at 58.4% · above quota
- Worth Valley · 1 seat · won at 59.2% · above quota
- Tong · 1 seat · won at 59.8% · above quota
- Bolton & Undercliffe · 1 seat · won at 59.9% · above quota
- Windhill & Wrose · 1 seat · won at 60.4% · above quota
- Thornton & Allerton · 1 seat · won at 61.8% · above quota
- Idle & Thackley · 1 seat · won at 63.7% · above quota
- Royds · 1 seat · won at 63.9% · above quota
- Shipley · 1 seat · won at 64.6% · above quota
- Clayton & Fairweather Green · 1 seat · won at 69.3% · above quota
- Great Horton · 1 seat · won at 70.2% · above quota
- Bowling & Barkerend · 1 seat · won at 75.0% · above quota
- City · 1 seat · won at 79.1% · above quota
- Toller · 1 seat · won at 82.4% · above quota
- Little Horton · 1 seat · won at 85.7% · above quota
Race results
Queensbury · single-seat
Marginal winner 35.3% Proportional quota 50.0% Difference +14.7 pts below quota Valid ballots 3,412
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Mitchell, A. | Labour Party | 1,206 | 35.3% | Elected |
| 2 | Hargreaves, R. | Independent | 1,042 | 30.5% | |
| 3 | Paterson, A. | Conservative and Unionist Party | 849 | 24.9% | |
| 4 | Dodwell, E. | Green Party | 229 | 6.7% | |
| 5 | Whitrick, M. | Liberal Democrats | 86 | 2.5% |
Wharfedale · single-seat
Marginal winner 39.4% Proportional quota 50.0% Difference +10.6 pts below quota Valid ballots 4,364
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Steele, C. | Labour Party | 1,718 | 39.4% | Elected |
| 2 | Cochrane, P. | Conservative and Unionist Party | 1,692 | 38.8% | |
| 3 | Turner, C. | Green Party | 534 | 12.2% | |
| 4 | Needle, J. | Liberal Democrats | 420 | 9.6% |
Ilkley · single-seat
Marginal winner 41.9% Proportional quota 50.0% Difference +8.1 pts below quota Valid ballots 6,341
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Nunns, D. | Conservative and Unionist Party | 2,655 | 41.9% | Elected |
| 2 | Brown, R. | Green Party | 2,495 | 39.3% | |
| 3 | Baldwin, M. | Labour Party | 977 | 15.4% | |
| 4 | Jones, C. | Liberal Democrats | 214 | 3.4% |
Eccleshill · single-seat
Marginal winner 43.1% Proportional quota 50.0% Difference +6.9 pts below quota Valid ballots 3,360
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Parsons, I. | Labour Party | 1,447 | 43.1% | Elected |
| 2 | Knox, S. | Liberal Democrats | 1,173 | 34.9% | |
| 3 | Rasool, W. | Conservative and Unionist Party | 467 | 13.9% | |
| 4 | Barras, J. | Yorkshire Party | 152 | 4.5% | |
| 5 | Vanicat, S. | Green Party | 121 | 3.6% |
Baildon · single-seat
Marginal winner 44.5% Proportional quota 50.0% Difference +5.5 pts below quota Valid ballots 4,842
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Pollard, M. | Conservative and Unionist Party | 2,153 | 44.5% | Elected |
| 2 | Ashton, P. | Labour Party | 2,003 | 41.4% | |
| 3 | Dunk, C. | Green Party | 244 | 5.0% | |
| 4 | Wilkinson, D. | Liberal Democrats | 231 | 4.8% | |
| 5 | Moncaster, P. | Reform UK | 211 | 4.4% |
Bingley Rural · single-seat
Marginal winner 46.8% Proportional quota 50.0% Difference +3.2 pts below quota Valid ballots 5,254
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Sullivan, P. | Conservative and Unionist Party | 2,457 | 46.8% | Elected |
| 2 | Malik, A. | Labour Party | 1,211 | 23.0% | |
| 3 | Bacon, C. | Independent | 960 | 18.3% | |
| 4 | Newham, B. | Green Party | 432 | 8.2% | |
| 5 | Baranowski, H. | Liberal Democrats | 194 | 3.7% |
Bingley · single-seat
Marginal winner 46.9% Proportional quota 50.0% Difference +3.1 pts below quota Valid ballots 5,958
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Fricker, S. | Labour Party | 2,796 | 46.9% | Elected |
| 2 | Winnard, G. | Conservative and Unionist Party | 2,365 | 39.7% | |
| 3 | Drucquer, R. | Green Party | 558 | 9.4% | |
| 4 | Russell, P. | Liberal Democrats | 239 | 4.0% |
Keighley West · single-seat
Marginal winner 47.3% Proportional quota 50.0% Difference +2.7 pts below quota Valid ballots 3,183
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Lintern, J. | Labour Party | 1,507 | 47.3% | Elected |
| 2 | Kelly, L. | Conservative and Unionist Party | 1,447 | 45.5% | |
| 3 | Spoerry, S. | Liberal Democrats | 127 | 4.0% | |
| 4 | Whittaker, J. | Green Party | 102 | 3.2% |
Keighley Central · single-seat
Marginal winner 49.3% Proportional quota 50.0% Difference +0.7 pts below quota Valid ballots 6,336
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Zaman, A. | Labour Party | 3,125 | 49.3% | Elected |
| 2 | Akhtar, J. | Conservative and Unionist Party | 2,284 | 36.0% | |
| 3 | Ali, Z. | Independent | 580 | 9.2% | |
| 4 | Telfer, A. | Green Party | 178 | 2.8% | |
| 5 | Robinson, L. | Independent | 85 | 1.3% | |
| 6 | Allon, N. | Liberal Democrats | 84 | 1.3% |
Craven · single-seat
Marginal winner 49.5% Proportional quota 50.0% Difference +0.5 pts below quota Valid ballots 5,722
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Russell, J. | Green Party | 2,831 | 49.5% | Elected |
| 2 | Irving, E. | Conservative and Unionist Party | 1,838 | 32.1% | |
| 3 | Knight, A. | Labour Party | 700 | 12.2% | |
| 4 | Kaye, P. | Yorkshire Party | 280 | 4.9% | |
| 5 | Mann, P. | Liberal Democrats | 73 | 1.3% |
Manningham · single-seat
Marginal winner 50.9% Proportional quota 50.0% Difference −0.9 pts Valid ballots 4,913
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Kauser, S. | Labour Party | 2,502 | 50.9% | Elected |
| 2 | Islam, M. | Independent | 2,153 | 43.8% | |
| 3 | Fetherston, A. | Green Party | 169 | 3.4% | |
| 4 | Anjum, K. | Conservative and Unionist Party | 89 | 1.8% |
Keighley East · single-seat
Marginal winner 51.2% Proportional quota 50.0% Difference −1.2 pts Valid ballots 3,933
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Robinson, L. | Labour Party | 2,015 | 51.2% | Elected |
| 2 | Crangle, M. | Conservative and Unionist Party | 1,425 | 36.2% | |
| 3 | Hunnisett, D. | Green Party | 270 | 6.9% | |
| 4 | Briggs, J. | Liberal Democrats | 186 | 4.7% | |
| 5 | Vann, A. | Social Democratic Party | 37 | 0.9% |
Wibsey · single-seat
Marginal winner 55.9% Proportional quota 50.0% Difference −5.9 pts Valid ballots 2,629
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Berry, R. | Labour Party | 1,470 | 55.9% | Elected |
| 2 | Peterken, N. | Conservative and Unionist Party | 548 | 20.8% | |
| 3 | Boulton, B. | Liberal Democrats | 375 | 14.3% | |
| 4 | Daw, M. | Green Party | 120 | 4.6% | |
| 5 | Buxton, B. | Yorkshire Party | 116 | 4.4% |
Bradford Moor · single-seat
Marginal winner 56.0% Proportional quota 50.0% Difference −6.0 pts Valid ballots 4,657
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Iqbal, Z. | Labour Party | 2,607 | 56.0% | Elected |
| 2 | Thair, M. | Liberal Democrats | 1,727 | 37.1% | |
| 3 | Iqbal, A. | Conservative and Unionist Party | 192 | 4.1% | |
| 4 | Grant, W. | Yorkshire Party | 68 | 1.5% | |
| 5 | Wood, A. | Green Party | 63 | 1.4% |
Wyke · single-seat
Marginal winner 56.0% Proportional quota 50.0% Difference −6.0 pts Valid ballots 2,753
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Ferriby, S. | Labour Party | 1,542 | 56.0% | Elected |
| 2 | McLean, M. | Conservative and Unionist Party | 654 | 23.8% | |
| 3 | Hall, K. | Liberal Democrats | 154 | 5.6% | |
| 4 | Lewthwaite, J. | BDP | 140 | 5.1% | |
| 5 | Walker, I. | Reform UK | 135 | 4.9% | |
| 6 | Parkinson, D. | Green Party | 128 | 4.6% |
Heaton · single-seat
Marginal winner 58.4% Proportional quota 50.0% Difference −8.4 pts Valid ballots 4,831
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Amran, M. | Labour Party | 2,821 | 58.4% | Elected |
| 2 | Mahmood, K. | Green Party | 1,769 | 36.6% | |
| 3 | Khan, S. | Conservative and Unionist Party | 167 | 3.5% | |
| 4 | Ali, A. | Liberal Democrats | 74 | 1.5% |
Worth Valley · single-seat
Marginal winner 59.2% Proportional quota 50.0% Difference −9.2 pts Valid ballots 4,071
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Poulson, R. | Conservative and Unionist Party | 2,412 | 59.2% | Elected |
| 2 | Joomun-Whitehead, A. | Labour Party | 1,290 | 31.7% | |
| 3 | Hussain, H. | Green Party | 187 | 4.6% | |
| 4 | Kirkham, K. | Liberal Democrats | 182 | 4.5% |
Tong · single-seat
Marginal winner 59.8% Proportional quota 50.0% Difference −9.8 pts Valid ballots 2,584
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Sutcliffe, U. | Green Party | 1,546 | 59.8% | Elected |
| 2 | Mukhtar, K. | Labour Party | 650 | 25.2% | |
| 3 | Turpin, P. | Conservative and Unionist Party | 221 | 8.6% | |
| 4 | Elliott, S. | Liberal Democrats | 92 | 3.6% | |
| 5 | Inman, B. | Yorkshire Party | 75 | 2.9% |
Bolton & Undercliffe · single-seat
Marginal winner 59.9% Proportional quota 50.0% Difference −9.9 pts Valid ballots 3,445
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Choudhry, S. | Labour Party | 2,064 | 59.9% | Elected |
| 2 | Lubenko, S. | Liberal Democrats | 620 | 18.0% | |
| 3 | Singh, S. | Conservative and Unionist Party | 296 | 8.6% | |
| 4 | Gulland, B. | Green Party | 168 | 4.9% | |
| 5 | Barras, W. | Yorkshire Party | 165 | 4.8% | |
| 6 | Bourn, S. | Reform UK | 97 | 2.8% | |
| 7 | Gibson, T. | Trade Unionist and Socialist Coalition | 35 | 1.0% |
Windhill & Wrose · single-seat
Marginal winner 60.4% Proportional quota 50.0% Difference −10.4 pts Valid ballots 3,038
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Hinchcliffe, S. | Labour Party | 1,834 | 60.4% | Elected |
| 2 | Harrison, W. | Conservative and Unionist Party | 753 | 24.8% | |
| 3 | Thorne, G. | Liberal Democrats | 239 | 7.9% | |
| 4 | Wood, J. | Green Party | 212 | 7.0% |
Thornton & Allerton · single-seat
Marginal winner 61.8% Proportional quota 50.0% Difference −11.8 pts Valid ballots 3,596
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Duffy, S. | Labour Party | 2,224 | 61.8% | Elected |
| 2 | Morton, J. | Conservative and Unionist Party | 743 | 20.7% | |
| 3 | Whitaker, J. | Green Party | 322 | 9.0% | |
| 4 | Griffiths, A. | Liberal Democrats | 307 | 8.5% |
Idle & Thackley · single-seat
Marginal winner 63.7% Proportional quota 50.0% Difference −13.7 pts Valid ballots 4,215
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Sunderland, J. | Liberal Democrats | 2,686 | 63.7% | Elected |
| 2 | Logan, G. | Labour Party | 805 | 19.1% | |
| 3 | Robertshaw, J. | Conservative and Unionist Party | 404 | 9.6% | |
| 4 | Barras, L. | Yorkshire Party | 161 | 3.8% | |
| 5 | Lawrence, T. | Green Party | 159 | 3.8% |
Royds · single-seat
Marginal winner 63.9% Proportional quota 50.0% Difference −13.9 pts Valid ballots 2,680
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Tait, A. | Labour Party | 1,713 | 63.9% | Elected |
| 2 | Bayap, E. | Conservative and Unionist Party | 592 | 22.1% | |
| 3 | Sharp, I. | Green Party | 251 | 9.4% | |
| 4 | Riach, I. | Liberal Democrats | 124 | 4.6% |
Shipley · single-seat
Marginal winner 64.6% Proportional quota 50.0% Difference −14.6 pts Valid ballots 4,963
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Warnes, K. | Green Party | 3,204 | 64.6% | Elected |
| 2 | Martin, V. | Labour Party | 1,238 | 24.9% | |
| 3 | Golding, P. | Conservative and Unionist Party | 423 | 8.5% | |
| 4 | Errington, N. | Liberal Democrats | 98 | 2.0% |
Clayton & Fairweather Green · single-seat
Marginal winner 69.3% Proportional quota 50.0% Difference −19.3 pts Valid ballots 2,988
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Thirkill, C. | Labour Party | 2,071 | 69.3% | Elected |
| 2 | Lawton, K. | Conservative and Unionist Party | 574 | 19.2% | |
| 3 | May, S. | Green Party | 228 | 7.6% | |
| 4 | Cotterell, S. | Liberal Democrats | 115 | 3.8% |
Great Horton · single-seat
Marginal winner 70.2% Proportional quota 50.0% Difference −20.2 pts Valid ballots 3,380
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Hussain, T. | Labour Party | 2,374 | 70.2% | Elected |
| 2 | Khan, S. | Conservative and Unionist Party | 350 | 10.4% | |
| 3 | Boota, H. | Independent | 253 | 7.5% | |
| 4 | Moses, S. | Liberal Democrats | 157 | 4.6% | |
| 5 | Sykes, A. | Green Party | 136 | 4.0% | |
| 6 | Grant, W. | Yorkshire Party | 110 | 3.3% |
Bowling & Barkerend · single-seat
Marginal winner 75.0% Proportional quota 50.0% Difference −25.0 pts Valid ballots 3,386
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Khan, I. | Labour Party | 2,540 | 75.0% | Elected |
| 2 | Middleton, H. | Liberal Democrats | 285 | 8.4% | |
| 3 | Fazal, M. | Conservative and Unionist Party | 242 | 7.1% | |
| 4 | Rickford, A. | Green Party | 176 | 5.2% | |
| 5 | Wood, K. | Yorkshire Party | 143 | 4.2% |
City · single-seat
Marginal winner 79.1% Proportional quota 50.0% Difference −29.1 pts Valid ballots 3,178
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Lal, S. | Labour Party | 2,513 | 79.1% | Elected |
| 2 | Patel, A. | Conservative and Unionist Party | 348 | 11.0% | |
| 3 | Tadych, M. | Green Party | 317 | 10.0% |
Toller · single-seat
Marginal winner 82.4% Proportional quota 50.0% Difference −32.4 pts Valid ballots 3,870
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Shaheen, F. | Labour Party | 3,190 | 82.4% | Elected |
| 2 | Ford, B. | Green Party | 354 | 9.1% | |
| 3 | Iqbal, S. | Conservative and Unionist Party | 326 | 8.4% |
Little Horton · single-seat
Marginal winner 85.7% Proportional quota 50.0% Difference −35.7 pts Valid ballots 3,223
| Rank | Candidate | Party | Votes | Share | Elected |
|---|---|---|---|---|---|
| 1 | Salam, T. | Labour Party | 2,763 | 85.7% | Elected |
| 2 | Longhorn, D. | Yorkshire Party | 138 | 4.3% | |
| 3 | Afzal, M. | Conservative and Unionist Party | 127 | 3.9% | |
| 4 | Arobi, N. | Green Party | 104 | 3.2% | |
| 5 | Mahmood, T. | Liberal Democrats | 91 | 2.8% |