Psephology.AI
    All handbooks

    2023 local elections handbook

    Final edition

    Scheduled council elections held between April and June 2023, from our ward results. This is the final edition. Where our results for a council are incomplete, its figures will be too low.

    Councils
    248
    Wards
    4,927
    Seats
    9,277
    Candidates
    28,994
    Votes
    16,496,254

    Seats won by party

    PartySeatsCandidatesVotesVote share*
    Labour
    2,9786,8824,979,88130.5%
    Conservative
    2,5048,3024,920,02030.2%
    Liberal Democrats
    1,8135,2682,927,84417.9%
    Independent
    6492,162954,5615.9%
    Green
    5303,6341,418,6478.7%
    DUP
    99123143,5310.9%
    Sinn Féin
    95107154,6610.9%
    Alliance Party of Northern Ireland
    589086,0090.5%
    Ulster Unionist Party
    457765,4840.4%
    Ashfield Independents
    323525,4120.2%
    SDLP
    255944,6360.3%
    Residents for Uttlesford
    223016,5290.1%
    Residents Associations of Epsom and Ewell
    172614,2430.1%
    Boston Independent
    172310,1740.1%
    South Holland Independents
    14179,4360.1%

    *Note on vote share: this is each party's share of the votes cast in the wards we hold for 2023. It is not an estimate for the whole country: many councils did not vote this year, some of our results may be missing, and in wards with several seats each voter had several votes.

    National Equivalent Vote — our estimate

    What each party's share might have been if the whole of Great Britain had voted in 2023. Built from 4,808 wards that did vote, compared like-for-like with the last time each ward voted, then carried across the places that didn't vote using the change in their region. Shown beside the Elections Centre's published figure where we hold it.

    PartyOur estimateElections Centre
    CON
    31.1%29%
    LAB
    27.9%36%
    LD
    17.9%18%
    GRN
    11.0%—
    IND
    6.2%—
    SNP
    1.7%—
    PC
    0.6%—

    How far to trust this: it is an estimate, not a count. It uses each party's best-placed candidate in each ward, so multi-seat wards don't inflate anyone. Parties that stand in only a few places stay in those places. Where our ward records are incomplete for a year, the estimate is less reliable — compare it with the Elections Centre column.

    Councils changing hands (91)

    CouncilBeforeAfter
    Amber ValleyConservativeLabour
    AshfordConservativeNo overall control
    Basingstoke and DeaneConservativeNo overall control
    BlackpoolNo overall controlLabour
    BostonNo overall controlOther
    Bournemouth, Christchurch & PooleConservativeNo overall control
    Bracknell ForestConservativeLabour
    BrentwoodConservativeNo overall control
    Brighton & HoveNo overall controlLabour
    BroadlandConservativeNo overall control
    BromsgroveConservativeNo overall control
    BroxtoweNo overall controlLabour
    Cannock ChaseConservativeNo overall control
    CanterburyConservativeNo overall control
    Central BedfordshireConservativeNo overall control
    CharnwoodConservativeNo overall control
    CherwellConservativeNo overall control
    Cheshire West & ChesterNo overall controlLabour
    ChichesterNo overall controlLiberal Democrats
    DacorumConservativeLiberal Democrats
    Derbyshire DalesConservativeNo overall control
    DoverConservativeLabour
    East HampshireConservativeNo overall control
    East HertfordshireConservativeNo overall control
    East LindseyConservativeNo overall control
    East Riding Of YorkshireConservativeNo overall control
    East StaffordshireConservativeLabour
    East SuffolkConservativeNo overall control
    ErewashConservativeLabour
    Fermanagh and OmaghNo overall controlSDLP (Social Democratic & Labour Party)
    Forest Of DeanOtherNo overall control
    GraveshamNo overall controlLabour
    Great YarmouthConservativeNo overall control
    GuildfordNo overall controlLiberal Democrats
    HarboroughConservativeNo overall control
    HertsmereConservativeNo overall control
    High PeakNo overall controlLabour
    HorshamConservativeLiberal Democrats
    King's Lynn And West NorfolkConservativeNo overall control
    LichfieldConservativeNo overall control
    MaldonOtherNo overall control
    MansfieldOtherLabour
    MedwayConservativeLabour
    MeltonConservativeNo overall control
    Mid DevonNo overall controlLiberal Democrats
    Mid SuffolkNo overall controlGreen
    Mid SussexConservativeNo overall control
    Mid UlsterNo overall controlSinn Féin
    MiddlesbroughNo overall controlLabour
    Newark And SherwoodConservativeNo overall control
    Newry, Mourne and DownNo overall controlSinn Féin
    North DevonNo overall controlLiberal Democrats
    North East DerbyshireConservativeLabour
    North WarwickshireConservativeNo overall control
    North West LeicestershireConservativeNo overall control
    OldhamLabourNo overall control
    PendleConservativeNo overall control
    PlymouthNo overall controlLabour
    Ribble ValleyConservativeNo overall control
    RochfordConservativeNo overall control
    RugbyConservativeNo overall control
    RunnymedeConservativeNo overall control
    SloughLabourNo overall control
    South DerbyshireNo overall controlLabour
    South GloucestershireConservativeNo overall control
    South HamsConservativeLiberal Democrats
    South KestevenConservativeNo overall control
    South OxfordshireNo overall controlLiberal Democrats
    South RibbleNo overall controlLabour
    Stoke On TrentNo overall controlLabour
    Stratford-On-AvonConservativeLiberal Democrats
    Surrey HeathNo overall controlLiberal Democrats
    SwindonConservativeLabour
    TamworthConservativeNo overall control
    TandridgeNo overall controlOther
    TeignbridgeNo overall controlLiberal Democrats
    TewkesburyConservativeNo overall control
    ThanetNo overall controlLabour
    ThurrockConservativeNo overall control
    Tonbridge And MallingConservativeNo overall control
    TorbayNo overall controlConservative
    WealdenConservativeNo overall control
    Welwyn HatfieldConservativeNo overall control
    West BerkshireConservativeLiberal Democrats
    West DevonConservativeNo overall control
    West LancashireNo overall controlLabour
    West LindseyNo overall controlLiberal Democrats
    West SuffolkConservativeNo overall control
    Windsor & MaidenheadConservativeLiberal Democrats
    Wyre ForestNo overall controlConservative
    YorkNo overall controlLabour

    Every council (248)

    CouncilWardsSeatsBeforeAfter
    Amber Valley1844ConservativeLabour
    Antrim and Newtownabbey740No overall controlNo overall control
    Ards and North Down740No overall controlNo overall control
    Armagh City, Banbridge and Craigavon741No overall controlNo overall control
    Arun2361No overall controlNo overall control
    Ashfield2441OtherOther
    Ashford3952ConservativeNo overall control
    Babergh2439No overall controlNo overall control
    Barnsley2125LabourLabour
    Basildon1417ConservativeConservative
    Basingstoke and Deane1818ConservativeNo overall control
    Bassetlaw2565LabourLabour
    Bath12——
    Bath & North East Somerset3570Liberal DemocratsLiberal Democrats
    Bedford2848No overall controlNo overall control
    Belfast1060No overall controlNo overall control
    Blaby1736ConservativeConservative
    Blackburn with Darwen1718LabourLabour
    Blackpool2144No overall controlLabour
    Bolsover1745LabourLabour
    Bolton2063No overall controlNo overall control
    Boston1531No overall controlOther
    Bournemouth, Christchurch & Poole3377ConservativeNo overall control
    Bracknell Forest1541ConservativeLabour
    Bradford3031LabourLabour
    Braintree2656ConservativeConservative
    Breckland2750ConservativeConservative
    Brentwood1315ConservativeNo overall control
    Brighton & Hove2356No overall controlLabour
    Broadland2755ConservativeNo overall control
    Bromsgrove3035ConservativeNo overall control
    Broxbourne1011ConservativeConservative
    Broxtowe2048No overall controlLabour
    Burnley1516No overall controlNo overall control
    Bury1719LabourLabour
    Calderdale1717LabourLabour
    Cambridge1417LabourLabour
    Cannock Chase1521ConservativeNo overall control
    Canterbury2139ConservativeNo overall control
    Castle Point1418OtherOther
    Causeway Coast and Glens737No overall controlNo overall control
    Central Bedfordshire3184ConservativeNo overall control
    Charnwood2459ConservativeNo overall control
    Chelmsford2459Liberal DemocratsLiberal Democrats
    Cherwell1618ConservativeNo overall control
    Cheshire East5296No overall controlNo overall control
    Cheshire West & Chester4469No overall controlLabour
    Chesterfield1645LabourLabour
    Chichester2146No overall controlLiberal Democrats
    Chorley1416LabourLabour
    Colchester1717No overall controlNo overall control
    Cotswold3237Liberal DemocratsLiberal Democrats
    Coventry1819LabourLabour
    Crawley1212LabourLabour
    Dacorum2557ConservativeLiberal Democrats
    Darlington2052No overall controlNo overall control
    Dartford2042ConservativeConservative
    Derby1861No overall controlNo overall control
    Derbyshire Dales2137ConservativeNo overall control
    Derry City and Strabane737No overall controlNo overall control
    Dover1732ConservativeLabour
    Dudley2426ConservativeConservative
    East Cambridgeshire1433ConservativeConservative
    East Devon3066No overall controlNo overall control
    East Hampshire3144ConservativeNo overall control
    East Hertfordshire2665ConservativeNo overall control
    East Lindsey3858ConservativeNo overall control
    East of England12——
    East Riding Of Yorkshire2678ConservativeNo overall control
    East Staffordshire1637ConservativeLabour
    East Suffolk2958ConservativeNo overall control
    Eastbourne927Liberal DemocratsLiberal Democrats
    Eastleigh1317Liberal DemocratsLiberal Democrats
    Elmbridge1618No overall controlNo overall control
    England44——
    Epping Forest1921ConservativeConservative
    Epsom And Ewell1436OtherOther
    Erewash1950ConservativeLabour
    Exeter1313LabourLabour
    Fenland1848ConservativeConservative
    Fermanagh and Omagh21No overall controlSDLP (Social Democratic & Labour Party)
    Folkestone And Hythe1536No overall controlNo overall control
    Forest Of Dean2140OtherNo overall control
    Fylde1744ConservativeConservative
    Gateshead2223LabourLabour
    Gedling1941LabourLabour
    Gravesham1741No overall controlLabour
    Great Yarmouth1745ConservativeNo overall control
    Guildford2150No overall controlLiberal Democrats
    Halton1820LabourLabour
    Harborough1840ConservativeNo overall control
    Harborough11——
    Harlow1212ConservativeConservative
    Hart1113No overall controlNo overall control
    Hartlepool1212No overall controlNo overall control
    Havant1011ConservativeConservative
    Herefordshire5360No overall controlNo overall control
    Hertsmere1646ConservativeNo overall control
    High Peak2850No overall controlLabour
    Hinckley And Bosworth1634Liberal DemocratsLiberal Democrats
    Horsham2252ConservativeLiberal Democrats
    Hyndburn1212No overall controlNo overall control
    Ipswich1616LabourLabour
    King's Lynn And West Norfolk4372ConservativeNo overall control
    Kingston Upon Hull2022Liberal DemocratsLiberal Democrats
    Kirklees2328LabourLabour
    Knowsley1519LabourLabour
    Lancaster2770No overall controlNo overall control
    Leeds3334LabourLabour
    Leicester2154LabourLabour
    Lewes2152No overall controlNo overall control
    Lichfield2248ConservativeNo overall control
    Lincoln1012LabourLabour
    Lisburn and Castlereagh740No overall controlNo overall control
    Liverpool6496LabourLabour
    London11——
    Luton2048LabourLabour
    Maidstone1818No overall controlNo overall control
    Maldon1739OtherNo overall control
    Malvern Hills1831No overall controlNo overall control
    Manchester3234LabourLabour
    Mansfield3536OtherLabour
    Mansfield11——
    Medway2362ConservativeLabour
    Melton1628ConservativeNo overall control
    Mid and East Antrim632No overall controlNo overall control
    Mid Devon2251No overall controlLiberal Democrats
    Mid Suffolk2634No overall controlGreen
    Mid Sussex2754ConservativeNo overall control
    Mid Ulster316No overall controlSinn Féin
    Middlesbrough2050No overall controlLabour
    Milton Keynes1922No overall controlNo overall control
    Mole Valley1345Liberal DemocratsLiberal Democrats
    New Forest2650ConservativeConservative
    Newark And Sherwood2652ConservativeNo overall control
    Newcastle Upon Tyne2629LabourLabour
    Newry, Mourne and Down15No overall controlSinn Féin
    North Devon2551No overall controlLiberal Democrats
    North East Derbyshire2462ConservativeLabour
    North East Lincolnshire1516ConservativeConservative
    North Hertfordshire1718No overall controlNo overall control
    North Kesteven2448ConservativeConservative
    North Lincolnshire1946ConservativeConservative
    North Norfolk3246Liberal DemocratsLiberal Democrats
    North Somerset3572No overall controlNo overall control
    North Tyneside2022LabourLabour
    North Warwickshire1743ConservativeNo overall control
    North West Leicestershire3846ConservativeNo overall control
    Norwich1313LabourLabour
    Nottingham2059LabourLabour
    Oadby And Wigston1030Liberal DemocratsLiberal Democrats
    Oldham2075LabourNo overall control
    Pendle1112ConservativeNo overall control
    Peterborough2021No overall controlNo overall control
    Plymouth1919No overall controlLabour
    Portsmouth1414No overall controlNo overall control
    Preston1620LabourLabour
    Reading1618LabourLabour
    Redcar & Cleveland2461No overall controlNo overall control
    Redditch1011ConservativeConservative
    Reigate & Banstead1515ConservativeConservative
    Ribble Valley2640ConservativeNo overall control
    Rochdale2023LabourLabour
    Rochford1314ConservativeNo overall control
    Rossendale1212LabourLabour
    Rother2142No overall controlNo overall control
    Rugby1415ConservativeNo overall control
    Runnymede1416ConservativeNo overall control
    Rushcliffe2446ConservativeConservative
    Rushmoor1314ConservativeConservative
    Rutland1530No overall controlNo overall control
    Salford2023LabourLabour
    Sandwell2426LabourLabour
    Sefton2223LabourLabour
    Sevenoaks2658ConservativeConservative
    Sheffield2830No overall controlNo overall control
    Slough2144LabourNo overall control
    Solihull1719ConservativeConservative
    South Derbyshire1538No overall controlLabour
    South Gloucestershire2863ConservativeNo overall control
    South Hams2033ConservativeLiberal Democrats
    South Holland1845ConservativeConservative
    South Kesteven3068ConservativeNo overall control
    South Norfolk2653ConservativeConservative
    South Oxfordshire2139No overall controlLiberal Democrats
    South Ribble2359No overall controlLabour
    South Staffordshire2049ConservativeConservative
    South Tyneside1820LabourLabour
    Southampton1753LabourLabour
    Southend-On-Sea1718No overall controlNo overall control
    Spelthorne1344No overall controlNo overall control
    St Albans1820Liberal DemocratsLiberal Democrats
    Stafford2342No overall controlNo overall control
    Staffordshire Moorlands2771No overall controlNo overall control
    Stevenage1313LabourLabour
    Stockport2169No overall controlNo overall control
    Stockton-on-Tees2767No overall controlNo overall control
    Stoke On Trent3446No overall controlLabour
    Stratford-On-Avon3950ConservativeLiberal Democrats
    Sunderland2530LabourLabour
    Surrey Heath1435No overall controlLiberal Democrats
    Swale2450No overall controlNo overall control
    Swindon1920ConservativeLabour
    Tameside1963LabourLabour
    Tamworth1010ConservativeNo overall control
    Tandridge1515No overall controlOther
    Teignbridge2456No overall controlLiberal Democrats
    Telford & Wrekin3155LabourLabour
    Tendring3249No overall controlNo overall control
    Test Valley2047ConservativeConservative
    Tewkesbury2043ConservativeNo overall control
    Thanet2362No overall controlLabour
    The Wrekin11——
    Three Rivers1314Liberal DemocratsLiberal Democrats
    Thurrock1616ConservativeNo overall control
    Tonbridge And Malling2148ConservativeNo overall control
    Torbay1636No overall controlConservative
    Torridge1643No overall controlNo overall control
    Trafford2167LabourLabour
    Tunbridge Wells1718No overall controlNo overall control
    Uttlesford2244OtherOther
    Vale Of White Horse2438Liberal DemocratsLiberal Democrats
    Wakefield2126LabourLabour
    Walsall2022ConservativeConservative
    Warwick1750No overall controlNo overall control
    Watford1212Liberal DemocratsLiberal Democrats
    Waverley2457No overall controlNo overall control
    Wealden4154ConservativeNo overall control
    Welwyn Hatfield1617ConservativeNo overall control
    West Berkshire2443ConservativeLiberal Democrats
    West Devon1834ConservativeNo overall control
    West Lancashire1551No overall controlLabour
    West Lindsey2039No overall controlLiberal Democrats
    West Oxfordshire1619No overall controlNo overall control
    West Suffolk4379ConservativeNo overall control
    Wigan2576LabourLabour
    Winchester1616Liberal DemocratsLiberal Democrats
    Windsor & Maidenhead1943ConservativeLiberal Democrats
    Wirral2266No overall controlNo overall control
    Woking1010Liberal DemocratsLiberal Democrats
    Wokingham1819No overall controlNo overall control
    Wolverhampton2067LabourLabour
    Worcester1113No overall controlNo overall control
    Worthing1112LabourLabour
    Wychavon2749ConservativeConservative
    Wyre2449ConservativeConservative
    Wyre Forest1233No overall controlConservative
    York2148No overall controlLabour

    See also Election Health for 2023's competitiveness figures and Council Control.