Like a tired soap opera or TV series, the script for tonight’s leaders’ debate could have been written by viewers long ago.
In their final head-to-head clash before polling day, Boris Johnson and Jeremy Corbyn sought to hammer home their key campaign messages on Brexit and their domestic agendas, while also redeploying much rehearsed attack lines.
Heading into the debate Mr Johnson had to contend with former Tory prime minister John Major urging voters not to support his old party and a top diplomat quitting saying she “did not trust” his government, but the current occupant of Number 10 showed little concern.
“Get Brexit done” was the message straight out of the blocks, Mr Johnson uttered the phrase more than a dozen times in the opening 20minutes of the debate.
Campaign pledges around extra nurses, policing, free ports were quick to follow in a disciplined performance from the prime minister.
For the Labour leader, who went into the debate still trailing in the polls, the focus was on austerity and his plan to invest in public services.
It was noticeable that Mr Corbyn chose to avoid the B word in his opening sixty second monologue, but when the subject eventually did present itself he managed to keep the ship steady – telling voters that he wanted to remain “neutral” on the issue to “bring the 48 and 52 together”.
Mr Corbyn was methodical, steady and detailed in his responses and managed to sidestep potential banana skins on questions of national security.
Heading into this debate a Tory source said Mr Corbyn needed to “land a knockout blow” to change the result next week, one was not forthcoming but it was a consummate performance from the Labour leader which may well shift a few minds.
In the snap YouGov poll following the debate, which asked voters who they would back, the result was a telling 52-48 to Mr Johnson.