Many years from now, students of politics might be forgiven for seeing the result of the Oldham West and Royton by-election and finding it totally unremarkable. The opposition party increased (in percentage terms) its majority in a safe seat, the governing party dropped back further and the others were little changed. Indeed John Curtice, speaking on the BBC, described the result as “about par”. On paper, it doesn’t look like a surprising outcome.

But a surprise it was, and not for the first time in 2015. In May, few anticipated the outcome of the general election because polling was questioned less than it might have been. The scale of Jeremy Corbyn’s victory in the Labour leadership election surprised many because YouGov’s polling attracted considerable skepticism, only to be vindicated by the result.

But the incredibly low expectations for Labour in Oldham can’t be blamed on polls - none were published. Instead, we were all at the mercy of those at the scene. And while there have inevitably been suggestions of expectation management from Labour (and bravado from Ukip), that doesn’t really fit either. I, like others, heard privately from Labour people genuinely worried that they were in a lot of trouble.

Labour’s decisive victory appears to be consistent with the party doing about as well as it did at this stage under Ed Miliband. For that genuinely to be the case, we’d all have to have completely misjudged the electorate, the polls would have to be completely wrong in the “wrong” direction, the string of recent local by-election results would have to have been unrepresentative and the focus group research would have to be misleading. Or alternatively, we might simply have misjudged this by-election.

My money would be on the latter. Making inferences about results from canvas returns is harder than ever in an era of fragmentation and low turnout – are those that aren’t voting for your party voting for your main opponent, or someone else, or simply staying home?

Nor is it straightforward to understand the pattern of which voters went where based on a single set of swings without any polling. But there is a clue in the increases and decreases in vote share. The Conservatives were down 10 points, Labour was up 7 and Ukip up 3, with about 1-in-3 general election voters not voting. If the fall in turnout had been uniform in terms of general election votes, and large numbers of voters then switched parties at the by-election, either Conservative voters would have been switching directly to Labour, or switching to Ukip while existing Ukippers switched to Labour. Though the former could represent tactical voting against Ukip, neither possibility seems particularly likely. Instead, my sense is that Labour simply got its vote out far better. In actual votes, Labour was down 6,400 on May, Ukip down 2,400 and the Tories down 5,600.

A clue for this lies in the postal vote, which in Oldham is solidly Labour, and where turnout held up at an old-fashioned 70%. Ukip may have attracted the headlines for their controversial comments about postal voting, but it does seem to have boosted Labour beyond even Labour’s expectations. A Ukip source suggested at the weekend that postal returns were “very low”, but a Labour source, a few days later, told me it was at more normal levels. The actual postal vote of 7,115 probably reflects a strong Labour vote and seems to have added at about 5 or 6 points onto the overall turnout compared with expectations.

What we can infer from this result about Labour’s wider electoral prospects is less clear. Jim McMahon has been widely praised, and it was a conscious decision by Labour to put their candidate front and centre, while their leader appeared almost exclusively on Ukip literature. Indeed the personal-versus-party vote is a theme likely to be revisited against the backdrop of next year's mayoral elections.

What we do know is that Labour is still good at getting its vote out in very safe seats.