Skip to content

2019 vs 2024 general election: what changed

How vote shares and seats changed between the 2019 and 2024 UK general elections, nationally and in every nation and region, plus every constituency. Conservative–Labour swing: 10.8 points to Labour.

Con–Lab swing
10.8 ptsto Labour
2019
Con 365largest party
2024
Lab 411largest party
United Kingdom
PartyShare 2019Share 2024ChangeSeats 2019Seats 2024Change
Labour32.1%33.7%+1.6202411+209
Conservative43.6%23.7%−19.9365121−244
Liberal Democrats11.6%12.2%+0.71172+61
Scottish National Party3.9%2.5%−1.4489−39
Sinn Féin0.6%0.7%+0.2770
Independent0.6%2.0%+1.306+6
Reform UK—14.3%——5+5
Democratic Unionist Party0.8%0.6%−0.285−3
Green2.7%6.8%+4.114+3
Plaid Cymru0.5%0.7%+0.2440
Social Democratic and Labour Party0.4%0.3%−0.1220
Alliance Party of Northern Ireland0.4%0.4%0110
Ulster Unionist Party0.3%0.3%001+1
Traditional Unionist Voice—0.2%——1+1
Speaker0.08%0.09%0110
Brexit Party2.0%——0—0

Nations and regions

RegionTop party 2019Top party 2024Con–Lab swingSeats
EnglandCon 345Lab 34711.0 pts to Lab533 → 543
ScotlandSNP 48Lab 3714.6 pts to Lab59 → 57
WalesLab 22Lab 277.0 pts to Lab40 → 32
Northern IrelandDUP 8SF 70.3 pts to Lab18 → 18
North EastLab 19Lab 2610.4 pts to Lab29 → 27
North WestLab 41Lab 658.1 pts to Lab75 → 73
Yorkshire and the HumberLab 28Lab 4311.1 pts to Lab54 → 54
East MidlandsCon 38Lab 2914.5 pts to Lab46 → 47
West MidlandsCon 44Lab 3813.0 pts to Lab59 → 57
East of EnglandCon 52Lab 2715.8 pts to Lab58 → 61
LondonLab 49Lab 593.1 pts to Lab73 → 75
South EastCon 74Lab 3612.9 pts to Lab84 → 91
South WestCon 48Lab 2412.9 pts to Lab55 → 58

Seat by seat: 303 changed hands

Download CSV

2019 figures are the House of Commons Library’s notional results on the 2024 boundaries.

Barnsley North: Lab → LabBarnsley South: Lab → LabBeckenham and Penge: Lab → LabBethnal Green and Stepney: Lab → LabBicester and Woodstock: Con → LDBirmingham Edgbaston: Lab → LabBirmingham Erdington: Lab → LabBirmingham Hall Green and Moseley: Lab → LabBirmingham Hodge Hill and Solihull North: Lab → LabBirmingham Ladywood: Lab → LabBirmingham Northfield: Con → LabBirmingham Perry Barr: Lab → IndBirmingham Selly Oak: Lab → LabBirmingham Yardley: Lab → LabBlackley and Middleton South: Lab → LabBlackpool North and Fleetwood: Con → LabBlaydon and Consett: Lab → LabBlyth and Ashington: Lab → LabBolton South and Walkden: Lab → LabBrent East: Lab → LabBrent West: Lab → LabBridgwater: Con → ConBridlington and The Wolds: Con → ConBrigg and Immingham: Con → ConBrighton Kemptown and Peacehaven: Lab → LabBrighton Pavilion: Grn → GrnBristol Central: Lab → GrnBristol North East: Lab → LabBristol North West: Lab → LabBristol South: Lab → LabBroadland and Fakenham: Con → ConBromley and Biggin Hill: Con → ConBromsgrove: Con → ConBroxbourne: Con → ConBroxtowe: Con → LabBuckingham and Bletchley: Con → LabBurnley: Con → LabBurton and Uttoxeter: Con → LabBury North: Con → LabBury South: Con → LabBury St Edmunds and Stowmarket: Con → LabCalder Valley: Con → LabCamborne and Redruth: Con → LabCambridge: Lab → LabCannock Chase: Con → LabCanterbury: Lab → LabCarlisle: Con → LabCarshalton and Wallington: Con → LDCastle Point: Con → ConCentral Devon: Con → ConCentral Suffolk and North Ipswich: Con → ConChatham and Aylesford: Con → LabCheadle: Con → LDChelmsford: Con → LDChelsea and Fulham: Con → LabCheltenham: Con → LDChesham and Amersham: Con → LDChester North and Neston: Lab → LabChester South and Eddisbury: Con → ConChesterfield: Lab → LabChichester: Con → LDChingford and Woodford Green: Con → ConChippenham: Con → LDChipping Barnet: Con → LabChorley: Spk → SpkChristchurch: Con → ConCities of London and Westminster: Con → LabCity of Durham: Lab → LabClacton: Con → RefClapham and Brixton Hill: Lab → LabColchester: Con → LabColne Valley: Con → LabCongleton: Con → LabCorby and East Northamptonshire: Con → LabCoventry East: Lab → LabCoventry North West: Lab → LabCoventry South: Lab → LabCramlington and Killingworth: Lab → LabCrawley: Con → LabCrewe and Nantwich: Con → LabCroydon East: Lab → LabCroydon South: Con → ConCroydon West: Lab → LabDagenham and Rainham: Lab → LabDarlington: Con → LabDartford: Con → LabDaventry: Con → ConDerby North: Con → LabDerby South: Lab → LabDerbyshire Dales: Con → LabDewsbury and Batley: Lab → IndDidcot and Wantage: Con → LDDoncaster Central: Lab → LabDoncaster East and the Isle of Axholme: Con → LabDoncaster North: Lab → LabDorking and Horley: Con → LDDover and Deal: Con → LabDroitwich and Evesham: Con → ConDudley: Con → LabDulwich and West Norwood: Lab → LabDunstable and Leighton Buzzard: Con → LabEaling Central and Acton: Lab → LabEaling North: Lab → LabEaling Southall: Lab → LabEarley and Woodley: Con → LabEasington: Lab → LabEast Grinstead and Uckfield: Con → ConEast Ham: Lab → LabEast Hampshire: Con → ConEast Surrey: Con → ConEast Thanet: Con → LabEast Wiltshire: Con → ConEast Worthing and Shoreham: Con → LabEastbourne: Con → LDEastleigh: Con → LDEdmonton and Winchmore Hill: Lab → LabEllesmere Port and Bromborough: Lab → LabEltham and Chislehurst: Con → LabEly and East Cambridgeshire: Con → LDEnfield North: Lab → LabEpping Forest: Con → ConEpsom and Ewell: Con → LDErewash: Con → LabErith and Thamesmead: Lab → LabEsher and Walton: Con → LDExeter: Lab → LabExmouth and Exeter East: Con → ConFareham and Waterlooville: Con → ConFarnham and Bordon: Con → ConFaversham and Mid Kent: Con → ConFeltham and Heston: Lab → LabFilton and Bradley Stoke: Con → LabFinchley and Golders Green: Con → LabFolkestone and Hythe: Con → LabForest of Dean: Con → LabFrome and East Somerset: Con → LDFylde: Con → ConGainsborough: Con → ConGateshead Central and Whickham: Lab → LabGedling: Con → LabGillingham and Rainham: Con → LabGlastonbury and Somerton: Con → LDGloucester: Con → LabGodalming and Ash: Con → ConGoole and Pocklington: Con → ConGorton and Denton: Lab → LabGosport: Con → ConGrantham and Bourne: Con → ConGravesham: Con → LabGreat Grimsby and Cleethorpes: Con → LabGreat Yarmouth: Con → RefGreenwich and Woolwich: Lab → LabGuildford: Con → LDHackney North and Stoke Newington: Lab → LabHackney South and Shoreditch: Lab → LabHalesowen: Con → LabHalifax: Lab → LabHamble Valley: Con → ConHammersmith and Chiswick: Lab → LabHampstead and Highgate: Lab → LabHarborough, Oadby and Wigston: Con → ConHarlow: Con → LabHarpenden and Berkhamsted: Con → LDHarrogate and Knaresborough: Con → LDHarrow East: Con → ConHarrow West: Lab → LabHartlepool: Lab → LabHarwich and North Essex: Con → ConHastings and Rye: Con → LabHavant: Con → ConHayes and Harlington: Lab → LabHazel Grove: Con → LDHemel Hempstead: Con → LabHendon: Con → LabHenley and Thame: Con → LDHereford and South Herefordshire: Con → ConHerne Bay and Sandwich: Con → ConHertford and Stortford: Con → LabHertsmere: Con → ConHexham: Con → LabHeywood and Middleton North: Lab → LabHigh Peak: Con → LabHinckley and Bosworth: Con → ConHitchin: Con → LabHolborn and St Pancras: Lab → LabHoniton and Sidmouth: Con → LDHornchurch and Upminster: Con → ConHornsey and Friern Barnet: Lab → LabHorsham: Con → LDHoughton and Sunderland South: Lab → LabHove and Portslade: Lab → LabHuddersfield: Lab → LabHuntingdon: Con → ConHyndburn: Con → LabIlford North: Lab → LabIlford South: Lab → LabIpswich: Con → LabIsle of Wight East: Con → ConIsle of Wight West: Con → LabIslington North: Lab → IndIslington South and Finsbury: Lab → LabJarrow and Gateshead East: Lab → LabKeighley and Ilkley: Con → ConKenilworth and Southam: Con → ConKensington and Bayswater: Lab → LabKettering: Con → LabKingston and Surbiton: LD → LDKingston upon Hull East: Lab → LabKingston upon Hull North and Cottingham: Lab → LabKingston upon Hull West and Haltemprice: Con → LabKingswinford and South Staffordshire: Con → ConKnowsley: Lab → LabLancaster and Wyre: Con → LabLeeds Central and Headingley: Lab → LabLeeds East: Lab → LabLeeds North East: Lab → LabLeeds North West: Con → LabLeeds South West and Morley: Con → LabLeeds South: Lab → LabLeeds West and Pudsey: Lab → LabLeicester East: Lab → ConLeicester South: Lab → IndLeicester West: Lab → LabLeigh and Atherton: Con → LabLewes: Con → LDLewisham East: Lab → LabLewisham North: Lab → LabLewisham West and East Dulwich: Lab → LabLeyton and Wanstead: Lab → LabLichfield: Con → LabLincoln: Con → LabLiverpool Garston: Lab → LabLiverpool Riverside: Lab → LabLiverpool Walton: Lab → LabLiverpool Wavertree: Lab → LabLiverpool West Derby: Lab → LabLoughborough: Con → LabLouth and Horncastle: Con → ConLowestoft: Con → LabLuton North: Lab → LabLuton South and South Bedfordshire: Lab → LabMacclesfield: Con → LabMaidenhead: Con → LDMaidstone and Malling: Con → ConMakerfield: Lab → LabMaldon: Con → ConManchester Central: Lab → LabManchester Rusholme: Lab → LabManchester Withington: Lab → LabMansfield: Con → LabMelksham and Devizes: Con → LDMelton and Syston: Con → ConMeriden and Solihull East: Con → ConMid Bedfordshire: Con → ConMid Buckinghamshire: Con → ConMid Cheshire: Con → LabMid Derbyshire: Con → LabMid Dorset and North Poole: Con → LDMid Leicestershire: Con → ConMid Norfolk: Con → ConMid Sussex: Con → LDMiddlesbrough and Thornaby East: Lab → LabMiddlesbrough South and East Cleveland: Con → LabMilton Keynes Central: Con → LabMilton Keynes North: Con → LabMitcham and Morden: Lab → LabMorecambe and Lunesdale: Con → LabNew Forest East: Con → ConNew Forest West: Con → ConNewark: Con → ConNewbury: Con → LDNewcastle upon Tyne Central and West: Lab → LabNewcastle upon Tyne East and Wallsend: Lab → LabNewcastle upon Tyne North: Lab → LabNewcastle-under-Lyme: Con → LabNewton Abbot: Con → LDNewton Aycliffe and Spennymoor: Con → LabNormanton and Hemsworth: Lab → LabNorth Bedfordshire: Con → ConNorth Cornwall: Con → LDNorth Cotswolds: Con → ConNorth Devon: Con → LDNorth Dorset: Con → ConNorth Durham: Lab → LabNorth East Cambridgeshire: Con → ConNorth East Derbyshire: Con → LabNorth East Hampshire: Con → LDNorth East Hertfordshire: Con → LabNorth East Somerset and Hanham: Con → LabNorth Herefordshire: Con → GrnNorth Norfolk: Con → LDNorth Northumberland: Con → LabNorth Shropshire: Con → LDNorth Somerset: Con → LabNorth Warwickshire and Bedworth: Con → LabNorth West Cambridgeshire: Con → LabNorth West Essex: Con → ConNorth West Hampshire: Con → ConNorth West Leicestershire: Con → LabNorth West Norfolk: Con → ConNorthampton North: Con → LabNorthampton South: Con → LabNorwich North: Con → LabNorwich South: Lab → LabNottingham East: Lab → LabNottingham North and Kimberley: Lab → LabNottingham South: Lab → LabNuneaton: Con → LabOld Bexley and Sidcup: Con → ConOldham East and Saddleworth: Lab → LabOldham West, Chadderton and Royton: Lab → LabOrpington: Con → ConOssett and Denby Dale: Con → LabOxford East: Lab → LabOxford West and Abingdon: LD → LDPeckham: Lab → LabPendle and Clitheroe: Con → LabPenistone and Stocksbridge: Con → LabPenrith and Solway: Con → LabPeterborough: Con → LabPlymouth Moor View: Con → LabPlymouth Sutton and Devonport: Lab → LabPontefract, Castleford and Knottingley: Lab → LabPoole: Con → LabPoplar and Limehouse: Lab → LabPortsmouth North: Con → LabPortsmouth South: Lab → LabPreston: Lab → LabPutney: Lab → LabQueen's Park and Maida Vale: Lab → LabRawmarsh and Conisbrough: Lab → LabRayleigh and Wickford: Con → ConReading Central: Lab → LabReading West and Mid Berkshire: Con → LabRedcar: Con → LabRedditch: Con → LabReigate: Con → ConRibble Valley: Con → LabRichmond and Northallerton: Con → ConRichmond Park: LD → LDRochdale: Lab → LabRochester and Strood: Con → LabRomford: Con → ConRomsey and Southampton North: Con → ConRossendale and Darwen: Con → LabRother Valley: Con → LabRotherham: Lab → LabRugby: Con → LabRuislip, Northwood and Pinner: Con → ConRuncorn and Helsby: Lab → LabRunnymede and Weybridge: Con → ConRushcliffe: Con → LabRutland and Stamford: Con → ConSalford: Lab → LabSalisbury: Con → ConScarborough and Whitby: Con → LabScunthorpe: Con → LabSefton Central: Lab → LabSelby: Con → LabSevenoaks: Con → ConSheffield Brightside and Hillsborough: Lab → LabSheffield Central: Lab → LabSheffield Hallam: Lab → LabSheffield Heeley: Lab → LabSheffield South East: Lab → LabSherwood Forest: Con → LabShipley: Con → LabShrewsbury: Con → LabSittingbourne and Sheppey: Con → LabSkipton and Ripon: Con → ConSleaford and North Hykeham: Con → ConSlough: Lab → LabSmethwick: Lab → LabSolihull West and Shirley: Con → ConSouth Basildon and East Thurrock: Con → RefSouth Cambridgeshire: Con → LDSouth Cotswolds: Con → LDSouth Derbyshire: Con → LabSouth Devon: Con → LDSouth Dorset: Con → LabSouth East Cornwall: Con → LabSouth Holland and The Deepings: Con → ConSouth Leicestershire: Con → ConSouth Norfolk: Con → LabSouth Northamptonshire: Con → ConSouth Ribble: Con → LabSouth Shields: Lab → LabSouth Shropshire: Con → ConSouth Suffolk: Con → ConSouth West Devon: Con → ConSouth West Hertfordshire: Con → ConSouth West Norfolk: Con → LabSouth West Wiltshire: Con → ConSouthampton Itchen: Con → LabSouthampton Test: Lab → LabSouthend East and Rochford: Con → LabSouthend West and Leigh: Con → LabSouthgate and Wood Green: Lab → LabSouthport: Con → LabSpelthorne: Con → ConSpen Valley: Con → LabSt Albans: LD → LDSt Austell and Newquay: Con → LabSt Helens North: Lab → LabSt Helens South and Whiston: Lab → LabSt Ives: Con → LDSt Neots and Mid Cambridgeshire: Con → LDStafford: Con → LabStaffordshire Moorlands: Con → ConStalybridge and Hyde: Lab → LabStevenage: Con → LabStockport: Lab → LabStockton North: Lab → LabStockton West: Con → ConStoke-on-Trent Central: Con → LabStoke-on-Trent North: Con → LabStoke-on-Trent South: Con → LabStone, Great Wyrley and Penkridge: Con → ConStourbridge: Con → LabStratford and Bow: Lab → LabStratford-on-Avon: Con → LDStreatham and Croydon North: Lab → LabStretford and Urmston: Lab → LabStroud: Con → LabSuffolk Coastal: Con → LabSunderland Central: Lab → LabSurrey Heath: Con → LDSussex Weald: Con → ConSutton and Cheam: Con → LDSutton Coldfield: Con → ConSwindon North: Con → LabSwindon South: Con → LabTamworth: Con → LabTatton: Con → ConTaunton and Wellington: Con → LDTelford: Con → LabTewkesbury: Con → LDThe Wrekin: Con → ConThirsk and Malton: Con → ConThornbury and Yate: Con → LDThurrock: Con → LabTipton and Wednesbury: Con → LabTiverton and Minehead: Con → LDTonbridge: Con → ConTooting: Lab → LabTorbay: Con → LDTorridge and Tavistock: Con → ConTottenham: Lab → LabTruro and Falmouth: Con → LabTunbridge Wells: Con → LDTwickenham: LD → LDTynemouth: Lab → LabUxbridge and South Ruislip: Con → LabVauxhall and Camberwell Green: Lab → LabWakefield and Rothwell: Con → LabWallasey: Lab → LabWalsall and Bloxwich: Con → LabWalthamstow: Lab → LabWarrington North: Lab → LabWarrington South: Lab → LabWarwick and Leamington: Lab → LabWashington and Gateshead South: Lab → LabWatford: Con → LabWaveney Valley: Con → GrnWeald of Kent: Con → ConWellingborough and Rushden: Con → LabWells and Mendip Hills: Con → LDWelwyn Hatfield: Con → LabWest Bromwich: Con → LabWest Dorset: Con → LDWest Ham and Beckton: Lab → LabWest Lancashire: Lab → LabWest Suffolk: Con → ConWest Worcestershire: Con → ConWestmorland and Lonsdale: Con → LDWeston-super-Mare: Con → LabWetherby and Easingwold: Con → ConWhitehaven and Workington: Con → LabWidnes and Halewood: Lab → LabWigan: Lab → LabWimbledon: Con → LDWinchester: Con → LDWindsor: Con → ConWirral West: Lab → LabWitham: Con → ConWitney: Con → LDWoking: Con → LDWokingham: Con → LDWolverhampton North East: Con → LabWolverhampton South East: Lab → LabWolverhampton West: Con → LabWorcester: Con → LabWorsley and Eccles: Lab → LabWorthing West: Con → LabWycombe: Con → LabWyre Forest: Con → ConWythenshawe and Sale East: Lab → LabYeovil: Con → LDYork Central: Lab → LabYork Outer: Con → LabEast Antrim: DUP → DUPSouth Antrim: DUP → UUPLagan Valley: DUP → APNIUpper Bann: DUP → DUPBelfast North: SF → SFEast Londonderry: DUP → DUPWest Tyrone: SF → SFFoyle: SDLP → SDLPNorth Antrim: DUP → TUVMid Ulster: SF → SFFermanagh and South Tyrone: SF → SFSouth Down: SF → SFNorth Down: APNI → IndStrangford: DUP → DUPBelfast East: DUP → DUPBelfast West: SF → SFBelfast South and Mid Down: SDLP → SDLPNewry and Armagh: SF → SFBerwickshire, Roxburgh and Selkirk: Con → ConArbroath and Broughty Ferry: SNP → SNPDunfermline and Dollar: SNP → LabAirdrie and Shotts: SNP → LabEast Kilbride and Strathaven: SNP → LabEast Renfrewshire: SNP → LabEdinburgh East and Musselburgh: SNP → LabEdinburgh North and Leith: SNP → LabEdinburgh South West: SNP → LabAlloa and Grangemouth: SNP → LabGlasgow South West: SNP → LabInverclyde and Renfrewshire West: SNP → LabKilmarnock and Loudoun: SNP → LabLivingston: SNP → LabMidlothian: SNP → LabMotherwell, Wishaw and Carluke: SNP → LabPaisley and Renfrewshire South: SNP → LabAngus and Perthshire Glens: SNP → SNPStirling and Strathallan: SNP → LabWest Dunbartonshire: SNP → LabMoray West, Nairn and Strathspey: SNP → SNPArgyll, Bute and South Lochaber: SNP → SNPWest Aberdeenshire and Kincardine: Con → ConGordon and Buchan: Con → ConCowdenbeath and Kirkcaldy: SNP → LabAberdeen South: SNP → SNPEdinburgh West: LD → LDLothian East: SNP → LabAyr, Carrick and Cumnock: SNP → LabCentral Ayrshire: SNP → LabOrkney and Shetland: LD → LDNa h-Eileanan an Iar: SNP → LabNorth Ayrshire and Arran: SNP → LabPerth and Kinross-shire: SNP → SNPDundee Central: SNP → SNPFalkirk: SNP → LabBathgate and Linlithgow: SNP → LabInverness, Skye and West Ross-shire: SNP → LDEdinburgh South: Lab → LabDumfries and Galloway: Con → ConPaisley and Renfrewshire North: SNP → LabAberdeenshire North and Moray East: Con → SNPCaithness, Sutherland and Easter Ross: SNP → LDGlasgow East: SNP → LabMid Dunbartonshire: SNP → LDGlasgow North: SNP → LabGlasgow South: SNP → LabGlasgow West: SNP → LabCumbernauld and Kirkintilloch: SNP → LabCoatbridge and Bellshill: SNP → LabHamilton and Clyde Valley: SNP → LabRutherglen: SNP → LabGlasgow North East: SNP → LabAberdeen North: SNP → SNPDumfriesshire, Clydesdale and Tweeddale: Con → ConNorth East Fife: SNP → LDGlenrothes and Mid Fife: SNP → LabAberafan Maesteg: Lab → LabAlyn and Deeside: Lab → LabBangor Aberconwy: Con → LabBlaenau Gwent and Rhymney: Lab → LabBrecon, Radnor and Cwm Tawe: Con → LDBridgend: Con → LabCaerfyrddin: Con → PCCaerphilly: Lab → LabCardiff East: Lab → LabCardiff North: Lab → LabCardiff South and Penarth: Lab → LabCardiff West: Lab → LabCeredigion Preseli: PC → PCClwyd East: Con → LabClwyd North: Con → LabDwyfor Meirionnydd: PC → PCGower: Lab → LabLlanelli: Lab → LabMerthyr Tydfil and Aberdare: Lab → LabMid and South Pembrokeshire: Con → LabMonmouthshire: Con → LabMontgomeryshire and Glyndŵr: Con → LabNeath and Swansea East: Lab → LabNewport East: Lab → LabNewport West and Islwyn: Lab → LabPontypridd: Lab → LabRhondda and Ogmore: Lab → LabSwansea West: Lab → LabTorfaen: Lab → LabVale of Glamorgan: Con → LabWrexham: Con → LabYnys Môn: Con → PCAldershot: Con → LabAldridge-Brownhills: Con → ConAltrincham and Sale West: Con → LabAmber Valley: Con → LabArundel and South Downs: Con → ConAshfield: Con → RefAshford: Con → LabAshton-under-Lyne: Lab → LabAylesbury: Con → LabBanbury: Con → LabBarking: Lab → LabBarrow and Furness: Con → LabBasildon and Billericay: Con → ConBasingstoke: Con → LabBassetlaw: Con → LabBath: LD → LDBattersea: Lab → LabBeaconsfield: Con → ConBedford: Lab → LabBermondsey and Old Southwark: Lab → LabBeverley and Holderness: Con → ConBexhill and Battle: Con → ConBexleyheath and Crayford: Con → LabBirkenhead: Lab → LabBishop Auckland: Con → LabBlackburn: Lab → IndBlackpool South: Con → LabBognor Regis and Littlehampton: Con → ConBolsover: Con → LabBolton North East: Con → LabBolton West: Con → LabBootle: Lab → LabBoston and Skegness: Con → RefBournemouth East: Con → LabBournemouth West: Con → LabBracknell: Con → LabBradford East: Lab → LabBradford South: Lab → LabBradford West: Lab → LabBraintree: Con → ConBrentford and Isleworth: Lab → LabBrentwood and Ongar: Con → ConBristol East: Lab → Lab
Coloured: seats that changed hands, in the colour of the new winner.

Constituency20192024Majority 2024Con–Lab swing
Aberafan MaestegLabLab29.0%+5.7
Aberdeen NorthSNPSNP4.2%+14.5
Aberdeen SouthSNPSNP8.1%+13.0
Aberdeenshire North and Moray EastConSNP gain2.5%+10.8
Airdrie and ShottsSNPLab gain20.6%+15.5
AldershotConLab gain11.7%+23.2
Aldridge-BrownhillsConCon10.5%+18.8
Alloa and GrangemouthSNPLab gain14.9%+23.2
Altrincham and Sale WestConLab gain8.1%+9.7
Alyn and DeesideLabLab20.3%+11.7
Amber ValleyConLab gain8.4%+24.4
Angus and Perthshire GlensSNPSNP10.3%+9.9
Arbroath and Broughty FerrySNPSNP2.0%+19.0
Argyll, Bute and South LochaberSNPSNP13.9%+12.9
Arundel and South DownsConCon22.2%+11.2
AshfieldConRef gain13.8%+17.2
AshfordConLab gain3.8%+19.6
Ashton-under-LyneLabLab19.2%+10.1
AylesburyConLab gain1.3%+15.0
Ayr, Carrick and CumnockSNPLab gain10.2%+19.5
BanburyConLab gain6.8%+17.0
Bangor AberconwyConLab gain11.8%+6.7
BarkingLabLab30.3%−0.7
Barnsley NorthLabLab21.2%+13.8
Barnsley SouthLabLab13.5%+9.2
Barrow and FurnessConLab gain12.6%+13.7
Basildon and BillericayConCon0.1%+22.1
BasingstokeConLab gain13.2%+18.6
BassetlawConLab gain12.9%+19.6
BathLDLD23.3%+10.8
Bathgate and LinlithgowSNPLab gain19.8%+22.7
BatterseaLabLab25.6%+7.3
BeaconsfieldConCon11.4%+11.0
Beckenham and PengeLabLab24.7%+11.8
BedfordLabLab23.2%+10.4
Belfast EastDUPDUP6.3%0
Belfast NorthSFSF13.9%0
Belfast South and Mid DownSDLPSDLP28.8%+0.2
Belfast WestSFSF40.2%+0.1
Bermondsey and Old SouthwarkLabLab20.7%+2.2
Berwickshire, Roxburgh and SelkirkConCon14.2%+8.4
Bethnal Green and StepneyLabLab3.6%−16.7
Beverley and HoldernessConCon0.3%+18.0
Bexhill and BattleConCon5.6%+17.7
Bexleyheath and CrayfordConLab gain4.9%+18.3
Bicester and WoodstockConLD gain9.9%+12.3
BirkenheadLabLab32.0%+0.1
Birmingham EdgbastonLabLab22.4%+2.7
Birmingham ErdingtonLabLab20.6%+9.8
Birmingham Hall Green and MoseleyLabLab13.6%−14.9
Birmingham Hodge Hill and Solihull NorthLabLab4.6%−6.9
Birmingham LadywoodLabLab9.4%−18.3
Birmingham NorthfieldConLab gain14.3%+8.8
Birmingham Perry BarrLabInd gain1.4%−12.4
Birmingham Selly OakLabLab30.0%+3.0
Birmingham YardleyLabLab1.9%−5.1
Bishop AucklandConLab gain16.5%+16.4
BlackburnLabInd gain0.3%−12.4
Blackley and Middleton SouthLabLab32.7%+6.6
Blackpool North and FleetwoodConLab gain11.1%+15.7
Blackpool SouthConLab gain19.5%+20.6
Blaenau Gwent and RhymneyLabLab40.7%+5.1
Blaydon and ConsettLabLab26.4%+13.3
Blyth and AshingtonLabLab22.7%+10.1
Bognor Regis and LittlehamptonConCon3.7%+19.8
BolsoverConLab gain14.9%+13.2
Bolton North EastConLab gain15.3%+9.0
Bolton South and WalkdenLabLab18.3%+2.4
Bolton WestConLab gain11.1%+16.2
BootleLabLab56.5%−2.9
Boston and SkegnessConRef gain5.0%+23.2
Bournemouth EastConLab gain12.2%+15.0
Bournemouth WestConLab gain8.2%+15.0
BracknellConLab gain1.8%+16.0
Bradford EastLabLab16.6%−6.3
Bradford SouthLabLab13.3%+7.2
Bradford WestLabLab1.9%−18.8
BraintreeConCon7.5%+20.9
Brecon, Radnor and Cwm TaweConLD gain3.2%+12.0
Brent EastLabLab34.5%−2.9
Brent WestLabLab9.2%−5.2
Brentford and IsleworthLabLab21.7%−0.2
Brentwood and OngarConCon12.4%+20.5
BridgendConLab gain20.8%+14.5
BridgwaterConCon3.4%+16.9
Bridlington and The WoldsConCon7.3%+19.7
Brigg and ImminghamConCon7.6%+22.1
Brighton Kemptown and PeacehavenLabLab23.8%+3.5
Brighton PavilionGrnGrn27.3%+7.6
Bristol CentralLabGrn gain24.0%−8.1
Bristol EastLabLab14.3%−2.0
Bristol North EastLabLab26.6%+9.6
Bristol North WestLabLab32.3%+11.6
Bristol SouthLabLab17.7%+6.2
Broadland and FakenhamConCon1.5%+18.0
Bromley and Biggin HillConCon0.7%+14.3
BromsgroveConCon6.0%+18.3
BroxbourneConCon6.7%+16.8
BroxtoweConLab gain17.6%+12.4
Buckingham and BletchleyConLab gain5.1%+15.2
BurnleyConLab gain8.6%+5.9
Burton and UttoxeterConLab gain5.0%+17.4
Bury NorthConLab gain15.3%+8.8
Bury SouthConLab gain22.2%+12.0
Bury St Edmunds and StowmarketConLab gain2.9%+22.5
CaerfyrddinConPC gain9.9%+9.4
CaerphillyLabLab16.8%+5.6
Caithness, Sutherland and Easter RossSNPLD gain22.8%+7.7
Calder ValleyConLab gain18.1%+13.6
Camborne and RedruthConLab gain16.3%+17.7
CambridgeLabLab26.3%+0.9
Cannock ChaseConLab gain7.3%+25.1
CanterburyLabLab18.3%+7.3
Cardiff EastLabLab23.3%−3.0
Cardiff NorthLabLab23.6%+4.9
Cardiff South and PenarthLabLab30.0%+3.5
Cardiff WestLabLab15.7%+0.6
CarlisleConLab gain11.3%+16.7
Carshalton and WallingtonConLD gain16.9%+8.5
Castle PointConCon8.0%+22.4
Central AyrshireSNPLab gain16.6%+24.7
Central DevonConCon0.1%+15.2
Central Suffolk and North IpswichConCon9.2%+15.4
Ceredigion PreseliPCPC31.9%+4.4
Chatham and AylesfordConLab gain4.9%+23.2
CheadleConLD gain24.1%+13.4
ChelmsfordConLD gain9.4%+9.1
Chelsea and FulhamConLab gain0.3%+8.4
CheltenhamConLD gain14.6%+6.5
Chesham and AmershamConLD gain10.0%+7.0
Chester North and NestonLabLab26.6%+7.4
Chester South and EddisburyConCon5.8%+16.0
ChesterfieldLabLab26.0%+11.4
ChichesterConLD gain23.4%+11.9
Chingford and Woodford GreenConCon9.8%−3.4
ChippenhamConLD gain16.4%+11.8
Chipping BarnetConLab gain5.7%+6.5
ChorleySpkSpk60.6%0
ChristchurchConCon15.8%+16.7
Cities of London and WestminsterConLab gain6.9%+9.2
City of DurhamLabLab28.9%+12.6
ClactonConRef gain18.3%+22.3
Clapham and Brixton HillLabLab42.1%+5.2
Clwyd EastConLab gain9.7%+9.8
Clwyd NorthConLab gain2.9%+4.2
Coatbridge and BellshillSNPLab gain16.4%+10.9
ColchesterConLab gain18.4%+20.3
Colne ValleyConLab gain10.7%+12.9
CongletonConLab gain6.8%+21.7
Corby and East NorthamptonshireConLab gain12.8%+14.4
Coventry EastLabLab31.4%+7.8
Coventry North WestLabLab26.6%+13.1
Coventry SouthLabLab23.9%+11.1
Cowdenbeath and KirkcaldySNPLab gain17.8%+15.3
Cramlington and KillingworthLabLab28.2%+12.8
CrawleyConLab gain11.5%+14.1
Crewe and NantwichConLab gain20.6%+16.1
Croydon EastLabLab15.6%+4.4
Croydon SouthConCon4.7%+10.8
Croydon WestLabLab37.3%−3.9
Cumbernauld and KirkintillochSNPLab gain10.1%+14.2
Dagenham and RainhamLabLab18.5%+11.6
DarlingtonConLab gain5.4%+8.1
DartfordConLab gain2.7%+17.2
DaventryConCon5.7%+20.5
Derby NorthConLab gain21.8%+13.6
Derby SouthLabLab16.1%+5.4
Derbyshire DalesConLab gain0.7%+17.8
Dewsbury and BatleyLabInd gain18.2%−9.3
Didcot and WantageConLD gain11.4%+10.0
Doncaster CentralLabLab25.2%+11.2
Doncaster East and the Isle of AxholmeConLab gain5.9%+14.7
Doncaster NorthLabLab29.4%+12.1
Dorking and HorleyConLD gain10.8%+9.1
Dover and DealConLab gain15.9%+21.1
Droitwich and EveshamConCon18.1%+15.3
DudleyConLab gain5.3%+18.8
Dulwich and West NorwoodLabLab41.4%+2.0
Dumfries and GallowayConCon2.0%+15.3
Dumfriesshire, Clydesdale and TweeddaleConCon9.6%+13.6
Dundee CentralSNPSNP1.7%+10.7
Dunfermline and DollarSNPLab gain18.5%+18.1
Dunstable and Leighton BuzzardConLab gain1.5%+16.7
Dwyfor MeirionnyddPCPC39.3%+3.2
Ealing Central and ActonLabLab29.3%+1.3
Ealing NorthLabLab29.0%+2.3
Ealing SouthallLabLab33.7%−1.0
Earley and WoodleyConLab gain1.9%+12.0
EasingtonLabLab19.1%+9.1
East AntrimDUPDUP3.3%+1.3
East Grinstead and UckfieldConCon16.8%+13.6
East HamLabLab34.0%−10.9
East HampshireConCon2.6%+9.7
East Kilbride and StrathavenSNPLab gain19.4%+20.4
East LondonderryDUPDUP0.4%−0.2
East RenfrewshireSNPLab gain16.8%+24.8
East SurreyConCon15.1%+16.0
East ThanetConLab gain16.3%+16.1
East WiltshireConCon10.0%+20.0
East Worthing and ShorehamConLab gain19.4%+16.7
EastbourneConLD gain26.8%+10.4
EastleighConLD gain3.3%+12.1
Edinburgh East and MusselburghSNPLab gain8.2%+11.6
Edinburgh North and LeithSNPLab gain14.7%+15.7
Edinburgh SouthLabLab36.8%+7.7
Edinburgh South WestSNPLab gain13.6%+19.5
Edinburgh WestLDLD31.4%+9.4
Edmonton and Winchmore HillLabLab30.8%+1.8
Ellesmere Port and BromboroughLabLab40.3%+6.5
Eltham and ChislehurstConLab gain18.5%+12.6
Ely and East CambridgeshireConLD gain1.0%+12.7
Enfield NorthLabLab29.3%+5.9
Epping ForestConCon13.6%+15.3
Epsom and EwellConLD gain6.8%+10.4
ErewashConLab gain13.6%+17.7
Erith and ThamesmeadLabLab40.4%+5.6
Esher and WaltonConLD gain22.3%+9.9
ExeterLabLab29.7%+3.5
Exmouth and Exeter EastConCon0.2%+19.5
FalkirkSNPLab gain11.7%+24.3
Fareham and WaterloovilleConCon12.1%+16.6
Farnham and BordonConCon2.5%+15.3
Faversham and Mid KentConCon3.2%+19.8
Feltham and HestonLabLab20.4%+2.3
Fermanagh and South TyroneSFSF9.0%0
Filton and Bradley StokeConLab gain19.9%+17.5
Finchley and Golders GreenConLab gain9.3%+14.4
Folkestone and HytheConLab gain8.6%+19.1
Forest of DeanConLab gain0.6%+15.7
FoyleSDLPSDLP10.9%0
Frome and East SomersetConLD gain11.6%+9.0
FyldeConCon1.2%+17.9
GainsboroughConCon7.6%+18.8
Gateshead Central and WhickhamLabLab24.0%+9.9
GedlingConLab gain24.4%+14.4
Gillingham and RainhamConLab gain9.7%+21.3
Glasgow EastSNPLab gain10.7%+8.9
Glasgow NorthSNPLab gain10.2%+6.5
Glasgow North EastSNPLab gain13.6%+7.8
Glasgow SouthSNPLab gain9.8%+10.6
Glasgow South WestSNPLab gain9.2%+9.2
Glasgow WestSNPLab gain16.2%+14.9
Glastonbury and SomertonConLD gain13.9%+12.8
Glenrothes and Mid FifeSNPLab gain8.2%+13.4
GloucesterConLab gain7.5%+13.4
Godalming and AshConCon1.6%+3.5
Goole and PocklingtonConCon7.2%+18.8
Gordon and BuchanConCon2.0%+10.1
Gorton and DentonLabLab36.7%−2.8
GosportConCon13.7%+17.2
GowerLabLab24.5%+9.3
Grantham and BourneConCon9.8%+18.0
GraveshamConLab gain6.3%+19.5
Great Grimsby and CleethorpesConLab gain13.1%+21.4
Great YarmouthConRef gain3.5%+23.9
Greenwich and WoolwichLabLab43.0%+6.3
GuildfordConLD gain17.5%+7.4
Hackney North and Stoke NewingtonLabLab36.8%−2.9
Hackney South and ShoreditchLabLab35.3%−4.4
HalesowenConLab gain11.3%+19.5
HalifaxLabLab15.6%+5.8
Hamble ValleyConCon8.9%+14.2
Hamilton and Clyde ValleySNPLab gain22.5%+18.7
Hammersmith and ChiswickLabLab33.2%+6.5
Hampstead and HighgateLabLab30.8%+3.2
Harborough, Oadby and WigstonConCon4.7%+12.5
HarlowConLab gain5.8%+20.5
Harpenden and BerkhamstedConLD gain19.7%+9.3
Harrogate and KnaresboroughConLD gain15.8%+10.1
Harrow EastConCon24.5%−3.6
Harrow WestLabLab14.7%−1.8
HartlepoolLabLab21.7%+7.8
Harwich and North EssexConCon2.4%+15.1
Hastings and RyeConLab gain18.8%+12.8
HavantConCon0.2%+23.6
Hayes and HarlingtonLabLab31.4%+5.2
Hazel GroveConLD gain14.1%+16.6
Hemel HempsteadConLab gain11.0%+18.9
HendonConLab gain0.0%+4.0
Henley and ThameConLD gain11.8%+9.5
Hereford and South HerefordshireConCon2.8%+19.5
Herne Bay and SandwichConCon5.1%+17.4
Hertford and StortfordConLab gain8.8%+20.4
HertsmereConCon16.7%+13.6
HexhamConLab gain7.2%+14.9
Heywood and Middleton NorthLabLab16.4%+10.8
High PeakConLab gain16.1%+8.6
Hinckley and BosworthConCon11.3%+16.4
HitchinConLab gain15.4%+18.1
Holborn and St PancrasLabLab30.0%−4.7
Honiton and SidmouthConLD gain13.2%+9.9
Hornchurch and UpminsterConCon4.1%+18.8
Hornsey and Friern BarnetLabLab44.2%+2.5
HorshamConLD gain4.5%+8.2
Houghton and Sunderland SouthLabLab17.9%+12.9
Hove and PortsladeLabLab38.1%+4.7
HuddersfieldLabLab11.3%+3.1
HuntingdonConCon2.9%+17.8
HyndburnConLab gain4.6%+5.8
Ilford NorthLabLab1.1%−2.3
Ilford SouthLabLab16.8%−9.4
Inverclyde and Renfrewshire WestSNPLab gain15.8%+14.8
Inverness, Skye and West Ross-shireSNPLD gain4.5%+10.9
IpswichConLab gain16.8%+13.9
Isle of Wight EastConCon9.8%+10.6
Isle of Wight WestConLab gain9.3%+19.9
Islington NorthLabInd gain14.8%−11.8
Islington South and FinsburyLabLab36.2%+2.3
Jarrow and Gateshead EastLabLab24.4%+8.4
Keighley and IlkleyConCon3.5%+0.3
Kenilworth and SouthamConCon12.3%+13.8
Kensington and BayswaterLabLab6.9%+3.1
KetteringConLab gain7.6%+20.5
Kilmarnock and LoudounSNPLab gain12.1%+21.0
Kingston and SurbitonLDLD34.0%+9.4
Kingston upon Hull EastLabLab13.2%+13.7
Kingston upon Hull North and CottinghamLabLab27.9%+11.2
Kingston upon Hull West and HaltempriceConLab gain23.5%+18.7
Kingswinford and South StaffordshireConCon14.0%+21.8
KnowsleyLabLab50.8%−3.9
Lagan ValleyDUPAPNI gain6.0%+1.0
Lancaster and WyreConLab gain21.5%+13.8
Leeds Central and HeadingleyLabLab26.7%−1.2
Leeds EastLabLab28.6%+11.8
Leeds North EastLabLab35.6%+0.9
Leeds North WestConLab gain23.9%+13.7
Leeds SouthLabLab35.6%+4.4
Leeds South West and MorleyConLab gain21.0%+18.6
Leeds West and PudseyLabLab32.2%+13.0
Leicester EastLabCon gain9.5%−11.0
Leicester SouthLabInd gain2.3%−12.5
Leicester WestLabLab24.8%+6.1
Leigh and AthertonConLab gain21.6%+16.7
LewesConLD gain23.7%+10.7
Lewisham EastLabLab44.5%+2.4
Lewisham NorthLabLab35.7%−2.8
Lewisham West and East DulwichLabLab39.6%0
Leyton and WansteadLabLab31.9%−3.4
LichfieldConLab gain1.7%+22.4
LincolnConLab gain20.9%+13.9
Liverpool GarstonLabLab47.9%−3.6
Liverpool RiversideLabLab45.7%−9.5
Liverpool WaltonLabLab54.9%−2.7
Liverpool WavertreeLabLab41.0%−4.4
Liverpool West DerbyLabLab53.7%−3.4
LivingstonSNPLab gain7.9%+16.5
LlanelliLabLab3.7%+6.1
Lothian EastSNPLab gain27.6%+17.2
LoughboroughConLab gain11.7%+11.8
Louth and HorncastleConCon11.9%+19.9
LowestoftConLab gain4.8%+18.8
Luton NorthLabLab19.4%−0.1
Luton South and South BedfordshireLabLab17.9%+2.2
MacclesfieldConLab gain17.3%+18.6
MaidenheadConLD gain5.9%+8.1
Maidstone and MallingConCon3.6%+18.2
MakerfieldLabLab13.4%+11.7
MaldonConCon13.9%+20.2
Manchester CentralLabLab34.7%−0.3
Manchester RusholmeLabLab28.4%−11.7
Manchester WithingtonLabLab33.5%−3.9
MansfieldConLab gain8.5%+21.3
Melksham and DevizesConLD gain4.7%+10.2
Melton and SystonConCon11.7%+14.0
Meriden and Solihull EastConCon10.4%+15.6
Merthyr Tydfil and AberdareLabLab21.2%+3.1
Mid and South PembrokeshireConLab gain4.0%+9.9
Mid BedfordshireConCon2.7%+18.7
Mid BuckinghamshireConCon10.9%+12.9
Mid CheshireConLab gain21.5%+13.4
Mid DerbyshireConLab gain4.0%+18.3
Mid Dorset and North PooleConLD gain2.7%+10.7
Mid DunbartonshireSNPLD gain18.3%+11.2
Mid LeicestershireConCon4.6%+16.0
Mid NorfolkConCon6.7%+17.4
Mid SussexConLD gain12.5%+11.9
Mid UlsterSFSF32.8%0
Middlesbrough and Thornaby EastLabLab26.7%−0.2
Middlesbrough South and East ClevelandConLab gain0.6%+11.7
MidlothianSNPLab gain18.5%+16.6
Milton Keynes CentralConLab gain15.3%+12.3
Milton Keynes NorthConLab gain11.8%+12.5
Mitcham and MordenLabLab41.5%+5.4
MonmouthshireConLab gain6.6%+13.5
Montgomeryshire and GlyndŵrConLab gain8.8%+20.1
Moray West, Nairn and StrathspeySNPSNP2.2%+12.0
Morecambe and LunesdaleConLab gain12.1%+18.8
Motherwell, Wishaw and CarlukeSNPLab gain18.2%+18.3
Na h-Eileanan an IarSNPLab gain28.4%+19.3
Neath and Swansea EastLabLab16.5%+6.8
New Forest EastConCon18.8%+15.5
New Forest WestConCon12.1%+19.3
NewarkConCon6.7%+16.2
NewburyConLD gain4.9%+9.8
Newcastle upon Tyne Central and WestLabLab26.7%+1.4
Newcastle upon Tyne East and WallsendLabLab30.3%+3.1
Newcastle upon Tyne NorthLabLab36.5%+12.0
Newcastle-under-LymeConLab gain12.8%+15.1
Newport EastLabLab23.4%+7.2
Newport West and IslwynLabLab21.1%+10.7
Newry and ArmaghSFSF33.7%−0.1
Newton AbbotConLD gain4.7%+12.8
Newton Aycliffe and SpennymoorConLab gain22.2%+16.7
Normanton and HemsworthLabLab18.3%+12.8
North AntrimDUPTUV gain1.1%0
North Ayrshire and ArranSNPLab gain8.4%+21.3
North BedfordshireConCon10.5%+15.8
North CornwallConLD gain19.4%+13.8
North CotswoldsConCon6.7%+12.6
North DevonConLD gain13.1%+12.2
North DorsetConCon3.2%+12.0
North DownAPNIInd gain16.9%+2.3
North DurhamLabLab14.1%+7.5
North East CambridgeshireConCon18.4%+18.4
North East DerbyshireConLab gain3.8%+15.0
North East FifeSNPLD gain31.6%+6.9
North East HampshireConLD gain1.1%+11.9
North East HertfordshireConLab gain3.7%+18.3
North East Somerset and HanhamConLab gain10.4%+19.5
North HerefordshireConGrn gain11.7%+11.1
North NorfolkConLD gain5.5%+10.5
North NorthumberlandConLab gain10.4%+21.6
North ShropshireConLD gain30.9%+12.1
North SomersetConLab gain1.2%+14.8
North Warwickshire and BedworthConLab gain5.4%+22.2
North West CambridgeshireConLab gain0.1%+18.2
North West EssexConCon4.8%+21.6
North West HampshireConCon6.5%+18.4
North West LeicestershireConLab gain2.1%+19.4
North West NorfolkConCon11.1%+16.1
Northampton NorthConLab gain21.6%+14.6
Northampton SouthConLab gain9.3%+18.1
Norwich NorthConLab gain23.7%+18.2
Norwich SouthLabLab29.4%+5.1
Nottingham EastLabLab41.7%+0.2
Nottingham North and KimberleyLabLab26.9%+11.0
Nottingham SouthLabLab31.3%+4.5
NuneatonConLab gain8.4%+18.8
Old Bexley and SidcupConCon7.5%+16.3
Oldham East and SaddleworthLabLab15.9%+7.4
Oldham West, Chadderton and RoytonLabLab12.9%−0.6
Orkney and ShetlandLDLD37.7%+3.8
OrpingtonConCon11.1%+15.5
Ossett and Denby DaleConLab gain10.4%+16.5
Oxford EastLabLab36.8%+1.3
Oxford West and AbingdonLDLD32.4%+8.4
Paisley and Renfrewshire NorthSNPLab gain15.3%+18.3
Paisley and Renfrewshire SouthSNPLab gain15.8%+17.2
PeckhamLabLab39.3%−3.3
Pendle and ClitheroeConLab gain1.9%+12.9
Penistone and StocksbridgeConLab gain19.9%+17.2
Penrith and SolwayConLab gain10.7%+17.7
Perth and Kinross-shireSNPSNP8.2%+12.3
PeterboroughConLab gain0.3%+2.6
Plymouth Moor ViewConLab gain13.1%+20.3
Plymouth Sutton and DevonportLabLab31.7%+11.3
Pontefract, Castleford and KnottingleyLabLab18.4%+14.9
PontypriddLabLab21.3%+6.2
PooleConLab gain0.0%+19.1
Poplar and LimehouseLabLab29.2%−5.3
Portsmouth NorthConLab gain1.9%+18.1
Portsmouth SouthLabLab33.8%+11.3
PrestonLabLab13.2%−2.8
PutneyLabLab25.3%+8.7
Queen's Park and Maida ValeLabLab38.9%−1.5
Rawmarsh and ConisbroughLabLab20.4%+16.3
Rayleigh and WickfordConCon11.7%+22.4
Reading CentralLabLab27.9%+5.9
Reading West and Mid BerkshireConLab gain2.9%+18.4
RedcarConLab gain8.7%+9.8
RedditchConLab gain1.9%+20.3
ReigateConCon6.0%+16.5
Rhondda and OgmoreLabLab21.8%+0.6
Ribble ValleyConLab gain1.7%+16.9
Richmond and NorthallertonConCon25.1%+10.9
Richmond ParkLDLD32.9%+11.6
RochdaleLabLab3.6%+1.4
Rochester and StroodConLab gain6.9%+18.6
RomfordConCon3.3%+17.5
Romsey and Southampton NorthConCon4.4%+7.6
Rossendale and DarwenConLab gain12.6%+16.2
Rother ValleyConLab gain2.4%+7.9
RotherhamLabLab14.9%+18.8
RugbyConLab gain9.0%+17.6
Ruislip, Northwood and PinnerConCon16.1%+7.1
Runcorn and HelsbyLabLab34.8%+12.5
Runnymede and WeybridgeConCon15.8%+9.0
RushcliffeConLab gain12.9%+12.6
RutherglenSNPLab gain20.6%+15.5
Rutland and StamfordConCon21.4%+13.6
SalfordLabLab38.0%+5.0
SalisburyConCon7.6%+14.5
Scarborough and WhitbyConLab gain12.2%+16.4
ScunthorpeConLab gain9.1%+15.3
Sefton CentralLabLab38.5%+10.1
SelbyConLab gain20.7%+24.4
SevenoaksConCon10.9%+12.6
Sheffield Brightside and HillsboroughLabLab36.7%+3.8
Sheffield CentralLabLab26.1%−4.9
Sheffield HallamLabLab15.9%+12.5
Sheffield HeeleyLabLab39.8%+7.4
Sheffield South EastLabLab34.8%+11.9
Sherwood ForestConLab gain11.2%+21.2
ShipleyConLab gain17.8%+14.7
ShrewsburyConLab gain22.0%+18.0
Sittingbourne and SheppeyConLab gain0.9%+23.2
Skipton and RiponConCon3.1%+18.3
Sleaford and North HykehamConCon9.0%+19.5
SloughLabLab8.4%−6.3
SmethwickLabLab31.9%+4.1
Solihull West and ShirleyConCon9.9%+15.8
South AntrimDUPUUP gain17.5%0
South Basildon and East ThurrockConRef gain0.3%+23.4
South CambridgeshireConLD gain19.4%+6.0
South CotswoldsConLD gain9.5%+10.2
South DerbyshireConLab gain9.1%+22.0
South DevonConLD gain14.5%+5.7
South DorsetConLab gain2.1%+18.3
South DownSFSF20.5%−0.1
South East CornwallConLab gain3.9%+21.3
South Holland and The DeepingsConCon14.9%+22.2
South LeicestershireConCon10.7%+17.9
South NorfolkConLab gain5.7%+19.4
South NorthamptonshireConCon6.9%+17.8
South RibbleConLab gain13.9%+15.6
South ShieldsLabLab18.1%+5.8
South ShropshireConCon3.1%+14.5
South SuffolkConCon6.2%+18.3
South West DevonConCon4.0%+18.6
South West HertfordshireConCon9.2%+11.0
South West NorfolkConLab gain1.4%+25.9
South West WiltshireConCon7.0%+14.9
Southampton ItchenConLab gain16.0%+12.8
Southampton TestLabLab26.1%+6.1
Southend East and RochfordConLab gain10.2%+18.9
Southend West and LeighConLab gain4.2%+17.1
Southgate and Wood GreenLabLab33.5%+2.1
SouthportConLab gain12.9%+13.2
SpelthorneConCon3.4%+16.9
Spen ValleyConLab gain15.1%+14.0
St AlbansLDLD38.4%+11.1
St Austell and NewquayConLab gain5.3%+17.1
St Helens NorthLabLab30.1%+7.9
St Helens South and WhistonLabLab31.4%+2.4
St IvesConLD gain28.7%+11.2
St Neots and Mid CambridgeshireConLD gain8.7%+8.7
StaffordConLab gain10.0%+18.4
Staffordshire MoorlandsConCon2.7%+17.3
Stalybridge and HydeLabLab22.9%+9.2
StevenageConLab gain15.5%+16.7
Stirling and StrathallanSNPLab gain2.8%+21.1
StockportLabLab35.0%+6.2
Stockton NorthLabLab21.2%+7.6
Stockton WestConCon4.4%+9.1
Stoke-on-Trent CentralConLab gain18.2%+14.5
Stoke-on-Trent NorthConLab gain14.1%+16.7
Stoke-on-Trent SouthConLab gain1.5%+17.2
Stone, Great Wyrley and PenkridgeConCon12.8%+17.1
StourbridgeConLab gain7.7%+20.2
StrangfordDUPDUP13.2%+1.5
Stratford and BowLabLab26.8%−9.5
Stratford-on-AvonConLD gain13.5%+12.6
Streatham and Croydon NorthLabLab35.0%+0.6
Stretford and UrmstonLabLab35.1%+1.2
StroudConLab gain20.6%+12.3
Suffolk CoastalConLab gain2.2%+18.6
Sunderland CentralLabLab15.2%+10.5
Surrey HeathConLD gain11.8%+11.1
Sussex WealdConCon13.9%+15.8
Sutton and CheamConLD gain8.0%+12.2
Sutton ColdfieldConCon5.3%+15.8
Swansea WestLabLab23.9%+4.4
Swindon NorthConLab gain9.3%+18.6
Swindon SouthConLab gain21.4%+16.4
TamworthConLab gain3.2%+23.3
TattonConCon2.2%+16.3
Taunton and WellingtonConLD gain23.7%+13.3
TelfordConLab gain19.9%+24.2
TewkesburyConLD gain12.9%+10.7
The WrekinConCon1.8%+19.3
Thirsk and MaltonConCon15.2%+14.8
Thornbury and YateConLD gain5.7%+12.9
ThurrockConLab gain17.2%+24.2
Tipton and WednesburyConLab gain10.6%+11.5
Tiverton and MineheadConLD gain7.4%+12.5
TonbridgeConCon22.2%+13.7
TootingLabLab36.8%+6.2
TorbayConLD gain11.6%+11.9
TorfaenLabLab20.5%+8.5
Torridge and TavistockConCon7.8%+15.8
TottenhamLabLab38.4%−7.5
Truro and FalmouthConLab gain16.2%+12.2
Tunbridge WellsConLD gain16.0%+12.0
TwickenhamLDLD40.0%+10.7
TynemouthLabLab31.9%+12.7
Upper BannDUPDUP15.6%0
Uxbridge and South RuislipConLab gain1.3%+8.5
Vale of GlamorganConLab gain9.2%+7.2
Vauxhall and Camberwell GreenLabLab40.3%+2.0
Wakefield and RothwellConLab gain23.0%+15.5
WallaseyLabLab42.1%+4.2
Walsall and BloxwichConLab gain13.2%+10.2
WalthamstowLabLab39.4%−4.8
Warrington NorthLabLab23.0%+13.7
Warrington SouthLabLab22.8%+11.4
Warwick and LeamingtonLabLab25.2%+11.5
Washington and Gateshead SouthLabLab18.7%+12.9
WatfordConLab gain10.6%+6.7
Waveney ValleyConGrn gain11.4%+11.4
Weald of KentConCon16.6%+20.6
Wellingborough and RushdenConLab gain12.5%+23.3
Wells and Mendip HillsConLD gain22.1%+13.8
Welwyn HatfieldConLab gain7.8%+14.3
West Aberdeenshire and KincardineConCon7.0%+7.8
West BromwichConLab gain26.2%+15.7
West DorsetConLD gain14.8%+7.1
West DunbartonshireSNPLab gain15.2%+15.3
West Ham and BecktonLabLab25.5%−9.7
West LancashireLabLab30.8%+7.5
West SuffolkConCon7.0%+17.6
West TyroneSFSF36.4%−0.1
West WorcestershireConCon12.0%+11.6
Westmorland and LonsdaleConLD gain43.4%+14.3
Weston-super-MareConLab gain10.4%+19.7
Wetherby and EasingwoldConCon9.3%+20.3
Whitehaven and WorkingtonConLab gain31.8%+18.6
Widnes and HalewoodLabLab43.1%+3.4
WiganLabLab23.4%+11.0
WimbledonConLD gain22.9%+9.1
WinchesterConLD gain24.2%+13.2
WindsorConCon14.3%+11.1
Wirral WestLabLab20.0%+9.6
WithamConCon10.2%+19.5
WitneyConLD gain8.6%+9.7
WokingConLD gain23.4%+7.1
WokinghamConLD gain15.5%+10.1
Wolverhampton North EastConLab gain16.3%+18.1
Wolverhampton South EastLabLab27.5%+13.6
Wolverhampton WestConLab gain18.0%+9.9
WorcesterConLab gain15.5%+14.4
Worsley and EcclesLabLab26.1%+11.9
Worthing WestConLab gain7.7%+17.1
WrexhamConLab gain14.7%+11.5
WycombeConLab gain10.3%+6.7
Wyre ForestConCon1.8%+20.3
Wythenshawe and Sale EastLabLab37.3%+7.8
YeovilConLD gain25.1%+17.2
Ynys MônConPC gain2.0%−0.9
York CentralLabLab44.2%+7.8
York OuterConLab gain18.4%+19.0

Swing is Conservative–Labour Butler swing in points; positive means towards Labour.

Official results House of Commons Library and UK Parliament election results data. Contains Parliamentary information licensed under the Open Parliament Licence v3.0. How we use this data