Last week, the English Football League season was cancelled, with standings decided on a points-per-game basis in League One and League Two ((In one of the “it just is” things that haunt football, Leagues One and Two are the third and fourth tiers of the system.))

In League One, that led to Wycombe Wanderers leaping into the playoffs at the expense of Peterborough, who had accrued the same number of points but played a game more. Peterborough’s Director of Football Barry Fry was outraged: his team had been ‘cheated out of a chance at promotion’.

He would, wouldn’t he?

Part of Fry’s disappointment is mathematical: points-per-game doesn’t take into account what would likely happen over the remaining games. Peterborough, who have the second-best home record in the league ((Ironically, after Wycombe)), had still to play five teams in the bottom half of the table at home. In the interests of simplicity, quality of opposition and venue were ignored.

So what other ways of deciding are there?

One option is to calculate points per game at home and points per game away, and average the two to get a weighted average that reflects the venues teams have played at.

This would change things slightly: in this scenario, Peterborough would hold on to their playoff spot, and Wycombe would replace Portsmouth by 0.002 points per game.

Another option is to use a variation on the PageRank algorithm, mimicking the way Google assigns importance to a web page based on the links to and from it. I won’t go into huge detail, but the idea is:

  • Make a matrix with the number of points each team has gained against each other team in the relevant cell
  • Normalise the resulting matrix, dividing each column by its sum
  • Find the leading eigenvalue of this matrix ((Are you following back there, Barry?))

This assigns each team a number from 0 to 1; the higher the number, the higher-ranked the team.

This results in Rotherham beating Coventry to the top spot (which changes nothing except the trophy cabinets; both teams would be automatically promoted) but with Sunderland replacing Fleetwood in the playoffs.

A quick summary

So far, we’ve looked at four reasonable methods, with the playoff teams in brackets:

  • Point totals as they stand (OXF, POR, FLE, PET)
  • Points per game: (WYC, OXF, POR, FLE)
  • Venue-weighted points per game: (OXF, FLE, PET, WYC)
  • PageRank: (FLE, PET, OXF, SUN)

So what’s the fair thing to do?

There isn’t a way to pick the 3rd, 4th, 5th and 6th teams in the league based on results to date. Whatever the league decided on would cause someone to moan - quite justifiably - that they were hard done-by. ((Even having the rules in place before the season started wouldn’t have changed this; when England won the Cricket World Cup in 2019 on boundary count after a tied Super Over, there were quite reasonable grumbles from fans of their opponents, New Zealand, that that was a ridiculous way to settle a World Cup final.))

If I were in charge, I would note that six teams have a case for a playoff spot, and that two of them (Oxford and Fleetwood) are in the mix for all four methods. I would add a preliminary round to the playoffs, giving Oxford and Fleetwood byes to the semi-final, giving all six of the teams what feels like a fair crack of the whip.

I’m sure there are other methods to rank the teams - I’d be interested to hear of others!

  • I pulled the stats from here.
  • I should also declare an interest in League One: by accident of geography, Oxford United were my childhood team, and I still look out for their results.