Psephology.AI
    All years

    2004 council by-elections

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

    Gains and losses by party

    PartyGainedLostNet
    Conservative3014▲ +16
    Respect10▲ +1
    SNP21▲ +1
    Fylde10▲ +1
    BNP10▲ +1
    Green10▲ +1
    MBI01▼ -1
    Independent49▼ -5
    Liberal Democrats1421▼ -7
    Labour715▼ -8

    Every by-election

    DateWardWinnerPreviously
    15 JanTalbot and Branksome WoodsBournemouthConservative 52.9%Hold
    15 JanDolforwynPowysNot recordedNot known
    15 JanDundonald and LoansSouth AyrshireConservative 55.8%Hold
    22 JanNorth NailbourneCanterburyConservative 50.9%Hold
    22 JanCharlton KingsCheltenhamConservative 47.0%Hold
    22 JanSt NicholasHerefordshireLiberal Democrats 37.0%Hold
    22 JanCockettSwanseaPlaid Cymru - The Party of Wales 37.8%Not known
    22 JanCentralSwindonLabour 37.9%Gain from Liberal Democrats
    29 JanMeopham NorthGraveshamConservative 79.8%Hold
    29 JanStroud GreenHaringeyLiberal Democrats 53.7%Gain from Labour
    5 FebHaleBarnetLabour 43.7%Hold
    5 FebLydney EastForest Of DeanConservative 62.9%Gain from Labour
    5 FebFawleyHampshireLiberal Democrats 66.9%Not known
    5 FebAll SaintsHertfordshireConservative 52.5%Not known
    5 FebAlrewas & FradleyLichfieldConservative 53.8%Hold
    5 FebAlrewas & Fradley [merged 9e884b9d]LichfieldConservative 53.8%Not known
    5 FebHolbury and North BlackfieldNew ForestLiberal Democrats 75.2%Hold
    5 FebFelixstowe FerrySuffolkConservative 65.5%Not known
    5 FebYoxfordSuffolk CoastalLiberal Democrats 45.2%Gain from Conservative
    5 FebYoxford [merged fdffc6c0]Suffolk CoastalLiberal Democrats 45.2%Not known
    12 FebHoughton, Haynes, Southill and Old WardenMid BedfordshireConservative 52.0%Hold
    12 FebEast WalworthSouthwarkLiberal Democrats 56.1%Hold
    12 FebHaygateTelford & WrekinConservative 39.2%Hold
    12 FebNewport NorthTelford & WrekinConservative 40.0%Gain from Liberal Democrats
    19 FebSidemoorBromsgroveLabour 52.3%Hold
    19 FebMexboroughDoncasterLiberal Democrats 56.8%Hold
    19 FebMexboroughDoncaster Metropolitan Borough CouncilLiberal Democrats 56.8%Not known
    19 FebRavenstonedaleEdenConservative 51.5%Gain from Independent
    19 FebHeachamKing's Lynn And West NorfolkConservative 44.2%Gain from Independent
    19 FebDorchesterOxfordshireConservative 81.7%Not known
    19 FebHenley SouthOxfordshireConservative 54.9%Not known
    26 FebWoodhouse CloseCounty DurhamLabour 66.3%Hold
    26 FebSt. Davids & PennsylvaniaDevonLiberal Democrats 41.3%Not known
    26 FebDuryardExeterLiberal Democrats 47.1%Hold
    26 FebHeysham SouthLancasterConservative 36.1%Gain from MBI
    26 FebKessinglandWaveneyConservative 39.3%Gain from Labour
    26 FebWoodhouse CloseWear ValleyLabour 66.3%Not known
    26 FebChippenham SheldonWiltshireLiberal Democrats 57.0%Not known
    4 MarMaryport EastCumbriaLabour 57.5%Not known
    4 MarMuswell HillHaringeyLiberal Democrats 69.5%Hold
    4 MarWoking WestSurreyLiberal Democrats 57.2%Not known
    4 MarFrodsham SouthVale RoyalConservative 47.9%Hold
    11 MarHedingham and MaplesteadBraintreeLiberal Democrats 45.8%Gain from Conservative
    11 MarRedruth NorthCornwallLabour 32.3%Hold
    11 MarCarnforthLancasterLabour 48.5%Hold
    11 MarMelton SysonbyMeltonConservative 45.9%Hold
    11 MarSouthborough & High BroomsTunbridge WellsConservative 41.0%Not known
    11 MarSouthborough and High BroomsTunbridge WellsConservative 41.0%Gain from Labour
    18 MarPlantationBedfordshireConservative 70.3%Not known
    18 MarMorpeth StobhillCastle MorpethIndependent 28.4%Gain from Labour
    18 MarAlderney [merged 4c862fd6]PooleLiberal Democrats 59.9%Hold
    18 MarAlderney [merged c873cbef]PooleLiberal Democrats 59.9%Not known
    18 MarWoodlandsScarboroughIndependent 38.6%Gain from Labour
    25 MarWinslowAylesbury ValeConservative 54.2%Hold
    25 MarTown CentreFalkirkLabour 38.9%Hold
    25 MarFriary & St. NicolasGuildfordLiberal Democrats 53.1%Not known
    25 MarFriary and St NicolasGuildfordLiberal Democrats 54.8%Hold
    25 MarMyddleShropshireConservative 50.3%Not known
    1 AprQueens CrossAberdeenConservative 46.9%Hold
    1 AprWampoolAllerdaleConservative 69.7%Gain from Liberal Democrats
    1 AprBelfordBerwick-upon-TweedConservative 53.7%Not known
    1 AprStaniland SouthBostonLabour 46.0%Hold
    1 AprStaniland South [merged 9fa30243]BostonLabour 46.0%Not known
    1 AprCrewe SouthCheshireLiberal Democrats 43.3%Not known
    1 AprBennetts EndDacorumLabour 52.7%Hold
    5 AprVerulamSt. AlbansLiberal Democrats 49.4%Not known
    15 AprSt. Margarets-at-CliffeDoverConservative 60.5%Hold
    15 AprChaseEnfieldConservative 65.3%Gain from Liberal Democrats
    15 AprWoodbridgeSuffolkConservative 45.2%Not known
    22 AprLoundsley GreenChesterfieldLiberal Democrats 65.7%Hold
    22 AprLoundsley Green [merged 962e0272]ChesterfieldLiberal Democrats 65.7%Not known
    22 AprWivenhoe QuayColchesterLabour 34.4%Not known
    22 AprWivenhoe Quay [merged 64267b74]ColchesterLabour 34.4%Not known
    22 AprFolkestone EastFolkestone And HytheConservative 52.5%Gain from Liberal Democrats
    22 AprFolkestone EastShepwayConservative 52.5%Gain from Liberal Democrats
    22 AprBradley Stoke Baileys CourtSouth GloucestershireLiberal Democrats 44.8%Hold
    22 AprMadeleyTelford & WrekinLabour 29.1%Not known
    22 AprFarnham FirgroveWaverleyConservative 47.0%Gain from Liberal Democrats
    29 AprWest HallamDerbyshireConservative 56.8%Not known
    29 AprSouth RuislipHillingdonLiberal Democrats 34.3%Gain from Conservative
    29 AprAshford South EastKentLiberal Democrats 34.1%Not known
    29 AprPorthleven and SithneyKerrierIndependent 88.6%Hold
    29 AprThameOxfordshireLiberal Democrats 46.5%Not known
    29 AprLeyland St AmbroseSouth RibbleLiberal Democrats 49.4%Hold
    29 AprLeyland St Mary'sSouth RibbleConservative 51.5%Gain from Liberal Democrats
    6 MayThe SwaffhamsEast CambridgeshireConservative 50.4%Gain from Liberal Democrats
    6 MayNew ParkHarrogateLiberal Democrats 65.4%Hold
    6 MayKelso and District NorthScottish BordersConservative 43.8%Not known
    20 MayLawrence HillBristol, City ofLiberal Democrats 43.6%Hold
    20 MayRisbygateSt EdmundsburyNot recordedHold
    20 MayRoundham with HydeTorbayConservative 36.9%Gain from Liberal Democrats
    10 JunFulbournCambridgeshireConservative 45.5%Not known
    10 JunCorfe MullenDorsetLiberal Democrats 60.6%Not known
    10 JunMincinglakeExeterLabour 45.6%Hold
    10 JunRed LodgeForest HeathConservative 44.3%Gain from Independent
    10 JunHanboroughOxfordshireLiberal Democrats 52.9%Not known
    10 JunWadhurstWealdenConservative 63.2%Hold
    1 JulCullompton SouthMid DevonConservative 44.4%Gain from Independent
    1 JulBuckie WestMorayIndependent 63.6%Not known
    8 JulColumnShrewsbury and AtchamConservative 69.3%Hold
    15 JulValenceBarking and DagenhamLabour 41.6%Hold
    15 JulEarcroftBlackburn with DarwenNot recordedHold
    15 JulRainham & WenningtonHaveringLabour 31.2%Not known
    15 JulCaytonNorth YorkshireConservative 75.1%Hold
    15 JulWoldsRyedaleConservative 55.9%Hold
    15 JulSir Moses MontefioreThanetLabour 33.2%Hold
    15 JulMelksham NorthWest WiltshireLabour 44.7%Gain from Liberal Democrats
    15 JulTrowbridge CollegeWest WiltshireLiberal Democrats 52.7%Hold
    22 JulBoscombe WestBournemouthLiberal Democrats 42.9%Hold
    22 JulSarnBridgendLabour 58.2%Hold
    22 JulGowerConwyPlaid Cymru - The Party of Wales 76.1%Not known
    22 JulFlitwick EastMid BedfordshireLiberal Democrats 49.6%Hold
    22 JulFlitwick East [merged e32728a3]Mid BedfordshireLiberal Democrats 49.6%Not known
    22 JulBurslem SouthStoke On TrentNot recordedNot known
    22 JulPierTendringConservative 36.0%Hold
    29 JulBoughtonChesterLabour 44.9%Hold
    29 JulBoughtonCity of ChesterLabour 44.9%Hold
    29 JulMackworthDerbyLabour 41.0%Hold
    29 JulMackworth [merged 72f8b2a1]Derby [merged 9923a578]Labour 41.0%Hold
    29 JulShooters HillGreenwichLabour 43.1%Hold
    29 JulArdrossan NorthNorth AyrshireConservative 30.5%Gain from Labour
    29 JulBiddulph EastStaffordshire MoorlandsLabour 79.4%Hold
    29 JulSt. Dunstans & Stepney GreenTower HamletsRespect 31.1%Gain from Labour
    5 AugSleaford CastleNorth KestevenConservative 29.8%Hold
    12 AugBarwellHinckley And BosworthLiberal Democrats 45.7%Gain from Conservative
    12 AugSpeysideMoraySNP 43.9%Gain from Independent
    12 AugSpeysideMoraySNP 43.9%Not known
    12 AugBrampton & WaltonNorth East DerbyshireLiberal Democrats 44.6%Gain from Conservative
    19 AugGerrards CrossBuckinghamshireConservative 78.2%Not known
    19 AugMenstrieClackmannanshireSNP 56.2%Not known
    19 AugTillicoultry WestClackmannanshireSNP 36.9%Hold
    19 AugNorth RoadDarlingtonLiberal Democrats 48.5%Hold
    19 AugParkFyldeFylde 45.7%Gain from Conservative
    19 AugMarket Harborough - LoganHarboroughLiberal Democrats 51.9%Hold
    19 AugBurnham Lent RiseSouth BucksConservative 70.1%Hold
    26 AugCongleton NorthCongletonConservative 43.0%Gain from Labour
    26 AugCongleton NorthCongletonNot recordedNot known
    26 AugMelton CravenMeltonIndependent 43.9%Hold
    26 AugMelton DorianMeltonConservative 60.0%Gain from Independent
    26 AugEast MarshNorth East LincolnshireLiberal Democrats 63.7%Gain from Labour
    26 AugBothwell SouthSouth LanarkshireConservative 48.4%Gain from Labour
    26 AugLostock and WinchamVale RoyalConservative 46.0%Gain from Liberal Democrats
    9 SeptRowlands CastleEast HampshireLiberal Democrats 58.3%Hold
    9 SeptBexhill EastEast SussexConservative 61.6%Not known
    9 SeptSackvilleRotherConservative 51.7%Hold
    9 SeptSackvilleRotherConservative 51.5%Hold
    9 SeptWiverton [merged 7e92779f]RushcliffeConservative 49.2%Not known
    9 SeptBarninghamSt EdmundsburyConservativeHold
    9 SeptMillwallTower HamletsConservative 34.8%Gain from Labour
    16 SeptGoresbrookBarking and DagenhamBNP 51.9%Gain from Labour
    16 SeptEdmondsley and WaldridgeChester-le-StreetLabour 42.2%Hold
    16 SeptHoward TownHigh PeakLabour 36.7%Hold
    16 SeptSimmondleyHigh PeakLiberal Democrats 40.2%Hold
    16 SeptKnutsford NetherMacclesfieldConservative 61.1%Hold
    16 SeptKnutsford Nether [merged c5f664f7]MacclesfieldConservative 61.1%Hold
    16 SeptPoughill and StrattonNorth CornwallLiberal Democrats 63.0%Hold
    16 SeptEastonSouth NorfolkConservative 57.1%Hold
    16 SeptEaston [merged 5752d83a]South NorfolkConservative 57.1%Not known
    16 SeptUckfield RidgewoodWealdenLiberal Democrats 60.4%Hold
    23 SeptLaindon ParkBasildonLabour 42.3%Gain from Conservative
    23 SeptCowpenBlyth ValleyLabour 69.0%Hold
    23 SeptBasildon Westley HeightsEssexLiberal Democrats 45.0%Not known
    23 SeptAylestoneLeicesterConservative 45.9%Gain from Liberal Democrats
    23 SeptAylestoneLeicester City CouncilConservative 45.9%Not known
    23 SeptSonning CommonSouth OxfordshireConservative 70.6%Hold
    30 SeptBoyce [merged c3e8b433]Castle PointConservative 64.0%Not known
    30 SeptSelsey NorthChichesterLiberal Democrats 35.3%Gain from Conservative
    30 SeptRoman BankFenlandConservative 50.2%Hold
    30 SeptHeston WestHounslowLabour 40.7%Hold
    30 SeptLongholmeRossendaleConservative 58.5%Hold
    7 OctVillageBarking and DagenhamLabour 44.7%Hold
    7 OctHangleton & KnollBrighton & HoveConservative 42.1%Gain from Labour
    7 OctHangleton and KnollBrighton & HoveConservative 42.1%Gain from Labour
    7 OctBartonCanterburyConservative 44.8%Gain from Liberal Democrats
    7 OctBarton [merged 6f9b4712]CanterburyConservative 44.8%Not known
    7 OctHamptonRichmond upon ThamesLiberal Democrats 57.9%Gain from Conservative
    14 OctLlandrindod SouthPowysLiberal Democrats 53.3%Gain from Independent
    14 OctCoupe Green & Gregson LaneSouth RibbleIdle Toad 44.0%Not known
    14 OctBurham Eccles & WouldhamTonbridge and MallingConservative 58.6%Not known
    14 OctBowling/Milton/Old KilpatrickWest DunbartonshireIndependent 34.5%Gain from SNP
    14 OctWey ValleyWeymouth and PortlandConservative 41.3%Hold
    21 OctBerechurchColchesterLabour 51.5%Gain from Liberal Democrats
    21 OctBerechurch [merged c5d199ff]ColchesterLabour 51.5%Not known
    21 OctCowes CentralIsle Of WightConservative 38.5%Not known
    21 OctAlfrick and LeighMalvern HillsLiberal Democrats 43.2%Not known
    21 OctBarking and SomershamMid SuffolkLiberal Democrats 51.1%Hold
    21 OctClaydon & BarhamMid SuffolkLiberal Democrats 57.7%Hold
    21 OctCarfaxOxfordGreen 33.3%Gain from Liberal Democrats
    21 OctGreyfriarsSouth KestevenConservative 47.4%Hold
    21 OctGreat Dunmow SouthUttlesfordLiberal Democrats 61.9%Hold
    21 OctCroylandWellingboroughConservative 39.4%Hold
    28 OctColintonEdinburghConservative 46.0%Hold
    28 OctKirk HallamErewashLabour 52.1%Gain from Liberal Democrats
    28 OctManorForest HeathConservative 66.9%Gain from Independent
    28 OctOgbourneKennetConservative 60.0%Not known
    28 OctValleyWaltham ForestConservative 37.0%Hold
    4 NovKnightonLeicesterConservative 45.9%Gain from Liberal Democrats
    4 NovKnightonLeicester City CouncilConservative 45.9%Not known
    4 NovWestward Ho!TorridgeIndependent 40.7%Not known
    4 NovWantage CharltonVale Of White HorseLiberal Democrats 47.4%Hold
    4 NovWarwick SouthWarwickConservative 56.4%Hold
    11 NovLittle Baddow, Danbury and SandonChelmsfordConservative 57.7%Hold
    11 NovStanlow and WolverhamEllesmere Port and NestonLabour 60.8%Hold
    11 NovCupar NorthFifeLiberal Democrats 34.4%Hold
    11 NovFortis GreenHaringeyLiberal Democrats 57.8%Hold
    11 NovGroveKingston upon ThamesLiberal Democrats 52.0%Hold
    11 NovSpeysideMorayNot recordedNot known
    11 NovSpeysideMorayNot recordedHold
    11 NovEaston In GordanoNorth SomersetConservative 44.3%Not known
    11 NovEaston-in-GordanoNorth SomersetConservative 44.3%Hold
    18 NovBuckingham SouthAylesbury ValeConservative 38.8%Hold
    18 NovBuckingham SouthBuckinghamshireConservative 51.1%Not known
    18 NovBlacon LodgeCity of ChesterLabour 62.9%Hold
    18 NovPorthleven and SithneyKerrierMK 54.5%Not known
    18 NovHoe StreetWaltham ForestLabour 40.4%Hold
    25 NovHednesford NorthCannock ChaseLabour 46.5%Hold
    25 NovOld BarrowCumbriaNot recordedNot known
    25 NovHeston EastHounslowLabour 42.9%Hold
    25 NovEcclesSalfordLabour 40.4%Gain from Liberal Democrats
    25 NovEccles [merged 305a003d]SalfordLabour 40.4%Hold
    25 NovOld WarleySandwellLabour 42.3%Gain from Conservative
    25 NovDuxfordSouth CambridgeshireLiberal Democrats 43.2%Gain from Conservative
    25 NovAbbeyTest ValleyLiberal Democrats 50.6%Gain from Conservative
    25 NovDavyhulme WestTraffordConservative 52.2%Hold
    25 NovTimperleyTraffordConservative 51.2%Hold
    25 NovWinnershWokinghamLiberal Democrats 51.5%Hold
    2 DecClackmannanClackmannanshireLabour 54.4%Hold
    2 DecBattins & BondfieldsHampshireLiberal Democrats 56.6%Not known
    2 DecBramber Upper Beeding & WoodmancoteHorshamLiberal Democrats 49.9%Hold
    9 DecSlideslowBromsgroveLiberal Democrats 47.2%Gain from Conservative
    9 DecChiswick HomefieldsHounslowConservative 58.1%Hold
    9 DecBiddulph NorthStaffordshire MoorlandsIndependent 41.4%Hold
    9 DecRoebuckStevenageLabour 52.6%Hold
    9 DecRoebuck [merged f00f94a2]StevenageLabour 52.6%Not known
    10 DecCastleCambridgeshireLiberal Democrats 55.8%Not known
    16 DecShielfieldBerwick-upon-TweedConservative 52.6%Not known
    16 DecSpittalBerwick-upon-TweedIndependent 61.7%Gain from Liberal Democrats
    16 DecArwenackCarrickLiberal Democrats 45.5%Gain from Conservative
    16 DecBelmontCounty DurhamLiberal Democrats 46.1%Hold
    16 DecBelmontDurhamLiberal Democrats 46.1%Not known
    16 DecLittle Parndon & Town CentreEssexLabour 43.5%Not known
    16 DecInchyraFalkirkSNP 66.0%Gain from Independent
    16 DecDownham MarketNorfolkConservative 68.3%Not known
    23 DecOakham South EastRutlandConservative 64.5%Hold
    23 DecOakham South WestRutlandConservative 64.5%Gain from Liberal Democrats