← dashboard

Westminster voting intention

Poll-of-polls · 12 months · latest 31 Aug, 01:00

Voting intention12M · 14d half-life EWMA

What else was happening

4 marks
  1. 19 JulBurnham formally enters Downing Street pledging circuit-breaker shift from Starmer era
  2. 2 AugBev Craig elected Greater Manchester mayor, beating Reform UK in second round
  3. 15 AugFarage wins Clacton seat back but financial probe resumes immediately
  4. 29 AugCleverly quits shadow cabinet to seek Conservative London mayoral nomination

The biggest story of each marked day, by how many independent outlets ran it · a mark shows when a story was running, not that it moved the numbers · averages are 14-day-half-life EWMAs of fieldwork that largely predates the story beside them.

Latest averages

PartyAvgΔ7dΔ30d
Labour25.90.20.1
Reform UK24.5+0.4+1.3
Conservative20.2+0.2+0.1
Green10.60.11.0
Liberal Democrats10.10.10.0
Restore Britain3.3+0.10.1
SNP2.80.2+0.1
Plaid Cymru1.00.00.1

Seat projection

Labour largest on 233–301 seats depending on swing model — 93 short of a majority, so a hung parliament.

Both models, same poll: Labour 233–301 · Reform UK 107–214 · Conservative 69–113 · Liberal Democrats 69–73 · SNP 22–27.

Projected CommonsProportional swing · 2024 baseline
650 seats326 for a majority
Aldershot — Labour holdAldridge-Brownhills — Reform UK gain from ConservativeAltrincham and Sale West — Labour holdAmber Valley — Reform UK gain from LabourArundel and South Downs — Conservative holdAshfield — Reform UK holdAshford — Reform UK gain from LabourAshton-under-Lyne — Reform UK gain from LabourAylesbury — Conservative gain from LabourBanbury — Labour holdBarking — Labour holdBarnsley North — Reform UK gain from LabourBarnsley South — Reform UK gain from LabourBarrow and Furness — Labour holdBasildon and Billericay — Reform UK gain from ConservativeBasingstoke — Labour holdBassetlaw — Reform UK gain from LabourBath — Liberal Democrats holdBattersea — Labour holdBeaconsfield — Conservative holdBeckenham and Penge — Labour holdBedford — Labour holdBermondsey and Old Southwark — Labour holdBethnal Green and Stepney — Labour holdBeverley and Holderness — Reform UK gain from ConservativeBexhill and Battle — Conservative holdBexleyheath and Crayford — Reform UK gain from LabourBicester and Woodstock — Liberal Democrats holdBirkenhead — Labour holdBirmingham Edgbaston — Labour holdBirmingham Erdington — Reform UK gain from LabourBirmingham Hall Green and Moseley — Labour holdBirmingham Hodge Hill and Solihull North — Reform UK gain from LabourBirmingham Ladywood — Labour holdBirmingham Northfield — Reform UK gain from LabourBirmingham Perry Barr — Others holdBirmingham Selly Oak — Labour holdBirmingham Yardley — Reform UK gain from LabourBishop Auckland — Reform UK gain from LabourBlackburn — Others holdBlackley and Middleton South — Labour holdBlackpool North and Fleetwood — Reform UK gain from LabourBlackpool South — Reform UK gain from LabourBlaydon and Consett — Reform UK gain from LabourBlyth and Ashington — Reform UK gain from LabourBognor Regis and Littlehampton — Reform UK gain from ConservativeBolsover — Reform UK gain from LabourBolton North East — Reform UK gain from LabourBolton South and Walkden — Reform UK gain from LabourBolton West — Reform UK gain from LabourBootle — Labour holdBoston and Skegness — Reform UK holdBournemouth East — Labour holdBournemouth West — Reform UK gain from LabourBracknell — Reform UK gain from LabourBradford East — Labour holdBradford South — Reform UK gain from LabourBradford West — Labour holdBraintree — Reform UK gain from ConservativeBrent East — Labour holdBrent West — Labour holdBrentford and Isleworth — Labour holdBrentwood and Ongar — Reform UK gain from ConservativeBridgwater — Reform UK gain from ConservativeBridlington and The Wolds — Reform UK gain from ConservativeBrigg and Immingham — Reform UK gain from ConservativeBrighton Kemptown and Peacehaven — Labour holdBrighton Pavilion — Green holdBristol Central — Green holdBristol East — Green gain from LabourBristol North East — Labour holdBristol North West — Labour holdBristol South — Green gain from LabourBroadland and Fakenham — Reform UK gain from ConservativeBromley and Biggin Hill — Reform UK gain from ConservativeBromsgrove — Reform UK gain from ConservativeBroxbourne — Reform UK gain from ConservativeBroxtowe — Labour holdBuckingham and Bletchley — Labour holdBurnley — Reform UK gain from LabourBurton and Uttoxeter — Reform UK gain from LabourBury North — Labour holdBury South — Labour holdBury St Edmunds and Stowmarket — Reform UK gain from LabourCalder Valley — Labour holdCamborne and Redruth — Reform UK gain from LabourCambridge — Labour holdCannock Chase — Reform UK gain from LabourCanterbury — Labour holdCarlisle — Reform UK gain from LabourCarshalton and Wallington — Liberal Democrats holdCastle Point — Reform UK gain from ConservativeCentral Devon — Conservative holdCentral Suffolk and North Ipswich — Reform UK gain from ConservativeChatham and Aylesford — Reform UK gain from LabourCheadle — Liberal Democrats holdChelmsford — Liberal Democrats holdChelsea and Fulham — Conservative gain from LabourCheltenham — Liberal Democrats holdChesham and Amersham — Liberal Democrats holdChester North and Neston — Labour holdChester South and Eddisbury — Conservative holdChesterfield — Labour holdChichester — Liberal Democrats holdChingford and Woodford Green — Conservative holdChippenham — Liberal Democrats holdChipping Barnet — Labour holdChorley — Others holdChristchurch — Reform UK gain from ConservativeCities of London and Westminster — Labour holdCity of Durham — Labour holdClacton — Reform UK holdClapham and Brixton Hill — Labour holdColchester — Labour holdColne Valley — Labour holdCongleton — Labour holdCorby and East Northamptonshire — Labour holdCoventry East — Labour holdCoventry North West — Labour holdCoventry South — Labour holdCramlington and Killingworth — Labour holdCrawley — Reform UK gain from LabourCrewe and Nantwich — Reform UK gain from LabourCroydon East — Labour holdCroydon South — Conservative holdCroydon West — Labour holdDagenham and Rainham — Reform UK gain from LabourDarlington — Labour holdDartford — Reform UK gain from LabourDaventry — Reform UK gain from ConservativeDerby North — Labour holdDerby South — Reform UK gain from LabourDerbyshire Dales — Conservative gain from LabourDewsbury and Batley — Others holdDidcot and Wantage — Liberal Democrats holdDoncaster Central — Reform UK gain from LabourDoncaster East and the Isle of Axholme — Reform UK gain from LabourDoncaster North — Labour holdDorking and Horley — Liberal Democrats holdDover and Deal — Reform UK gain from LabourDroitwich and Evesham — Conservative holdDudley — Reform UK gain from LabourDulwich and West Norwood — Labour holdDunstable and Leighton Buzzard — Reform UK gain from LabourEaling Central and Acton — Labour holdEaling North — Labour holdEaling Southall — Labour holdEarley and Woodley — Conservative gain from LabourEasington — Reform UK gain from LabourEast Grinstead and Uckfield — Conservative holdEast Ham — Labour holdEast Hampshire — Conservative holdEast Surrey — Conservative holdEast Thanet — Reform UK gain from LabourEast Wiltshire — Conservative holdEast Worthing and Shoreham — Labour holdEastbourne — Liberal Democrats holdEastleigh — Liberal Democrats holdEdmonton and Winchmore Hill — Labour holdEllesmere Port and Bromborough — Labour holdEltham and Chislehurst — Labour holdEly and East Cambridgeshire — Conservative gain from Liberal DemocratsEnfield North — Labour holdEpping Forest — Conservative holdEpsom and Ewell — Liberal Democrats holdErewash — Reform UK gain from LabourErith and Thamesmead — Labour holdEsher and Walton — Liberal Democrats holdExeter — Labour holdExmouth and Exeter East — Conservative holdFareham and Waterlooville — Reform UK gain from ConservativeFarnham and Bordon — Conservative holdFaversham and Mid Kent — Reform UK gain from ConservativeFeltham and Heston — Labour holdFilton and Bradley Stoke — Labour holdFinchley and Golders Green — Labour holdFolkestone and Hythe — Reform UK gain from LabourForest of Dean — Reform UK gain from LabourFrome and East Somerset — Liberal Democrats holdFylde — Reform UK gain from ConservativeGainsborough — Reform UK gain from ConservativeGateshead Central and Whickham — Reform UK gain from LabourGedling — Labour holdGillingham and Rainham — Reform UK gain from LabourGlastonbury and Somerton — Liberal Democrats holdGloucester — Labour holdGodalming and Ash — Conservative holdGoole and Pocklington — Conservative holdGorton and Denton — Labour holdGosport — Conservative holdGrantham and Bourne — Reform UK gain from ConservativeGravesham — Reform UK gain from LabourGreat Grimsby and Cleethorpes — Reform UK gain from LabourGreat Yarmouth — Reform UK holdGreenwich and Woolwich — Labour holdGuildford — Liberal Democrats holdHackney North and Stoke Newington — Labour holdHackney South and Shoreditch — Labour holdHalesowen — Reform UK gain from LabourHalifax — Reform UK gain from LabourHamble Valley — Conservative holdHammersmith and Chiswick — Labour holdHampstead and Highgate — Labour holdHarborough, Oadby and Wigston — Conservative holdHarlow — Reform UK gain from LabourHarpenden and Berkhamsted — Liberal Democrats holdHarrogate and Knaresborough — Liberal Democrats holdHarrow East — Conservative holdHarrow West — Labour holdHartlepool — Reform UK gain from LabourHarwich and North Essex — Reform UK gain from ConservativeHastings and Rye — Labour holdHavant — Reform UK gain from ConservativeHayes and Harlington — Labour holdHazel Grove — Liberal Democrats holdHemel Hempstead — Reform UK gain from LabourHendon — Conservative gain from LabourHenley and Thame — Liberal Democrats holdHereford and South Herefordshire — Reform UK gain from ConservativeHerne Bay and Sandwich — Reform UK gain from ConservativeHertford and Stortford — Labour holdHertsmere — Conservative holdHexham — Labour holdHeywood and Middleton North — Reform UK gain from LabourHigh Peak — Labour holdHinckley and Bosworth — Reform UK gain from ConservativeHitchin — Labour holdHolborn and St Pancras — Labour holdHoniton and Sidmouth — Liberal Democrats holdHornchurch and Upminster — Reform UK gain from ConservativeHornsey and Friern Barnet — Labour holdHorsham — Liberal Democrats holdHoughton and Sunderland South — Reform UK gain from LabourHove and Portslade — Labour holdHuddersfield — Green gain from LabourHuntingdon — Conservative holdHyndburn — Reform UK gain from LabourIlford North — Labour holdIlford South — Labour holdIpswich — Labour holdIsle of Wight East — Reform UK gain from ConservativeIsle of Wight West — Labour holdIslington North — Others holdIslington South and Finsbury — Labour holdJarrow and Gateshead East — Reform UK gain from LabourKeighley and Ilkley — Conservative holdKenilworth and Southam — Conservative holdKensington and Bayswater — Labour holdKettering — Reform UK gain from LabourKingston and Surbiton — Liberal Democrats holdKingston upon Hull East — Reform UK gain from LabourKingston upon Hull North and Cottingham — Labour holdKingston upon Hull West and Haltemprice — Reform UK gain from LabourKingswinford and South Staffordshire — Reform UK gain from ConservativeKnowsley — Labour holdLancaster and Wyre — Labour holdLeeds Central and Headingley — Labour holdLeeds East — Labour holdLeeds North East — Labour holdLeeds North West — Labour holdLeeds South — Labour holdLeeds South West and Morley — Reform UK gain from LabourLeeds West and Pudsey — Labour holdLeicester East — Conservative holdLeicester South — Others holdLeicester West — Labour holdLeigh and Atherton — Reform UK gain from LabourLewes — Liberal Democrats holdLewisham East — Labour holdLewisham North — Labour holdLewisham West and East Dulwich — Labour holdLeyton and Wanstead — Labour holdLichfield — Reform UK gain from LabourLincoln — Labour holdLiverpool Garston — Labour holdLiverpool Riverside — Labour holdLiverpool Walton — Labour holdLiverpool Wavertree — Labour holdLiverpool West Derby — Labour holdLoughborough — Labour holdLouth and Horncastle — Reform UK gain from ConservativeLowestoft — Reform UK gain from LabourLuton North — Labour holdLuton South and South Bedfordshire — Labour holdMacclesfield — Labour holdMaidenhead — Liberal Democrats holdMaidstone and Malling — Reform UK gain from ConservativeMakerfield — Reform UK gain from LabourMaldon — Reform UK gain from ConservativeManchester Central — Labour holdManchester Rusholme — Labour holdManchester Withington — Labour holdMansfield — Reform UK gain from LabourMelksham and Devizes — Liberal Democrats holdMelton and Syston — Reform UK gain from ConservativeMeriden and Solihull East — Reform UK gain from ConservativeMid Bedfordshire — Reform UK gain from ConservativeMid Buckinghamshire — Conservative holdMid Cheshire — Labour holdMid Derbyshire — Reform UK gain from LabourMid Dorset and North Poole — Liberal Democrats holdMid Leicestershire — Reform UK gain from ConservativeMid Norfolk — Reform UK gain from ConservativeMid Sussex — Liberal Democrats holdMiddlesbrough and Thornaby East — Labour holdMiddlesbrough South and East Cleveland — Conservative gain from LabourMilton Keynes Central — Labour holdMilton Keynes North — Labour holdMitcham and Morden — Labour holdMorecambe and Lunesdale — Labour holdNew Forest East — Conservative holdNew Forest West — Conservative holdNewark — Conservative holdNewbury — Liberal Democrats holdNewcastle upon Tyne Central and West — Labour holdNewcastle upon Tyne East and Wallsend — Labour holdNewcastle upon Tyne North — Labour holdNewcastle-under-Lyme — Reform UK gain from LabourNewton Abbot — Reform UK gain from Liberal DemocratsNewton Aycliffe and Spennymoor — Reform UK gain from LabourNormanton and Hemsworth — Reform UK gain from LabourNorth Bedfordshire — Conservative holdNorth Cornwall — Liberal Democrats holdNorth Cotswolds — Conservative holdNorth Devon — Liberal Democrats holdNorth Dorset — Conservative holdNorth Durham — Reform UK gain from LabourNorth East Cambridgeshire — Reform UK gain from ConservativeNorth East Derbyshire — Reform UK gain from LabourNorth East Hampshire — Liberal Democrats holdNorth East Hertfordshire — Reform UK gain from LabourNorth East Somerset and Hanham — Labour holdNorth Herefordshire — Green holdNorth Norfolk — Liberal Democrats holdNorth Northumberland — Labour holdNorth Shropshire — Liberal Democrats holdNorth Somerset — Conservative gain from LabourNorth Warwickshire and Bedworth — Reform UK gain from LabourNorth West Cambridgeshire — Reform UK gain from LabourNorth West Essex — Conservative holdNorth West Hampshire — Conservative holdNorth West Leicestershire — Reform UK gain from LabourNorth West Norfolk — Reform UK gain from ConservativeNorthampton North — Labour holdNorthampton South — Reform UK gain from LabourNorwich North — Labour holdNorwich South — Labour holdNottingham East — Labour holdNottingham North and Kimberley — Labour holdNottingham South — Labour holdNuneaton — Reform UK gain from LabourOld Bexley and Sidcup — Reform UK gain from ConservativeOldham East and Saddleworth — Reform UK gain from LabourOldham West, Chadderton and Royton — Reform UK gain from LabourOrpington — Reform UK gain from ConservativeOssett and Denby Dale — Reform UK gain from LabourOxford East — Labour holdOxford West and Abingdon — Liberal Democrats holdPeckham — Labour holdPendle and Clitheroe — Reform UK gain from LabourPenistone and Stocksbridge — Reform UK gain from LabourPenrith and Solway — Labour holdPeterborough — Conservative gain from LabourPlymouth Moor View — Reform UK gain from LabourPlymouth Sutton and Devonport — Labour holdPontefract, Castleford and Knottingley — Reform UK gain from LabourPoole — Reform UK gain from LabourPoplar and Limehouse — Labour holdPortsmouth North — Reform UK gain from LabourPortsmouth South — Labour holdPreston — Labour holdPutney — Labour holdQueen's Park and Maida Vale — Labour holdRawmarsh and Conisbrough — Reform UK gain from LabourRayleigh and Wickford — Reform UK gain from ConservativeReading Central — Labour holdReading West and Mid Berkshire — Conservative gain from LabourRedcar — Reform UK gain from LabourRedditch — Reform UK gain from LabourReigate — Conservative holdRibble Valley — Conservative gain from LabourRichmond and Northallerton — Conservative holdRichmond Park — Liberal Democrats holdRochdale — Reform UK gain from LabourRochester and Strood — Reform UK gain from LabourRomford — Reform UK gain from ConservativeRomsey and Southampton North — Conservative holdRossendale and Darwen — Reform UK gain from LabourRother Valley — Reform UK gain from LabourRotherham — Reform UK gain from LabourRugby — Labour holdRuislip, Northwood and Pinner — Conservative holdRuncorn and Helsby — Labour holdRunnymede and Weybridge — Conservative holdRushcliffe — Labour holdRutland and Stamford — Conservative holdSalford — Labour holdSalisbury — Conservative holdScarborough and Whitby — Reform UK gain from LabourScunthorpe — Reform UK gain from LabourSefton Central — Labour holdSelby — Labour holdSevenoaks — Reform UK gain from ConservativeSheffield Brightside and Hillsborough — Labour holdSheffield Central — Green gain from LabourSheffield Hallam — Labour holdSheffield Heeley — Labour holdSheffield South East — Labour holdSherwood Forest — Reform UK gain from LabourShipley — Labour holdShrewsbury — Labour holdSittingbourne and Sheppey — Reform UK gain from LabourSkipton and Ripon — Conservative holdSleaford and North Hykeham — Reform UK gain from ConservativeSlough — Labour holdSmethwick — Labour holdSolihull West and Shirley — Conservative holdSouth Basildon and East Thurrock — Reform UK holdSouth Cambridgeshire — Liberal Democrats holdSouth Cotswolds — Liberal Democrats holdSouth Derbyshire — Reform UK gain from LabourSouth Devon — Liberal Democrats holdSouth Dorset — Reform UK gain from LabourSouth East Cornwall — Reform UK gain from LabourSouth Holland and The Deepings — Reform UK gain from ConservativeSouth Leicestershire — Reform UK gain from ConservativeSouth Norfolk — Labour holdSouth Northamptonshire — Conservative holdSouth Ribble — Reform UK gain from LabourSouth Shields — Reform UK gain from LabourSouth Shropshire — Reform UK gain from ConservativeSouth Suffolk — Reform UK gain from ConservativeSouth West Devon — Reform UK gain from ConservativeSouth West Hertfordshire — Conservative holdSouth West Norfolk — Reform UK gain from LabourSouth West Wiltshire — Reform UK gain from ConservativeSouthampton Itchen — Labour holdSouthampton Test — Labour holdSouthend East and Rochford — Reform UK gain from LabourSouthend West and Leigh — Reform UK gain from LabourSouthgate and Wood Green — Labour holdSouthport — Labour holdSpelthorne — Reform UK gain from ConservativeSpen Valley — Reform UK gain from LabourSt Albans — Liberal Democrats holdSt Austell and Newquay — Reform UK gain from LabourSt Helens North — Labour holdSt Helens South and Whiston — Labour holdSt Ives — Liberal Democrats holdSt Neots and Mid Cambridgeshire — Liberal Democrats holdStafford — Reform UK gain from LabourStaffordshire Moorlands — Reform UK gain from ConservativeStalybridge and Hyde — Reform UK gain from LabourStevenage — Labour holdStockport — Labour holdStockton North — Reform UK gain from LabourStockton West — Conservative holdStoke-on-Trent Central — Reform UK gain from LabourStoke-on-Trent North — Reform UK gain from LabourStoke-on-Trent South — Reform UK gain from LabourStone, Great Wyrley and Penkridge — Conservative holdStourbridge — Reform UK gain from LabourStratford and Bow — Labour holdStratford-on-Avon — Liberal Democrats holdStreatham and Croydon North — Labour holdStretford and Urmston — Labour holdStroud — Labour holdSuffolk Coastal — Reform UK gain from LabourSunderland Central — Reform UK gain from LabourSurrey Heath — Liberal Democrats holdSussex Weald — Reform UK gain from ConservativeSutton and Cheam — Liberal Democrats holdSutton Coldfield — Conservative holdSwindon North — Labour holdSwindon South — Labour holdTamworth — Reform UK gain from LabourTatton — Conservative holdTaunton and Wellington — Liberal Democrats holdTelford — Reform UK gain from LabourTewkesbury — Liberal Democrats holdThe Wrekin — Reform UK gain from ConservativeThirsk and Malton — Conservative holdThornbury and Yate — Liberal Democrats holdThurrock — Reform UK gain from LabourTipton and Wednesbury — Reform UK gain from LabourTiverton and Minehead — Liberal Democrats holdTonbridge — Conservative holdTooting — Labour holdTorbay — Liberal Democrats holdTorridge and Tavistock — Reform UK gain from ConservativeTottenham — Labour holdTruro and Falmouth — Labour holdTunbridge Wells — Liberal Democrats holdTwickenham — Liberal Democrats holdTynemouth — Labour holdUxbridge and South Ruislip — Conservative gain from LabourVauxhall and Camberwell Green — Labour holdWakefield and Rothwell — Reform UK gain from LabourWallasey — Labour holdWalsall and Bloxwich — Reform UK gain from LabourWalthamstow — Labour holdWarrington North — Reform UK gain from LabourWarrington South — Labour holdWarwick and Leamington — Labour holdWashington and Gateshead South — Reform UK gain from LabourWatford — Labour holdWaveney Valley — Green holdWeald of Kent — Reform UK gain from ConservativeWellingborough and Rushden — Reform UK gain from LabourWells and Mendip Hills — Liberal Democrats holdWelwyn Hatfield — Labour holdWest Bromwich — Labour holdWest Dorset — Liberal Democrats holdWest Ham and Beckton — Labour holdWest Lancashire — Labour holdWest Suffolk — Reform UK gain from ConservativeWest Worcestershire — Conservative holdWestmorland and Lonsdale — Liberal Democrats holdWeston-super-Mare — Reform UK gain from LabourWetherby and Easingwold — Conservative holdWhitehaven and Workington — Labour holdWidnes and Halewood — Labour holdWigan — Reform UK gain from LabourWimbledon — Liberal Democrats holdWinchester — Liberal Democrats holdWindsor — Conservative holdWirral West — Labour holdWitham — Reform UK gain from ConservativeWitney — Liberal Democrats holdWoking — Liberal Democrats holdWokingham — Liberal Democrats holdWolverhampton North East — Reform UK gain from LabourWolverhampton South East — Reform UK gain from LabourWolverhampton West — Labour holdWorcester — Labour holdWorsley and Eccles — Reform UK gain from LabourWorthing West — Labour holdWycombe — Labour holdWyre Forest — Reform UK gain from ConservativeWythenshawe and Sale East — Labour holdYeovil — Liberal Democrats holdYork Central — Labour holdYork Outer — Labour holdBelfast East — DUP (held at 2024)Belfast North — Sinn Féin (held at 2024)Belfast South and Mid Down — SDLP (held at 2024)Belfast West — Sinn Féin (held at 2024)East Antrim — DUP (held at 2024)East Londonderry — DUP (held at 2024)Fermanagh and South Tyrone — Sinn Féin (held at 2024)Foyle — SDLP (held at 2024)Lagan Valley — Alliance (held at 2024)Mid Ulster — Sinn Féin (held at 2024)Newry and Armagh — Sinn Féin (held at 2024)North Antrim — Others (held at 2024)North Down — Others (held at 2024)South Antrim — UUP (held at 2024)South Down — Sinn Féin (held at 2024)Strangford — DUP (held at 2024)Upper Bann — DUP (held at 2024)West Tyrone — Sinn Féin (held at 2024)East Renfrewshire — Labour holdNa h-Eileanan an Iar — Labour holdMidlothian — Labour holdNorth Ayrshire and Arran — SNP gain from LabourOrkney and Shetland — Liberal Democrats holdAberdeen North — SNP holdAberdeen South — SNP holdAberdeenshire North and Moray East — SNP holdAirdrie and Shotts — Labour holdAlloa and Grangemouth — Labour holdAngus and Perthshire Glens — SNP holdArbroath and Broughty Ferry — SNP holdArgyll, Bute and South Lochaber — SNP holdBathgate and Linlithgow — Labour holdCaithness, Sutherland and Easter Ross — Liberal Democrats holdCoatbridge and Bellshill — Labour holdCowdenbeath and Kirkcaldy — Labour holdCumbernauld and Kirkintilloch — SNP gain from LabourDumfries and Galloway — SNP gain from ConservativeDumfriesshire, Clydesdale and Tweeddale — Conservative holdDundee Central — SNP holdDunfermline and Dollar — Labour holdEast Kilbride and Strathaven — Labour holdEdinburgh East and Musselburgh — SNP gain from LabourEdinburgh North and Leith — Labour holdEdinburgh South — Labour holdEdinburgh South West — Labour holdEdinburgh West — Liberal Democrats holdFalkirk — SNP gain from LabourGlasgow East — SNP gain from LabourGlasgow North — SNP gain from LabourGlasgow North East — SNP gain from LabourGlasgow South — SNP gain from LabourGlasgow South West — SNP gain from LabourGlasgow West — Labour holdGlenrothes and Mid Fife — SNP gain from LabourGordon and Buchan — SNP gain from ConservativeHamilton and Clyde Valley — Labour holdInverclyde and Renfrewshire West — Labour holdInverness, Skye and West Ross-shire — SNP gain from Liberal DemocratsLivingston — SNP gain from LabourLothian East — Labour holdMid Dunbartonshire — Liberal Democrats holdMoray West, Nairn and Strathspey — SNP holdMotherwell, Wishaw and Carluke — Labour holdNorth East Fife — Liberal Democrats holdPaisley and Renfrewshire North — Labour holdPaisley and Renfrewshire South — Labour holdPerth and Kinross-shire — SNP holdRutherglen — Labour holdStirling and Strathallan — SNP gain from LabourWest Dunbartonshire — Labour holdAyr, Carrick and Cumnock — SNP gain from LabourBerwickshire, Roxburgh and Selkirk — Conservative holdCentral Ayrshire — Labour holdKilmarnock and Loudoun — SNP gain from LabourWest Aberdeenshire and Kincardine — SNP gain from ConservativeAberafan Maesteg — Labour holdAlyn and Deeside — Reform UK gain from LabourBangor Aberconwy — Plaid Cymru gain from LabourBlaenau Gwent and Rhymney — Labour holdBrecon, Radnor and Cwm Tawe — Liberal Democrats holdBridgend — Reform UK gain from LabourCaerfyrddin — Plaid Cymru holdCaerphilly — Reform UK gain from LabourCardiff East — Labour holdCardiff North — Labour holdCardiff South and Penarth — Labour holdCardiff West — Plaid Cymru gain from LabourCeredigion Preseli — Plaid Cymru holdClwyd East — Labour holdClwyd North — Reform UK gain from LabourDwyfor Meirionnydd — Plaid Cymru holdGower — Labour holdLlanelli — Reform UK gain from LabourMerthyr Tydfil and Aberdare — Reform UK gain from LabourMid and South Pembrokeshire — Reform UK gain from LabourMonmouthshire — Labour holdMontgomeryshire and Glyndŵr — Reform UK gain from LabourNeath and Swansea East — Reform UK gain from LabourNewport East — Reform UK gain from LabourNewport West and Islwyn — Reform UK gain from LabourPontypridd — Reform UK gain from LabourRhondda and Ogmore — Reform UK gain from LabourSwansea West — Labour holdTorfaen — Reform UK gain from LabourVale of Glamorgan — Labour holdWrexham — Labour holdYnys Môn — Plaid Cymru hold
PartyProportionalBoth modelsvs 2024
Labour233233–301178
Reform UK214107–214+209
Conservative6969–11352
Liberal Democrats6969–733
SNP2722–27+18
Green85–8+4
Others680
Plaid Cymru65–6+2
Northern Ireland1818held

Tightest seats changing hands

Constituency2024ProjectedMargin
Birmingham YardleyLABRUK0.02
Ely and East CambridgeshireLDCON0.03
North East DerbyshireLABRUK0.04
Newport EastLABRUK0.09
Doncaster CentralLABRUK0.14
South West WiltshireCONRUK0.27
Ribble ValleyLABCON0.28
Worsley and EcclesLABRUK0.35
Mid LeicestershireCONRUK0.35
South RibbleLABRUK0.35

Two models, one poll. Proportional swing— the figure drawn above — multiplies each party's 2024-07-04 share in every seat by its national ratio, so a party that doubles nationally doubles everywhere and its gains land where it already had votes. Uniform national swingadds each party's national change to every seat instead, moving all 650 by the same number of points; that spreads a surge evenly over seats where the party polled 3% and understates where it is actually strong. The range above is the two answers. Neither is a forecast: both are arithmetic on today's poll-of-polls, and neither knows anything about candidates, incumbency, tactical voting or local campaigns. SNP and Plaid figures are re-based from the GB poll to Scotland and Wales. The 18 Northern Ireland seats are held at their 2024 result, because no GB poll measures those parties. Baseline: House of Commons Library (2023 review (650)).

Leader approval

Net approval12M · positive − negative

Marks are the same stories as the key above.

LeaderPosNegNetΔ7dΔ30d
Andy Burnham42.028.3+13.7+0.51.3
Kemi Badenoch34.633.4+1.1+0.4+0.8
Ed Davey23.128.25.00.11.8
Nigel Farage29.252.723.4+1.6+1.4
Zack Polanski20.143.623.7+1.10.2

Recent polls

FieldworkPollsterClientnLABCONRUKLDGRNSNPPCRB
28 AugOpiniumThe Observer2,003271925101231
28 AugSurvation2,149271924910213
26 AugFind Out Now2,295222025111331
24 AugDeltapoll2,0223020278831
24 AugYouGovThe Times/Sky News2,3802220231313313
23 AugMore in Common3,14027222310934
19 AugFind Out Now2,287231823111431
18 AugSurvation2,0132618261010312
17 AugDeltapoll2,0172921278821
17 AugMore in Common2,05527222511931
17 AugYouGovThe Times/Sky News2,4412219241213314
14 AugOpiniumThe Observer2,050271825101131
13 AugSurvation2,004251926119322
12 AugTrajectory Partnership1,46228202211931
12 AugFind Out Now2,417222024111431
11 AugJL Partners2,017282125109
11 AugJL PartnersBloomberg News2,017272125109
10 AugFind Out NowThe National1,0201810171029
10 AugMore in Common2,12827212512931
10 AugFreshwater StrategyCity AM1,2482323269103

Regional polling

Individual sub-national polls, newest first — not a poll-of-polls. Regions are polled far too rarely to average: the national figure above blends five pollsters over a month, while most of these regions get a handful of polls a year. Read each row as one pollster on one date, and mind the gap between that date and today.

Scotland

36 polls
FieldworkPollsternSNPLABRUKLDCON
4–10 Aug 2026Find Out Now · The National1,0202918171010
27–29 May 2026Norstat · Sunday Times1,002341617910
27–30 Apr 2026Norstat · Sunday Times1,0022919181014
14–21 Apr 2026Survation · Ballot Box Scotland1,008311921810
30 Mar–1 Apr 2026Norstat · Sunday Times1,0063218161011
26–31 Mar 2026Ipsos · STV News1,030371518811

showing the 6 most recent of 36

Wales

8 polls · nothing newer than 5 months
FieldworkPollsternPCRUKGRNCONLABLD
12–19 Mar 2026YouGov · ITV Cymru Wales / Cardiff University1,08229241412125
5–12 Jan 2026YouGov · Barn Cymru1,20529251212136
28 Nov–10 Dec 2025YouGov · Cardiff University2,50019301413158
4–10 Sept 2025YouGov · Barn Cymru1,2202329711189
23–30 Apr 2025YouGov · Barn Cymru1,2482424713209
10 Mar–3 Apr 2025Survation8441825615296

showing the 6 most recent of 8

London

8 polls
FieldworkPollsternLABCONGRNRUKLD
30 Jun–8 Jul 2026Savanta · QMUL1,0383119181610
17–23 Dec 2025Savanta · QMUL1,0063017172113
15–21 Dec 2025Savanta · QMUL1,0063117181913
30 Oct–7 Nov 2025Savanta · Centre for London1,2423220102311
29 Apr–21 May 2025Savanta · QMUL1,0033221131513
4–8 May 2025Find Out Now · Alex Wilson1,1023017151916

showing the 6 most recent of 8

Greater Manchester

2 polls · nothing newer than 7 months
FieldworkPollsternRUKLABGRNLDCON
23–24 Jan 2026Find Out Now1,003362418109
4 Jul 20242024 general electionresult17438916

Northern England and the Midlands

2 polls · nothing newer than 16 months
FieldworkPollsternRUKLABCONLDGRN
11–13 Apr 2025Survation · Friderichs Advisory Partners2,032302722109
4 Jul 20242024 general electionresult18402487

100 most rural constituencies

2 polls · nothing newer than 21 months
FieldworkPollsternCONLABRUKLDGRN
14–21 Nov 2024Survation · Country Land and Business Association1,007342121187
4 Jul 20242024 general election (Survation)result342416196

Rows marked result are election results, not polls — kept because a region with one poll needs something to read it against · sub-national polls never enter the national poll-of-polls · poll list via Wikipedia (CC BY-SA).

Methodology

For each party we take an exponentially-weighted moving average over poll fieldwork midpoints with a 14-day half-life, using each pollster's most recent poll in the trailing 30-day window and requiring at least five polls. Poll list via Wikipedia (CC BY-SA); figures are percentages of Westminster voting intention.