A similar ride took Werder Bremen, that after replacing its trainer Robin Dutt by Victor Skripnik underwent a transformation from a sure relegation team to a team that nearly qualified to the Europa League. They actually played Dortmund on the last day and had still some chance to play in Europe next season, but lost it.
The season will also be remember for its close relegation battle, the closest since years. On the last match day, no team was relegated for sure and even the complete outsider SC Paderborn was only a victory away from staying in the league.
How does all this look in numbers? Let's start with the preseason probabilities of the teams. (Those numbers are according to the new version of the algorithm which didn't exist when the season started. Hence this is back calculated and not factual preseason)
The table shows the probability for each team to end on each rank. If a cell is empty, the team never finished on the rank in any of the 50,000 simulated season that we used to generate this. While the chance to end on that rank is not theoretically really zero, for practical reasons it is. The black squares indicate the rank the team actually did finish the season.
From the start, Bayern Munich was set to win the league. They are so much better than the other teams, that they even never finished below rank 11 in any of the 50,000 tries in the simulation.
More interesting is the rank of Borussia Dortmund. They ended up rank 7. Preseason we gave this only a 2.7% chance to happen. But this was only the second most surprising thing to happen: FC Augsburg to end up on rank 5 had only a 1.5% chance according to Goalimpact. Actually, they were expected more to be engaged in a battle against relegation than in a battle for Europe.
The bad performance of HSV was the next biggest surprise. Preseason, we had only a 3.3% chance that it would be that bad. Despite changing their trainer so often that you could on this HSV season's data alone conduct a study that changing has little impact, they ended on rank 16 and will fight in play-offs against relegation just like last season.
The opposite evidence was provided by Werder Bremen. After the change to Victor Skripnik Werder rose from acute relegation risk (as predicted preseason) to a final rank 10. This was the fourth most surprising outcome given the preseason estimates. But given that the first half of the season was to large parts really really bad, just how surprising was the rescue by Skripnik? The following table shows the predicted outcome half way through the season.
Given the performance in the first half, ending up on rank 10 had only a probability of 2.4%. This Bremen miracle wasn't a small one, albeit still not in the dimensions of Augsburg's qualification to Europa League. Borussia Dortmund's race to Europe wasn't that unexpected. Actually, despite being on the bottom of the table after half the season, rank seven and eight were the most probable ones for Dortmund to end on. Apart from Bremen's winning streak and Hanover falling apart, not really many surprising things happened in the second half of the season. Nearly all teams ended close to the likely ranks.
Let's move away from ranks and look at the predicted points.
Goalimpact explained the actial points this Bundesliga season with an R² of 60%. Deviations are randomly distributed above and below. The overall calibration seems good indicated by a regression slope close to 1. After half of the games were played, things got more settled. At that time, the final results were explained already by 82%.
But this includes actual results from the first half of the season and hence part of the correlation stems from there. How good was the second half stand-alone explained?
The R² for the second half was 46%. Well beyond assuming the same number of points like in the first half which leads to a R² of only 27%. The dot at (31; 31) is Dortmund. They did earn exactly as many points in the second half as you would expect given their strong players. Hence the qualification to Europe is hardly a surprise. The extraordinary few points in the first half of the season were the real surprise. And there they were very unlucky.
If there is a team that seems to constantly outperform Goalimpact's predictions, it is the FC Augsburg. As shown above, them entering the Europa League was the most unexpected event in this Bundesliga season. However, all over-performance was in the first half of the season. The 22 points they earned in the 2nd half were close to the low expectations of 19.7. In the first half of the season they were expected to earn only 18.5 points, but earned 27. So we feel still undecided. Is Augsburg really that good in forming a team stronger than its parts, or were they as lucky in the first half of the season as Dortmund was unlucky? Maybe a bit of both.
Thank you for bearing us so long, only one more chart. If we look at the expected distribution per rank that were predicted pre-season, we have nearly no surprises whatsoever.
Predicting how many points one would need to stay in the league, turn's out to be very easy even preseason. We predicted rank 16 to have 34.5 points and it turned out to be 35. We predicted rank one to finish with 74.6 points and Bayern earned 79.
This is important when considering if in a particular game a draw might be sufficient or if a team should play for a win. If the point distribution is so predictable, this might matter even early in the season.