Marginal seats
Labour target seatsThe 105 seats where Labour came second at the 2024 general election, ranked by the swing needed to win them. It won 411 seats in 2024; 326 are needed for a majority.
Barnsley North Barnsley South Beckenham and Penge Bethnal Green and Stepney Bicester and Woodstock Birmingham Edgbaston Birmingham Erdington Birmingham Hall Green and Moseley Birmingham Hodge Hill and Solihull North Birmingham Ladywood Birmingham Northfield #10 Birmingham Perry Barr: needs 0.68% swing from Ind Birmingham Selly Oak Birmingham Yardley Blackley and Middleton South Blackpool North and Fleetwood Blaydon and Consett Blyth and Ashington Bolton South and Walkden Brent East Brent West #26 Bridgwater: needs 1.68% swing from Con #55 Bridlington and The Wolds: needs 3.64% swing from Con #60 Brigg and Immingham: needs 3.82% swing from Con Brighton Kemptown and Peacehaven #104 Brighton Pavilion: needs 13.65% swing from Grn #101 Bristol Central: needs 12.00% swing from Grn Bristol North East Bristol North West Bristol South #11 Broadland and Fakenham: needs 0.73% swing from Con #8 Bromley and Biggin Hill: needs 0.33% swing from Con #44 Bromsgrove: needs 2.99% swing from Con #48 Broxbourne: needs 3.33% swing from Con Broxtowe Buckingham and Bletchley Burnley Burton and Uttoxeter Bury North Bury South Bury St Edmunds and Stowmarket Calder Valley Camborne and Redruth Cambridge Cannock Chase Canterbury Carlisle Carshalton and Wallington Castle Point #2 Central Devon: needs 0.06% swing from Con #63 Central Suffolk and North Ipswich: needs 4.62% swing from Con Chatham and Aylesford Cheadle Chelmsford Chelsea and Fulham Cheltenham Chesham and Amersham Chester North and Neston #43 Chester South and Eddisbury: needs 2.91% swing from Con Chesterfield Chichester #67 Chingford and Woodford Green: needs 4.91% swing from Con Chippenham Chipping Barnet Chorley Christchurch Cities of London and Westminster City of Durham Clacton Clapham and Brixton Hill Colchester Colne Valley Congleton Corby and East Northamptonshire Coventry East Coventry North West Coventry South Cramlington and Killingworth Crawley Crewe and Nantwich Croydon East #36 Croydon South: needs 2.34% swing from Con Croydon West Dagenham and Rainham Darlington Dartford #42 Daventry: needs 2.84% swing from Con Derby North Derby South Derbyshire Dales #96 Dewsbury and Batley: needs 9.11% swing from Ind Didcot and Wantage Doncaster Central Doncaster East and the Isle of Axholme Doncaster North Dorking and Horley Dover and Deal #95 Droitwich and Evesham: needs 9.07% swing from Con Dudley Dulwich and West Norwood Dunstable and Leighton Buzzard Ealing Central and Acton Ealing North Ealing Southall Earley and Woodley Easington East Grinstead and Uckfield East Ham East Hampshire #90 East Surrey: needs 7.57% swing from Con East Thanet #70 East Wiltshire: needs 5.00% swing from Con East Worthing and Shoreham Eastbourne Eastleigh Edmonton and Winchmore Hill Ellesmere Port and Bromborough Eltham and Chislehurst Ely and East Cambridgeshire Enfield North #83 Epping Forest: needs 6.81% swing from Con Epsom and Ewell Erewash Erith and Thamesmead Esher and Walton Exeter #4 Exmouth and Exeter East: needs 0.12% swing from Con #80 Fareham and Waterlooville: needs 6.07% swing from Con Farnham and Bordon #24 Faversham and Mid Kent: needs 1.58% swing from Con Feltham and Heston Filton and Bradley Stoke Finchley and Golders Green Folkestone and Hythe Forest of Dean Frome and East Somerset #9 Fylde: needs 0.59% swing from Con #58 Gainsborough: needs 3.79% swing from Con Gateshead Central and Whickham Gedling Gillingham and Rainham Glastonbury and Somerton Gloucester Godalming and Ash #54 Goole and Pocklington: needs 3.59% swing from Con Gorton and Denton #84 Gosport: needs 6.84% swing from Con #66 Grantham and Bourne: needs 4.88% swing from Con Gravesham Great Grimsby and Cleethorpes #28 Great Yarmouth: needs 1.75% swing from Ref Greenwich and Woolwich Guildford Hackney North and Stoke Newington Hackney South and Shoreditch Halesowen Halifax Hamble Valley Hammersmith and Chiswick Hampstead and Highgate #37 Harborough, Oadby and Wigston: needs 2.36% swing from Con Harlow Harpenden and Berkhamsted Harrogate and Knaresborough #102 Harrow East: needs 12.23% swing from Con Harrow West Hartlepool #18 Harwich and North Essex: needs 1.21% swing from Con Hastings and Rye #3 Havant: needs 0.11% swing from Con Hayes and Harlington #87 Hazel Grove: needs 7.07% swing from LD Hemel Hempstead Hendon Henley and Thame #21 Hereford and South Herefordshire: needs 1.41% swing from Con #39 Herne Bay and Sandwich: needs 2.56% swing from Con Hertford and Stortford #94 Hertsmere: needs 8.33% swing from Con Hexham Heywood and Middleton North High Peak Hinckley and Bosworth Hitchin Holborn and St Pancras Honiton and Sidmouth Hornchurch and Upminster Hornsey and Friern Barnet Horsham Houghton and Sunderland South Hove and Portslade Huddersfield #22 Huntingdon: needs 1.44% swing from Con Hyndburn Ilford North Ilford South Ipswich Isle of Wight East Isle of Wight West #89 Islington North: needs 7.40% swing from Ind Islington South and Finsbury Jarrow and Gateshead East #29 Keighley and Ilkley: needs 1.76% swing from Con #81 Kenilworth and Southam: needs 6.17% swing from Con Kensington and Bayswater Kettering Kingston and Surbiton Kingston upon Hull East Kingston upon Hull North and Cottingham Kingston upon Hull West and Haltemprice #86 Kingswinford and South Staffordshire: needs 6.98% swing from Con Knowsley Lancaster and Wyre Leeds Central and Headingley Leeds East Leeds North East Leeds North West Leeds South West and Morley Leeds South Leeds West and Pudsey #65 Leicester East: needs 4.74% swing from Con #17 Leicester South: needs 1.17% swing from Ind Leicester West Leigh and Atherton Lewes Lewisham East Lewisham North Lewisham West and East Dulwich Leyton and Wanstead Lichfield Lincoln Liverpool Garston Liverpool Riverside Liverpool Walton Liverpool Wavertree Liverpool West Derby Loughborough Louth and Horncastle Lowestoft Luton North Luton South and South Bedfordshire Macclesfield Maidenhead #30 Maidstone and Malling: needs 1.81% swing from Con Makerfield Maldon Manchester Central Manchester Rusholme Manchester Withington Mansfield Melksham and Devizes #78 Melton and Syston: needs 5.87% swing from Con #72 Meriden and Solihull East: needs 5.21% swing from Con #19 Mid Bedfordshire: needs 1.33% swing from Con Mid Buckinghamshire Mid Cheshire Mid Derbyshire Mid Dorset and North Poole #35 Mid Leicestershire: needs 2.29% swing from Con #49 Mid Norfolk: needs 3.33% swing from Con Mid Sussex Middlesbrough and Thornaby East Middlesbrough South and East Cleveland Milton Keynes Central Milton Keynes North Mitcham and Morden Morecambe and Lunesdale #97 New Forest East: needs 9.39% swing from Con #79 New Forest West: needs 6.05% swing from Con #50 Newark: needs 3.34% swing from Con Newbury Newcastle upon Tyne Central and West Newcastle upon Tyne East and Wallsend Newcastle upon Tyne North Newcastle-under-Lyme Newton Abbot Newton Aycliffe and Spennymoor Normanton and Hemsworth #74 North Bedfordshire: needs 5.25% swing from Con North Cornwall North Cotswolds North Devon North Dorset North Durham North East Cambridgeshire North East Derbyshire North East Hampshire North East Hertfordshire North East Somerset and Hanham North Herefordshire North Norfolk North Northumberland North Shropshire North Somerset North Warwickshire and Bedworth North West Cambridgeshire #38 North West Essex: needs 2.40% swing from Con #47 North West Hampshire: needs 3.24% swing from Con North West Leicestershire #77 North West Norfolk: needs 5.56% swing from Con Northampton North Northampton South Norwich North Norwich South Nottingham East Nottingham North and Kimberley Nottingham South Nuneaton #56 Old Bexley and Sidcup: needs 3.73% swing from Con Oldham East and Saddleworth Oldham West, Chadderton and Royton #76 Orpington: needs 5.56% swing from Con Ossett and Denby Dale Oxford East Oxford West and Abingdon Peckham Pendle and Clitheroe Penistone and Stocksbridge Penrith and Solway Peterborough Plymouth Moor View Plymouth Sutton and Devonport Pontefract, Castleford and Knottingley Poole Poplar and Limehouse Portsmouth North Portsmouth South Preston Putney Queen's Park and Maida Vale Rawmarsh and Conisbrough Rayleigh and Wickford Reading Central Reading West and Mid Berkshire Redcar Redditch #45 Reigate: needs 3.00% swing from Con Ribble Valley #103 Richmond and Northallerton: needs 12.56% swing from Con Richmond Park Rochdale Rochester and Strood #25 Romford: needs 1.66% swing from Con Romsey and Southampton North Rossendale and Darwen Rother Valley Rotherham Rugby #92 Ruislip, Northwood and Pinner: needs 8.05% swing from Con Runcorn and Helsby Runnymede and Weybridge Rushcliffe #98 Rutland and Stamford: needs 10.70% swing from Con Salford #59 Salisbury: needs 3.80% swing from Con Scarborough and Whitby Scunthorpe Sefton Central Selby Sevenoaks Sheffield Brightside and Hillsborough Sheffield Central Sheffield Hallam Sheffield Heeley Sheffield South East Sherwood Forest Shipley Shrewsbury Sittingbourne and Sheppey #23 Skipton and Ripon: needs 1.55% swing from Con #62 Sleaford and North Hykeham: needs 4.48% swing from Con Slough Smethwick #68 Solihull West and Shirley: needs 4.93% swing from Con #5 South Basildon and East Thurrock: needs 0.13% swing from Ref South Cambridgeshire South Cotswolds South Derbyshire South Devon South Dorset South East Cornwall South Holland and The Deepings #75 South Leicestershire: needs 5.36% swing from Con South Norfolk #51 South Northamptonshire: needs 3.44% swing from Con South Ribble South Shields South Shropshire #46 South Suffolk: needs 3.12% swing from Con #32 South West Devon: needs 2.02% swing from Con South West Hertfordshire South West Norfolk #52 South West Wiltshire: needs 3.51% swing from Con Southampton Itchen Southampton Test Southend East and Rochford Southend West and Leigh Southgate and Wood Green Southport #27 Spelthorne: needs 1.72% swing from Con Spen Valley St Albans St Austell and Newquay St Helens North St Helens South and Whiston St Ives St Neots and Mid Cambridgeshire Stafford #20 Staffordshire Moorlands: needs 1.36% swing from Con Stalybridge and Hyde Stevenage Stockport Stockton North #34 Stockton West: needs 2.20% swing from Con Stoke-on-Trent Central Stoke-on-Trent North Stoke-on-Trent South #82 Stone, Great Wyrley and Penkridge: needs 6.39% swing from Con Stourbridge Stratford and Bow Stratford-on-Avon Streatham and Croydon North Stretford and Urmston Stroud Suffolk Coastal Sunderland Central Surrey Heath Sussex Weald Sutton and Cheam #40 Sutton Coldfield: needs 2.63% swing from Con Swindon North Swindon South Tamworth #16 Tatton: needs 1.10% swing from Con Taunton and Wellington Telford Tewkesbury #13 The Wrekin: needs 0.89% swing from Con #91 Thirsk and Malton: needs 7.58% swing from Con Thornbury and Yate Thurrock Tipton and Wednesbury Tiverton and Minehead #99 Tonbridge: needs 11.10% swing from Con Tooting Torbay Torridge and Tavistock Tottenham Truro and Falmouth Tunbridge Wells Twickenham Tynemouth Uxbridge and South Ruislip Vauxhall and Camberwell Green Wakefield and Rothwell Wallasey Walsall and Bloxwich Walthamstow Warrington North Warrington South Warwick and Leamington Washington and Gateshead South Watford Waveney Valley #93 Weald of Kent: needs 8.31% swing from Con Wellingborough and Rushden Wells and Mendip Hills Welwyn Hatfield West Bromwich West Dorset West Ham and Beckton West Lancashire #53 West Suffolk: needs 3.52% swing from Con West Worcestershire Westmorland and Lonsdale Weston-super-Mare #64 Wetherby and Easingwold: needs 4.64% swing from Con Whitehaven and Workington Widnes and Halewood Wigan Wimbledon Winchester #88 Windsor: needs 7.14% swing from Con Wirral West #71 Witham: needs 5.09% swing from Con Witney Woking Wokingham Wolverhampton North East Wolverhampton South East Wolverhampton West Worcester Worsley and Eccles Worthing West Wycombe #14 Wyre Forest: needs 0.90% swing from Con Wythenshawe and Sale East Yeovil York Central York Outer East Antrim South Antrim Lagan Valley Upper Bann Belfast North East Londonderry West Tyrone Foyle North Antrim Mid Ulster Fermanagh and South Tyrone South Down North Down Strangford Belfast East Belfast West Belfast South and Mid Down Newry and Armagh Berwickshire, Roxburgh and Selkirk #15 Arbroath and Broughty Ferry: needs 0.98% swing from SNP Dunfermline and Dollar Airdrie and Shotts East Kilbride and Strathaven East Renfrewshire Edinburgh East and Musselburgh Edinburgh North and Leith Edinburgh South West Alloa and Grangemouth Glasgow South West Inverclyde and Renfrewshire West Kilmarnock and Loudoun Livingston Midlothian Motherwell, Wishaw and Carluke Paisley and Renfrewshire South Angus and Perthshire Glens Stirling and Strathallan West Dunbartonshire Moray West, Nairn and Strathspey Argyll, Bute and South Lochaber West Aberdeenshire and Kincardine Gordon and Buchan Cowdenbeath and Kirkcaldy #61 Aberdeen South: needs 4.06% swing from SNP Edinburgh West Lothian East Ayr, Carrick and Cumnock Central Ayrshire Orkney and Shetland Na h-Eileanan an Iar North Ayrshire and Arran Perth and Kinross-shire #12 Dundee Central: needs 0.87% swing from SNP Falkirk Bathgate and Linlithgow Inverness, Skye and West Ross-shire Edinburgh South Dumfries and Galloway Paisley and Renfrewshire North Aberdeenshire North and Moray East Caithness, Sutherland and Easter Ross Glasgow East Mid Dunbartonshire Glasgow North Glasgow South Glasgow West Cumbernauld and Kirkintilloch Coatbridge and Bellshill Hamilton and Clyde Valley Rutherglen Glasgow North East #33 Aberdeen North: needs 2.09% swing from SNP Dumfriesshire, Clydesdale and Tweeddale North East Fife Glenrothes and Mid Fife Aberafan Maesteg Alyn and Deeside Bangor Aberconwy Blaenau Gwent and Rhymney Brecon, Radnor and Cwm Tawe Bridgend #69 Caerfyrddin: needs 4.97% swing from PC Caerphilly Cardiff East Cardiff North Cardiff South and Penarth Cardiff West Ceredigion Preseli Clwyd East Clwyd North #105 Dwyfor Meirionnydd: needs 19.65% swing from PC Gower Llanelli Merthyr Tydfil and Aberdare Mid and South Pembrokeshire Monmouthshire Montgomeryshire and Glyndŵr Neath and Swansea East Newport East Newport West and Islwyn Pontypridd Rhondda and Ogmore Swansea West Torfaen Vale of Glamorgan Wrexham Ynys Môn Aldershot #73 Aldridge-Brownhills: needs 5.25% swing from Con Altrincham and Sale West Amber Valley Arundel and South Downs #85 Ashfield: needs 6.91% swing from Ref Ashford Ashton-under-Lyne Aylesbury Banbury Barking Barrow and Furness #1 Basildon and Billericay: needs 0.03% swing from Con Basingstoke Bassetlaw #100 Bath: needs 11.66% swing from LD Battersea Beaconsfield Bedford Bermondsey and Old Southwark #6 Beverley and Holderness: needs 0.14% swing from Con #41 Bexhill and Battle: needs 2.78% swing from Con Bexleyheath and Crayford Birkenhead Bishop Auckland #7 Blackburn: needs 0.17% swing from Ind Blackpool South #31 Bognor Regis and Littlehampton: needs 1.85% swing from Con Bolsover Bolton North East Bolton West Bootle Boston and Skegness Bournemouth East Bournemouth West Bracknell Bradford East Bradford South Bradford West #57 Braintree: needs 3.75% swing from Con Brentford and Isleworth Brentwood and Ongar Bristol East Seats where Labour came second; paler = smaller majority, so an easier target.
# Constituency Held by Majority Swing needed Seats if won
1 Basildon and Billericay Con20 0.03% 412 2 Central Devon Con61 0.06% 413 3 Havant Con92 0.11% 414 4 Exmouth and Exeter East Con121 0.12% 415 5 South Basildon and East Thurrock Ref98 0.13% 416 6 Beverley and Holderness Con124 0.14% 417 7 Blackburn Ind132 0.17% 418 8 Bromley and Biggin Hill Con302 0.33% 419 9 Fylde Con561 0.59% 420 10 Birmingham Perry Barr Ind507 0.68% 421 11 Broadland and Fakenham Con719 0.73% 422 12 Dundee Central SNP675 0.87% 423 13 The Wrekin Con883 0.89% 424 14 Wyre Forest Con812 0.90% 425 15 Arbroath and Broughty Ferry SNP859 0.98% 426 16 Tatton Con1,136 1.10% 427 17 Leicester South Ind979 1.17% 428 18 Harwich and North Essex Con1,162 1.21% 429 19 Mid Bedfordshire Con1,321 1.33% 430 20 Staffordshire Moorlands Con1,175 1.36% 431 21 Hereford and South Herefordshire Con1,279 1.41% 432 22 Huntingdon Con1,499 1.44% 433 23 Skipton and Ripon Con1,650 1.55% 434 24 Faversham and Mid Kent Con1,469 1.58% 435 25 Romford Con1,463 1.66% 436 26 Bridgwater Con1,349 1.68% 437 27 Spelthorne Con1,590 1.72% 438 28 Great Yarmouth Ref1,426 1.75% 439 29 Keighley and Ilkley Con1,625 1.76% 440 30 Maidstone and Malling Con1,674 1.81% 441 31 Bognor Regis and Littlehampton Con1,765 1.85% 442 32 South West Devon Con2,112 2.02% 443 33 Aberdeen North SNP1,760 2.09% 444 34 Stockton West Con2,139 2.20% 445 35 Mid Leicestershire Con2,201 2.29% 446 36 Croydon South Con2,313 2.34% 447 37 Harborough, Oadby and Wigston Con2,378 2.36% 448 38 North West Essex Con2,610 2.40% 449 39 Herne Bay and Sandwich Con2,499 2.56% 450 40 Sutton Coldfield Con2,543 2.63% 451 41 Bexhill and Battle Con2,657 2.78% 452 42 Daventry Con3,012 2.84% 453 43 Chester South and Eddisbury Con3,057 2.91% 454 44 Bromsgrove Con3,016 2.99% 455 45 Reigate Con3,187 3.00% 456 46 South Suffolk Con3,047 3.12% 457 47 North West Hampshire Con3,288 3.24% 458 48 Broxbourne Con2,858 3.33% 459 49 Mid Norfolk Con3,054 3.33% 460 50 Newark Con3,572 3.34% 461 51 South Northamptonshire Con3,687 3.44% 462 52 South West Wiltshire Con3,243 3.51% 463 53 West Suffolk Con3,247 3.52% 464 54 Goole and Pocklington Con3,572 3.59% 465 55 Bridlington and The Wolds Con3,125 3.64% 466 56 Old Bexley and Sidcup Con3,548 3.73% 467 57 Braintree Con3,670 3.75% 468 58 Gainsborough Con3,532 3.79% 469 59 Salisbury Con3,807 3.80% 470 60 Brigg and Immingham Con3,243 3.82% 471 61 Aberdeen South SNP3,758 4.06% 472 62 Sleaford and North Hykeham Con4,346 4.48% 473 63 Central Suffolk and North Ipswich Con4,290 4.62% 474 64 Wetherby and Easingwold Con4,846 4.64% 475 65 Leicester East Con4,426 4.74% 476 66 Grantham and Bourne Con4,496 4.88% 477 67 Chingford and Woodford Green Con4,757 4.91% 478 68 Solihull West and Shirley Con4,620 4.93% 479 69 Caerfyrddin PC4,535 4.97% 480 70 East Wiltshire Con4,716 5.00% 481 71 Witham Con5,145 5.09% 482 72 Meriden and Solihull East Con4,584 5.21% 483 73 Aldridge-Brownhills Con4,294 5.25% 484 74 North Bedfordshire Con5,414 5.25% 485 75 South Leicestershire Con5,506 5.36% 486 76 Orpington Con5,118 5.56% 487 77 North West Norfolk Con4,954 5.56% 488 78 Melton and Syston Con5,396 5.87% 489 79 New Forest West Con5,600 6.05% 490 80 Fareham and Waterlooville Con6,079 6.07% 491 81 Kenilworth and Southam Con6,574 6.17% 492 82 Stone, Great Wyrley and Penkridge Con5,466 6.39% 493 83 Epping Forest Con5,682 6.81% 494 84 Gosport Con6,054 6.84% 495 85 Ashfield Ref5,508 6.91% 496 86 Kingswinford and South Staffordshire Con6,303 6.98% 497 87 Hazel Grove LD6,500 7.07% 498 88 Windsor Con6,457 7.14% 499 89 Islington North Ind7,247 7.40% 500 90 East Surrey Con7,450 7.57% 501 91 Thirsk and Malton Con7,550 7.58% 502 92 Ruislip, Northwood and Pinner Con7,581 8.05% 503 93 Weald of Kent Con8,422 8.31% 504 94 Hertsmere Con7,992 8.33% 505 95 Droitwich and Evesham Con8,995 9.07% 506 96 Dewsbury and Batley Ind6,934 9.11% 507 97 New Forest East Con8,495 9.39% 508 98 Rutland and Stamford Con10,394 10.70% 509 99 Tonbridge Con11,166 11.10% 510 100 Bath LD11,218 11.66% 511 101 Bristol Central Grn10,407 12.00% 512 102 Harrow East Con11,680 12.23% 513 103 Richmond and Northallerton Con12,185 12.56% 514 104 Brighton Pavilion Grn14,290 13.65% 515 105 Dwyfor Meirionnydd PC15,876 19.65% 516
"Seats if won" adds each target in order to the seats the party already holds, ignoring seats it might lose.
Official results UK Parliament election results data (House of Commons Library). Contains Parliamentary information licensed under the Open Parliament Licence v3.0. How we use this data