These local elections were billed as the acid test for Boris Johnson.
The first ballot box moment for him since the Partygate scandal threw the prime minister into a leadership crisis.
And now, with the emerging cost of living crisis, this was our first chance to see how tarnished the Tory brand had become, whether headline voting figures roughly matched national polls and what these local elections might tell us about a general election.
On the first point, No 10 insiders were at pains last night to stress to me that these local elections were not, in their view, a referendum on Mr Johnson, while simultaneously keeping a watchful eye on rattled Conservative MPs.
Politics Hub: Lib Dem gains could spook Tory MPs weighing up PM’s future
Results centre: Check the result where you live
And by mid-afternoon, Mr Johnson emerged from this “grisly” night with enough seats saved in the Red Wall territory he took in 2019 to enable him to argue his poor performance to “mid-term” blues.
But there’s no doubt the Tories have emerged very roughed up.
The Conservatives clocked up over 400 losses, north of the 350+ territory (this includes England, Scotland and Wales) as the party suffered heavy defeats at the hands of Labour in London and Scotland and Lib Dems in the Tory heartlands.
Holding red wall ground perhaps enough to hold off open revolt, this is nevertheless very uncomfortable for the PM and his party.
And while the Lib Dems ate into Tory territory in the south and south west – which we’ll come back to – a comparable performance to 2018 for the Tories in the Midlands and in the North, gave a little cushion for this embattled PM.
Mr Johnson sought to portray it as this: the Conservatives had shown it could hold parts of the country where it hasn’t won before he came along (translation, don’t dump me 2019-ers).
And for those MPs in London and the Tory shires, where the PM clearly has lost support, the focus has to be on tackling matters that voters care about – the cost of living crisis and recession coming down the tracks (translation to mutinous London and shire Tories, don’t change leader now, the public won’t forgive you).
But overall, there is little consolation in this for Boris Johnson, although at least he could console himself that a full-blown reactive Tory mutiny hasn’t yet materialised as these results emerged.
“I’ve seen worse quite frankly”, is how one former Cabinet minister put it to me by tea time.
“I think the letters will creep up but I think the whips’ strategy is still to avoid a confidence vote. My view is we need to see less of the PM from now on”.
Another senior Conservative took the view that these results were another ‘nail in the coffin’ for a irredeemable leader, but his slow his a slow demise, which they believe will come through 1,000 cuts.
And for Labour, some rays of hope.
Big gains in London as the Labour party took Tory territory and delight too at the prospect of Labour coming second in Scotland and beating the Tories into third place.
But overall, this not the performance that Sir Keir Starmer would have wished for, as the Lib Dems emerged the clear winners from these elections rather than Labour.
With over 125 seat gains, this was “we are making progress” territory.
As one shadow cabinet minister put it to me: “We’ve got to the place where we’re making progress but we are not in a position to win. That’s the next two years work.”
What Labour wanted to see is whether local election results were tracking national polling.
Hard to measure because of low turnout and only parts of the country going to the polls, it nevertheless is a useful snapshot.
And the bad news for Sir Keir is that Labour’s vote share was smaller than in a national vote share, with the Lib Dems picking up votes.
Progress, but nowhere near enough to catapult Labour near to winning an election.
What these results show instead is the UK heading to a hung parliament if they were replicated in a general election.
Based on election results from 1,700 wards and an analysis of change in vote share since 2018 across 87 local authorities, our Sky News projection would see Mr Johnson lose his overall majority (and its 79 seats currently, so that hurts) but remaining the largest party in a hung parliament on 278 seats ahead of Sir Keir on 271.
Only projections of course, but Mr Johnson’s 48 seats short of a majority will give his party something to think about, particularly since his is now a Conservative Party without the option of a coalition partner (having eviscerated the Lib Dems in 2015 after the coalition and having completely fallen out with the DUP).
MPs in marginals will be looking at their prospects going into the next election and wondering whether the time might be coming to ditch a leader that in their minds is fast becoming a drag anchor on the Tory brand.
But Labour’s failure to become the largest party after four election defeats will give his MPs something to think about too.
Sir Keir is still not really cutting through, and now with his own very particular leadership challenge, a police investigation into whether he too broke COVID regulations.
The only leader with something to smile about then is Sir Ed Davey of the Lib Dems, snaffling up Tory territory from Oxfordshire to Somerset and Woking, and on our projections his party would be on track for 28 seats.
And for Mr Johnson this is perhaps the biggest danger that has emerged today: the shift again of liberal Conservatives away from Mr Johnson’s Brexit Tories and back to the Lib Dems.
And the worry for Mr Johnson isn’t so much about these results today, but what is coming down the tracks between now and the next election, with a recession looming and double-digit inflation.
A horizon that could push even more voters away come 2024.