Last season started brilliantly for BVB, sweeping aside most of the league with relative ease in the first half of the season, and entering the winter break with a six point advantage over their closest rivals Bayern. It felt like the title was Dortmund’s to lose. Unfortunately, that is exactly what they did. After playing some of the best football they have played in years, BVB fans were treated to a gradual collapse, including some games thrown away in the dying moments, and a routine thumping from Bayern. Naturally, everyone was scrambling for answers. What the hell just happened?! Just about everything and anyone was blamed. Injuries, referees, the DFB, Joachim Low. They all caused Dortmund’s demise. But what actually caused the collapse? With the dust settled, I’ll try and answer this question.
What went wrong?
First it is important to establish what actually happened at the top of the table. To BVB fans, it looked like Dortmund threw the title away, but to Bayern fans it may look more like their team chasing down their rivals valiantly. These aren’t necessarily the same thing, though they may both be true. If Dortmund’s performance slid off, it would place the blame at the team’s feet, while if their performances were still pretty strong but Bayern’s were stronger, then there’s only so much you can blame the BVB players.
At the halfway point, Dortmund were on 42 points, while Bayern were on 36 points. Through to the end of the season, Bayern amassed 42 points, while Dortmund managed just 34 points. This suggests that Dortmund dominated the Hinrunde, and switched places with Bayern for the Ruckrunde. The part that killed Dortmund is that 2 point difference (though they were behind on goal difference too). But this doesn’t necessarily tell us the whole story. It looks like a combination of Bayern improving and Dortmund deteriorating, but if we delve a little deeper we can see what else went on.
How do the performances compare?
We can use Expected Goals (xG) and Expected Goals Against (xGA) to see whether there was a marked change in the way Dortmund performed in the second half of the season. Figure 1 shows the expected totals for each match through the season, and a loess curve mapping the trend over the course of the season.
There isn’t a great deal of change in BVB’s xG totals from the Hinrunde and Ruckrunde, though it dips a little bit (before rising again). There is, however, a noticeable rise in xGA in the second half of the season. Some of this is driven by the thumping that Bayern gave them, but even without this outlier, the curve would still trend upwards in the Ruckrunde. At it’s peak, the difference between the two lines is pretty small. This also happens to be the point at which Dortmund were dropping points and Bayern were gaining on them. Figure 1 certainly seems to suggest this was due to defensive woes. To further demonstrate this point, the xGDiff (xG – xGA) for the Hinrunde was 13.32, while for the Ruckrunde it was 8.81. This seems to demonstrate the decline in Dortmund’s performance in the second half of the season.
Bayern, on the other hand, grew from strength to strength, as demonstrated by Figure 2. In the Hinrunde, there is a significant gap between their xG and their xGA, but the xGA increases and the trend hovers around the 1 goal mark for most of the duration. However, in the Ruckrunde, the xGA trend dips and xG rises to a whopping 3+ goals a game (this trend began in the first half of the season, but becomes most noticeable come the second half).
Ultimately, it seems to be the case that Dortmund’s performances suffered a small decline, while Bayern improved. These differences alone don’t explain the contrast between the Hinrunde and the Ruckrunde, but they do demonstrate this wasn’t all down to BVB’s performances. Bayern appear to have stubbornly snatched their title back from their competitors.
Were Dortmund just unlucky?
It’s deeply unsatisfying to look at what happened last season and suggest that Dortmund might have been victims of bad luck, but the reality is that chance plays a big part in football. Did Dortmund get lucky in the first half of the season? Or unlucky in the second half of the season? In the first half of the season, Dortmund won games that, according to their xG, they should have either drawn or lost.
Using the xG of each shot in each game, I simulated the probability of all possible outcomes in each game for the season, and computed the overall probability of victory for each Bayern and Dortmund game. Following this, I computed the simulated points totals for each team over the course of the season. It is important to note that under- or over-performing xG doesn’t necessarily indicate luck. Losing a game despite having a better xG might be unlucky, but it isn’t the only possibility. It is also important to note that Lucien Favre’s teams tend to outperform their xG totals consistently, so it is likely that this method underestimates Dortmund’s probability of victory.
According to Bayern’s probability of victory, they dropped 8 points in games they should have won in the first half of the season. The simulation suggests they should have claimed 44 points, but actually claimed 36. In the second half of the season they looked better, and should have picked up 48 points, but dropped another 6 points. It is possible that Bayern were unlucky in the first half of the season, but it’s also possible that Neuer’s poor performances contributed to some of that under-performance.
In Dortmund’s case, they over-performed in the first half of the season, claiming 42 points, whereas probability suggests it should have been 36. In the second half of the season they tallied up 34 points, the exact amount probability suggests. According to probability, BVB’s performance dipped marginally in the second half of the season, and their results regressed to the mean, while Bayern improved. Figure 3 compares the cumulative simulated and actual points for both teams over the course of the season.
This shows the great run Bayern had in the second half of the season. Figure 3 also shines further light on BVB’s demise in 2019. Dortmund’s simulated points stayed very close to Bayern’s through the first half of the season, but it started to slip away towards the end. There’s also a clear slide in terms of actual points, while Bayern continued to surge right to the end of the season.
Why did Dortmund struggle in the Ruckrunde?
There are a number of possible causes for Dortmund’s demise. I will focus on three in particular: injuries and suspensions, fatigue, and Paco’s “struggles”. A fourth possible explanation is that teams changed the way they played Dortmund in the second half of the season. This might go some way to explaining the lack of overperformance in BVB’s xG totals, however, data limitations make testing this difficult.
Injuries & Suspensions
Injuries seemed to pile up in the second half of the season, and the problem was compounded by suspensions to key players. The injury list wasn’t necessarily any worse than any other team, but the timing of the injuries was a particular problem. Dortmund seemed to lose key players, and many of the absences occurred at the same time. Did the injuries and suspensions effect performances or results?
Using data on absences, taken from the transfermarkt website, I compiled a list of players missing from games through the season due to suspension, injuries, personal issues etc. and tested the effect that this had on the team performance and results. I reflected the importance of losing certain players by ranking players in terms of their value to the team. The squad were individually ranked as key players, starters, first team, and squad players. The key players, for example, were made up of Reus, Burki, Akanji, and Witsel. As good as any backup might be, they simply were not able to replace the quality these guys bring. I assigned points values to each group by ranking them 1 - 4 (4 points for key players). Having done this, I summed the total points score of absences for each game this season. The value produced was therefore intended to reflect the idea that the number of absences hurts the team’s chances of victory.
Regression analysis of the relationship between absences and performances/results produced negative coefficients, however it was not significant. Therefore, we cannot conclude that injuries and suspensions caused any decline in Dortmund’s performances. Nonetheless, Figure 4 demonstrates that injuries and suspensions increased over the course of the season.
In total, the Hinrunde produced an absence score of 316, while in the Ruckrunde it was 520. Using a statistical tool called paired t-tests, it is possible to test for meaningful differences between the two halves of the season. The t-test results show that the team suffered more from absences (primarily injuries) in the second half of the season than the first, and that this difference was statistically significant.
Ultimately, it is probably reasonable to conclude that absences had an impact, but that impact may have been relatively minimal. It certainly didn’t help, but it probably wasn’t the biggest part of the problem.
Fatigue could be either physical or mental. Physically tired players are likely to run less, make more mistakes, and suffer more injuries. Mentally tired players may be able to maintain the same physical output, but are likely to perform poorly and make more mistakes. It is difficult to distinguish the two in any meaningful way, but any evidence of fatigue would be telling.
Using paired t-tests, shows that there is no meaningful difference in the average distance covered per match between the two samples. Even when looking at the distance covered by individual players, like Alex Witsel (who covered the most ground over the season), significance is not achieved. However, there was a gradual decline in the distance covered by the team (and Witsel) over the course of the season, as shown by Figure 5.
There is a decline from an average of a little over 120km to close to 115km. However, there is such great variance from game to game, statistical significance is hard to achieve. Part of the problem is that the relationship between distance and performance is not entirely linear. This became most clear when looking at the distance covered by Witsel. The games in which he ran furthest were competitive and close, however more running did not necessarily lead to wins. However, when Dortmund were dominating games, he conserved energy by running less. It is also possible that Sancho and Reus run more in games that are open and in which they have plenty of opportunity to attack the game. These differences mean that the aggregated team data is difficult to conclude anything from, but a decline over the season can be used as supplemental evidence.
While fatigue doesn’t appear to have a simple linear effect on distance covered, the number of errors should be more clearly linked to the effects of fatigue. It also seemed as though Dortmund were committing many more errors towards the end of the season, especially in the dying stages of games. The number of errors leading to shots in the Ruckrunde proved to be statistically different to the Hinrunde, and this is very clearly demonstrated in Figure 6.
On top of this, running regressions using points scored and xGA as dependent variables, with errors as the key independent variable, demonstrates a statistically significant relationship. Control variables for the difficulty of the opponent (a reverse ranking of the final league table, where Bayern are given a score of 18, and Nuernberg 1) and a binary variable for home advantage (1 = Home, 0 = Away) are also included. Table 1 shows the results from the analysis.
Each error leading to a shot causes an increase of about 0.5 in xGA, and incredibly, errors cause more than a 0.5 unit decrease in points. That is a huge effect for a variable with a maximum of 3 and minimum of 0.
These findings suggest that errors were an important factor in Dortmund’s decline in the second half of the season. It is also possible that Dortmund’s young, inexperienced defense started to feel the pressure, and this caused them to make mistakes. However, the increase in the number of injuries suggests fatigue played a part. Fatigue leads to more injuries, and tests show that the two have a statistically significant relationship. This and the decrease in distance covered lends support to the theory that fatigue took a toll.
Paco Alcacer’s started the season scoring at an absolutely incredible rate, and much of that was coming from the bench. He scored 12 goals in 12 games, but those 12 games totaled only 502 minutes, a rate of a goal every 42 minutes. Unfortunately, that rate decreased in the second half of the season. He scored 6 goals in the Ruckrunde, and played 702 minutes over the second half of the season. He was still scoring at a solid rate of a goal every 117 minutes, however, there was a noticeable decline from the first half of the season.
It would be incredibly unfair to blame Paco for not being able to maintain the crazy efficiency he showed in the Hinrunde. But it’s fair to ask whether his performances in the first half were masking the reality that Dortmund were not good enough to win the title. Figure 7 shows how his performances changed over the course of the season.
We see a clear difference in the effect Paco had over the course of the season. He is scoring less, shooting less, and his xG declines. There is a statistically significant difference between his goals per minute in the Hinrunde and the Ruckrunde. His xG stayed relatively constant throughout the season, but he outperformed in terms of goals scored for the majority of the season. However, the over-performance was much less extreme in the second half of the season. The second half of the season sees a big spike in the number of shots he was taking, which meant that his conversion rate was a lot lower. However, it is important to note that his performances were still very good.
Given that Paco was the team’s top goalscorer, it probably doesn’t require close study to prove that his performances mattered. Given the slight decline in Dortmund’s xG in the second half of the season, and the statistically significant change in Paco’s performances in the second half of the season, it is reasonable to conclude that this negatively effected the team. Explaining the change is a little tougher, as there could be a number of causes. But given how he has performed for previous clubs, and in the second half of the season, it is most likely that his performances in the first half of the season are the outlier. The rate that he was scoring at was unsustainable, and the decline was just a regression to the mean.
He’s still a great asset to this team, and if he can stay fit and continue to contribute at his typical rate, that is a real positive for Dortmund. It would be totally unreasonable to blame him for what happened, but his performances in the Hinrunde probably masked the reality that Dortmund were not going to be able to maintain their incredible form.
There are obviously a number of reasons Dortmund collapsed and Bayern claimed the title, but the analysis in this article hopefully demonstrates two key conclusions. First, Dortmund didn’t just throw away the title. They slipped in the second half of the season, when Bayern were hitting their stride. They had just as much of a hand in what happened as Dortmund. It is unfair to both teams to place the blame solely on Dortmund.
Second, the analysis seems to confirm that defensive errors were the biggest driver in the team’s slide. This is almost certainly due to defensive inexperience showing, but I think there is plenty of evidence that this was also a product of fatigue. The team ran less and made more mistakes, and the team experienced a growing problem with injuries. The biggest problem was that BVB’s young players wore themselves out in the first half of the season, and simply didn’t have the depth or the experience to hold out until the end. Injuries probably didn’t help the situation, but there isn’t a lot of evidence that injuries were more than a supplemental problem for Dortmund.
There are additional factors that appear to have played some part. It was too much to expect Paco Alcacer to maintain his efficiency for the whole season, and his return to earth may have impacted the team, but at best the effect was minimal. Finally, it is also possible that Dortmund’s luck ran out in the second half of the season, though I don’t think it is fair to say they were simply top of the table due to chance. They were playing great football and were just incredibly efficient, but some of the moments that were going in Dortmund’s favor in the first half of the season seemed to go against them in the second half of the season.
Ultimately, there is always going to be a lot of competing explanations for a situation like Dortmund’s end of season decline. But the findings in this article lead me to conclude that fatigue and inexperience were the biggest drivers in the change in fortunes. The good news is that these problems can be fixed. The club have worked hard to add quality depth to the side, offering fresh legs and some really vital defensive experience, and the younger players in the team gained vital experience from last season’s title push. It remains to be seen if this will be sufficient in the upcoming season.