2019 UK local government election
Elections to Brighton and Hove City Council election took place on 2 May 2019, electing all 54 members of the council, alongside other local elections in England and Northern Ireland.
The Labour Party lost 3 seats compared to the last election in 2015 but recovered its place as the largest party on the council, having seen its numbers reduced from 23 to 19 over the four years following 2015, while the strength of the Conservative group had been increased by one member in 2019, as a Labour councillor had changed allegiance shortly before the election. In addition to Labour and the Conservatives, the Green Party, which was in minority control from 2011 to 2015, fielded candidates for every seat on the council at this election.
Other parties contesting were the Liberal Democrats, the Women's Equality Party (for the first time in the city, with two candidates) and United Kingdom Independence Party, together with a number of independent candidates.
Following the election, the Labour minority administration that had governed since 2015 continued in office; however, a little over a year later, in July 2020, the Greens regained control of the Council, after the incumbent Labour administration collapsed when three Labour councillors, two of which were accused of antisemitism, quit.
Background and campaigning.
The Green Party lost their minority control of the council after the 2015 election, following internal disputes. Labour became the largest party on the council, winning 23 seats. This was reduced in 2017 to 22 after a Labour councillor, Michael Inkpin-Leissner, for Hollingdean and Stanmer became an independent. There have been two council by-elections since the last election: the first in 2016 in the East Brighton ward was won by Lloyd Russell-Moyle, and the second, 18 months later and for the same seat, when Russell-Moyle resigned as a councillor having been elected as MP for Brighton Kemptown.
Warren Morgan, Labour leader of the council, resigned from the position in February 2018, some attributing it to internal party conflicts related to the rise of Momentum, a left-wing campaigning group within the Labour Party, who supported many of the candidates selected for seats in the city. In February 2019 Morgan resigned his Labour membership, to form a bloc supporting The Independent Group with Inkpin-Leissner. Anne Meadows, a Labour councillor, defected to the Conservatives, making the Conservatives the largest party on the council. Fifteen councilors were reported to be standing down at this election.
Labour published its manifesto in late March, with key policies such as building 800 new council homes over the next four years, making the city carbon neutral by 2030 and auditing outsourced services and bringing them back into council services should they fail in value. Controversy came when a provisional version of the document was leaked to the local media titled the "many-fest", a 210-page document that brought together ideas from consultation of local labour members.
The Green Party also posted their manifesto and coordinated their campaigning with Young Greens of England and Wales, who organised their activists from around the country to go to Brighton in April.
The Liberal Democrats released a manifesto focusing on five major themes, including housing and homelessness, with a flagship proposal of developing 1,500 new homes on part of the council-owned Hollingbury golf course.
The Conservatives announced their proposal to use money in the city council's reserves to fund projects, as well as the establishment of a local lottery programme to invest in sports and cultural facilities. A Conservative candidate standing in the Westbourne ward was forced to resign during the local campaigning period due to him posting islamophobic and other offensive jokes online.
A hustings for the elections – which focused on community housing in the city – was hosted on 27 March with councillors from Labour, the Conservatives, the Green Party and a Liberal Democrat candidate.
Summary.
Election result.
! colspan="11"|2019 Brighton &amp; Hove City Council election
! colspan="2" style="width:230px"|Party
! style="width:30px"|Candidates
! style="width:30px"|Seats
! style="width:30px"|Gains
! style="width:30px"|Losses
! style="width:30px"|Net gain/loss
! style="width:30px"|Seats %
! style="width:30px"|Votes %
! style="width:60px"|Votes
! style="width:40px"|+/−
! style="background-color: ; width: 3px;" |  
! style="background-color: ; width: 3px;" |  
! style="background-color: ; width: 3px;" |  
! style="background-color: ; width: 3px;" |  
! style="background-color: ; width: 3px;" |  
! style="background-color: ; width: 3px;" |  
! style="background-color: ; width: 3px;" |  
Wards and candidates.
Details of the candidates for the 21 wards of the authority were published by the council after nominations closed on 3 April.
Brunswick and Adelaide.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Central Hove.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
East Brighton.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Goldsmid.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Hangleton and Knoll.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Hanover and Elm Grove.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Hollingdean and Stanmer.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Hove Park.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Moulsecoomb and Bevendean.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
North Portslade.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Patcham.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Preston Park.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Queen's Park.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Regency.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Rottingdean Coastal.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
South Portslade.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
St Peter's and North Laine.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Westbourne.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Wish.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Withdean.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
Woodingdean.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
! style="text-align:right;" | Swing
By-elections.
Hollingdean and Stanmer.
A by-election was called for 6 May 2021 due to the resignation of incumbent Labour councillor Tracey Hill. The by-election was subsequently won by the Green Party.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
! colspan="3" style="text-align: right; margin-right: 0.5em" | Majority
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
Patcham.
A by-election was called for 6 May 2021 due to the resignation of incumbent Conservative councillor Lee Wares. The Conservatives held the seat, but with a reduced majority.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
! colspan="3" style="text-align: right; margin-right: 0.5em" | Majority
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
Rottingdean Coastal.
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
! colspan="3" style="text-align: right; margin-right: 0.5em" | Majority
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
Wish.
Following the death of Garry Peltzer Dunn, an election was held on Thursday 8 December 2022. Labour gained the seat. 
! scope="col" colspan="2" style="width: 130px"|Party
! scope="col" style="width: 17em"|Candidate
! scope="col" style="width: 5em"|Votes
! scope="col" style="width: 3.5em"|%
! scope="col" style="width: 3.5em"| ;templatestyles src="Template:Tooltip/styles.css" / ;±%
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
 |- class="vcard"
! colspan="3" style="text-align: right; margin-right: 0.5em" | Majority
! colspan="3" style="text-align: right; margin-right: 0.5em" scope=row | Turnout
! style="text-align:right;" | Swing
References.
 ;templatestyles src="Reflist/styles.css" / ;