★ Moneyball Original · Opinion
Bayern Munich 2-2 Borussia Dortmund: can Dortmund challenge for the Bundesliga again, fourteen years after Klopp?
By Moneyball Editorial · published · updated

Bayern Munich 2-2 Borussia Dortmund (Bundesliga, 31 October 2026, Allianz Arena). Bayern struck first, and the Klassiker ended level: Bayern 1st on 21 points, Dortmund 2nd on 21 (level). A. Danks's Bayern against N. Kovač's Dortmund. A draw at the Allianz Arena is never a bad result for Dortmund. The real question is bigger: after fourteen years, is this a team that can challenge for the title again?
Fourteen years since Klopp
Borussia Dortmund's last Bundesliga title came in 2011/12, the second in a row under Jürgen Klopp. That season they won the league and the cup together, and beat Bayern 5-2 in the DFB-Pokal final in Berlin. It was the high point of a side built on pressing, speed and young players bought before the market knew their price. Moneyball began in baseball, with Billy Beane's Oakland Athletics finding value in numbers the market ignored; in football the same idea now runs clubs like Brentford, Brighton and Como. Klopp's Dortmund did it before the word reached football.
Since then the Bundesliga has mostly been Bayern's. Munich won eleven titles in a row, and when the run finally ended it was Bayer Leverkusen, not Dortmund, who ended it. Dortmund came closest in 2022/23: top of the table going into the last day, they drew 2-2 at home to Mainz and watched the title go to Munich. Every season since has asked the same question, and a draw in Munich asks it again.
Moneyball's way to answer it is not to trust the headline. A result at the Allianz Arena tells us how one afternoon went. Whether Dortmund can last nine months is a question about the chances they create and allow, week in, week out, and about how many points those chances are worth by May. That is what the rest of this piece measures, with ten methods and the Moneyball Stats Centre.
The match in numbers
- 38′ Konrad Laimer (Bayern), set up by Michael Olise · 1–0
- 60′ Serhou Guirassy (Dortmund), set up by Carney Chukwuemeka · 1–1
- 66′ Dayot Upamecano (Bayern), set up by Harry Kane · 2–1
- 89′ Fábio Silva (Dortmund), set up by Konstantinos Karetsas · 2–2
| Bayern | Dortmund | |
|---|---|---|
| Goals | 2 | 2 |
| Expected goals (xG) | 0.75 | 3.33 |
| Possession | 56% | 44% |
| Shots | 23 | 12 |
| Shots on target | 5 | 6 |
| Big chances | 6 | 0 |
| Passes | 603 | 483 |
| Pass accuracy | 86% | 82% |
| Corners | 5 | 2 |
| Fouls | 11 | 6 |
| Saves | 4 | 3 |
| Average player rating | 6.86 | 6.77 |
Bayern had 56% of the ball and took 23 shots to Dortmund's 12, 5 on target against 6. On expected goals Dortmund made the better chances, 3.33 to 0.75: a draw that Dortmund can feel they were owed more from.
The Dixon-Coles verdict. Run those two xG figures through the score matrix that powers the Moneyball Match Board and a match played like this one ends in a Bayern win 5% of the time, a draw 10% and a Dortmund win 85%. In expected points that is 0.24 for Bayern and 2.66 for Dortmund. Dortmund were more likely to win it than draw it: the point is a little less than the chances deserved.
Best on the pitch by Sportmonks' match ratings: Konrad Laimer, 8.0.
| Player | Rating |
|---|---|
| Konrad Laimer | 8.0 |
| Michael Olise | 7.3 |
| Dayot Upamecano | 7.2 |
| Joshua Kimmich | 7.2 |
| Min-jae Kim | 7.1 |
| Jonas Urbig | 7.0 |
| Player | Rating |
|---|---|
| Fábio Silva (sub) | 7.6 |
| Serhou Guirassy | 7.3 |
| Nico Schlotterbeck | 7.2 |
| Carney Chukwuemeka | 7.1 |
| Jobe Bellingham | 6.8 |
| Joey Veerman | 6.8 |
Every player's name opens his page in the Stats Centre: his season, his match ratings and, for Moneyball Scout members, his full profile in Scouting Players Research.
"We need a bit of luck and a good goalkeeper"
Dortmund were honest about how the point was won. "Against Bayern you also need a bit of luck and a good goalkeeper," Lars Ricken said with a smile inside the Allianz Arena, as Goal reported. On another night he could have been explaining a 4-1 or a 5-1: Bayern wasted a string of good chances, missed a penalty and hit the woodwork three times. Dortmund's goalkeeper made 3 saves. The missed penalty: Harry Kane (56′).
But the draw was not only luck. Niko Kovač changed the shape: a back four, 4-4-1-1 without the ball, for the first time since a 2-0 defeat at Leipzig in March 2025. "Bayern did not expect it," Ricken said, and leaving the usual back five "was also one of the reasons we played a very good, balanced first half". Sporting director Ole Book agreed: "We were brave in how we played and prepared. We surprised them a little, and I think at times they found it hard to press us in that shape." Captain Nico Schlotterbeck liked it too: "Niko dared to try it, and the players dared as well. Especially on the ball, it gives us an extra man up front." With Joane Gadou and Daniel Svensson there are full-backs for it, so it need not be kept for the strongest opponents.
The second half was harder. Possession was level at the break and moved towards Bayern after it; Dortmund were pressed back and rarely got out. Jobe Bellingham had a goal ruled out for offside before Dortmund fell behind on the counter-attack, and substitute Fábio Silva's goal on 89 minutes earned the point. "The most important thing: before the match I told the team we had to believe in ourselves. We respect the opponent, but we are not afraid," Schlotterbeck said.
Kovač's record, as Goal counts it: 52 wins in 86 matches, 18 defeats, 104 goals conceded, and five meetings with Bayern in which Dortmund have stopped being the side that collapses in Munich. They ran 127 kilometres on Saturday. "The coach and his staff have worked on this mindset for two years," Book said. Ricken: "For some time now Borussia Dortmund have been a very difficult, unpleasant opponent."
Moneyball's reading of that: mentality shows up in the numbers as chances made and chances allowed over many matches, not in one comeback. Late goals and comebacks are exactly the things the research on Moneyball finds least repeatable. What does repeat is the xG margin, and that is what the season section below measures.
The season around the Klassiker
A title is not won in one match. It is won by a level of play held for 34 matchdays. Here are Bayern Munich and Borussia Dortmund measured nine ways, from the points they have to the points their chances deserve, and where those numbers say they will finish.
| Measure | Bayern | Dortmund |
|---|---|---|
| League position | 1st · 21 pts from 9 | 2nd · 21 pts from 9 |
| Expected points (xG through Dixon-Coles) | 22.2 (1st) | 14.9 (4th) |
| Points minus expected points | −1.2 | +6.1 |
| Pi-rating (goal margin vs average) | +0.25 (1st) | +0.15 (3rd) |
| Strength after Bayesian shrinkage | +1.14 (1st) | +0.17 (6th) |
| Goals minus xG (finishing) | +1.8 | +2.1 |
| Goals kept out minus xG faced (goalkeeping) | −1.1 | +4.1 |
| Home points per match | 2.50 | 2.60 |
| Away points per match | 2.20 | 2.00 |
| Projected final points | 73 (1st) | 58 (4th) |
| Title in 10,000 simulated seasons | 83% | 3% |
| Top four (Champions League) | 99% | 63% |
On expected points, the measure of how well each side has really played, the gap between the clubs is 7.3 in Bayern's favour, against 0 on the real table. Dortmund are +6.1 points against their expected points: they have taken more than their chances deserve, and the regression method expects some of that to come back.
The top of the Bundesliga
| # | Club | Pts | xPts | Pts − xPts | Pi | Projected |
|---|---|---|---|---|---|---|
| 1 | FC Bayern München | 21 | 22.2 | −1.2 | +0.25 | 73 |
| 2 | Borussia Dortmund | 21 | 14.9 | +6.1 | +0.15 | 58 |
| 3 | SC Freiburg | 19 | 16.7 | +2.3 | +0.13 | 60 |
| 4 | RB Leipzig | 18 | 17.6 | +0.4 | +0.17 | 61 |
| 5 | Bayer 04 Leverkusen | 16 | 14.7 | +1.3 | +0.05 | 54 |
| 6 | Werder Bremen | 15 | 12.9 | +2.1 | +0.05 | 51 |
Points against expected points: a positive gap usually closes. The projection plays each club's shrunk strength out over the matches it has left.
Can Dortmund challenge? 10,000 seasons
We played the rest of the Bundesliga 10,000 times. Each club plays every match it has left at its own strength (its xG margin per match, shrunk toward the league average while the sample is small), each match a draw from the Dixon-Coles matrix. Nothing else goes in: no reputation, no budget, no narrative.
| In 10,000 simulated seasons | Bayern | Dortmund |
|---|---|---|
| Win the Bundesliga | 83% | 3% |
| Finish in the top four | 99% | 63% |
| Typical final points (median) | 73 | 58 |
| Finish above the other | 95% | 5% |
The answer, on today's numbers: Not on this season's numbers: the gap in chances is too wide for one good afternoon in Munich to close. Dortmund finish above Bayern in 5% of the simulated seasons.
Two ways to play, measured
| Per match, season | Bayern | Dortmund |
|---|---|---|
| Possession | 66.1% (1st) | 53.7% (5th) |
| Pass accuracy | 89.1% (1st) | 83.9% (5th) |
| Pressure Index | 84.0 (1st) | 58.1 (7th) |
| Shots | 23.6 (1st) | 15.3 (10th) |
| Big chances | 5.0 (1st) | 2.4 (5th) |
| xG for | 3.03 (1st) | 1.55 (13th) |
| xG against | 0.88 (1st) | 1.23 (3rd) |
| Clean sheets | 22.2 (7th) | 55.6 (1st) |
The ranks are against the whole Bundesliga. Possession says who had the ball; expected goals say what each side did with it, and that is what Moneyball rates teams on.
The players who decide it
Titles are won by squads, and these are each club's best-rated players this season across the Bundesliga and Europe (270 minutes or more). Each name opens his Stats Centre page.
| Player | Minutes | Rating | Goals | Assists | xG |
|---|---|---|---|---|---|
| Michael Olise | 1000 | 8.14 | 8 | 5 | 4.34 |
| Joshua Kimmich | 911 | 7.93 | 1 | 4 | 0.89 |
| Harry Kane | 1074 | 7.81 | 8 | 11 | 10.86 |
| Aleksandar Pavlovic | 817 | 7.45 | 2 | 1 | 1.24 |
| Dayot Upamecano | 1080 | 7.32 | 3 | 0 | 3.14 |
| Alphonso Davies | 780 | 7.15 | 2 | 2 | 0.81 |
| Player | Minutes | Rating | Goals | Assists | xG |
|---|---|---|---|---|---|
| Felix Nmecha | 911 | 7.29 | 4 | 1 | 1.67 |
| Serhou Guirassy | 945 | 7.23 | 7 | 2 | 8.21 |
| Nico Schlotterbeck | 797 | 7.22 | 1 | 0 | 0.95 |
| Waldemar Anton | 1170 | 7.21 | 0 | 1 | 0.14 |
| Joey Veerman | 805 | 7.09 | 0 | 2 | 0.72 |
| Jobe Bellingham | 858 | 7.00 | 0 | 3 | 1.23 |
Felix Nmecha is Dortmund's best-rated player so far at 7.29. He has scored 4 from 1.7 xG: finishing that far above the chances rarely lasts a season, and Dortmund will need the chances to keep coming.
"We can achieve something"
"I think we are finding our rhythm more and more. Not everything is perfect yet, but we keep getting better," Schlotterbeck said. "Our defence is incredibly compact and it is the basis of our good play. The problem is there are still 26 matchdays to go. If we play like today in the coming weeks, we are on a good path, and we can hope to keep the title race open for a long time." And: "We are in a good position in every competition. Every day in training I see how we work tactically. I even feel some players do not realise how good they are. We have a good team and we can achieve something."
Goal's own view is more careful: Bayern were level on points with Dortmund after eight matchdays and are hard to imagine being matched over a whole season; the DFB-Pokal, four wins from the trophy, may be the better chance. The next weeks will tell. Dortmund's next matches: Real Betis at home in the Champions League (Wednesday 4 November), SV Elversberg at home in the Bundesliga (Saturday 7 November), away at Borussia Mönchengladbach (Saturday 21 November) and away at Arsenal in the Champions League (Tuesday 24 November).
What Dortmund need
- Chances, not only results. Dortmund's xG margin is +0.31 a match. A title side in Germany usually creates well over a goal more than it allows every match; that is the number to watch, not the points after one weekend.
- Beat the rest, not only Bayern. One point in Munich counts the same as one point anywhere. Titles are lost at home to mid-table sides, as Dortmund know better than anyone after Mainz in 2023.
- Keep the run going without luck. If the points are running ahead of the chances, the regression method expects a correction. The way to avoid it is to make more chances, not to hope the finishing holds.
The Moneyball view
Not on this season's numbers: the gap in chances is too wide for one good afternoon in Munich to close. On the projection Bayern finish on about 73 points and Dortmund on about 58. Klopp's Dortmund won the league by being better at the things that are hard to see: pressing, transitions, players who were worth more than they cost. The numbers will show soon enough whether this Dortmund are doing the same. Check back after every round: this article updates itself with the data.
- Expected goals (xG): the quality of every chance, so a team is judged on what it created and allowed, not only on what went in.
- Dixon-Coles score matrix: the match's two xG figures turned into the chance of each result and into expected points, the same model the Match Board uses.
- Expected points: each match's xG run through a Dixon-Coles score matrix (the Poisson model with the low-score correction the Match Board uses) to give the points a performance usually earns.
- Pi-ratings: a rating for every club at home and away, moved after each result by how far the goal margin beat or missed what the ratings expected.
- Bayesian shrinkage: a club's xG margin is pulled toward the league average as if it had 8 average matches more, so a hot month is not mistaken for a new level.
- Projection: the shrunk strength played out against an average opponent for every match left, added to the points already won.
- Monte Carlo season simulation: the rest of the Bundesliga played 10,000 times, each match from the Dixon-Coles matrix at each club's shrunk strength, for the title and top-four chances.
- Finishing and goalkeeping regression: goals against xG at both ends. A big gap either way rarely lasts a season.
- Home and away split: points per match on each side of the fixture list.
- League ranks on Sportmonks' team figures: possession, passing, pressure, chances, duels.
- Player ratings per 90, from the same Sportmonks data that runs Moneyball Scout.
Analysis by Moneyball Editorial. Quotations and match background from Goal's reporting on the match. Background on Dortmund's titles is the published record. Every figure about this season and this match is read from the Moneyball Stats Centre (Sportmonks data) and updates itself with the data, and the sentences around the figures change with them.
Every minute of the Klassiker in the Match Centre Bayern Munich in the Stats Centre Borussia Dortmund in the Stats Centre The Bundesliga table
Questions
- What was the score of Bayern Munich vs Borussia Dortmund on 31 October 2026?
- Bayern Munich 2-2 Borussia Dortmund in the Bundesliga at the Allianz Arena. Goals: Konrad Laimer 38′, Serhou Guirassy 60′, Dayot Upamecano 66′, Fábio Silva 89′.
- When did Borussia Dortmund last win the Bundesliga?
- In 2011/12 under Jürgen Klopp, the second of two titles in a row, when Dortmund also won the DFB-Pokal, beating Bayern 5-2 in the final. In 2022/23 they came within one result of the title and lost it on the final day after a 2-2 draw with Mainz.
- Who deserved to win Bayern vs Dortmund on expected goals?
- Expected goals were 0.75 for Bayern and 3.33 for Dortmund. Through the Dixon-Coles matrix, a match with those chances ends in a Bayern win 5%, a draw 10% and a Dortmund win 85% of the time.
- Can Dortmund win the Bundesliga this season?
- In 10,000 simulations of the rest of the season, from each club's strength after Bayesian shrinkage, Dortmund win the title 3% of the time and finish above Bayern 5%. Bayern win it 83%.
- Who was the best player in Bayern vs Dortmund?
- By Sportmonks' match ratings, Konrad Laimer with 8.0.
- Where do the numbers come from?
- Sportmonks match, team and player data, read by the Moneyball engine and refreshed with every update of the site. The figures in this article change with the data.