FootySim Football Predictions

Season projections, standings, match predictions, and betting odds for 15 leagues and tournaments, updated nightly.

Purely mathematical simulations. Why is this different from betting odds?

Final Season Results

Bundesliga

Final Season Stats End-of-Season Probabilities
Team Pts Goal Diff
Every Position
↓ 18th1st ↓
Relegation Relegation Playoff Conference League Europa League Champions League Win League
77.0 +60 0% 0% 0% 0% ✓ ✓
Dortmund 69 pts
69.0 +33 0% 0% 0% 0% ✓ 0%
64.0 +33 0% 0% 0% 0% ✓ 0%
Leipzig 58 pts
58.0 +35 0% 0% 0% 0% ✓ 0%
57.0 +6 0% 0% 0% ✓ 0% 0%
55.0 +12 0% 0% 0% ✓ 0% 0%
Köln 52 pts
52.0 +3 0% 0% ✓ 0% 0% 0%
Mainz 05 46 pts
46.0 +5 0% 0% 0% 0% 0% 0%
46.0 -2 0% 0% 0% 0% 0% 0%
45.0 -7 0% 0% 0% 0% 0% 0%
42.0 -4 0% 0% 0% 0% 0% 0%
42.0 -11 0% 0% 0% 0% 0% 0%
Bochum 42 pts
42.0 -14 0% 0% 0% 0% 0% 0%
Augsburg 38 pts
38.0 -17 0% 0% 0% 0% 0% 0%
33.0 -18 0% 0% 0% 0% 0% 0%
33.0 -34 0% ✓ 0% 0% 0% 0%
28.0 -26 ✓ 0% 0% 0% 0% 0%
18.0 -54 ✓ 0% 0% 0% 0% 0%
Champions League Europa League Conference League Relegation Playoff Relegation
Rank Team Pts Pld Goals GD
1 Bayern München 77 34 97:37 +60
2 Dortmund 69 34 85:52 +33
3 Leverkusen 64 34 80:47 +33
4 Leipzig 58 34 72:37 +35
5 Union Berlin 57 34 50:44 +6
6 SC Freiburg 55 34 58:46 +12
7 Köln 52 34 52:49 +3
8 Mainz 05 46 34 50:45 +5
9 Hoffenheim 46 34 58:60 -2
10 M'gladbach 45 34 54:61 -7
11 Frankfurt 42 34 45:49 -4
12 Wolfsburg 42 34 43:54 -11
13 Bochum 42 34 38:52 -14
14 Augsburg 38 34 39:56 -17
15 Stuttgart 33 34 41:59 -18
16 Hertha BSC 33 34 37:71 -34
17 Bielefeld 28 34 27:53 -26
18 Greuther Fürth 18 34 28:82 -54

Season Timeline

Probability evolution over time

A statistical line chart showing the evolution of Bundesliga probabilities for Bayern München and others based on 10,000 Monte Carlo simulations.

* Mathematical projections reflect the engine's state at the time of daily simulation. Probabilities may lag real-world match results by up to 48 hours due to upstream data processing.

How this works

FootySim uses a custom Monte Carlo simulation engine to project match results and the final outcome of the season.

Analytical Comparison

Betting markets are influenced by public sentiment and financial liability. This model is strictly performance-based. By focusing solely on Elo ratings and xG distributions, this method provides a pure statistical perspective, fueled by on-pitch results rather than media sentiment or betting volume.

Note on Statistical Variance:

  • Regional Rating Bubbles: Elo is a relative system. In global tournaments, teams from isolated confederations may occasionally display "inflated" ratings if they haven't faced top-tier international opposition recently.
  • The "Pure Data" Trade-off: By ignoring "soft data" (injuries, lineup news, or tactical shifts), this model remains objective but may lag behind real-time squad changes that haven't yet manifested in a final scoreline.

1. Team Power (Elo Ratings): Every team is assigned a power rating based on the Elo system. This rating reflects their current real-world strength based on historical results, opponent quality, and recent form.

2. Match Probabilities & xG: For every unplayed fixture, the engine compares the Elo ratings of the two competing teams. This difference dictates the win probabilities, which are then converted into an Expected Goals (xG) metric for each team, anchored to a real-world average of 2.77 goals per match.

3. Scoreline Generation: The engine feeds these xG values into independent Poisson distributions to generate a realistic final scoreline. It also applies a Dixon-Coles adjustment—a statistical modifier that accounts for late-game human psychology (like "parking the bus" or pushing for a late equalizer) to ensure mathematically accurate draw rates.

4. Dynamic Tournament Momentum: The simulation is path-dependent. As the engine simulates through the schedule, teams dynamically gain or lose Elo points after every simulated match. A team that goes on a giant-killing run in the group stage becomes mathematically stronger before the knockout rounds.

5. The 10,000 Simulations: The engine plays out the remainder of the tournament 10,000 times. Every match is decided by a random number generator weighted by these dynamic metrics. It then tallies up where each team finished across all 10,000 simulated universes to generate the final percentage chances and match probabilities shown across the site.

Interactive Engine

Want to run your own "what-if" scenarios using the exact engine behind these forecasts? Head over to FootySim.io to time-travel through matchdays and simulate alternate realities ⚽

Data Sources: This engine is powered by these incredible community resources:

• eloratings.net: For national team ratings
• clubelo.com: For club elo ratings
• fixturedownload.com: For schedules and results