Psephology.AI
    All years

    2019 council by-elections

    223 by-elections on our record, 48 of them won by a different party from last time.

    Gains and losses by party

    PartyGainedLostNet
    Liberal Democrats123▲ +9
    Plaid Cymru - The Party of Wales30▲ +3
    Green20▲ +2
    Swale Independents10▲ +1
    Radcliffe First10▲ +1
    Independent78▼ -1
    Conservative1516▼ -1
    Heavy Woollen District Independents01▼ -1
    SNP03▼ -3
    Labour717▼ -10

    Every by-election

    DateWardWinnerPreviously
    10 JanBexhill WestEast SussexIndependent 51.9%Hold
    10 JanSt MarksRotherIndependent 60.3%Hold
    31 JanBillingsgateCity of London CorporationIndependent 100.0%Not known
    31 JanWarlinghamSurreyConservative 48.1%Hold
    7 FebBolton and UndercliffeBradfordLiberal Democrats 51.3%Gain from Labour
    7 FebTotteridge And BowerdeanBuckinghamshireLabour 40.8%Not known
    7 FebThorntonLambethLabour 44.8%Hold
    7 FebLansburyTower HamletsLabour 40.8%Not known
    7 FebShadwellTower HamletsAspire 34.9%Not known
    7 FebEvendonsWokinghamLiberal Democrats 63.1%Hold
    14 FebRhooseVale of GlamorganConservative 61.5%Hold
    21 FebElyCardiffPlaid Cymru - The Party of Wales 43.1%Gain from Labour
    21 FebOundleNorthamptonshireConservative 51.3%Hold
    28 FebBerkeley ValeStroudConservative 49.9%Hold
    7 MarHaddenham and StoneAylesbury ValeGreen 50.8%Gain from Conservative
    14 MarWingateCounty DurhamLabour 64.1%Hold
    14 MarNorbury & Pollards HillCroydonLabour 66.8%Hold
    14 MarCoxfordSouthamptonLabour 24.9%Gain from Independent
    21 MarVangeBasildonLabour 51.3%Hold
    21 MarEsh And Witton GilbertCounty DurhamLiberal Democrats 63.2%Hold
    21 MarDalgarnoKensington and ChelseaLabour 55.3%Hold
    21 MarHolditch & ChestertonNewcastle-under-LymeIndependent 40.3%Gain from Labour
    21 MarMiltonSouthend-On-SeaLabour 49.9%Hold
    21 MarAveley and UplandsThurrockConservative 43.7%Not known
    28 MarClackmannanshire CentralClackmannanshireSNP 40.9%Hold
    28 MarWallington NorthSuttonLiberal Democrats 38.2%Hold
    4 AprWroxhamNorfolkConservative 55.7%Hold
    11 AprRosehill With Burnley WoodBurnleyLiberal Democrats 37.3%Hold
    11 AprLeith WalkEdinburghSNP 35.8%Hold
    11 AprThorntonLambethLabour 39.0%Hold
    11 AprCyfarthfaMerthyr TydfilIndependent 69.5%Gain from Labour
    25 AprBelle VueShropshireLabour 47.1%Hold
    30 AprBassishawCity Of LondonIndependent 100.0%Not known
    30 AprCordwainerCity Of LondonIndependent 100.0%Not known
    1 MayAspatriaAllerdaleConservative 62.7%Not known
    1 MayBroughton St BridgetsAllerdaleLabour 46.7%Hold
    1 MayChristchurchAllerdaleLabour 53.2%Gain from Conservative
    1 MayCrummock and Derwent ValleyAllerdaleConservative 73.5%Not known
    1 MayDaltonAllerdaleIndependent 67.0%Gain from Conservative
    1 MayEllen and GilcruxAllerdaleLabour 45.1%Not known
    1 MayFlimbyAllerdaleLabour 74.8%Hold
    1 MayHarrington and SalterbeckAllerdaleIndependent 56.5%Not known
    1 MayKeswickAllerdaleLabour 41.0%Hold
    1 MayMaryport NorthAllerdaleIndependent 65.0%Not known
    1 MayMaryport SouthAllerdaleLabour 48.1%Not known
    1 MayMoorclose and Moss BayAllerdaleIndependent 66.7%Not known
    1 MaySeaton and NorthsideAllerdaleIndependent 41.8%Not known
    1 MaySilloth and Solway CoastAllerdaleConservative 44.5%Not known
    1 MaySt. JohnsAllerdaleLabour 47.7%Hold
    1 MaySt. MichaelsAllerdaleLabour 41.9%Hold
    1 MayStainburn and CliftonAllerdaleIndependent 41.8%Not known
    1 MayWarnellAllerdaleConservative 60.5%Hold
    1 MayWigton and WoodsideAllerdaleLabour 33.4%Not known
    1 MayAll SaintsCheltenhamLabour 31.1%Gain from Liberal Democrats
    2 MayTrumpingtonCambridgeshireLiberal Democrats 46.7%Hold
    2 MayShildon And Dene ValleyCounty DurhamLiberal Democrats 42.7%Gain from Labour
    2 MaySpennymoorCounty DurhamIndependent 25.5%Not known
    2 MayUpper WharfedaleCravenConservative 63.3%Hold
    2 MayThursbyCumbriaConservativeHold
    2 MayChurchdownGloucestershireLiberal Democrats 47.8%Hold
    2 MayNorthfleet and Gravesend WestKentLabour 43.5%Hold
    2 MaySittingbourne NorthKentSwale Independents 35.8%Gain from Conservative
    2 MayMaer & WhitmoreNewcastle-under-LymeConservative 86.6%Hold
    2 MayHolywellNorthumberlandLabour 57.6%Hold
    2 MayHaslemereSurreyIndependent 65.2%Gain from Conservative
    2 MayNorthgate and West GreenWest SussexLabour 48.9%Hold
    9 MayHaddington and LammermuirEast LothianConservative 35.0%Gain from SNP
    9 MayCranhamHaveringUpminster and Cranham Residents Association 68.5%Hold
    23 MayMorfa NefynGwyneddPlaid Cymru - The Party of WalesNot known
    23 MaySt Mary'sIsles of ScillyIndependent 100.0%Hold
    23 MayResolvenNeath Port TalbotIndependent 59.7%Gain from Labour
    23 MaySt OsythTendringIndependent 58.2%Hold
    30 MayBrockhurstGosportLiberal Democrats 51.5%Hold
    6 JunRoss NorthHerefordshireNot recordedHold
    6 JunWombourne South WestSouth StaffordshireConservative 88.4%Hold
    13 JunStapleford South EastBroxtoweLiberal Democrats 59.5%Hold
    13 JunChittlehamptonNorth DevonConservative 40.8%Hold
    13 JunBillinghay, Martin and North KymeNorth KestevenConservative 49.1%Hold
    20 JunNewent & TayntonForest Of DeanLiberal Democrats 32.0%Hold
    20 JunWhippingham and OsborneIsle Of WightConservative 35.1%Gain from Independent
    20 JunCannon HillMertonLiberal Democrats 35.0%Gain from Labour
    20 JunPelennaNeath Port TalbotIndependent 59.8%Hold
    20 JunWalkden SouthSalfordNot recordedHold
    20 JunFarington WestSouth RibbleConservative 84.5%Hold
    20 JunFurzedownWandsworthLabour 49.0%Hold
    27 JunSandhurstMansfieldNot recordedHold
    4 JulEccleston and MawdesleyChorleyConservative 63.2%Hold
    4 JulPark End & BeckfieldMiddlesbroughIndependent 77.0%Hold
    4 JulRhonddaRhondda Cynon TafPlaid Cymru - The Party of Wales 42.1%Gain from Labour
    4 JulTrowbridge DrynhamWiltshireLiberal Democrats 41.6%Gain from Conservative
    11 JulBridlington NorthEast Riding Of YorkshireLiberal Democrats 44.7%Gain from Conservative
    11 JulWhitecrossHerefordshireIt's Our County (Herefordshire) 60.7%Not known
    16 JulCyncoedCardiffLiberal Democrats 55.3%Hold
    18 JulDowns NorthAshfordConservative 33.8%Hold
    18 JulLlanbadarn Fawr SulienCeredigionPlaid Cymru - The Party of Wales 63.3%Not known
    18 JulBrixworthDaventryLiberal Democrats 49.5%Gain from Conservative
    18 JulNorthumbria PolicePolice and Crime Commissioner for Northumbria Police by-electionLabour 37.9%Not known
    18 JulEast SheenRichmond upon ThamesLiberal Democrats 58.9%Hold
    18 JulWestbury NorthWiltshireLiberal Democrats 53.3%Hold
    24 JulFarringdon WithinCity Of LondonIndependent 66.9%Not known
    25 JulBarnwoodGloucesterLiberal Democrats 46.5%Hold
    25 JulPodsmeadGloucesterLiberal Democrats 30.0%Gain from Labour
    25 JulHartHartlepoolLabour 30.5%Not known
    30 JulColeman StreetCity Of LondonIndependent 77.4%Not known
    1 AugGodmanchester & Hemingford AbbotsHuntingdonshireLiberal Democrats 48.2%Hold
    1 AugHazel GroveStockportLiberal Democrats 43.9%Hold
    7 AugLime StreetCity Of LondonIndependentNot known
    7 AugVintryCity of London CorporationIndependentNot known
    8 AugNewnhamCambridgeLiberal Democrats 54.2%Hold
    8 AugIrthlingborough WaterlooEast NorthamptonshireConservative 53.1%Hold
    8 AugClainesWorcesterLiberal Democrats 44.3%Gain from Conservative
    15 AugMeoleShropshireConservative 37.6%Hold
    22 AugRokeby and OversladeRugbyLiberal Democrats 50.0%Hold
    29 AugRadcliffe WestBuryRadcliffe First 41.7%Gain from Labour
    29 AugEast Kilbride Central NorthSouth LanarkshireSNP 46.5%Hold
    5 SeptWainbodyCoventryConservative 59.8%Hold
    5 SeptPenrith SouthEdenConservative 46.3%Gain from Independent
    5 SeptSt Andrew's and DocklandsKingston Upon HullLabour 45.6%Hold
    12 SeptSt. MarksRushmoorLiberal Democrats 54.7%Hold
    12 SeptRyhall & CastertonRutlandConservative 56.3%Hold
    12 SeptBishops CastleShropshireLiberal Democrats 71.4%Hold
    12 SeptMiddleton CheneySouth NorthamptonshireLiberal Democrats 44.3%Gain from Conservative
    12 SeptFinedonWellingboroughConservative 52.2%Hold
    19 SeptChestfieldCanterburyConservative 46.0%Hold
    19 SeptFulham BroadwayHammersmith and FulhamLabour 44.2%Hold
    19 SeptOld SwanLiverpoolLabour 56.6%Hold
    19 SeptThorniewoodNorth LanarkshireLabour 44.3%Gain from SNP
    19 SeptVivarySomerset West and TauntonLiberal Democrats 55.3%Hold
    19 SeptEthanduneWiltshireConservative 57.0%Hold
    26 SeptTilgateCrawleyConservative 50.0%Hold
    26 SeptAlexandraIpswichLabour 44.8%Hold
    26 SeptIcknieldLutonLabour 37.0%Gain from Conservative
    26 SeptSweyne Park and GrangeRochfordConservative 44.4%Hold
    26 SeptThree BridgesWest SussexConservative 51.7%Hold
    3 OctBridge of DonAberdeenSNP 36.2%Hold
    3 OctWhitchurch & TongwynlaisCardiffConservative 36.4%Hold
    3 OctSyston WestCharnwoodConservative 44.7%Hold
    3 OctClacton EastEssexIndependent 36.9%Hold
    3 OctNorton Fitzwarren and StaplegroveSomerset West and TauntonLiberal Democrats 40.6%Hold
    3 OctClarenceSt AlbansLiberal Democrats 73.4%Hold
    10 OctBramley and SherfieldBasingstoke and DeaneIndependent 64.0%Gain from Conservative
    10 OctBeanfieldCorbyLabour 56.0%Hold
    10 OctTudorWatfordLiberal Democrats 55.4%Hold
    17 OctWestcourtGraveshamConservative 50.1%Gain from Labour
    17 OctPrinces ParkLiverpoolLabour 63.7%Hold
    17 OctUpper DalesNorth YorkshireConservative 45.7%Gain from Independent
    17 OctHawes, High Abbotside and Upper SwaledaleRichmondshireIndependent 68.9%Hold
    24 OctAbbey NorthDaventryConservative 41.0%Gain from Labour
    24 OctHeavitree and Whipton BartonDevonLabour 31.9%Hold
    24 OctBagillt WestFlintshireLabour 63.5%Hold
    24 OctBagilt WestFlintshireLabour 63.5%Not known
    24 OctLlandrindod NorthPowysLiberal Democrats 47.2%Gain from Conservative
    24 OctNewtown SouthPowysConservative 43.2%Hold
    24 OctCoupe Green & Gregson LaneSouth RibbleConservative 49.1%Hold
    24 OctTorkseyWest LindseyConservative 36.1%Hold
    24 OctMelksham Without SouthWiltshireConservative 60.5%Hold
    29 OctLeamington LillingtonWarwickLiberal Democrats 55.3%Hold
    30 OctRiversideWindsor & MaidenheadConservative 32.4%Hold
    31 OctBromsgrove SouthWorcestershireConservative 40.2%Gain from Labour
    7 NovMarconiChelmsfordLiberal Democrats 40.1%Hold
    7 NovWadebridge WestCornwallIndependent 42.4%Gain from Liberal Democrats
    7 NovFairfieldCroydonLabour 40.8%Hold
    7 NovHundletonPembrokeshireIndependent 54.3%Hold
    7 NovLerwick SouthShetland IslandsIndependent 100.0%Hold
    7 NovShetland CentralShetland IslandsIndependent 75.6%Hold
    13 NovAldersgateCity Of LondonLabour 65.5%Not known
    14 NovShapEdenLiberal Democrats 45.3%Gain from Conservative
    14 NovDunfermline CentralFifeSNP 33.2%Hold
    14 NovRosythFifeSNP 42.8%Hold
    14 NovInverness CentralHighlandSNP 44.1%Hold
    14 NovRhosNeath Port TalbotPlaid Cymru - The Party of Wales 53.9%Gain from Labour
    14 NovSt MaryPowysLabour 37.4%Gain from Conservative
    14 NovGoodrington with RoselandsTorbayNot recordedHold
    14 NovCulverdenTunbridge WellsLiberal Democrats 36.8%Hold
    21 NovTorry/FerryhillAberdeenSNP 43.2%Hold
    21 NovLlanishenCardiffConservative 43.3%Gain from Labour
    21 NovLoxwoodChichesterConservative 61.8%Gain from Liberal Democrats
    21 NovKeith and CullenMorayConservative 42.3%Gain from SNP
    21 NovBirch GreenWest LancashireLabour 60.8%Hold
    21 NovBourneWest SussexConservative 48.9%Hold
    28 NovSheringham NorthNorth NorfolkLiberal Democrats 47.1%Hold
    28 NovWallingfordOxfordshireGreen 40.9%Gain from Independent
    28 NovTrowbridge LambrokWiltshireLiberal Democrats 57.8%Gain from Conservative
    5 DecYnyshirRhondda Cynon TafLabour 55.1%Not known
    12 DecKirton & FramptonBostonConservative 70.1%Gain from Independent
    12 DecSkirbeckBostonConservative 56.1%Gain from Independent
    12 DecChurchBuryConservative 55.9%Hold
    12 DecHaverstockCamdenLabour 57.1%Hold
    12 DecWeldon and GrettonCorbyConservative 44.4%Hold
    12 DecGuston, Kingsdown & St Margaret's-at-CliffeDoverConservative 59.1%Hold
    12 DecHigham Ferrers ChicheleEast NorthamptonshireConservative 63.3%Hold
    12 DecHigham Ferrers LancasterEast NorthamptonshireConservative 62.6%Hold
    12 DecTopshamExeterConservative 43.0%Hold
    12 DecTrelawnyd and GwaenysgorFlintshireConservative 46.4%Hold
    12 DecClissoldHackneyLabour 56.3%Hold
    12 DecStorrington & WashingtonHorshamConservative 63.3%Hold
    12 DecFeltham NorthHounslowConservative 43.5%Gain from Labour
    12 DecHeston WestHounslowLabour 64.4%Hold
    12 DecAlconburyHuntingdonshireConservative 59.1%Hold
    12 DecNewport WestIsle Of WightConservative 36.5%Hold
    12 DecSt George'sIslingtonLabour 45.4%Hold
    12 DecDesborough St GilesKetteringConservative 52.8%Hold
    12 DecUpwell and DelphKing's Lynn And West NorfolkConservative 66.4%Gain from Independent
    12 DecColne ValleyKirkleesConservative 45.8%Gain from Labour
    12 DecDewsbury EastKirkleesLabour 42.0%Gain from Heavy Woollen District Independents
    12 DecOvertonLancasterConservative 52.3%Hold
    12 DecWetherbyLeedsConservative 58.0%Hold
    12 DecCosby and CountesthorpeLeicestershireConservative 60.4%Hold
    12 DecWithamLincolnConservative 59.2%Hold
    12 DecClubmoorLiverpoolLabour 89.0%Hold
    12 DecPictonLiverpoolLabour 81.4%Hold
    12 DecHolditch & ChestertonNewcastle-under-LymeLabour 42.7%Hold
    12 DecKentwoodReadingConservative 53.5%Hold
    12 DecPendleburySalfordLabour 54.0%Hold
    12 DecWatling SouthStaffordshireConservative 67.5%Hold
    12 DecDenton WestTamesideLabour 53.3%Hold
    12 DecMercianTamworthConservative 79.2%Hold
    12 DecWarwick Myton & HeathcoteWarwickConservative 39.3%Hold
    12 DecSalvingtonWorthingConservative 60.5%Hold
    19 DecColeman StreetCity Of LondonIndependent 100.0%Not known
    19 DecFarringdon WithinCity Of LondonIndependentNot known
    19 DecDowgateCity of London CorporationIndependentNot known
    28 DecSheringham NorthNorth NorfolkLiberal Democrats 48.4%Hold