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
| Party | Gained | Lost | Net |
|---|---|---|---|
| Liberal Democrats | 12 | 3 | ▲ +9 |
| Plaid Cymru - The Party of Wales | 3 | 0 | ▲ +3 |
| Green | 2 | 0 | ▲ +2 |
| Swale Independents | 1 | 0 | ▲ +1 |
| Radcliffe First | 1 | 0 | ▲ +1 |
| Independent | 7 | 8 | ▼ -1 |
| Conservative | 15 | 16 | ▼ -1 |
| Heavy Woollen District Independents | 0 | 1 | ▼ -1 |
| SNP | 0 | 3 | ▼ -3 |
| Labour | 7 | 17 | ▼ -10 |
Every by-election
| Date | Ward | Winner | Previously |
|---|---|---|---|
| 10 Jan | Bexhill WestEast Sussex | Independent 51.9% | Hold |
| 10 Jan | St MarksRother | Independent 60.3% | Hold |
| 31 Jan | BillingsgateCity of London Corporation | Independent 100.0% | Not known |
| 31 Jan | WarlinghamSurrey | Conservative 48.1% | Hold |
| 7 Feb | Bolton and UndercliffeBradford | Liberal Democrats 51.3% | Gain from Labour |
| 7 Feb | Totteridge And BowerdeanBuckinghamshire | Labour 40.8% | Not known |
| 7 Feb | ThorntonLambeth | Labour 44.8% | Hold |
| 7 Feb | LansburyTower Hamlets | Labour 40.8% | Not known |
| 7 Feb | ShadwellTower Hamlets | Aspire 34.9% | Not known |
| 7 Feb | EvendonsWokingham | Liberal Democrats 63.1% | Hold |
| 14 Feb | RhooseVale of Glamorgan | Conservative 61.5% | Hold |
| 21 Feb | ElyCardiff | Plaid Cymru - The Party of Wales 43.1% | Gain from Labour |
| 21 Feb | OundleNorthamptonshire | Conservative 51.3% | Hold |
| 28 Feb | Berkeley ValeStroud | Conservative 49.9% | Hold |
| 7 Mar | Haddenham and StoneAylesbury Vale | Green 50.8% | Gain from Conservative |
| 14 Mar | WingateCounty Durham | Labour 64.1% | Hold |
| 14 Mar | Norbury & Pollards HillCroydon | Labour 66.8% | Hold |
| 14 Mar | CoxfordSouthampton | Labour 24.9% | Gain from Independent |
| 21 Mar | VangeBasildon | Labour 51.3% | Hold |
| 21 Mar | Esh And Witton GilbertCounty Durham | Liberal Democrats 63.2% | Hold |
| 21 Mar | DalgarnoKensington and Chelsea | Labour 55.3% | Hold |
| 21 Mar | Holditch & ChestertonNewcastle-under-Lyme | Independent 40.3% | Gain from Labour |
| 21 Mar | MiltonSouthend-On-Sea | Labour 49.9% | Hold |
| 21 Mar | Aveley and UplandsThurrock | Conservative 43.7% | Not known |
| 28 Mar | Clackmannanshire CentralClackmannanshire | SNP 40.9% | Hold |
| 28 Mar | Wallington NorthSutton | Liberal Democrats 38.2% | Hold |
| 4 Apr | WroxhamNorfolk | Conservative 55.7% | Hold |
| 11 Apr | Rosehill With Burnley WoodBurnley | Liberal Democrats 37.3% | Hold |
| 11 Apr | Leith WalkEdinburgh | SNP 35.8% | Hold |
| 11 Apr | ThorntonLambeth | Labour 39.0% | Hold |
| 11 Apr | CyfarthfaMerthyr Tydfil | Independent 69.5% | Gain from Labour |
| 25 Apr | Belle VueShropshire | Labour 47.1% | Hold |
| 30 Apr | BassishawCity Of London | Independent 100.0% | Not known |
| 30 Apr | CordwainerCity Of London | Independent 100.0% | Not known |
| 1 May | AspatriaAllerdale | Conservative 62.7% | Not known |
| 1 May | Broughton St BridgetsAllerdale | Labour 46.7% | Hold |
| 1 May | ChristchurchAllerdale | Labour 53.2% | Gain from Conservative |
| 1 May | Crummock and Derwent ValleyAllerdale | Conservative 73.5% | Not known |
| 1 May | DaltonAllerdale | Independent 67.0% | Gain from Conservative |
| 1 May | Ellen and GilcruxAllerdale | Labour 45.1% | Not known |
| 1 May | FlimbyAllerdale | Labour 74.8% | Hold |
| 1 May | Harrington and SalterbeckAllerdale | Independent 56.5% | Not known |
| 1 May | KeswickAllerdale | Labour 41.0% | Hold |
| 1 May | Maryport NorthAllerdale | Independent 65.0% | Not known |
| 1 May | Maryport SouthAllerdale | Labour 48.1% | Not known |
| 1 May | Moorclose and Moss BayAllerdale | Independent 66.7% | Not known |
| 1 May | Seaton and NorthsideAllerdale | Independent 41.8% | Not known |
| 1 May | Silloth and Solway CoastAllerdale | Conservative 44.5% | Not known |
| 1 May | St. JohnsAllerdale | Labour 47.7% | Hold |
| 1 May | St. MichaelsAllerdale | Labour 41.9% | Hold |
| 1 May | Stainburn and CliftonAllerdale | Independent 41.8% | Not known |
| 1 May | WarnellAllerdale | Conservative 60.5% | Hold |
| 1 May | Wigton and WoodsideAllerdale | Labour 33.4% | Not known |
| 1 May | All SaintsCheltenham | Labour 31.1% | Gain from Liberal Democrats |
| 2 May | TrumpingtonCambridgeshire | Liberal Democrats 46.7% | Hold |
| 2 May | Shildon And Dene ValleyCounty Durham | Liberal Democrats 42.7% | Gain from Labour |
| 2 May | SpennymoorCounty Durham | Independent 25.5% | Not known |
| 2 May | Upper WharfedaleCraven | Conservative 63.3% | Hold |
| 2 May | ThursbyCumbria | Conservative | Hold |
| 2 May | ChurchdownGloucestershire | Liberal Democrats 47.8% | Hold |
| 2 May | Northfleet and Gravesend WestKent | Labour 43.5% | Hold |
| 2 May | Sittingbourne NorthKent | Swale Independents 35.8% | Gain from Conservative |
| 2 May | Maer & WhitmoreNewcastle-under-Lyme | Conservative 86.6% | Hold |
| 2 May | HolywellNorthumberland | Labour 57.6% | Hold |
| 2 May | HaslemereSurrey | Independent 65.2% | Gain from Conservative |
| 2 May | Northgate and West GreenWest Sussex | Labour 48.9% | Hold |
| 9 May | Haddington and LammermuirEast Lothian | Conservative 35.0% | Gain from SNP |
| 9 May | CranhamHavering | Upminster and Cranham Residents Association 68.5% | Hold |
| 23 May | Morfa NefynGwynedd | Plaid Cymru - The Party of Wales | Not known |
| 23 May | St Mary'sIsles of Scilly | Independent 100.0% | Hold |
| 23 May | ResolvenNeath Port Talbot | Independent 59.7% | Gain from Labour |
| 23 May | St OsythTendring | Independent 58.2% | Hold |
| 30 May | BrockhurstGosport | Liberal Democrats 51.5% | Hold |
| 6 Jun | Ross NorthHerefordshire | Not recorded | Hold |
| 6 Jun | Wombourne South WestSouth Staffordshire | Conservative 88.4% | Hold |
| 13 Jun | Stapleford South EastBroxtowe | Liberal Democrats 59.5% | Hold |
| 13 Jun | ChittlehamptonNorth Devon | Conservative 40.8% | Hold |
| 13 Jun | Billinghay, Martin and North KymeNorth Kesteven | Conservative 49.1% | Hold |
| 20 Jun | Newent & TayntonForest Of Dean | Liberal Democrats 32.0% | Hold |
| 20 Jun | Whippingham and OsborneIsle Of Wight | Conservative 35.1% | Gain from Independent |
| 20 Jun | Cannon HillMerton | Liberal Democrats 35.0% | Gain from Labour |
| 20 Jun | PelennaNeath Port Talbot | Independent 59.8% | Hold |
| 20 Jun | Walkden SouthSalford | Not recorded | Hold |
| 20 Jun | Farington WestSouth Ribble | Conservative 84.5% | Hold |
| 20 Jun | FurzedownWandsworth | Labour 49.0% | Hold |
| 27 Jun | SandhurstMansfield | Not recorded | Hold |
| 4 Jul | Eccleston and MawdesleyChorley | Conservative 63.2% | Hold |
| 4 Jul | Park End & BeckfieldMiddlesbrough | Independent 77.0% | Hold |
| 4 Jul | RhonddaRhondda Cynon Taf | Plaid Cymru - The Party of Wales 42.1% | Gain from Labour |
| 4 Jul | Trowbridge DrynhamWiltshire | Liberal Democrats 41.6% | Gain from Conservative |
| 11 Jul | Bridlington NorthEast Riding Of Yorkshire | Liberal Democrats 44.7% | Gain from Conservative |
| 11 Jul | WhitecrossHerefordshire | It's Our County (Herefordshire) 60.7% | Not known |
| 16 Jul | CyncoedCardiff | Liberal Democrats 55.3% | Hold |
| 18 Jul | Downs NorthAshford | Conservative 33.8% | Hold |
| 18 Jul | Llanbadarn Fawr SulienCeredigion | Plaid Cymru - The Party of Wales 63.3% | Not known |
| 18 Jul | BrixworthDaventry | Liberal Democrats 49.5% | Gain from Conservative |
| 18 Jul | Northumbria PolicePolice and Crime Commissioner for Northumbria Police by-election | Labour 37.9% | Not known |
| 18 Jul | East SheenRichmond upon Thames | Liberal Democrats 58.9% | Hold |
| 18 Jul | Westbury NorthWiltshire | Liberal Democrats 53.3% | Hold |
| 24 Jul | Farringdon WithinCity Of London | Independent 66.9% | Not known |
| 25 Jul | BarnwoodGloucester | Liberal Democrats 46.5% | Hold |
| 25 Jul | PodsmeadGloucester | Liberal Democrats 30.0% | Gain from Labour |
| 25 Jul | HartHartlepool | Labour 30.5% | Not known |
| 30 Jul | Coleman StreetCity Of London | Independent 77.4% | Not known |
| 1 Aug | Godmanchester & Hemingford AbbotsHuntingdonshire | Liberal Democrats 48.2% | Hold |
| 1 Aug | Hazel GroveStockport | Liberal Democrats 43.9% | Hold |
| 7 Aug | Lime StreetCity Of London | Independent | Not known |
| 7 Aug | VintryCity of London Corporation | Independent | Not known |
| 8 Aug | NewnhamCambridge | Liberal Democrats 54.2% | Hold |
| 8 Aug | Irthlingborough WaterlooEast Northamptonshire | Conservative 53.1% | Hold |
| 8 Aug | ClainesWorcester | Liberal Democrats 44.3% | Gain from Conservative |
| 15 Aug | MeoleShropshire | Conservative 37.6% | Hold |
| 22 Aug | Rokeby and OversladeRugby | Liberal Democrats 50.0% | Hold |
| 29 Aug | Radcliffe WestBury | Radcliffe First 41.7% | Gain from Labour |
| 29 Aug | East Kilbride Central NorthSouth Lanarkshire | SNP 46.5% | Hold |
| 5 Sept | WainbodyCoventry | Conservative 59.8% | Hold |
| 5 Sept | Penrith SouthEden | Conservative 46.3% | Gain from Independent |
| 5 Sept | St Andrew's and DocklandsKingston Upon Hull | Labour 45.6% | Hold |
| 12 Sept | St. MarksRushmoor | Liberal Democrats 54.7% | Hold |
| 12 Sept | Ryhall & CastertonRutland | Conservative 56.3% | Hold |
| 12 Sept | Bishops CastleShropshire | Liberal Democrats 71.4% | Hold |
| 12 Sept | Middleton CheneySouth Northamptonshire | Liberal Democrats 44.3% | Gain from Conservative |
| 12 Sept | FinedonWellingborough | Conservative 52.2% | Hold |
| 19 Sept | ChestfieldCanterbury | Conservative 46.0% | Hold |
| 19 Sept | Fulham BroadwayHammersmith and Fulham | Labour 44.2% | Hold |
| 19 Sept | Old SwanLiverpool | Labour 56.6% | Hold |
| 19 Sept | ThorniewoodNorth Lanarkshire | Labour 44.3% | Gain from SNP |
| 19 Sept | VivarySomerset West and Taunton | Liberal Democrats 55.3% | Hold |
| 19 Sept | EthanduneWiltshire | Conservative 57.0% | Hold |
| 26 Sept | TilgateCrawley | Conservative 50.0% | Hold |
| 26 Sept | AlexandraIpswich | Labour 44.8% | Hold |
| 26 Sept | IcknieldLuton | Labour 37.0% | Gain from Conservative |
| 26 Sept | Sweyne Park and GrangeRochford | Conservative 44.4% | Hold |
| 26 Sept | Three BridgesWest Sussex | Conservative 51.7% | Hold |
| 3 Oct | Bridge of DonAberdeen | SNP 36.2% | Hold |
| 3 Oct | Whitchurch & TongwynlaisCardiff | Conservative 36.4% | Hold |
| 3 Oct | Syston WestCharnwood | Conservative 44.7% | Hold |
| 3 Oct | Clacton EastEssex | Independent 36.9% | Hold |
| 3 Oct | Norton Fitzwarren and StaplegroveSomerset West and Taunton | Liberal Democrats 40.6% | Hold |
| 3 Oct | ClarenceSt Albans | Liberal Democrats 73.4% | Hold |
| 10 Oct | Bramley and SherfieldBasingstoke and Deane | Independent 64.0% | Gain from Conservative |
| 10 Oct | BeanfieldCorby | Labour 56.0% | Hold |
| 10 Oct | TudorWatford | Liberal Democrats 55.4% | Hold |
| 17 Oct | WestcourtGravesham | Conservative 50.1% | Gain from Labour |
| 17 Oct | Princes ParkLiverpool | Labour 63.7% | Hold |
| 17 Oct | Upper DalesNorth Yorkshire | Conservative 45.7% | Gain from Independent |
| 17 Oct | Hawes, High Abbotside and Upper SwaledaleRichmondshire | Independent 68.9% | Hold |
| 24 Oct | Abbey NorthDaventry | Conservative 41.0% | Gain from Labour |
| 24 Oct | Heavitree and Whipton BartonDevon | Labour 31.9% | Hold |
| 24 Oct | Bagillt WestFlintshire | Labour 63.5% | Hold |
| 24 Oct | Bagilt WestFlintshire | Labour 63.5% | Not known |
| 24 Oct | Llandrindod NorthPowys | Liberal Democrats 47.2% | Gain from Conservative |
| 24 Oct | Newtown SouthPowys | Conservative 43.2% | Hold |
| 24 Oct | Coupe Green & Gregson LaneSouth Ribble | Conservative 49.1% | Hold |
| 24 Oct | TorkseyWest Lindsey | Conservative 36.1% | Hold |
| 24 Oct | Melksham Without SouthWiltshire | Conservative 60.5% | Hold |
| 29 Oct | Leamington LillingtonWarwick | Liberal Democrats 55.3% | Hold |
| 30 Oct | RiversideWindsor & Maidenhead | Conservative 32.4% | Hold |
| 31 Oct | Bromsgrove SouthWorcestershire | Conservative 40.2% | Gain from Labour |
| 7 Nov | MarconiChelmsford | Liberal Democrats 40.1% | Hold |
| 7 Nov | Wadebridge WestCornwall | Independent 42.4% | Gain from Liberal Democrats |
| 7 Nov | FairfieldCroydon | Labour 40.8% | Hold |
| 7 Nov | HundletonPembrokeshire | Independent 54.3% | Hold |
| 7 Nov | Lerwick SouthShetland Islands | Independent 100.0% | Hold |
| 7 Nov | Shetland CentralShetland Islands | Independent 75.6% | Hold |
| 13 Nov | AldersgateCity Of London | Labour 65.5% | Not known |
| 14 Nov | ShapEden | Liberal Democrats 45.3% | Gain from Conservative |
| 14 Nov | Dunfermline CentralFife | SNP 33.2% | Hold |
| 14 Nov | RosythFife | SNP 42.8% | Hold |
| 14 Nov | Inverness CentralHighland | SNP 44.1% | Hold |
| 14 Nov | RhosNeath Port Talbot | Plaid Cymru - The Party of Wales 53.9% | Gain from Labour |
| 14 Nov | St MaryPowys | Labour 37.4% | Gain from Conservative |
| 14 Nov | Goodrington with RoselandsTorbay | Not recorded | Hold |
| 14 Nov | CulverdenTunbridge Wells | Liberal Democrats 36.8% | Hold |
| 21 Nov | Torry/FerryhillAberdeen | SNP 43.2% | Hold |
| 21 Nov | LlanishenCardiff | Conservative 43.3% | Gain from Labour |
| 21 Nov | LoxwoodChichester | Conservative 61.8% | Gain from Liberal Democrats |
| 21 Nov | Keith and CullenMoray | Conservative 42.3% | Gain from SNP |
| 21 Nov | Birch GreenWest Lancashire | Labour 60.8% | Hold |
| 21 Nov | BourneWest Sussex | Conservative 48.9% | Hold |
| 28 Nov | Sheringham NorthNorth Norfolk | Liberal Democrats 47.1% | Hold |
| 28 Nov | WallingfordOxfordshire | Green 40.9% | Gain from Independent |
| 28 Nov | Trowbridge LambrokWiltshire | Liberal Democrats 57.8% | Gain from Conservative |
| 5 Dec | YnyshirRhondda Cynon Taf | Labour 55.1% | Not known |
| 12 Dec | Kirton & FramptonBoston | Conservative 70.1% | Gain from Independent |
| 12 Dec | SkirbeckBoston | Conservative 56.1% | Gain from Independent |
| 12 Dec | ChurchBury | Conservative 55.9% | Hold |
| 12 Dec | HaverstockCamden | Labour 57.1% | Hold |
| 12 Dec | Weldon and GrettonCorby | Conservative 44.4% | Hold |
| 12 Dec | Guston, Kingsdown & St Margaret's-at-CliffeDover | Conservative 59.1% | Hold |
| 12 Dec | Higham Ferrers ChicheleEast Northamptonshire | Conservative 63.3% | Hold |
| 12 Dec | Higham Ferrers LancasterEast Northamptonshire | Conservative 62.6% | Hold |
| 12 Dec | TopshamExeter | Conservative 43.0% | Hold |
| 12 Dec | Trelawnyd and GwaenysgorFlintshire | Conservative 46.4% | Hold |
| 12 Dec | ClissoldHackney | Labour 56.3% | Hold |
| 12 Dec | Storrington & WashingtonHorsham | Conservative 63.3% | Hold |
| 12 Dec | Feltham NorthHounslow | Conservative 43.5% | Gain from Labour |
| 12 Dec | Heston WestHounslow | Labour 64.4% | Hold |
| 12 Dec | AlconburyHuntingdonshire | Conservative 59.1% | Hold |
| 12 Dec | Newport WestIsle Of Wight | Conservative 36.5% | Hold |
| 12 Dec | St George'sIslington | Labour 45.4% | Hold |
| 12 Dec | Desborough St GilesKettering | Conservative 52.8% | Hold |
| 12 Dec | Upwell and DelphKing's Lynn And West Norfolk | Conservative 66.4% | Gain from Independent |
| 12 Dec | Colne ValleyKirklees | Conservative 45.8% | Gain from Labour |
| 12 Dec | Dewsbury EastKirklees | Labour 42.0% | Gain from Heavy Woollen District Independents |
| 12 Dec | OvertonLancaster | Conservative 52.3% | Hold |
| 12 Dec | WetherbyLeeds | Conservative 58.0% | Hold |
| 12 Dec | Cosby and CountesthorpeLeicestershire | Conservative 60.4% | Hold |
| 12 Dec | WithamLincoln | Conservative 59.2% | Hold |
| 12 Dec | ClubmoorLiverpool | Labour 89.0% | Hold |
| 12 Dec | PictonLiverpool | Labour 81.4% | Hold |
| 12 Dec | Holditch & ChestertonNewcastle-under-Lyme | Labour 42.7% | Hold |
| 12 Dec | KentwoodReading | Conservative 53.5% | Hold |
| 12 Dec | PendleburySalford | Labour 54.0% | Hold |
| 12 Dec | Watling SouthStaffordshire | Conservative 67.5% | Hold |
| 12 Dec | Denton WestTameside | Labour 53.3% | Hold |
| 12 Dec | MercianTamworth | Conservative 79.2% | Hold |
| 12 Dec | Warwick Myton & HeathcoteWarwick | Conservative 39.3% | Hold |
| 12 Dec | SalvingtonWorthing | Conservative 60.5% | Hold |
| 19 Dec | Coleman StreetCity Of London | Independent 100.0% | Not known |
| 19 Dec | Farringdon WithinCity Of London | Independent | Not known |
| 19 Dec | DowgateCity of London Corporation | Independent | Not known |
| 28 Dec | Sheringham NorthNorth Norfolk | Liberal Democrats 48.4% | Hold |
