Germany runs the highest-scoring top division in Europe this season — 3.82 goals per match on average through the opening matchdays of 2026-27. For anyone betting exact scores, that matters. A well-calibrated model on a high-variance attacking league finds probability gaps that bookmakers don't always price efficiently.
Our dc_v1 model applies the Dixon-Coles method to every Bundesliga fixture. For each match, it computes the 20 most likely scorelines and compares them against market prices. Here is exactly how it works — and what it shows for this weekend's fixtures.
Key takeaways - The Dixon-Coles model corrects the Poisson distribution only for low-scoring outcomes (0-0, 1-0, 0-1, 1-1) — the only scorelines a standard Poisson model systematically misprices. - In the Bundesliga, the correction parameter (ρ) sits around −0.114, one of the lowest in European football, reflecting the league's attacking intensity. - No single exact score ever exceeds a ~15% probability. The model's value lies in identifying which scorelines the market underprices, not in guaranteeing any result. - Our per-match xG inputs (λ_home and λ_away) are recalibrated before each matchday using a weighted 5-game rolling window.
Why the Bundesliga Is the Best League for Exact Score Modelling
Most exact-score models are calibrated on the Premier League or Ligue 1. The Bundesliga is a different animal. With 3.82 goals per match in 2026-27, the score distribution skews toward 3+ goal outcomes. That is mathematically favourable for Poisson-based models.
In a 2.6-goals-per-match league like Serie A, scorelines such as 0-0, 1-0 and 0-1 make up a disproportionate share of results. The Dixon-Coles correction for those low scores has less impact. In the Bundesliga, higher lambdas mean the model is more precise on mid-range scores like 2-1, 2-2, and 1-2 — which are also the most common outcomes.
| League | Goals/match 2026-27 | Scores ≤ 1 total goal | Modal score |
|---|---|---|---|
| Bundesliga | 3.82 | ~15% | 2-1 |
| Premier League | ~2.85 | ~28% | 1-1 |
| Ligue 1 | ~2.70 | ~30% | 1-0 |
| Serie A | ~2.65 | ~32% | 1-0 |
The Bundesliga has the lowest concentration of low-scoring matches in Europe's top four leagues. For a Poisson model, it is the best-suited environment.
How the Dixon-Coles Model Works
The foundation of any exact-score model is the Poisson distribution. If a team averages λ = 1.8 expected goals per match, the probability it scores exactly 2 is:
P(2 goals; λ=1.8) = e^(−1.8) × 1.8² / 2! = 0.1647 × 3.24 / 2 = 0.267 → 26.7%
Applying this to both teams independently gives you a probability matrix for every scoreline. The problem is a systematic bias: independent Poisson underestimates 0-0 draws and overestimates 1-1 draws in European football. The reason is that teams adjust their play after conceding — a dynamic the model cannot capture on its own.
Dixon and Coles (1997) fixed this with a single parameter ρ (rho), applied only to four scorelines: (0,0), (1,0), (0,1), and (1,1). Every other score keeps its Poisson probability.
P(0,0)_DC = P_Poisson(0,0) × (1 − λ_home × λ_away × ρ)
P(1,0)_DC = P_Poisson(1,0) × (1 + λ_away × ρ)
P(0,1)_DC = P_Poisson(0,1) × (1 + λ_home × ρ)
P(1,1)_DC = P_Poisson(1,1) × (1 − ρ)
For the Bundesliga, our model calibrates ρ = −0.114 on the current season's data. A negative value means 0-0 draws occur more often than pure Poisson would predict — an empirical regularity Dixon-Coles captures.
| Parameter | Bundesliga 2026-27 | Premier League | Ligue 1 |
|---|---|---|---|
| Calibrated ρ | −0.114 | ~−0.09 | ~−0.10 |
| Home advantage (λ ratio) | ~1.25 | ~1.30 | ~1.28 |
| Avg xG home / away | 1.9 / 1.3 | 1.6 / 1.2 | 1.5 / 1.1 |
Rejoignez ProbWin gratuitement
Accédez à nos prédictions IA pour MLB, NHL et NFL. Inscription en 30 secondes.
Our Model Applied to Matchday 12 Fixtures
Here is how dc_v1 reads this weekend's Bundesliga matches. Probabilities are computed from our recalibrated λ values pulled directly from our database before the matchday.
Mainz 05 – Bayern Munich (λ_home = 1.06 | λ_away = 2.54 | ρ = −0.114)
Bayern arrives with an away λ of 2.54 — among the highest of the matchday. Mainz is credited with only 1.06 xG. The score distribution heavily favours Bayern by 2+ goals.
| Score | Estimated probability | Reading |
|---|---|---|
| 1-2 | ~9.4% | Mainz consolation, Bayern in control |
| 0-2 | ~8.8% | Mainz shut out, clean sheet for Bayern |
| 1-3 | ~7.9% | Bayern accelerates in the second half |
| 1-1 | ~8.2% | Surprising draw (DC correction raises this) |
| 0-3 | ~7.5% | A very difficult night for Mainz |
The 0-2 score is often underpriced on this type of match: the market skews toward narrow results (1-1, 1-2) because punters find them more attractive. The model has no such bias.
Borussia Dortmund – Elversberg (λ_home = 2.23 | λ_away = 1.08 | ρ = −0.114)
Dortmund at home with an xG of 2.23. Elversberg produces 1.08 xG away. Dortmund plays from a position of dominance.
| Score | Estimated probability | Reading |
|---|---|---|
| 2-1 | ~9.8% | Most likely outcome |
| 1-1 | ~9.7% | DC correction pushes this up |
| 2-0 | ~9.0% | Clean win, Dortmund manages the game |
| 3-1 | ~7.2% | Dortmund accelerates in second half |
| 3-0 | ~6.7% | Total dominance |
The gap between 2-1 and 2-0 depends on Elversberg's recent defensive form. Our model weights the last 5 matches — a team conceding less recently sees its λ_away decrease.
For a deeper look at the overall methodology, see our Bundesliga 2026-27 AI guide.
From Matrix to Pick: How to Use These Probabilities
Computing exact-score probabilities is only half the job. The real question is whether those probabilities are higher or lower than what the bookmaker's price implies. That is where value lives.
Expected value = Model_probability × Bookmaker_odds − 1
If result > 0 → positive edge, market underprices this score
If result < 0 → market prices better than the model
Concrete example: if our model gives 1-2 (Mainz–Bayern) a 9.4% chance, the fair odds are 1/0.094 = 10.6. If the bookmaker offers 11.5, the edge is 9.4% × 11.5 − 1 = +8.1%. That is meaningful for an exact-score market.
In practice, exact-score odds range from 8 to 20. Edges are typically small (1-4%). The Dixon-Coles model is therefore less useful as a "score picker" and more useful for:
- Eliminating statistically unlikely scores the market overprices
- Identifying undervalued scorelines (often clean wins like 0-2 or 0-3 for strong away sides)
- Building coherent angle bets on derivative markets consistent with the match script
Typical scenario: Bayern dominant away, scores early
→ Favours: scores with 0 or 1 Mainz goal (0-2, 0-3, 1-2, 1-3)
→ Disfavours: any score with 2+ Mainz goals (each < 5% probability)
→ Compatible markets: Both Teams to Score No, Bayern Handicap −1.5
4 Classic Exact-Score Mistakes to Avoid
Exact-score markets attract punters with their high odds. They are also the markets where cognitive biases do the most damage.
❌ "I'll back 1-1 — big matches always end like that."
→ The 1-1 is common in the Bundesliga (~11-12% of all matches),
but for Mainz–Bayern with Bayern λ = 2.54, it drops to 8.2%.
At odds of 6.0, that is a −51% value bet.
❌ "I'll replay the last head-to-head scoreline."
→ H2H scorelines have no predictive power on exact scores.
Current xG is 40x more predictive than historical scoreline patterns.
❌ "I'll back the model's top-rated score as a single bet."
→ Even the most likely score rarely exceeds 12-15%.
Never bet exact score singles without a positive value calculation.
✅ Right approach: identify 2-3 scorelines with positive edge vs the market,
check them against derivative markets (BTTS, Totals, Handicap),
confirm consistency with the match script before placing anything.
Also see our free AI exact score generator guide to apply this method directly.
Which Bundesliga Teams Our Model Handles Best
Not every team is equally well-modelled. dc_v1's accuracy depends on how stable a team's xG is over the last 5 matches. A team with highly variable xG (Hoffenheim, for instance) produces less reliable λ values than a consistent side (Bayern, Leverkusen).
| Team | Est. home λ | Est. away λ | xG stability | Model reliability |
|---|---|---|---|---|
| Bayern Munich | ~2.40 | ~2.30 | High | ★★★★★ |
| Bayer Leverkusen | ~2.10 | ~1.95 | High | ★★★★★ |
| Borussia Dortmund | ~2.20 | ~1.85 | Medium | ★★★★ |
| RB Leipzig | ~2.15 | ~1.90 | High | ★★★★★ |
| VfB Stuttgart | ~1.90 | ~1.70 | Medium | ★★★★ |
| TSG Hoffenheim | ~2.00 | ~1.70 | Low | ★★★ |
| Eintracht Frankfurt | ~1.75 | ~1.55 | Medium | ★★★★ |
Promoted sides (Paderborn, Elversberg in 2026-27) carry lower but more unstable λ values — their actual xG can vary by a factor of two depending on the opponent. The model handles them correctly, but the confidence interval is wider in the first half of the season.
To see how the same model reads other leagues, check our Ligue 1 exact score guide and our La Liga exact score guide.
Frequently Asked Questions
What percentage of the time does an AI model correctly predict the exact score? A well-calibrated Dixon-Coles model hits the top-1 predicted score roughly 10-14% of the time. Extended to the top-5 most likely scores, the hit rate rises to 28-30%. Those numbers sound low in isolation, but they generate value when the predicted scores are consistently underpriced by the market.
Why does the model use xG rather than historical goal tallies? Actual goals carry a large random component — finishing quality, the goalkeeper's day, woodwork. Expected goals measures the real quality of chances created, a far more stable signal from week to week. An xG-based model is 2 to 3 times more accurate on exact scores than one built from raw goals.
Why does the Dixon-Coles correction only apply to 4 scorelines? The only cells in the score matrix where home and away goals show a non-linear correlation are the low-scoring ones: (0,0), (1,0), (0,1), (1,1). Beyond 2 total goals, teams play independently enough for standard Poisson to be accurate. Adjusting other scores would add noise, not signal.
Is the model's most probable score the best bet? No. Even the most probable score is below 15%. The right criterion is not which score the model prefers, but which score has the best model probability / bookmaker odds ratio. A score at 8% priced at 15.0 (value = +20%) beats a score at 12% priced at 8.0 (value = −4%).
How quickly does the model adapt to a team's current form? Our λ values are recalculated before each matchday using a weighted 5-game rolling window. More recent matches carry higher weight. In the first 4 matchdays of the season, the calibration is slightly less precise. From matchday 5 onward, λ values stabilise for all Bundesliga sides.
Next Step
The Dixon-Coles method is the backbone of our exact-score approach for the Bundesliga. It produces reliable probabilities — especially for mismatched fixtures, which make up 60 to 70% of any matchday.
To go further: compare how we apply the same method to other leagues via our Premier League exact score guide and our Ligue 1 exact score guide. For an overview of how exact-score analysis feeds into our official soccer picks, see our AI football predictions today guide.






