Past results

Every result, back to May

Each week's contests, with the result and, where we covered the contest, the projection published beforehand.

29 October 2026 · 6 contests
Mid Argyll Argyll and Bute SNP gain from Independent Turnout 29% Worksop East Bassetlaw Reform UK gain from Labour St James's Dudley Labour gain from Reform UK Turnout 22% Beechwood & Heath Halton Reform UK gain from Liberal Democrat Dover Beck Newark and Sherwood Conservative hold Turnout 41% Southwell Nottinghamshire Conservative hold Turnout 42%
22 October 2026 · 5 contests
Saron Carmarthenshire Plaid Cymru gain from Labour Hertford Kingsmead East Hertfordshire Conservative gain from Green Calverley & Farsley Leeds Conservative gain from Labour Grantham St Wulfram's South Kesteven Conservative gain from Independent Hartlebury Wychavon Conservative hold Turnout 25%
15 October 2026 · 4 contests
Higher Kinnerton Flintshire Local party gain from Independent Turnout 43% Shepshed Leicestershire Labour gain from Reform UK Bradninch Mid Devon Liberal Democrat hold Salisbury Milford Wiltshire Liberal Democrat hold
13 October 2026 · 1 contest
Rodborough Stroud Labour hold Turnout 42%
8 October 2026 · 4 contests
Midstocket/Rosemount Aberdeen City SNP hold Kilburn, Denby, Holbrook & Horsley Amber Valley Green gain from Conservative Myatt's Fields Lambeth Labour hold Town Newcastle-under-Lyme Labour gain from Reform UK
1 October 2026 · 6 contests
Claremont Blackpool Labour hold Wick and East Caithness Highland Liberal Democrat gain from Independent Turnout 30% Long Whatton & Diseworth North West Leicestershire Conservative hold Amble Northumberland Labour gain from Reform UK Turnout 31% Hirst Northumberland Labour gain from Reform UK Turnout 20% Forth and Endrick Stirling Conservative hold
24 September 2026 · 5 contests
Queen's Park Brighton and Hove Green gain from Labour Turnout 33% Blockley Cotswold Conservative gain from Green New Bradwell Milton Keynes Labour hold Wombourne North South Staffordshire Conservative hold Bray Windsor and Maidenhead Conservative hold
23 September 2026 · 1 contest
Cranbrook, Sissinghurst & Frittenden Tunbridge Wells Liberal Democrat gain from Local party
17 September 2026 · 3 contests
Wreake Valley Charnwood Conservative gain from Green Turnout 26% Walkley Sheffield Labour gain from Green Avondale and Stonehouse South Lanarkshire SNP gain from Independent
15 September 2026 · 1 contest
East Markham Bassetlaw Reform UK gain from Conservative
10 September 2026 · 4 contests
Burnage Manchester Labour hold Turnout 24% Eckington South & Renishaw North East Derbyshire Reform UK gain from Labour Turnout 23% Hutton & Locking North Somerset Reform UK gain from Conservative Haverhill West West Suffolk Conservative hold
3 September 2026 · 5 contests
Portobello/Craigmillar Edinburgh Green gain from SNP Turnout 23% Southside/Newington Edinburgh Labour gain from SNP Turnout 27% Chesterton & Launton Oxfordshire Liberal Democrat hold Turnout 31% Llantwit Fardre Rhondda Cynon Taf Conservative hold Frome West Somerset Green hold Turnout 22%
2 September 2026 · 1 contest
Kingswood Stroud Liberal Democrat hold
27 August 2026 · 5 contests
Guston, Kingsdown & St Margaret's-at-Cliffe Dover Green gain from Conservative Throckley, Walbottle & Newburn Newcastle upon Tyne Reform UK hold Southey Sheffield Reform UK gain from Labour Billinge & Seneley Green St Helens Labour gain from Reform UK Trinity Wandsworth Labour hold
20 August 2026 · 4 contests
Penistone East Barnsley Labour gain from Reform UK Harraby South Cumberland Reform UK gain from Labour Turnout 28% St Neots Eynesbury Huntingdonshire Liberal Democrat gain from Reform UK Leen Valley Nottingham Labour hold
13 August 2026 · 2 contests
Honiton St. Michael's East Devon Liberal Democrat gain from Labour Turnout 29% Almondbury Kirklees Liberal Democrat gain from Reform UK Turnout 30%
6 August 2026 · 5 contests
Hengoed Caerphilly Plaid Cymru hold Heacham King's Lynn and West Norfolk Reform UK gain from Conservative Snettisham King's Lynn and West Norfolk Reform UK gain from Conservative Hooley, Merstham & Netherne Reigate and Banstead Green gain from Conservative Harton South Tyneside Reform UK hold Turnout 28%
30 July 2026 · 5 contests
Rumworth Bolton Independent gain from Labour Hedge End South Eastleigh Liberal Democrat hold Bro'r Llynnoedd Isle of Anglesey Plaid Cymru hold Long Sutton South Holland Reform UK gain from Independent Great Dunmow North Uttlesford Conservative gain from Local party
23 July 2026 · 5 contests
Exmouth Brixington East Devon Conservative hold Cuxton, Halling & Riverside Medway Reform UK gain from Conservative Longwell Green South Gloucestershire Conservative hold Grays Riverside Thurrock Labour gain from Reform UK Grays Town Thurrock Labour gain from Reform UK
16 July 2026 · 8 contests
Dereham Toftwood Breckland Conservative gain from Labour Ramsey & Bury Cambridgeshire Reform UK hold Kidlington West Cherwell Liberal Democrat hold Old Catton Norfolk Conservative gain from Reform UK Fletton & Woodston Peterborough Green gain from Labour Turnout 21% Wellington Rushmoor Labour hold Himley & Swindon South Staffordshire Conservative hold Turnout 690% Manor Stafford Labour hold
9 July 2026 · 14 contests
Regent's Park Camden Labour gain from Green Splott Cardiff Labour hold Argoed & New Brighton Flintshire Liberal Democrat hold Connah's Quay Central Flintshire Reform UK gain from Independent High Fell Gateshead Reform UK hold Llanrug Gwynedd Independent gain from Plaid Cymru Clapham Park Lambeth Green hold Streatham St Leonard's Lambeth Liberal Democrat gain from Green Trebanos Neath Port Talbot Plaid Cymru hold Suffield Park North Norfolk Liberal Democrat hold Pembroke Dock Market Pembrokeshire Conservative gain from Independent Larkhall South Lanarkshire Reform UK gain from Labour Kinwarton Stratford-on-Avon Conservative gain from Liberal Democrat Baruc Vale of Glamorgan Plaid Cymru hold
7 July 2026 · 2 contests
Haslemere Surrey Liberal Democrat hold Haslemere West Waverley Liberal Democrat hold
2 July 2026 · 12 contests
Peterhead South & Cruden Aberdeenshire SNP gain from Conservative Horwich North Bolton Local party hold Weaver & Cuddington Cheshire West and Chester Independent gain from Conservative St Michael's Cotswold Liberal Democrat hold St Leonards & St Ives Dorset Conservative hold Turnout 37% Cirencester Park Gloucestershire Liberal Democrat hold Lutterworth East Harborough Reform UK gain from Labour Glantwymyn Powys Plaid Cymru hold Llanyre with Nantmel Powys Reform UK gain from Independent Yscir with Honddu Isaf & Llanddew Powys Liberal Democrat gain from Conservative Malinslee & Dawley Bank Telford and Wrekin Labour hold Llantarnam Torfaen Reform UK gain from Independent
25 June 2026 · 22 contests
George St - Harbour Aberdeen City SNP gain from Liberal Democrat Goldsmid Brighton and Hove Green gain from Labour Roman Bank & Peckover Cambridgeshire Reform UK hold Llangennech Carmarthenshire Plaid Cymru gain from Reform UK Llanrhaeadr-yng-Nghinmeirch Denbighshire Independent gain from Plaid Cymru Rhyl South Denbighshire Reform UK gain from Labour North Acton Ealing Green hold Dalston Hackney Green hold Hackney Central Hackney Green hold Farnworth Halton Labour hold Northumberland Park Haringey Labour gain from Green Woodside Haringey Green gain from Labour Bushey Park Hertsmere Conservative gain from Liberal Democrat East Sutherland & Edderton Highland Independent hold Dowlais & Pant Merthyr Tydfil Labour gain from Independent Camp Hill Nuneaton and Bedworth Reform UK gain from Labour Treorchy Rhondda Cynon Taf Plaid Cymru hold Haydock St Helens Reform UK hold Stretton Staffordshire Reform UK hold Wilnecote Tamworth · postponed May 2026 election, not a by-election Reform UK gain from Conservative Dawlish South West Teignbridge Liberal Democrat hold Stort Valley Uttlesford Conservative gain from Liberal Democrat
18 June 2026 · 12 contests
Idle & Thackley Bradford · postponed May 2026 election, not a by-election Liberal Democrat hold Gogarth Mostyn Conwy Reform UK gain from Conservative Tudno Conwy Reform UK gain from Conservative Rayleigh West Essex Conservative gain from Reform UK Crofton Park Lewisham Green hold Bransgore, Burley, Sopley & Ringwood East New Forest Conservative hold Sweyne Park & Grange Rochford Conservative gain from Reform UK Morriston Swansea Labour hold Mumbles Swansea Conservative hold Acton & Maesydre Wrexham Plaid Cymru hold Grosvenor Wrexham Plaid Cymru hold Queensway Wrexham Plaid Cymru hold
11 June 2026 · 3 contests
Christleton & Huntington Cheshire West and Chester Conservative hold Apsley & Corner Hall Dacorum Liberal Democrat hold Cippenham Green Slough Green gain from Conservative
4 June 2026 · 1 contest
Hawcoat & Newbarns Westmorland and Furness Reform UK gain from Conservative
28 May 2026 · 1 contest
Fairwood Swansea Liberal Democrat gain from Conservative
21 May 2026 · 4 contests
Bridport Dorset Liberal Democrat hold Kirkham Fylde Conservative gain from Independent Turnout 1955% Castle Lancaster Green hold Alfrick, Leigh & Rushwick Malvern Hills Liberal Democrat gain from Local party

Council by-elections

Council composition from Open Council Data. Candidates, candidate histories and polling-day information from Democracy Club. Historical ward results from the Local Elections Archive Project and Democracy Club. Boundary data contains OS data © Crown copyright and database right.