Counting is under way in local elections across England and Wales, with one top pollster warning the Conservatives are on track for potentially their worst defeat in 40 years.
Millions of voters cast their ballots on Thursday to choose their preferred choice of councils and mayors, with the first results starting to trickle through in the small hours of Friday.
Follow our local elections blog for live updates
Out of the 107 councils where votes were held on Thursday, 35 were counted overnight and result so far will make grim reading for Rishi Sunak’s Conservatives, suggesting potentially an even worse performance than national polls had indicated.
While most council seats were last contested in 2021, at the peak of Boris Johnson’s Covid “vaccine bounce”, elections guru Professor Sir John Curtice warned the Tories could be on course to lose 500 councillors in “one of the worst, if not the worst” performances by the party in 40 years.
Conceding that overall it had been a “disappointing night”, Tory Party chair Richard Holden insisted to BBC Breakfast that it was “what you’d expect from parties in midterm of government”.
Here are the results so far in full:
London and the South East
Adur: Labour – Gain
Basildon: No overall control – Conservative loss
Basingstoke and Deane: No overall majority – No change
Brentwood: No overall control – No change
Broxbourne: Conservative – Hold
Cambridge: Labour – Hold
Castle Point: People’s Independent Party – Gain
Cherwell: No overall majority – No change
Colchester: No overall majority – No change
Crawley: Labour – Hold
Eastleigh: Lib Dem – Hold
Fareham: Conservative – Hold
Gosport: Lib Dem – Hold
Harlow: Conservative – Hold
Hart: No overall majority – No change
Hastings: No overall control – No change
Ipswich: Labour – Hold
Maidstone: No overall majority – No change
Milton Keynes: Labour – Gain
Mole Valley: Lib Dems – Hold
Oxford: No overall majority – No change
Peterborough: No overall majority – No change
Portsmouth: No overall majority – No change
Reading: Labour – Hold
Rochford: No overall majority – No change
Rushmoor: Labour – Gain
Runnymede: No overall majority – No change
Southampton: Labour – Hold
Southend-on-Sea: No overall majority – No change
St Albans: Lib Dem – Hold
Tandridge: No overall majority – No change
Three Rivers: Lib Dem – Hold
Thurrock: Labour – Gain
Winchester: Lib Dem – Hold
Watford: Lib Dem – Hold
Woking: Lib Dem – Hold
Welwyn Hatfield: No overall majority – No change
West Oxfordshire: No overall majority – No change
South West
Exeter: Labour – Hold
Plymouth: Labour – Hold
Swindon: Labour – Hold
Working: Lib Dems – Hold
East Midlands
East Midlands Mayor: Labour- N/A (first election)
Lincoln: Labour – Hold
Nuneaton and Bedworth: Labour – Gain
East of England
Norwich: No overall majority – No change
North Hertfordshire District Council: No overall control – No change
West Midlands
Coventry: Labour – Hold
Cheltenham: Lib Dems – Hold
Redditch: Labour – Gain
Rugby: No overall majority – No change
Sandwell: Labour – No change
Solihull: Conservative – Gain
Tamworth: Labour – Gain
Walsall: Conservative – Hold
Wolverhampton: Labour – Hold
Worcester: No overall majority – No change
Yorkshire and the Humber
Barnsley: Labour – Hold
Bradford: Labour – Hold
Calderdale: Labour – Hold
Hull: Lib Dem – Hold
Kirklees: No overall control – Labour loss
Leeds: Labour – Hold
North East Lincolnshire: No overall majority – Conservative loss
Rotherham: Labour – Hold
Sheffield: No overall majority – No change
Wakefield: Labour – Hold
York & North Yorkshire mayor: Labour – N/A (first election)
North East
Gateshead: Labour – Hold
Hartlepool: Labour – Gain
Newcastle-upon-Tyne: Labour – Hold
North East mayor: Labour – N/A new (first election)
South Tyneside: Labour – Hold
Sunderland: Labour – Hold
Tees Valley Mayor: Conservative, Ben Houchen – Hold
Trafford: Labour – Hold
North West
Blackburn with Darwen: Labour – Hold
Bolton: No overall majority – No change
Bury: Labour – No change
Chorley: Labour – Hold
Hyndburn: Labour – Gain
Knowsley: Labour – Hold
Lancashire Police and Crime Commissioner: Labour – Gain
Manchester: Labour – Hold
Oldham: No overall majority – Labour loss
Preston: Labour – Hold
Rochdale: Labour – Hold
Rossendale: Labour – Hold
Sefton: Labour – Hold
Stockport: No overall majority – No change
Tameside: Labour – Hold
Wigan: Labour – Hold
Worthing: Labour – Hold