Although the total tally of pro-independence MSPs had increased by three, between them they had managed to deny the SNP an overall majority.
Nevertheless, the outcome exposed some significant weaknesses among the unionist parties.
Denying the SNP an overall majority was, indeed, a collective effort – at least on the part of unionist voters, who on the constituency ballot demonstrated a remarkable willingness to back whichever pro-union party appeared to be best placed locally to defeat the SNP.
In constituencies where the Conservatives started off in second place to the SNP, the party’s vote increased on average by three points, while Labour’s support fell by two points. Meanwhile, where Labour was the principal challenger, the party’s vote increased by a point, while the Conservatives fell back a point.
These movements, however, were too small to deny the SNP any of the seats that they were defending, most of which were safe anyway.
But anti-SNP tactical voting did come into its own in the seats where the SNP were hoping to make the six gains that could take them to the 65 mark irrespective of what happened on the list vote.
In those constituencies being defended by the Conservatives, support for the party increased on average by three points, while Labour’s vote fell by six points. Conversely in the three Labour-held constituencies, Labour’s own tally increased by five points, while that for the Conservatives fell by as much as eight points.
These patterns had a decisive impact on the outcome. They helped the Conservatives to defend successfully both Aberdeenshire West and Eastwood, while Labour were able to hold Dumbarton and Edinburgh Southern.
Because the SNP did not win any list seats in the regions in which these four seats are located, an SNP gain in any one of them would have taken the SNP past the 65 mark. In short, anti-SNP tactical voting by unionist voters denied the SNP an overall majority.
This, of course, was not what voters were being encouraged to do by the parties themselves. Rather, the Conservatives in particular were arguing that the best way of stopping the SNP was to vote for them on the list vote – even though it was clear that, outside the Highlands and the South of Scotland, the SNP were highly unlikely to be win any list seats.
Nevertheless, this argument may have helped the Conservatives maintain their position as the second largest party at Holyrood. Labour were almost neck and neck with the Conservatives on the constituency vote, but were more than five points adrift on the list.
This difference was anticipated by the opinion polls, which on average found that one in seven of those who were proposing to vote Labour on the constituency vote were backing the Conservatives on the list.
In part this pattern reflects the fact that some of Labour’s constituency support comprised tactical support from Conservative supporters who then backed the Conservatives on the list.
However, it does not explain why, on average, in those seats where Labour was starting off in second place, its list vote was as much as six points lower (and the Conservative tally as much as three points higher) than on the constituency ballot. After all the party was doing little more than holding its own on the constituency ballot in these seats in the first place.
It thus looks as though Labour may well have lost ground on the list vote because some of the party’s potential voters were attracted by the more strident opposition to the SNP being articulated by the Conservatives and thus heeded the Conservatives’ call to vote for them on the list.
In truth, Labour’s attempt to attract voters by asking them to leave to one side the issue that most of them seem to have regarded as the most important in the election was always at risk of being a precarious strategy.
However, there were limitations to the Conservative performance. As is the case south of the border, the party is now much more reliant on the support of Leave voters than it was in 2016, when the Holyrood election took place before the EU referendum.
This change was reflected in the geography of the election. The Conservatives’ vote rose on average by four points in those constituencies where the Leave vote was highest in 2016, whereas it fell by three points where Remain were strongest.
Instead of being a party with the potential to appeal widely to unionist voters and thus mount an effective challenge to the SNP, the Scottish Conservatives have become the party of unionists who back Brexit – which, of course, is very much a niche market north of the border.
Meanwhile, the third leg of the unionist camp, the Liberal Democrats, registered their worst Holyrood performance yet, winning barely more than five per cent of the list vote.
The party has become heavily dependent on two isolated pockets of constituency support on the mainland, together with its traditional strongholds in the Northern Isles. It is now no more than a shadow of the party it was before the fateful decision in 2010 to enter into coalition with the Conservatives.
Many have been asking why the SNP were able to win their fourth election in a row. Part of the answer lies in a set of opponents who are divided over Brexit, reluctant to address the constitutional issue, and have been damaged by previous broken promises. But for voters’ willingness to vote tactically, the opposition would have had very little to celebrate at all.
John Curtice is professor of politics, Strathclyde University, and senior research fellow, ScotCen Social Research