By Chaminda Jayanetti
This election is the most unpredictable in living memory. Part of the difficulty is that different parts of Britain now vote in very different ways for very different reasons. 'Uniform national swing', once psephological gospel, is dead in a ditch.
That means each region must be viewed on its own - but in each case, it's worth bearing in mind that the benchmark to use when judging this election is the 2017 vote share for each party, not how they're polling right now. Labour could have a great campaign, improve its poll ratings - and still lose a slew of seats.
The North East, North West and Yorkshire-Humberside are not a homogenous blob. But across the board, the Tories are targeting Leave-voting ex-industrial heartlands that in many cases have never voted Tory at all. In truth, it's likely that northern core cities are out of play.
There is evidence that Brexit has lost its sheen in the North East more than in Yorkshire. So while Bishop Auckland and Stockton South are do-or-die gains for the Tories, Blyth Valley and North West Durham are harder tasks. If they take those two, they're heading for a solid majority. The midpoint is Darlington, number 47 on their national target seat list. Should the Conservatives win here, Johnson will probably stay in No.10 no matter what happens in London and Scotland.
There is an ethnic factor here. Labour's vote is potentially more secure in ethnically diverse Dewsbury than in the overwhelmingly white Workington, despite the latter having a larger Labour majority.
The Brexit Party is polling better here than elsewhere, although their only plausible seat gain across the country is Hartlepool. As Theresa May discovered to her cost, voters in these seats find it easier to vote for Nigel Farage than for the Tories. The risk of a split Leave vote is much higher here than elsewhere.
Labour will hope its campaign - focused on austerity, inequality and radical reform - will be more persuasive to traditional working class voters, white or otherwise, than the Old Etonian on the other side. Both Labour and the Tories will highlight their spending plans for 'left behind' towns. The question is whether Jeremy Corbyn's unpopularity renders all strategies moot.
Midlands and East Anglia
This is mostly solid Leave territory outside Cambridgeshire. The Midlands brought the Tories more joy in 2017 than Theresa May's much-hyped northern targets. Johnson will target his strategy on these seats. If he wins a majority, he'll get it over the line here.
The Tories' targets combine once-solid Labour heartlands and 2017 Labour gains, town seats and city seats, very white seats and ethnically diverse ones, and a smattering of Remain-voting pockets. That last group includes Warwick and Leamington, a tight marginal that ought to stay Labour based on its 58% Remain vote. The Lib Dems are nowhere here - if the Tories retake this seat, tactical voting has failed, the Remain vote has split and Johnson could be in for a good night.
But most of these seats voted Leave, and by some margin. The Tories are chasing a string of Labour-held marginals with often wafer-thin majorities and very small 2017 Lib Dem and Green votes for Labour to cannibalise. The Conservatives are building their entire campaign on winning over Labour Leave voters in Dudley North, Newcastle-under-Lyme, Peterborough and Derby North. Fifteen seats could fall to the Tories on a five percent swing from Labour - potentially neutralising their losses in London and Scotland before we even look at Wales and the North.
The rise of the Brexit Party could also have unpredictable effects. Take Lincoln. The Ukip slump in 2017 ended up helping Labour retake the seat. Could Farage's party take votes from Labour, handing the seat to the Tories? Or will it eat into the Conservatives' natural vote? Other seats like High Peak and Birmingham Northfield are also in this bracket.
Set against this, Labour's strong south Asian vote will be critical to holding onto marginals in Coventry, Birmingham and Wolverhampton - which helps explain the prominent roles the Tories have given to Sajid Javid and Priti Patel.
The capital is crucial to the outcome of the election - if the Tories do badly here and in Scotland, it may wipe out their gains in the North and Midlands. If they hold on here, they should stay in power.
London could also be the messiest of all England's electoral battlefields. Let's start with the known knowns. With the Brexit Party marginal in London, middle class Leave voters in the city's outskirts will most likely vote Tory, while its large BME population will strongly lean Labour.
Everyone else is up for grabs.
Working class Leavers will decide whether Dagenham turns Tory or stays Labour. If it's the former, the Tories are in for a very good night. Middle class Leavers should hold Uxbridge for Johnson, but won't be enough by themselves to save Chingford for Iain Duncan Smith. The Lib Dems should oust Zac Goldsmith in Richmond, but will need almost perfectly efficient tactical voting to retake Sutton.
And then there is the clutch of Remainy seats that could become messy three-way marginals. These are among the hardest seats to call - Wimbledon, Putney, Finchley, Chipping Barnet, Hendon, Cities of London and Westminster, Chelsea, plus Labour-held Kensington and Battersea.
Three of these seats have Jewish communities alienated from Corbyn's Labour. All of them have large middle class liberal demographics who may lean Lib Dem, but where Labour are the main rivals to the Tories from the 2017 result. Remain voters wanting to stop the Tories could struggle to decide who to back, making tactical voting inefficient and helping the Conservatives hold on with low vote shares. If YouGov's seat-by-seat MRP polling shows which party is best placed to challenge the Tories in each seat, that could have a decisive impact on the outcome.
Traditionally this was a Tory-Lib Dem battleground, but now it's much harder to read. Yes, the Lib Dems have recovered - but where? Are their new voters concentrated in London and its Remainy hinterland? Or are they spread more evenly? If the latter, they could retake old seats in the Leave-voting south west - North Devon, North Cornwall, Wells. If the regional Tory-Lib Dem swing rises above ten percent, a whole slew of seats come into play - the likes of Thornbury and Yate, Yeovil and Taunton Deane. At that point, the Tories are in huge trouble, needing to win swathes of seats in the Midlands and the North.
Is it plausible? Ten percent is a big swing, but one that doesn't require the Lib Dems to get anywhere near their south west vote share from 2010. Their activists know how to campaign on local issues among Leave voters. But if their recent recovery is concentrated among Remain voters, and their outright pro-Remain stance alienates Leavers, they could be left struggling in the south west, just picking up Cheltenham and ultra-marginal St Ives.
The party may benefit from tactical pro-Remain voting, but in Cornish seats such as Camborne and Newquay, Labour came slightly ahead of the Lib Dems in 2017, making a split vote a big risk. Watch out also for East Devon, where the pro-Remain independent Claire Wright could take the seat from the Tories - but could also be undermined by the local Lib Dems' refusal to stand aside.
As for Labour, their first job will be to hold on to Plymouth Sutton, Bristol North West and Stroud from strong Tory challenges. Hefty Remain votes in the latter two seats should help them. If they can recover in the polls - not relative to their deficit against the Tories in 2017 - only then can they start targeting Conservative marginals like Camborne, Filton, and Swindon South.
Keep an eye on Jacob Rees Mogg's seat in North East Somerset. It voted 52-48 for Leave, and is a natural target for highly motivated tactical voting by Remainers. Rees Mogg's 19% majority may not be as safe as it looks.
Not many people are watching the South West. Perhaps they should be.
South East and the Home Counties
Let's start with the easy bit - Essex and Kent look like safe Tory territory.
Labour has a job on to protect Reading East, Portsmouth South and ultra-marginal Canterbury, and will need either a campaign surge or tactical voting to do so. If Corbyn can turn things around, Labour could take the ultra-marginal Leave-voting targets of Southampton Itchen and Hastings. The exodus of young graduate Remainers from London to the Home Counties could win Crawley, Worthing East, Wycombe, Reading West and the two Milton Keynes seats for Labour. Yes, they need to nail their campaign, but if they do so, tactical voters will fall into line. It just goes to show how vulnerable the Tories are to a Labour campaign recovery.
Then there's the Lib Dems. Tellingly, the party's Tory defector Sam Gyimah is quitting his Surrey seat to stand in Kensington - which tells us how the Lib Dems see their chances in Remain-heavy Surrey. The party is having a bad night if it doesn't take Guildford, but Gyimah's London parachute doesn't suggest the Tory implosion and efficient tactical voting needed to take other Surrey seats is on the cards.
Instead the party will focus on Eastleigh, Lewes, St Albans and Winchester. Taking those four seats would be a good night's work for Swinson.
With the exception of its Welsh-speaking, Plaid-voting seats, Wales politically resembles northern England - rural Conservatives, Labour core cities, and Leave-voting ex-industrial towns that have been Labour for decades but could now turn blue.
The Tories have roughly the same targets as 2017, plus Gower and Vale of Clwyd, which they carelessly lost to Labour in the Corbyn surge, and Brecon, which fell to the Lib Dems in this year's by-election.
A two percent swing across Wales from Labour to the Tories may not deliver them a single extra seat. A swing between two and four percent would take Gower, Wrexham and Vale of Clwyd, while five seats fall on a swing four-to-six percent. The Tories could gain votes without gaining seats - but past a tipping point, the seats start dropping like flies.
Labour does have Tory-held targets - but it needs to dramatically improve in the polls first. Labour beat the Welsh Tories by 15 points in 2017 - the most recent Welsh poll this month found the Tories leading Labour by four points.
There has been a lot of hype around Plaid of late, but it doesn't have legs - yet. Its one key target of Anglesey could be a three-way battle with Labour and the Tories. Barring a dramatic shift in fortunes during the campaign, any historic breakthrough will have to wait.
Around a quarter of Scotland's 59 seats were won by fewer than a thousand votes in 2017, making it heavily laden with marginals.
Whether this election becomes a proxy referendum on Brexit or on independence, it ought to favour the SNP - support for independence has risen since 2017, while tactical voting by Remainers could win back numerous Tory-held seats. Scottish Labour is a mess and the Scottish Tories leaderless.
And yet. The SNP suffered badly from the fall in turnout between the 2015 and 2017 elections, and there's no guarantee the party can motivate those voters back to the polls. While the Tories are rudderless, they still have their Brexit USP, and some of the seats they're defending had large Leave votes by Scottish standards. If Labour can get a successful national campaign going, that could also feed through north of the border, where the party could take seven SNP seats with a one percent swing.
Bet on the SNP, sure - just don't bet the house on them.
Chaminda Jayanetti is a freelance journalist. Follow him on Twitter here.
The opinions in politics.co.uk's Comment and Analysis section are those of the author and are no reflection of the views of the website or its owners.