Just as British politics gets interesting, as Labour register a series of poll leads for the first time under Keir Starmer's leadership and Boris Johnson's position becomes shakier than ever, we have a couple of by-elections. First in Old Bexley and Sidcup on 2 December, to be followed on 16 December by North Shropshire.
Tories on a hiding to nothing in core seats
Normally, neither would be regarded as remotely competitive. Both are very safe Conservative seats. Neither constituency has ever elected another party, or even come close. Yet there is growing speculation on Betfair markets that an upset is plausible. Labour have been backed down to a low of 7.06/1 for the former; the Lib Dems to just 3.052/1 for the latter.
Before getting into the specifics, it is worth considering why bettors seem so open to the idea of an upset. Irrespective of the national picture and narrative - which surely is part of the explanation - 2021 has demonstrated just how unpredictable these mid-term contests can be.
2021 by-elections proving highly unpredictable
Four by-elections this year produced four different winners. First, the Conservatives won arguably the best result in their history by trouncing Labour in Hartlepool. That wasn't in itself a betting upset, but the 23% margin and 16% swing were. One week later, the SNP predictably held Airdrie and Shotts.
Next came an upset for the ages, which might offer a pointer to these forthcoming races. The Lib Dems took Chesham and Amersham from the Tories on a remarkable 25% swing. They were big outsiders in the betting for weeks and even when stories started emerging of a serious challenge, it was widely dismissed as propaganda from the underdog party.
Finally, Labour defied the betting in Batley and Spen. Whilst a relief for Starmer, their result wasn't so impressive given they already held the seat. The real surprise was far-left flamethrower George Galloway's 22% vote share. Much of it came from voters who had previously backed right-wing parties, whom most of us wrongly assumed were locked in for the Tories.
Airdrie and Shotts was the only one of those four results that wasn't well out of line with national trends, perhaps due to party support being more predictable in Scotland right now. The others all had particular local dynamics, demonstrating how those can make all the difference.
Labour unlikely to challenge in Kent
Which brings us to what appear, on paper, as two straightforward Tory defences. The Old Bexley and Sidcup race is due to the death of James Brokenshire MP. The 53 year-old was uncontroversial and apparently liked across the House. He won the 2019 election by a 41% margin, with an 18,952 majority.
The constituency is a wealthy suburb in Kent, on the edges of Greater London. It was previously represented by a Tory Prime Minister, Edward Heath, and the party's share only ever dipped below 50% during their wilderness years, between 1997 and 2005.
Both seats were strongly pro-Leave
Don't fall into the trap of thinking this is another Chesham and Amersham (another wealthy suburb in the London commuter belt). That was a Remain constituency, whereas this one voted to Leave the EU by 62-38%. Plus Labour are the main opposition, rather than the Lib Dems, making tactical or protest transfers far less likely.
I can't see any way the Tories lose this seat. However while the margins and history are similar, that can't be said of North Shropshire, due to the very different context.
Paterson corruption makes Tories vulnerable
This was the seat of disgraced MP Owen Paterson, whose corruption scandal has derailed the Tory party and perhaps Johnson's leadership over the past fortnight. Thanks to a series of damaging, unenforced errors from the Tories, the story remains prominent, providing opposition parties a vast bank of material to throw at this fight.
Again, the numbers are extremely one-sided. Paterson won by 39% in 2019 and only scored below 50% between 1997 and 2005. After 22 years, it is fare to assume he enjoyed something of a personal vote, so perhaps the 'real' partisan lean is slightly lower.
When Paterson resigned, there was much talk of finding a unity candidate, but it hasn't materialised. Labour, Greens and Reform UK are all fielding candidates, making it much harder for the Lib Dems to monopolise anti-Tory sentiment or anger at the corruption scandal. Nevertheless, money continues to come for them.
Can Lib Dems unite the anti-Tory vote again?
I do think it is possible that the Labour and Green shares totally collapse and transfer to the Lib Dems. The first two will likely run skeleton campaigns. The betting signals and talk on social media make it obvious whom the main opposition are here.
To win, they'd need to reach at least 45%. At the last two elections, the combined tallies of those three parties amounted to 35.3 and 39.5%. However the narrative behind both elections involved both Brexit (this was a 60-40 Leave seat) and Jeremy Corbyn - neither of which are relevant here.
This will be all about Paterson and Tory corruption. Not a day goes by without another story involving corrupt Covid contracts. Johnson is mishandling the issue on an epic scale, and his approvals are sinking to toxic levels.
Note the date, too. Nine days before Christmas, turnout could be very low and critically, uneven. Anti-Tory sentiment should be stronger than ever. The Tory candidate is a barrister from Birmingham, who isn't campaigning yet, admitting he needs to 'learn about the constituency'. The Lib Dems have already picked Helen Morgan, who ran there in 2019, and is attacking local health service closures.
Whilst a big ask for the Lib Dems, this is the type of fight for which they are famous. Where they benefit from not being a threat nationally, and capitalise on mid-term or local discontent. In Chesham and Amersham they rose from 26% to 57%, despite no national signals to that effect. With a month to go, I reckon its game on. The Tories rightly start favourites but this is no certainty.
Follow Paul on Twitter and check out his website, Political Gambler.