The Lib Dems have been crushed. Jo Swinson lost her seat; none of the defectors from the Labour and Conservative parties managed to either hold or take the seats they were contesting; the Liberal Democrats managed to overall net lose seats in an election where that seemed almost impossible going in.

What follows is a forensic examination of where I believe the Lib Dem 2019 general election campaign went wrong. I write this not to rub salt in anyone’s wounds, but to start a serious discussion about how liberal campaigns can stop losing every time. There is a Lib Dem tendency to want to find a silver lining in even the greyest cloud – now is not the time for that. We need to understand why losing has become the norm and figure out how to stop it.

Yes, the Lib Dems got squeezed as they always get squeezed. Yes, the media didn’t give them much of a fair shake, as is almost always the case in a general election. But the failure here cannot be so easily written off. The thing about the Lib Dems’ campaign is that when you factor in every key variable – poll position at the start of the campaign, weakness of the leaders of both main parties, what the election was about – the Lib Dems campaign is very possibly the worst election campaign in British electoral history. I don’t mean that hyperbolically either, to be clear, but literally. Worse even than Labour’s 2019 general election campaign, which is mostly just about Corbyn as leader.

Let’s start with things about the campaign the badness of which has been overplayed in the media. It has become a generally accepted truth that the revoke Article 50 policy has been a disaster for the party; furthermore, that adopting this policy is the chief reason the Lib Dems did so badly. The revoke Article 50 policy is a gigantic red herring; the very same political pundits who have gone on and on about what a bad decision it was for the Lib Dems to have chosen to go for revoke would all, to a pundit, be saying what a disaster it was for the Lib Dems not to have gone revoke had they stuck with a second referendum policy. I can imagine the line: the Lib Dems made themselves indistinguishable from Labour by not going further with their Brexit policy. If only they’d gone for full on revoke, this election would have been so different for the poor, ever-cautious Lib Dems.

No, the problem with the revoke policy is that it seems to have never occurred to Lib Dem HQ that they were going to get a lot of push back on it, from both the media and the two main parties. That they would be called upon to explain it in often provocative terms. The Lib Dems also never seemed to understand what the whole point of the revoke policy was and what was actually good about it – “getting Brexit done”. It should have been about demonstrating that the Lib Dems revoke policy was the only way to end Brexit quickly. In order to have done this effectively, they would have had to attack Boris’ deal, which they pathologically avoided (we’ll come this in a moment, don’t fret). Worse, their hearts never seemed to be in the policy; whenever they were attacked on it, the Lib Dems seemed to instantly retreat from it, saying that it would only happen if they won a majority and that in all other cases they were still the People’s Vote people. There really was no point in going for revoke as a policy if you weren’t going to defend the position in all circumstances.

A much worse aspect of the Lib Dems’ campaign that hasn’t been touched on by almost anyone is just how achingly, unbelievably awful the slogan for it was and how large this features in the defeat. Build a Better Future. The fact that the slogan is asinine, vague, superficial and sounds like something any American corporation could adopt is amazingly enough only the third worst thing about it. The absolute worst thing about the slogan is that it told the exact opposite story to what the Lib Dems should have been communicating: that this election is all about immediacy. The 2019 general election needed to be about the present – about RIGHT NOW – not the future. You need to vote Lib Dem in this election because it is your last chance to stop Brexit and to stop the protracted mess of it the Tories will continue to make. You need to vote Lib Dem right now to help create a party where One Nation Tories and moderate Labourites can feel at home, since the two main parties have abandoned these people.

Related to the last point there, the second worst thing about the slogan is that it is so painfully Lib Demy. It thus served to remind those who might have been considering voting for the party of all of the reasons they have never liked the Liberal Democrats. Which brings me neatly onto my next point: how the Lib Dems retreated to a weird, core strategy for no discernible reason. One of the biggest things the Lib Dems had going for them coming into the campaign was the fact that several MPs from both Labour and the Conservative parties had defected and joined the Liberal Democrats. This gave the party a perfect reason to declare itself a sort of Lib Dems 2.0. The party was no longer what it once was – instead, it had become the meeting ground for centrists and liberals sick of the moves to the extremes both of the main parties had made. Before you say, “Well, that wouldn’t have worked”, just look at how successful Boris Johnson was at portraying his premiership as something brand spanking new throughout the election campaign, as if he wasn’t leader of a party that had been in government for almost a decade.

Yet the defector advantage for the Lib Dems was barely talked about and in fact, felt like it was minimised by the party to an almost neurotic degree. People go on about the mistake that was Jo Swinson running a presidential style thing. Yes, that was bad, one because British people really don’t like presidential style campaigns (something the Tories learned from last time, running a much more multi-personality contest this time, using Boris only as much as strictly called for), but secondly because it shaved off this massive advantage. Instead of Jo Swinson on the side of a bus, it should have been Jo flanked by Chuka, Sam Gyimah and Luciana Berger. The defectors should have been front and centre from start to finish. They should have had Luciana Berger talk about the Corbyn anti-semitism stuff, not Jo Swinson. Have Sam Gyimah and Philip Lee on as much media as you can get them on, talking about why they left the Tories and why those who voted Tory in the past should vote Lib Dem this time. It was as if this was discussed and then discarded as being “not the Lib Dem way”.

The Lib Dems clearly had no strategy about where they were standing aside in the name of Remain, and what the overall message they were trying to send was on this very important front. Examples of where this went horribly wrong: standing aside for Dominic Grieve but not David Gauke. Why? There seemed to be no reason, which made this key area of the Lib Dem campaign seem totally random. Then we have the Canterbury disaster, which I don’t need to elaborate on. Again, put aside which of these MPs kept their seat or not, I’m simply talking about the effect this confusion had on the Lib Dems’ campaign and the electorate’s image of the party. I thought right from the start of the campaign that the best thing would have been to stand aside for Remainer Labour MPs with nothing in return except the goodwill the party would have got from Remain voters for doing so. I would have stood aside for Jess Phillips – no token move, as Birmingham Yardley was Lib Dem until 2015 – and several other key Labour Remainer MPs. To make up for this, I would have gone in hard on Islington North, not because the Lib Dems would have won, but to send a message. We are anti-Corbyn and won’t put him in Number 10, but we stand tall with Labour Remainers. We hope to work with them in the new parliament, particularly when we have a hung parliament and Jeremy Corbyn is no longer Labour leader. Anti-Corbyn, not anti-Labour. It was about presenting the Lib Dems as a new, centrist, pro-European force that could win an election in the near future, not as keepers of the Lib Demiest flame.

Finally, the biggest fault of the campaign was the avoidance of critiquing Boris Johnson’s Brexit “deal”. This was the thing that really killed the campaign, not the revoke policy; if I could go back in time and change only one thing about the campaign, it would be this. The Tories wanted to say “get Brexit done” as much as they could with that phrase being questioned as little as possible by anyone. They knew Labour wouldn’t talk about it much since they were desperate to avoid mentioning Brexit, wanting to move the campaign onto other issues. This had to come from the Lib Dems. The Liberal Democrats had to say why Boris Johnson’s Withdrawal Agreement will not ‘get Brexit done’ but will instead cause us to either leave the transition at the end of 2020 with no deal – so no deal comes back on the table – or Brexit goes on and on, into 2021 and beyond. This is where the revoke policy would have been given context and could have come into its own. Since the Lib Dems had to attack the Withdrawal Agreement as their whole intellectual case rested on doing so, this should not have been a problem. Yet they avoided doing so in a manner that can only be described as insane. They quite literally let Boris Johnson get away with one.

The refusal to make critiquing Johnson’s deal the focal point of the campaign had massive negative knock on effects. It made the revoke policy look silly and extreme, which became the major talking point; it made Labour’s policy, which was mindbendingly inane, then seem completely reasonable by comparison, leaking huge numbers of Remain votes to Corbyn’s party; it made the Lib Dems seem pointless in an election which should have been tailor made for them.

To summarise: the ideal Lib Dem 2019 general election campaign should have been centred on an easy to understand critique of the Tory Brexit deal, contrasting it with the Lib Dems ability to actually ‘get Brexit done’; focused as well on Labour and Tory defectors and how much this has changed the Lib Dems into something more appealing to Lab/Tory voters; that this was the electorate’s one chance, right now, to vote for this new centrist party and also the very last chance to stop Brexit. Instead, the Lib Dems ran what was almost the perfect opposite of this as a campaign and have been devastated as a result.

The worst of it is, this really was the last chance. Had Luciana Berger managed to take Finchley and Golders Green, there would have been some hope. Now, I can’t see any for the Lib Dems. This really could have been the party’s one last chance, a chance that has been blown completely.