clock menu more-arrow no yes mobile
FC Bayern München v Borussia Dortmund - Bundesliga

Racing to the Finish Line: Assessing the Remaining Schedules in the Bundesliga

Using a model of Strength of Schedule to evaluate the final games in the key races across the Bundesliga

Photo by Harry Langer/DeFodi Images via Getty Images

There are just seven matchdays left in the Bundesliga season, and we still have a very close race for the top four and, if you squint, a title race. We even have the potential for plenty of drama at the other end of the table with a close relegation battle going on. With so much still up for grabs, with just seven games left, fans of a team with something left to play for are forced to study the remaining schedules of multiple teams and attempt to mentally model the various ramifications of potential outcomes in an attempt to get a grip on where their team are and what they need to come out on top. With Borussia Dortmund sitting in fourth place, just three points ahead of RB Leipzig, BVB fans are deeply invested in their Reading the Tarot Cards era, and who am I to yuck everyone else’s yum?

A better understanding of each team’s schedules in the season’s final seven games should help people keep trying, though! I have developed a relatively simple model for estimating Strength of Schedule (SOS) in football. SOS is a common metric in American sports. It can be used to measure the difficulty of a team’s past or upcoming schedule, whether as an attempt to evaluate their performance over a certain period or predict outcomes in the future. This Bundesliga season presents a perfect use case for this sort of model. There is still so much up for grabs in the league right now. With so few games left, the difficulty of team schedules will inevitably vary quite considerably, so this is a factor that we have to take into consideration when attempting to predict what is going to happen.

A Brief Explanation of the SOS Model

The SOS model I’ve developed is relatively simple conceptually. SOS estimates team strengths for every team in the league, takes the average value of this rating for all of a team’s opponents (with several other factors used to weight this value and make it more precise), and then transforms this value to make it easier to interpret. The model is comprised of four basic steps:

  1. First, baseline team ratings are calculated: a weighted average of non-penalty expected goal difference per 90 (npxGD/90) and non-penalty goal difference per 90 (npGD/90).
  2. These ratings are then assigned to each opponent a team will face, with home advantage factored in (where the home team rating increases by 25%). The mean value of every team’s opponents’ ratings (OR) and their opponents’ opponents ratings (OOR) is calculated.
  3. OR, which represents a noisy estimate of the quality of the opposition a team is scheduled to face, and OOR, which is used to weight OR to create a more precise estimate of a team’s opposition, are then combined as a weighted average, with OR making up 2⁄3 of the total value and OOR making up 1⁄3 for each team. This is an “unstandardized” version of SOS.
  4. The unstandardized SOS is then transformed onto a standard scale, z-scores, making it easier to interpret a team’s SOS and compare it against other team’s scores in the league. This standardized version of SOS is centered around zero, meaning that the average league SOS equals zero. Values above zero represent schedules harder than the league average, while values below zero represent easier schedules. A simple heuristic for interpreting SOS scores is that a score between +1 and -1 means a team has a relatively regular schedule, while scores greater than +1 mean a team’s schedule is pretty tricky. Less than -1 means it is relatively easy. Finally, if a team’s SOS score is greater than +2 or less than -2, they are in real trouble or have lined up the relegation candidates in a row.

The above steps detail everything you need to read and understand this article (the fourth step will be sufficient if you only take away how to interpret the SOS scores). However, my blog post about the model should cover everything else.

Bundesliga Team Ratings

The first step in building the SOS model is not just the most crucial part; the results are interesting! While this approach to estimating team strengths is relatively simple, it does a reasonably good job of painting a broad picture of team quality in a league. Table 1 below shows the results of the baseline team ratings created for the model.

Bayern Munich and Bayer Leverkusen top the ratings, as expected, though Bayern are way ahead of Leverkusen. This is a function of Bayern’s absurd npxG/90, the best in the big five leagues in Europe (and by a wide margin).

Elsewhere, BVB are fifth, with a rating of 0.54, some way behind Stuttgart (0.96) and RB Leipzig (0.8). BVB’s baseline rating of 0.54 is some way off RB Leipzig with 0.8 and Stuttgart with 0.96. The small silver lining is perhaps that Dortmund are also well ahead of Frankfurt in sixth.

Strength of Remaining Schedules

The baseline team ratings are a good way to set the scene for the SOS results. We will ease into the juicy stuff by first examining the relegation race.

The Relegation Run

Table 2 shows the SOS scores for the Bundesliga’s bottom five teams, ranked from easiest schedules to hardest. I’ve taken some liberties here, including five teams and acting like they are all in the relegation race. The race is probably between two teams, with a small but real possibility of a third joining if things go poorly for them.

Instead of maintaining these lies and letting them corrupt my otherwise pure soul, let me make clear which teams I’ve chucked in here as a misdirect. First, Darmstadt are, I suppose, in the relegation “race” in that they are racing towards relegation at full speed and have left everyone else in their dust. They’re doomed. It doesn’t matter what their schedule looks like. The second team that is a bit of a misfit in this murdered row is Wolfsburg, who would need to drop quite a few points (which they are capable of doing), while multiple teams below them go on a run (which they are not capable of doing).

So, in reality, we’re looking at a race between Mainz and Köln that Bochum could muscle their way in on if they’re not careful. Mainz are facing a fantastic schedule down the stretch, including home games against Darmstadt and Köln and travelling to face Wolfsburg on the season’s final day. Meanwhile, Köln’s run-in could be worse, but it also includes a trip to Munich! Köln host Bochum at the weekend, and a win could drag Bochum back into the race.

The Gold Rush

While the relegation battle has the potential to be a bit spicy, most people are more concerned with the action at the top of the table. Table 3 presents the SOS scores for the Bundesliga’s top five, ranked easiest to hardest.

Usually, seeing that Bayern Munich has the easiest schedule heading into the season’s final games would give everyone a strong, guttural sense of impending doom. However, at this point, it seems like even lining up the Bundesliga’s seven finest patsies won’t be enough to save Bayern. Leverkusen have a challenging run to finish the season, but it would take a monumental collapse for Leverkusen to give up 13 points when there are just 21 points left to win!

As to the other three teams in the top five, where the most jeopardy exists, and of course, where the FTW community are most concerned, there’s a lot left to play for, partly because each side has to play at least one other top-five team before the end of the season. Stuttgart are generally considered a safe bet for the top four, but I would argue that many underestimate the probability of them getting dragged into trouble. Their extremely tough schedule is a big part of this. Stuttgart are seven points clear of Leipzig, but they still have to head to both Dortmund and Leverkusen before the end of the season, in addition to hosting Frankfurt and Bayern. I wouldn’t bet on them finishing fifth, but it’s an undervalued possibility.

Thanks to BVB’s 2-0 win over Bayern on Saturday, I think the favorites to finish fifth are RB Leipzig, though not by much. Leipzig are three points behind Dortmund, but they also have the easier schedule in the final seven games. Neither side’s schedule is particularly notable, sitting on either side of the mean SOS. Dortmund’s schedule includes three challenging games (Stuttgart, Leverkusen, and RB Leipzig). Still, it also includes games against Mainz and Darmstadt to finish the season, so their SOS score will have a high variance. On the other hand, Leipzig hosts BVB but, otherwise, avoids any other top-five teams. The race for the top four will ultimately come down to the head-to-head. All three teams have the opportunity to put a dent in a rival’s run, which will make a big difference. If I had to pick, I’d go with Leipzig, but I think their chance of making the top four probably only trails BVB by a hair.

Finally, we can look at all SOS scores across the Bundesliga, plotted below.

In the context of the wider Bundesliga, seeing the SOS scores for each of the teams we’ve looked at here helps frame things in more meaningful terms. Bayern Munich and Leipzig topped the rankings for the top five teams in the league, but compared with the rest of the league, you can see that the difficulty of their schedules is pretty middle-of-the-road. On the other hand, Stuttgart’s schedule is clearly very tough, and it is only beaten by a Frankfurt side that has to face all but Dortmund from the top five teams, and in Mainz’s case, the broader context only serves to highlight just how great their run-in to finish the season is. Whether they make good use of it, however, is another matter!

Summary

With only seven games left in the Bundesliga season, Dortmund have plenty to play for. BVB fans have no choice but to try to make sense of not just Dortmund’s final seven games but also of Leipzig’s and even Stuttgart’s. Strength of Schedule models can help in these efforts by quantifying the difficulty of each team’s remaining schedule. The results here probably don’t provide much clarity about the way the season will end because the race for the top four is incredibly close, but at least it provides more order to the noise.

Your Thoughts?

Do these SOS scores make you more or less confident that BVB will finish in the top four this season?

MotM Poll: Oh, Well

Borussia Dortmund Fall to Real Madrid in the Champions League Final

The Official Champions League Final Comment Thread