‹ ›

2019-20 First Division B Season

112 games · 2 promotion-playoff teams

Final

Promoted

Oud-Heverlee Leuven

via playoff

Beerschot · via playoff

Relegated

Excelsior Virton

administratively relegated

Roeselare · administratively relegated

Sporting Lokeren · via dissolution

Biggest Overachiever

Westerlo

5.06 points above expected

49 points · 43.94 expected points

Biggest Disappointment

Sporting Lokeren

13.47 points below expected

20 points · 33.47 expected points

League Table

The final standings for the season. vsSim shows actual points minus the simulation's mean — positive means the team overachieved against the model, negative means they underperformed.

# Team GP W D L Pts GF GA GD SimPts vsSim
1 Westerlo 28 15 4 9 49 45 30 +15 43.94 +5.06
2 Excelsior Virton Demoted 28 14 5 9 47 39 21 +18 45.52 +1.48
3 Oud-Heverlee Leuven Promoted 28 14 4 10 46 45 40 +5 43.27 +2.73
4 Union SG 28 11 12 5 45 43 32 +11 47.94 -2.94
5 Beerschot Promoted 28 12 7 9 43 31 27 +4 39.92 +3.08
6 Lommel 28 6 9 13 27 21 37 -16 27.94 -0.94
7 Roeselare Demoted 28 5 11 12 26 37 49 -12 28.95 -2.95
8 Sporting Lokeren Dissolved 28 4 8 16 20 24 49 -25 33.47 -13.47

Notes

  • Excelsior Virton and Roeselare were denied a professional licence and forced to relegate

Top Overachievers & Disappointments

Teams that most beat — or most fell short of — their simulated point projections. A positive vsSim means the team accumulated more points than the model expected on average; a negative one means fewer.

Biggest Overachievers

# Team Actual Sim vsSim
1 Westerlo 49 43.94 +5.06
2 Beerschot 43 39.92 +3.08
3 Oud-Heverlee Leuven 46 43.27 +2.73
4 Excelsior Virton 47 45.52 +1.48
5 Lommel 27 27.94 -0.94

Biggest Disappointments

# Team Actual Sim vsSim
1 Sporting Lokeren 20 33.47 -13.47
2 Roeselare 26 28.95 -2.95
3 Union SG 45 47.94 -2.94
4 Lommel 27 27.94 -0.94
5 Excelsior Virton 47 45.52 +1.48

Top Streaks

Ranked by model unlikelihood — the product of pregame W/D/L probabilities over the games in each team's streak. A short streak by a poor team can outrank a longer one by a strong team since the poor team's per-game probabilities were lower going in. Unbeaten counts consecutive wins or ties; Winless counts consecutive losses or ties.

Most Unlikely Winning Streaks

# Team Games Dates Probability
1 Excelsior Virton 5 Aug 17 – Sep 21 1 in 57
2 Roeselare 2 Oct 12 – Oct 19 1 in 20
3 Lommel 2 Nov 8 – Nov 16 1 in 14
4 Oud-Heverlee Leuven 3 Aug 16 – Sep 7 1 in 12
5 Westerlo 3 Aug 3 – Aug 17 1 in 10

Most Unlikely Losing Streaks

# Team Games Dates Probability
1 Roeselare 5 Sep 7 – Oct 4 1 in 30
2 Westerlo 2 Dec 8 – Dec 14 1 in 13
3 Sporting Lokeren 3 Aug 18 – Sep 8 1 in 12
4 Oud-Heverlee Leuven 3 Feb 14 – Feb 28 1 in 11
5 Beerschot 2 Sep 21 – Sep 28 1 in 5

Most Unlikely Unbeaten Streaks

# Team Games Dates Probability
1 Roeselare 6 Nov 24 – Jan 10 1 in 48
2 Union SG 8 Jan 18 – Feb 28 1 in 28
3 Lommel 4 Nov 2 – Nov 23 1 in 24
4 Beerschot 8 Jan 10 – Feb 28 1 in 22
5 Sporting Lokeren 5 Sep 13 – Oct 13 1 in 15

Most Unlikely Winless Streaks

# Team Games Dates Probability
1 Union SG 5 Dec 15 – Jan 26 1 in 45
2 Roeselare 10 Dec 13 – Feb 28 1 in 43
3 Sporting Lokeren 8 Nov 3 – Dec 22 1 in 31
4 Excelsior Virton 5 Nov 8 – Dec 7 1 in 19
5 Lommel 8 Aug 3 – Sep 29 1 in 14

Position Race

Each team’s league position across the whole season. Colored teams are the season’s headline finishers — champion, promoted, and relegated; everyone else is gray as context.

Recent Form

Each team’s last 5 games, hottest first. Form shows the results (navy win, gray draw, red loss, newest on the right); the bars show Elo change over the window, points taken, points expected from the odds, and actual minus expected. Beside each team: current Elo and season points.

Team Elo Season Pts Form Elo Δ (5) Points (5) Expected (5) Actual − Exp
Westerlo 1600 49 -4 9 8.0 +1.0
Oud-Heverlee Leuven 1528 46 -22 4 7.0 -3.0
Union SG 1627 45 +27 9 7.4 +1.6
Excelsior Virton 1622 44 +16 8 8.3 -0.3
Beerschot 1591 43 +33 13 8.6 +4.4
Lommel 1421 27 -24 2 4.9 -2.9
Roeselare 1472 26 -5 4 6.1 -2.1
Sporting Lokeren 1393 20 -41 1 4.4 -3.4

Head-to-Head

Each cell shows a team's record in that matchup (row vs column, formatted W-D-L) with the model's expected points on the line below. Navy-tinted cells mean the team beat the model's expectations by more than one point in that matchup; gold-tinted cells mean they fell short by the same margin.

Beat expectations Fell short Within expectations
Team BEE EV LOM OL ROE SL US WES
Beerschot —
1-2-1
4.82
2-0-2
7.32
2-0-2
4.98
1-3-0
6.64
2-1-1
6.38
2-2-0
4.37
2-0-2
5.05
Excelsior Virton
1-2-1
6.27
—
3-1-0
7.31
2-0-2
5.83
3-1-0
7.25
3-0-1
7.20
0-1-3
5.00
2-1-1
5.37
Lommel
2-0-2
3.79
0-1-3
3.82
—
1-0-3
3.48
1-2-1
5.16
2-2-0
4.61
0-3-1
3.17
0-1-3
3.74
Oud-Heverlee Leuven
2-0-2
6.11
2-0-2
5.26
3-0-1
7.64
—
2-1-1
7.21
2-1-1
6.70
1-2-1
4.92
2-0-2
5.24
Roeselare
0-3-1
4.44
0-1-3
3.86
1-2-1
5.92
1-1-2
3.89
—
2-1-1
5.41
1-2-1
3.52
0-1-3
3.80
Sporting Lokeren
1-1-2
4.70
1-0-3
3.92
0-2-2
6.49
1-1-2
4.40
1-1-2
5.68
—
0-2-2
3.73
0-1-3
4.13
Union SG
0-2-2
6.74
3-1-0
6.08
1-3-0
7.97
1-2-1
6.16
1-2-1
7.60
2-2-0
7.38
—
3-0-1
5.75
Westerlo
2-0-2
6.02
1-1-2
5.71
3-1-0
7.39
2-0-2
5.84
3-1-0
7.30
3-1-0
6.98
1-0-3
5.33
—

Points vs. Goals Scored, Allowed, and Differential

Points plotted against goals scored, allowed, and differential. Use the buttons to switch views; hover a team for exact values. The table gives each fit's R² and slope (the change in points per 10 goals).

Fit Metrics

R² Slope
Scored 0.61 +9.6
Allowed 0.63 -9.0
Differential 0.94 +7.1

Scoreline Distribution

Percentage of games ending with each combination of team-goals (rows) and opponent-goals (columns). The diagonal shows draws; cells below the diagonal are wins from the row team's perspective, cells above are losses. Marginal totals on the right and bottom show how often each goal count occurred regardless of opponent. Use the picker to switch between the league-wide view and any individual team.

↓ Scored | Allowed →012345+Total
05.36%7.59%7.14%3.57%1.34%—25.00%
17.59%16.96%8.48%3.57%0.89%—37.50%
27.14%8.48%3.57%2.23%——21.43%
33.57%3.57%2.23%0.89%—0.89%11.16%
41.34%0.89%————2.23%
5+———0.89%—1.79%2.68%
Total25.00%37.50%21.43%11.16%2.23%2.68%100%

Summary Statistics

Scored Allowed Difference
Mean 1.25 1.25 +0.00
SD 1.13 1.13 1.59
CV 0.90 0.90 —
Max 5 5 +4
Min -1 -1 -4

Games Played: 112

↓ Scored | Allowed →012345+Total
0—7.14%3.57%7.14%——17.86%
114.29%25.00%10.71%———50.00%
210.71%14.29%————25.00%
33.57%—————3.57%
4———————
5+—————3.57%3.57%
Total28.57%46.43%14.29%7.14%—3.57%100%

Summary Statistics

Scored Allowed Difference
Mean 1.07 0.93 +0.14
SD 0.86 0.94 1.43
CV 0.80 1.01 —
Max 3 3 +3
Min -1 -1 -3

Games Played: 28

↓ Scored | Allowed →012345+Total
07.14%10.71%3.57%———21.43%
110.71%10.71%14.29%———35.71%
210.71%—————10.71%
37.14%7.14%3.57%———17.86%
43.57%3.57%————7.14%
5+—————7.14%7.14%
Total39.29%32.14%21.43%——7.14%100%

Summary Statistics

Scored Allowed Difference
Mean 1.32 0.68 +0.64
SD 1.39 0.90 1.57
CV 1.05 1.33 —
Max 4 2 +4
Min -1 -1 -2

Games Played: 28

↓ Scored | Allowed →012345+Total
014.29%10.71%10.71%7.14%——42.86%
114.29%10.71%10.71%7.14%——42.86%
2—3.57%7.14%———10.71%
3——3.57%———3.57%
4———————
5+———————
Total28.57%25.00%32.14%14.29%——100%

Summary Statistics

Scored Allowed Difference
Mean 0.75 1.32 -0.57
SD 0.80 1.06 1.23
CV 1.07 0.80 —
Max 3 3 +1
Min 0 0 -3

Games Played: 28

↓ Scored | Allowed →012345+Total
03.57%3.57%3.57%3.57%——14.29%
110.71%7.14%3.57%7.14%3.57%—32.14%
27.14%17.86%3.57%7.14%——35.71%
37.14%—3.57%——3.57%14.29%
43.57%—————3.57%
5+———————
Total32.14%28.57%14.29%17.86%3.57%3.57%100%

Summary Statistics

Scored Allowed Difference
Mean 1.61 1.43 +0.18
SD 1.03 1.40 1.81
CV 0.64 0.98 —
Max 4 5 +4
Min 0 0 -3

Games Played: 28

↓ Scored | Allowed →012345+Total
03.57%—10.71%3.57%3.57%—21.43%
1—25.00%10.71%—3.57%—39.29%
2—3.57%7.14%3.57%——14.29%
33.57%10.71%—3.57%—3.57%21.43%
4———————
5+—————3.57%3.57%
Total7.14%39.29%28.57%10.71%7.14%7.14%100%

Summary Statistics

Scored Allowed Difference
Mean 1.29 1.71 -0.43
SD 1.15 1.30 1.62
CV 0.89 0.76 —
Max 3 5 +3
Min -1 -1 -4

Games Played: 28

↓ Scored | Allowed →012345+Total
03.57%10.71%17.86%—7.14%—39.29%
1—21.43%7.14%10.71%——39.29%
23.57%7.14%3.57%3.57%——17.86%
3——3.57%———3.57%
4———————
5+———————
Total7.14%39.29%32.14%14.29%7.14%—100%

Summary Statistics

Scored Allowed Difference
Mean 0.86 1.75 -0.89
SD 0.85 1.04 1.42
CV 0.99 0.59 —
Max 3 4 +2
Min 0 0 -4

Games Played: 28

↓ Scored | Allowed →012345+Total
010.71%3.57%7.14%3.57%——25.00%
13.57%21.43%————25.00%
27.14%10.71%7.14%3.57%——28.57%
37.14%7.14%—3.57%——17.86%
4———————
5+———3.57%——3.57%
Total28.57%42.86%14.29%14.29%——100%

Summary Statistics

Scored Allowed Difference
Mean 1.54 1.14 +0.39
SD 1.26 1.01 1.45
CV 0.82 0.88 —
Max 5 3 +3
Min 0 0 -3

Games Played: 28

↓ Scored | Allowed →012345+Total
0—14.29%—3.57%——17.86%
17.14%14.29%10.71%3.57%——35.71%
217.86%10.71%————28.57%
3—3.57%3.57%———7.14%
43.57%3.57%————7.14%
5+———3.57%——3.57%
Total28.57%46.43%14.29%10.71%——100%

Summary Statistics

Scored Allowed Difference
Mean 1.61 1.07 +0.54
SD 1.29 0.94 1.62
CV 0.80 0.88 —
Max 5 3 +4
Min 0 0 -3

Games Played: 28

Season Summary

Every team's regular-season finish compared against 100,000 simulations. Click any column header to sort. Luck is the team's actual points minus the sim's mean — positive means the team beat the model. Percentile is where the actual result fell in the team's sim distribution (e.g. 90% = the team did this well or better in only 10% of sims).

Team Elo Points Avg Luck Percentile Min 5th Q1 Median Q3 95th Max
Union SG 1627 45 47.94 -2.94 34.0% 33 38 45 48 51 57 63
Excelsior Virton 1622 47 45.52 +1.48 60.0% 29 33 40 46 51 58 66
Beerschot 1618 43 39.92 +3.08 72.0% 24 29 37 40 44 51 53
Westerlo 1600 49 43.94 +5.06 81.0% 31 34 40 43 48 55 61
Oud-Heverlee Leuven 1500 46 43.27 +2.73 68.0% 27 32 38 44 48 55 61
Roeselare 1472 26 28.95 -2.95 36.0% 14 18 25 29 33 38 46
Lommel 1421 27 27.94 -0.94 47.0% 13 17 23 28 33 38 42
Sporting Lokeren 1393 20 33.47 -13.47 2.0% 19 21 28 34 38 43 50

Point Totals in Context

How did each team's actual results compare to their simulated points, Elo rating, average opponent Elo, and percentile within simulated outcomes? Use the buttons to switch between views. In each chart, dashed crosshairs at the league means split the plot into four quadrants: pastel green (team did well, model agreed), pastel red (team did poorly, model agreed), and pastel yellow (model and reality disagreed).

Home-Field Advantage Edge

The simulation applies the same home-field boost to every game across the league, so the per-game home win probabilities bake in the model's idea of HFA. For each team, we sum expected points at home and compare to actual home points, and the same on the road. The bar shows (home points above expected) minus (away points above expected). A tall positive bar means the team's home/road split exceeded what the model predicted — a real fortress effect. A tall negative bar means the reverse: they played worse at home or better on the road than expected.

Season Trends

How each metric evolved across the season - Elo rating, actual and projected points, title/promotion probability, and relegation probability - day by day.

Edges & Scoring

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Home Edge
Share of matches won by the home team minus the share won by the away team.
No Edge: under 11.5% * Slight Edge: 11.5% to 19% * Clear Edge: 19% to 28.5% * Strong Edge: 28.5% and up.
Elo Value
Number of Elo rating points one goal is worth. A team this many Elo points better than another is expected to win by one goal on a neutral field.
Scoring Tilt
Average home goals minus average away goals per match. The gold line is the home goals edge implied by the scoring value of an Elo point and the home-field Elo bonus.
Road-Tilted: under -0.2 * Neutral: -0.2 to 0.5 * Home-Tilted: 0.5 to 1.2 * Strong Home: 1.2 and up.
Home Edge
HomeDrawAway
+11.61%
Slight Edge
41.96%27.68%30.36%
Elo Value
Home Edge: 43.66 Elo pts.
241 Elo
0.004 goals per Elo point
0800
Scoring Tilt
Expected
+0.17 goals
Neutral
-2+0.18+2

Title Race

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Title-Race Openness
Effective number of teams with a live shot at finishing 1st, from the simulation. 1 means the favorite is a near-lock; larger means a wide-open race. Equal to 1 divided by the sum of squared title odds.
One-Team Race: under 2 * Top-Heavy: 2 to 3 * Open: 3 to 4 * Wide Open: 4 and up.
Champion Preseason Odds
Preseason probability that the eventual champion would finish 1st, from the simulation. The dot marks their rank across all teams, from longshot to favorite.
Preseason Favorite: 1st * Among the Favorites: 2nd * Middle of the Pack: 3rd to 4th * Longshot: 5th or lower.
Title Margin
Points-per-game gap between the champion and the runner-up. Shown per game so it reads the same across long and short seasons. The gold line is the winning margin the model expected, so a dot to the right means a more one-sided race than projected. A title won on goal difference shows 0.00.
Photo Finish: under 0.06 * Tight Race: 0.06 to 0.13 * Comfortable: 0.13 to 0.24 * Runaway: 0.24 and up.
Title-Race Openness
4.1
Wide Open
12348
Champion Preseason Odds
18%
Westerlo, 3rd of 8
LongshotFavorite
Title Margin
Expected
0.07/gm
Tight Race
00.170.5/gm

Simulation-Based Surprises

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Luck Spread
Standard deviation of the gap between each team's actual points and their simulated average points. The gold line is the spread the model expected from chance alone.
As Expected: under 5.28 * Some Luck: 5.28 to 7.92 * Lucky: 7.92 to 10.56 * Wild Swing: 10.56 and up.
Average Finish Error
Average gap between where each team was projected to finish and where they actually finished in the table.
Pinpoint: under 0.99 * Close: 0.99 to 1.49 * Off: 1.49 to 1.99 * Way Off: 1.99 and up.
Biggest Overachiever
The team that finished highest inside its own range of simulated outcomes. The gold line is where the top team in a league of 8 typically lands.
Biggest Underachiever
The team that finished lowest inside its own range of simulated outcomes. The gold line is where the bottom team in a league of 8 typically lands.
Season Outliers
Number of teams that finished above the 95th or below the 5th percentile of their own simulated range. Even a well-calibrated model expects about 10% of teams in the extremes.
Minimal Outliers: under 8 * As Expected: 8 to 12.8 * Several Outliers: 12.8 to 17.6 * Many Outliers: 17.6 and up.
Unexpected Relegations
Number of teams that were actually relegated but were not in the model's projected bottom field of the same size. The gold line is how many the model expected to miss on average.
As Expected: under 3 * A Surprise: 3 to 4.8 * Several Surprises: 4.8 to 6.6 * Many Surprises: 6.6 and up.
Luck Spread
Expected
5.44 points
Some Luck
06.6016
Average Finish Error
Expected
1.25
Close
01.242.5
Biggest Overachiever
Expected 93.75%
81.00%
Westerlo
50100
Biggest Underachiever
Expected
2.00%
Sporting Lokeren
06.25%50
Season Outliers
Expected
1 of 8
Minimal Outliers
00.88
Unexpected Relegations
Expected 3.0
2 of 3
As Expected
03

Parity

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Gini Index
How evenly points were spread across the league. Lower means a tight, balanced table; higher means a few teams ran off with most of the points.
Balanced: under 0.13 * Even: 0.13 to 0.17 * Top-Heavy: 0.17 to 0.2 * Lopsided: 0.2 and up.
Noll-Scully
Take a league where every match is a coin flip and nobody is better than anybody. You would still get a table, with a leader and a bottom club, purely by luck, and you can work out how far apart that table would be. This is the real table measured against it. At 1.00 the season was no more spread out than pure chance; at 2.00 it was twice as spread out, which takes genuine differences in quality. Dividing by the luck figure is what makes seasons of different lengths comparable, because a short season spreads a table by luck alone far more than a long one does. Elo SD in the corner is the same question in rating points: how far apart the teams finished on the ratings.
Coin-Flip Parity: under 1.5 * Moderate Separation: 1.5 to 1.8 * Strong Separation: 1.8 to 2.15 * Wide Separation: 2.15 and up.
Interquartile Edge
Chance the team at the 75th percentile of Elo would beat the team at the 25th percentile on a neutral field. Higher means a bigger gap between the upper and lower half of the table.
Even: under 63.5% * Slight Edge: 63.5% to 68% * Clear Edge: 68% to 74.5% * Wide Edge: 74.5% and up.
Best vs. Worst
Chance the top-rated team would beat the bottom-rated team on a neutral field. The gold line is how large that gap tends to be in a league of this size; a dot to the right flags an unusually dominant or unusually weak team.
Even: under 85% * Clear Edge: 85% to 91% * Strong Edge: 91% to 95% * Dominant: 95% and up.
Close Games
Share of matches decided by 1 goal or fewer, draws included. The gold line is how many close games the matchups and the scoring value of an Elo point predict.
Few: under 54.5% * Some Drama: 54.5% to 60% * Frequent: 60% to 65% * Very Frequent: 65% and up.
Blowouts
Share of matches decided by 3 goals or more. The gold line is how many routs the matchups and the scoring model predict.
Rare: under 14.5% * Occasional: 14.5% to 18.5% * Frequent: 18.5% to 23.5% * Very Frequent: 23.5% and up.
Gini Index
0.15
Even
00.130.20.5
Noll-Scully
Elo SD: 92.98
1.68
Moderate Separation
0.751.51.82.153
Interquartile Edge
70%
Clear Edge
50%63.5%74.5%100%
Best vs. Worst
Baseline
79%
Even
50%84%100%
Close Games
Expected
65%
Very Frequent
0%65%100%
Blowouts
Expected
12%
Rare
0%12%100%

Predictability

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Brier Score
How close the pregame probabilities landed to the actual result, averaged over the season. Confident, correct calls are rewarded most; confident misses are punished most. Lower is better; since draws are possible, a score under 0.66 beats guessing the base rate.
Highly Predictable: under 0.56 * Predictable: 0.56 to 0.62 * Hard to Predict: 0.62 to 0.66 * Coin-Flip: 0.66 and up.
Matchup Imbalance
How lopsided the matchups were on paper, averaging the gap between the two win probabilities over their sum. 0 means every match was a toss-up; 1 means every match was a heavy favorite against a big underdog.
Very Even: under 0.34 * Slight Separation: 0.34 to 0.42 * Notable Separation: 0.42 to 0.51 * Lopsided: 0.51 and up.
Strangeness
How wild the final table was versus what the model expected. A value of 1 means teams landed about one standard deviation from their projections on average. Above 1 is a stranger season; below 1 hugged the projections.
Very Predictable: under 0.8 * As Expected: 0.8 to 1.1 * Wilder Than Modeled: 1.1 to 1.4 * Chaotic: 1.4 and up.
Repeatability
How closely the final table order matched the preseason Elo order, by Spearman rank correlation. Higher means last season's ratings strongly predicted this season's finish. Shows N/A for an inaugural season.
Weak Carryover: under 0.38 * Some Carryover: 0.38 to 0.57 * Strong Carryover: 0.57 to 0.7 * Near-Lock: 0.7 and up.
Upset Rate
Share of matches the underdog won. The gold line is how often the model expected underdogs to win; a dot to the right means upsets ran hotter than expected.
Chalky: under 18% * As Expected: 18% to 22% * Upset-Prone: 22% to 25% * Very Upset-Prone: 25% and up.
Clear Favorite Upset Rate
Share of matches the underdog won, counting only games with a clear favorite (at least 60% likely to win once a draw is set aside). The gold line is how often the model expected these favorites to slip.
Solid Favorites: under 15.5% * As Expected: 15.5% to 18.5% * Shaky Favorites: 18.5% to 22% * Very Shaky: 22% and up.
Brier Score
Expected
0.64
Hard to Predict
00.612
Matchup Imbalance
0.31
Very Even
00.340.420.5
Strangeness
Expected
0.67
Very Predictable
01.002
Repeatability
-0.02
Weak Carryover
00.380.570.71
Upset Rate
Expected
25%
Very Upset-Prone
0%27%50%
Clear Favorite Upset Rate
Expected
22%
Very Shaky
0%23%50%

Calibration

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Probability calibration
An all-in-one chi-square test of the model's probabilities. Matches are grouped by how confident the model was, and within each group the predicted and actual counts of home wins, draws, and away wins are compared. The p-value is plotted; above 0.05 means well-calibrated.
Miscalibrated: under 0.05 * Borderline: 0.05 to 0.1 * Well Calibrated: 0.1 to 0.5 * Excellent: 0.5 and up.
Calibration slope
Checks whether the spread of the probabilities is right. Each probability is turned into log-odds and a line is fit predicting the actual results. A slope of 1.00 is perfect; below 1 is overconfidence (favorites lost more than their odds implied); above 1 is under-confidence.
Overconfident: under 0.85 * Calibrated: 0.85 to 1.15 * Underconfident: 1.15 to 1.3 * Very Underconfident: 1.3 and up.
Calibration error (ECE)
The average gap between the model's stated chances and how often the predicted result actually happened. Smaller is better. The gold line is the noise ceiling, the error luck alone can produce even with perfect probabilities; below it, the model's error is no larger than chance.
Well Within Noise: under 0.16 * Near Noise Ceiling: 0.16 to 0.24 * Above Noise: 0.24 to 0.32 * Well Above Noise: 0.32 and up.
Probability calibration
0.75
Excellent
0.010.050.10.51
Calibration slope
Ideal
1.06
Calibrated
0.51.001.5
Calibration error (ECE)
Noise ceiling
0.055
Well Within Noise
00.1600.4

Promotion Playoff

The path the promotion-playoff teams took to determine the final promotion spot. The sections below show matchup heatmaps and round-by-round simulation outcomes.

Finals

Beerschot 5
Oud-Heverlee Leuven 1

Leg 1: Beerschot 1-0 Oud-Heverlee Leuven

Leg 2: Oud-Heverlee Leuven 1-4 Beerschot

Final Table Odds

Each cell is the probability — across 100,000 simulations — that the team (row) finished at that position (column). Rows are sorted by actual finish (champion at top, bottom of the table at the bottom).

Team12345678
Westerlo18.00%14.00%28.00%20.00%9.00%10.00%1.00%—
Excelsior Virton31.00%16.00%19.00%14.00%13.00%1.00%5.00%1.00%
Oud-Heverlee Leuven14.00%21.00%18.00%17.00%16.00%9.00%4.00%1.00%
Union SG31.00%35.00%20.00%7.00%6.00%1.00%——
Beerschot4.00%13.00%10.00%27.00%23.00%14.00%6.00%3.00%
Lommel———4.00%8.00%15.00%32.00%41.00%
Roeselare——2.00%2.00%5.00%25.00%31.00%35.00%
Sporting Lokeren2.00%1.00%3.00%9.00%20.00%25.00%21.00%19.00%

Points Required Per Position

The empirical CDF of simulated point totals per finishing position. Each curve shows, for one position (1st, 2nd, ..., last), the spread of point totals teams accumulated across simulations. Reading the curve at the 50% mark gives the median points typically needed to finish at that position. Steep curves mean the position is tightly clustered around a particular point range; shallow curves mean the position came with a wide variety of point totals.

Stochastic Promotion/Relegation Outcomes

Across 100,000 regular-season simulations from preseason Elo, the probability of each team's next-season outcome — promotion-positive outcomes on the left, relegation-positive on the right. The round buttons switch to heatmaps of how often each pair of teams met in that round of the playoff across the simulations, since every iteration produces a different field.

Team Lost promotion playoff Same level
Beerschot 100% —
Excelsior Virton 47.00% 53.00%
Lommel — 100%
Oud-Heverlee Leuven 100% —
Roeselare — 100%
Sporting Lokeren 3.00% 97.00%
Union SG 66.00% 34.00%
Westerlo 32.00% 68.00%
Loser →
↓ Winner
BeerschotExcelsior VirtonLommelOud-Heverlee LeuvenRoeselareSporting LokerenUnion SGWesterlo
Beerschot50.0%4.00%0.0%2.00%100.0%1.00%40.0%5.00%100.0%1.00%
Excelsior Virton50.0%4.00%75.0%8.00%0.0%1.00%36.0%25.00%83.3%12.00%
Lommel100.0%1.00%
Oud-Heverlee Leuven100.0%2.00%25.0%8.00%38.9%18.00%37.5%8.00%
Roeselare0.0%1.00%100.0%1.00%0.0%1.00%
Sporting Lokeren0.0%1.00%
Union SG60.0%5.00%64.0%25.00%61.1%18.00%100.0%1.00%46.2%13.00%
Westerlo0.0%1.00%16.7%12.00%62.5%8.00%53.8%13.00%

Actual Promotion/Relegation Outcomes

Just the teams that actually reached the promotion playoff. With the field fixed in place, the playoff sim re-runs every tie and tallies how often each team won each round — the table gives those probabilities, and the final round's column is the chance of winning the playoff outright. The round buttons switch to heatmaps of how often each pairing met in that round.

Team Finals
Beerschot 59.89%
Oud-Heverlee Leuven 40.11%
Loser →
↓ Winner
BeerschotOud-Heverlee Leuven
Beerschot59.9%100.00%
Oud-Heverlee Leuven40.1%100.00%

Overall Game Log

Summary of every completed game this season. Sort any column by clicking its header.

Date Opponent ScoreExcitement Pre Elo Opp Elo Win % Tie % Loss %Proj. Margin Elo Δ Points
2019-08-02 Sporting Lokeren W 1-052.0 1544 1562 44.98% 23.18% 31.85%+0.11 +8.3 3
2019-08-02 @ Beerschot L 0-152.0 1562 1544 31.85% 23.18% 44.98%-0.11 -8.4 0
2019-08-03 Excelsior Virton W 1-049.0 1528 1520 48.39% 22.99% 28.63%+0.21 +7.7 3
2019-08-03 @ Oud-Heverlee Leuven L 0-149.0 1520 1528 28.63% 22.99% 48.39%-0.21 -7.7 0
2019-08-03 Westerlo L 0-247.1 1478 1525 40.99% 23.29% 35.71%-0.01 -19.2 0
2019-08-03 @ Lommel W 2-047.1 1525 1478 35.71% 23.29% 40.99%+0.01 +19.2 3
2019-08-04 Roeselare W 3-041.3 1605 1492 60.47% 21.45% 18.08%+0.65 +14.0 3
2019-08-04 @ Union SG L 0-341.3 1492 1605 18.08% 21.45% 60.47%-0.65 -14.0 0
2019-08-09 Oud-Heverlee Leuven W 1-050.1 1544 1535 48.52% 22.98% 28.50%+0.22 +7.6 6
2019-08-09 @ Westerlo L 0-150.1 1535 1544 28.50% 22.98% 48.52%-0.22 -7.6 3
2019-08-10 Beerschot D 1-165.2 1478 1553 37.00% 23.31% 39.69%-0.13 +0.1 1
2019-08-10 @ Roeselare D 1-165.2 1553 1478 39.69% 23.31% 37.00%+0.13 -0.1 4
2019-08-10 Union SG L 0-153.0 1512 1619 32.56% 23.21% 44.23%-0.26 -8.5 0
2019-08-10 @ Excelsior Virton W 1-053.0 1619 1512 44.23% 23.21% 32.56%+0.26 +8.5 6
2019-08-11 Lommel D 0-059.9 1554 1459 58.58% 21.80% 19.63%+0.57 -2.4 1
2019-08-11 @ Sporting Lokeren D 0-059.9 1459 1554 19.63% 21.80% 58.58%-0.57 +2.4 1
2019-08-16 Beerschot W 3-045.7 1528 1553 43.98% 23.22% 32.80%+0.08 +23.4 6
2019-08-16 @ Oud-Heverlee Leuven L 0-345.7 1553 1528 32.80% 23.22% 43.98%-0.08 -23.4 4
2019-08-17 Excelsior Virton L 0-344.1 1462 1503 41.68% 23.28% 35.04%+0.01 -28.2 1
2019-08-17 @ Lommel W 3-044.1 1503 1462 35.04% 23.28% 41.68%-0.01 +28.2 3
2019-08-17 Roeselare W 4-145.5 1552 1478 56.29% 22.16% 21.55%+0.49 +13.8 9
2019-08-17 @ Westerlo L 1-445.5 1478 1552 21.55% 22.16% 56.29%-0.49 -13.8 1
2019-08-18 Sporting Lokeren W 3-153.0 1627 1551 56.56% 22.12% 21.32%+0.50 +9.7 9
2019-08-18 @ Union SG L 1-353.0 1551 1627 21.32% 22.12% 56.56%-0.50 -9.7 1
2019-08-30 Union SG W 1-057.5 1529 1637 32.45% 23.20% 44.35%-0.27 +10.8 7
2019-08-30 @ Beerschot L 0-157.5 1637 1529 44.35% 23.20% 32.45%+0.27 -10.8 9
2019-08-31 Lommel D 1-160.5 1464 1433 51.29% 22.75% 25.96%+0.31 -1.3 2
2019-08-31 @ Roeselare D 1-160.5 1433 1464 25.96% 22.75% 51.29%-0.31 +1.3 2
2019-08-31 Oud-Heverlee Leuven L 0-251.8 1542 1551 46.12% 23.12% 30.75%+0.14 -21.1 1
2019-08-31 @ Sporting Lokeren W 2-051.8 1551 1542 30.75% 23.12% 46.12%-0.14 +21.1 9
2019-09-01 Westerlo W 1-052.4 1532 1566 42.74% 23.26% 34.00%+0.04 +8.8 6
2019-09-01 @ Excelsior Virton L 0-152.4 1566 1532 34.00% 23.26% 42.74%-0.04 -8.8 9
2019-09-06 Union SG D 2-273.0 1435 1626 22.76% 22.35% 54.89%-0.61 +1.3 3
2019-09-06 @ Lommel D 2-273.0 1626 1435 54.89% 22.35% 22.76%+0.61 -1.3 10
2019-09-07 Beerschot W 2-046.3 1557 1540 49.52% 22.90% 27.58%+0.25 +14.0 12
2019-09-07 @ Westerlo L 0-246.3 1540 1557 27.58% 22.90% 49.52%-0.25 -14.0 7
2019-09-07 Roeselare W 4-039.6 1572 1463 60.08% 21.52% 18.39%+0.63 +18.6 12
2019-09-07 @ Oud-Heverlee Leuven L 0-439.6 1463 1572 18.39% 21.52% 60.08%-0.63 -18.6 2
2019-09-08 Sporting Lokeren W 4-043.6 1540 1521 49.89% 22.87% 27.23%+0.26 +26.3 9
2019-09-08 @ Excelsior Virton L 0-443.6 1521 1540 27.23% 22.87% 49.89%-0.26 -26.3 1
2019-09-13 Westerlo D 1-166.4 1494 1571 36.72% 23.31% 39.97%-0.14 +0.2 2
2019-09-13 @ Sporting Lokeren D 1-166.4 1571 1494 39.97% 23.31% 36.72%+0.14 -0.2 13
2019-09-14 Lommel W 2-038.8 1526 1436 58.09% 21.88% 20.03%+0.56 +10.6 10
2019-09-14 @ Beerschot L 0-238.8 1436 1526 20.03% 21.88% 58.09%-0.56 -10.6 3
2019-09-14 Oud-Heverlee Leuven D 1-170.9 1625 1591 51.70% 22.71% 25.59%+0.32 -1.4 11
2019-09-14 @ Union SG D 1-170.9 1591 1625 25.59% 22.71% 51.70%-0.32 +1.4 13
2019-09-15 Excelsior Virton FL57.3 1445 1567 30.62% 23.12% 46.26%-0.33 +0.0 2
2019-09-15 @ Roeselare FW57.3 1567 1445 46.26% 23.12% 30.62%+0.33 +0.0 12
2019-09-20 Roeselare W 2-039.3 1495 1445 53.58% 22.51% 23.91%+0.39 +12.4 5
2019-09-20 @ Sporting Lokeren L 0-239.3 1445 1495 23.91% 22.51% 53.58%-0.39 -12.4 2
2019-09-21 Beerschot W 3-044.3 1567 1537 51.17% 22.76% 26.07%+0.31 +19.4 15
2019-09-21 @ Excelsior Virton L 0-344.3 1537 1567 26.07% 22.76% 51.17%-0.31 -19.4 10
2019-09-21 Union SG L 1-263.3 1571 1624 40.10% 23.31% 36.59%-0.04 -9.4 13
2019-09-21 @ Westerlo W 2-163.3 1624 1571 36.59% 23.31% 40.10%+0.04 +9.4 14
2019-09-22 Lommel W 1-042.7 1592 1426 65.57% 20.27% 14.17%+0.87 +4.0 16
2019-09-22 @ Oud-Heverlee Leuven L 0-142.7 1426 1592 14.17% 20.27% 65.57%-0.87 -4.0 3
2019-09-27 Westerlo L 0-243.3 1432 1561 29.75% 23.06% 47.19%-0.36 -14.9 2
2019-09-27 @ Roeselare W 2-043.3 1561 1432 47.19% 23.06% 29.75%+0.36 +14.9 16
2019-09-28 Excelsior Virton W 2-158.8 1633 1586 53.22% 22.55% 24.23%+0.38 +6.3 17
2019-09-28 @ Union SG L 1-258.8 1586 1633 24.23% 22.55% 53.22%-0.38 -6.3 15
2019-09-28 Oud-Heverlee Leuven L 1-259.9 1517 1596 36.40% 23.30% 40.29%-0.15 -8.8 10
2019-09-28 @ Beerschot W 2-159.9 1596 1517 40.29% 23.30% 36.40%+0.15 +8.8 19
2019-09-29 Sporting Lokeren D 1-161.4 1422 1507 35.48% 23.29% 41.23%-0.17 +0.3 4
2019-09-29 @ Lommel D 1-161.4 1507 1422 41.23% 23.29% 35.48%+0.17 -0.3 6
2019-10-04 Roeselare W 2-148.2 1422 1417 47.93% 23.02% 29.05%+0.20 +7.3 7
2019-10-04 @ Lommel L 1-248.2 1417 1422 29.05% 23.02% 47.93%-0.20 -7.3 2
2019-10-05 Excelsior Virton L 0-158.0 1576 1580 46.87% 23.08% 30.05%+0.17 -11.4 16
2019-10-05 @ Westerlo W 1-058.0 1580 1576 30.05% 23.08% 46.87%-0.17 +11.4 18
2019-10-05 Sporting Lokeren L 2-371.5 1605 1507 58.96% 21.73% 19.31%+0.59 -12.4 19
2019-10-05 @ Oud-Heverlee Leuven W 3-271.5 1507 1605 19.31% 21.73% 58.96%-0.59 +12.4 9
2019-10-06 Beerschot D 1-169.7 1639 1509 62.25% 21.08% 16.67%+0.73 -2.5 18
2019-10-06 @ Union SG D 1-169.7 1509 1639 16.67% 21.08% 62.25%-0.73 +2.5 11
2019-10-11 Westerlo L 1-259.8 1511 1565 39.97% 23.31% 36.72%-0.04 -9.4 11
2019-10-11 @ Beerschot W 2-159.8 1565 1511 36.72% 23.31% 39.97%+0.04 +9.4 19
2019-10-12 Lommel W 1-042.9 1591 1429 65.17% 20.37% 14.46%+0.86 +4.1 21
2019-10-12 @ Excelsior Virton L 0-142.9 1429 1591 14.46% 20.37% 65.17%-0.86 -4.1 7
2019-10-12 Oud-Heverlee Leuven W 3-157.1 1410 1592 23.69% 22.48% 53.83%-0.58 +20.9 5
2019-10-12 @ Roeselare L 1-357.1 1592 1410 53.83% 22.48% 23.69%+0.58 -20.9 19
2019-10-13 Union SG D 1-169.3 1519 1637 31.18% 23.14% 45.67%-0.31 +0.8 10
2019-10-13 @ Sporting Lokeren D 1-169.3 1637 1519 45.67% 23.14% 31.18%+0.31 -0.8 19
2019-10-18 Sporting Lokeren W 2-044.8 1574 1520 54.11% 22.45% 23.44%+0.41 +12.2 22
2019-10-18 @ Westerlo L 0-244.8 1520 1574 23.44% 22.45% 54.11%-0.41 -12.2 10
2019-10-19 Excelsior Virton W 2-161.2 1502 1595 34.36% 23.27% 42.37%-0.21 +9.8 14
2019-10-19 @ Beerschot L 1-261.2 1595 1502 42.37% 23.27% 34.36%+0.21 -9.8 21
2019-10-19 Union SG W 3-052.0 1431 1636 21.43% 22.14% 56.43%-0.67 +36.6 8
2019-10-19 @ Roeselare L 0-352.0 1636 1431 56.43% 22.14% 21.43%+0.67 -36.6 19
2019-10-20 Oud-Heverlee Leuven L 0-242.7 1425 1572 27.65% 22.91% 49.44%-0.43 -14.0 7
2019-10-20 @ Lommel W 2-042.7 1572 1425 49.44% 22.91% 27.65%+0.43 +14.0 22
2019-10-25 Westerlo W 2-159.5 1586 1586 47.22% 23.06% 29.72%+0.18 +7.4 25
2019-10-25 @ Oud-Heverlee Leuven L 1-259.5 1586 1586 29.72% 23.06% 47.22%-0.18 -7.4 22
2019-10-26 Beerschot W 2-154.7 1508 1512 46.83% 23.08% 30.09%+0.17 +7.5 13
2019-10-26 @ Sporting Lokeren L 1-254.7 1512 1508 30.09% 23.08% 46.83%-0.17 -7.5 14
2019-10-26 Lommel W 2-148.2 1599 1411 67.46% 19.72% 12.81%+0.96 +3.4 22
2019-10-26 @ Union SG L 1-248.2 1411 1599 12.81% 19.72% 67.46%-0.96 -3.4 7
2019-10-27 Roeselare W 3-257.0 1585 1467 60.99% 21.34% 17.66%+0.67 +4.5 24
2019-10-27 @ Excelsior Virton L 2-357.0 1467 1585 17.66% 21.34% 60.99%-0.67 -4.5 8
2019-11-02 Lommel D 1-164.5 1579 1408 66.00% 20.15% 13.85%+0.89 -3.0 23
2019-11-02 @ Westerlo D 1-164.5 1408 1579 13.85% 20.15% 66.00%-0.89 +3.0 8
2019-11-02 Roeselare W 2-151.0 1504 1463 52.51% 22.63% 24.86%+0.35 +6.4 17
2019-11-02 @ Beerschot L 1-251.0 1463 1504 24.86% 22.63% 52.51%-0.35 -6.4 8
2019-11-03 Excelsior Virton L 1-355.9 1515 1590 36.97% 23.31% 39.72%-0.13 -15.3 13
2019-11-03 @ Sporting Lokeren W 3-155.9 1590 1515 39.72% 23.31% 36.97%+0.13 +15.3 27
2019-11-08 Beerschot W 1-048.8 1410 1510 33.51% 23.24% 43.25%-0.23 +10.6 11
2019-11-08 @ Lommel L 0-148.8 1510 1410 43.25% 23.24% 33.51%+0.23 -10.6 17
2019-11-08 Oud-Heverlee Leuven L 0-159.6 1605 1593 48.94% 22.95% 28.12%+0.23 -11.8 27
2019-11-08 @ Excelsior Virton W 1-059.6 1593 1605 28.12% 22.95% 48.94%-0.23 +11.8 28
2019-11-08 Sporting Lokeren W 2-154.0 1457 1500 41.46% 23.29% 35.25%+0.00 +8.5 11
2019-11-08 @ Roeselare L 1-254.0 1500 1457 35.25% 23.29% 41.46%+0.00 -8.5 13
2019-11-08 Westerlo L 0-255.6 1603 1576 50.78% 22.80% 26.43%+0.29 -22.9 22
2019-11-08 @ Union SG W 2-055.6 1576 1603 26.43% 22.80% 50.78%-0.29 +22.9 26
2019-11-15 Beerschot L 0-354.1 1605 1500 59.67% 21.60% 18.73%+0.62 -38.5 28
2019-11-15 @ Oud-Heverlee Leuven W 3-054.1 1500 1605 18.73% 21.60% 59.67%-0.62 +38.5 20
2019-11-16 Lommel L 0-152.0 1491 1421 55.91% 22.21% 21.88%+0.47 -13.2 13
2019-11-16 @ Sporting Lokeren W 1-052.0 1421 1491 21.88% 22.21% 55.91%-0.47 +13.2 14
2019-11-17 Excelsior Virton W 2-049.7 1580 1593 45.55% 23.15% 31.30%+0.13 +15.5 25
2019-11-17 @ Union SG L 0-249.7 1593 1580 31.30% 23.15% 45.55%-0.13 -15.5 27
2019-11-17 Westerlo L 3-557.1 1465 1599 29.17% 23.02% 47.81%-0.37 -10.7 11
2019-11-17 @ Roeselare W 5-357.1 1599 1465 47.81% 23.02% 29.17%+0.37 +10.7 29
2019-11-22 Oud-Heverlee Leuven L 1-266.4 1610 1566 52.80% 22.60% 24.60%+0.36 -11.9 29
2019-11-22 @ Westerlo W 2-166.4 1566 1610 24.60% 22.60% 52.80%-0.36 +11.9 31
2019-11-23 Sporting Lokeren D 1-164.9 1538 1478 54.78% 22.36% 22.86%+0.43 -1.7 21
2019-11-23 @ Beerschot D 1-164.9 1478 1538 22.86% 22.36% 54.78%-0.43 +1.7 14
2019-11-23 Union SG D 0-060.2 1434 1595 25.98% 22.75% 51.27%-0.49 +1.5 15
2019-11-23 @ Lommel D 0-060.2 1595 1434 51.27% 22.75% 25.98%+0.49 -1.5 26
2019-11-24 Roeselare D 1-165.9 1578 1454 61.55% 21.23% 17.22%+0.70 -2.5 28
2019-11-24 @ Excelsior Virton D 1-165.9 1454 1578 17.22% 21.23% 61.55%-0.70 +2.5 12
2019-11-29 Sporting Lokeren W 2-152.5 1578 1480 58.98% 21.73% 19.29%+0.59 +5.1 34
2019-11-29 @ Oud-Heverlee Leuven L 1-252.5 1480 1578 19.29% 21.73% 58.98%-0.59 -5.1 14
2019-11-30 Lommel W 3-145.2 1457 1436 50.04% 22.86% 27.10%+0.27 +11.9 15
2019-11-30 @ Roeselare L 1-345.2 1436 1457 27.10% 22.86% 50.04%-0.27 -11.9 15
2019-11-30 Westerlo D 1-169.8 1575 1598 44.35% 23.20% 32.45%+0.09 -0.6 29
2019-11-30 @ Excelsior Virton D 1-169.8 1598 1575 32.45% 23.20% 44.35%-0.09 +0.6 30
2019-12-01 Beerschot L 0-255.3 1594 1537 54.46% 22.40% 23.14%+0.42 -24.4 26
2019-12-01 @ Union SG W 2-055.3 1537 1594 23.14% 22.40% 54.46%-0.42 +24.4 24
2019-12-06 Oud-Heverlee Leuven W 3-265.8 1424 1583 26.18% 22.77% 51.05%-0.48 +10.9 18
2019-12-06 @ Lommel L 2-365.8 1583 1424 51.05% 22.77% 26.18%+0.48 -10.9 34
2019-12-07 Excelsior Virton D 1-168.8 1561 1575 45.49% 23.15% 31.35%+0.12 -0.7 25
2019-12-07 @ Beerschot D 1-168.8 1575 1561 31.35% 23.15% 45.49%-0.12 +0.7 30
2019-12-07 Roeselare L 1-353.3 1475 1469 48.11% 23.00% 28.89%+0.21 -19.0 14
2019-12-07 @ Sporting Lokeren W 3-153.3 1469 1475 28.89% 23.00% 48.11%-0.21 +19.0 18
2019-12-08 Union SG L 0-353.7 1598 1570 51.03% 22.77% 26.20%+0.30 -33.4 30
2019-12-08 @ Westerlo W 3-053.7 1570 1598 26.20% 22.77% 51.03%-0.30 +33.4 29
2019-12-13 Oud-Heverlee Leuven D 2-272.7 1488 1572 35.60% 23.29% 41.11%-0.17 +0.2 19
2019-12-13 @ Roeselare D 2-272.7 1572 1488 41.11% 23.29% 35.60%+0.17 -0.2 35
2019-12-14 Beerschot L 0-157.4 1565 1560 47.98% 23.01% 29.01%+0.20 -11.6 30
2019-12-14 @ Westerlo W 1-057.4 1560 1565 29.01% 23.01% 47.98%-0.20 +11.6 28
2019-12-14 Lommel W 3-145.5 1576 1435 63.21% 20.86% 15.93%+0.77 +7.4 33
2019-12-14 @ Excelsior Virton L 1-345.5 1435 1576 15.93% 20.86% 63.21%-0.77 -7.4 18
2019-12-15 Sporting Lokeren D 1-167.0 1603 1456 63.83% 20.71% 15.46%+0.79 -2.7 30
2019-12-15 @ Union SG D 1-167.0 1456 1603 15.46% 20.71% 63.83%-0.79 +2.7 15
2019-12-20 Beerschot W 1-053.3 1427 1572 27.91% 22.93% 49.16%-0.42 +11.8 21
2019-12-20 @ Lommel L 0-153.3 1572 1427 49.16% 22.93% 27.91%+0.42 -11.8 28
2019-12-21 Excelsior Virton L 0-253.6 1572 1583 45.91% 23.13% 30.96%+0.14 -21.0 35
2019-12-21 @ Oud-Heverlee Leuven W 2-053.6 1583 1572 30.96% 23.13% 45.91%-0.14 +21.0 36
2019-12-21 Union SG D 1-167.3 1488 1600 31.87% 23.18% 44.95%-0.29 +0.7 20
2019-12-21 @ Roeselare D 1-167.3 1600 1488 44.95% 23.18% 31.87%+0.29 -0.7 31
2019-12-22 Westerlo L 0-444.0 1458 1553 34.17% 23.26% 42.57%-0.21 -31.6 15
2019-12-22 @ Sporting Lokeren W 4-044.0 1553 1458 42.57% 23.26% 34.17%+0.21 +31.6 33
2020-01-10 Roeselare D 1-166.2 1560 1489 56.04% 22.19% 21.77%+0.48 -1.9 29
2020-01-10 @ Beerschot D 1-166.2 1489 1560 21.77% 22.19% 56.04%-0.48 +1.9 21
2020-01-11 Lommel W 2-149.8 1585 1439 63.68% 20.75% 15.57%+0.79 +4.2 36
2020-01-11 @ Westerlo L 1-249.8 1439 1585 15.57% 20.75% 63.68%-0.79 -4.2 21
2020-01-11 Oud-Heverlee Leuven L 2-371.3 1600 1551 53.41% 22.53% 24.06%+0.38 -11.4 31
2020-01-11 @ Union SG W 3-271.3 1551 1600 24.06% 22.53% 53.41%-0.38 +11.4 38
2020-01-12 Sporting Lokeren L 1-265.1 1604 1427 66.50% 20.01% 13.49%+0.92 -14.6 36
2020-01-12 @ Excelsior Virton W 2-165.1 1427 1604 13.49% 20.01% 66.50%-0.92 +14.6 18
2020-01-17 Sporting Lokeren W 1-043.5 1435 1441 46.51% 23.10% 30.39%+0.16 +8.0 24
2020-01-17 @ Lommel L 0-143.5 1441 1435 30.39% 23.10% 46.51%-0.16 -8.0 18
2020-01-18 Excelsior Virton L 0-247.6 1490 1589 33.64% 23.25% 43.11%-0.23 -16.4 21
2020-01-18 @ Roeselare W 2-047.6 1589 1490 43.11% 23.25% 33.64%+0.23 +16.4 39
2020-01-18 Union SG D 1-169.0 1558 1588 43.28% 23.24% 33.48%+0.06 -0.5 30
2020-01-18 @ Beerschot D 1-169.0 1588 1558 33.48% 23.24% 43.28%-0.06 +0.5 32
2020-01-19 Westerlo L 1-359.3 1562 1589 43.75% 23.22% 33.02%+0.07 -17.5 38
2020-01-19 @ Oud-Heverlee Leuven W 3-159.3 1589 1562 33.02% 23.22% 43.75%-0.07 +17.5 39
2020-01-24 Oud-Heverlee Leuven D 1-163.3 1433 1545 31.97% 23.18% 44.84%-0.28 +0.7 19
2020-01-24 @ Sporting Lokeren D 1-163.3 1545 1433 44.84% 23.18% 31.97%+0.28 -0.7 39
2020-01-25 Beerschot FL62.6 1606 1558 53.38% 22.53% 24.09%+0.38 +0.0 39
2020-01-25 @ Excelsior Virton FL62.6 1558 1606 24.09% 22.53% 53.38%-0.38 +0.0 30
2020-01-25 Roeselare D 1-167.6 1607 1474 62.44% 21.04% 16.53%+0.73 -2.6 40
2020-01-25 @ Westerlo D 1-167.6 1474 1607 16.53% 21.04% 62.44%-0.73 +2.6 22
2020-01-26 Lommel D 2-272.4 1589 1443 63.67% 20.75% 15.58%+0.79 -2.0 33
2020-01-26 @ Union SG D 2-272.4 1443 1589 15.58% 20.75% 63.67%-0.79 +2.0 25
2020-01-31 Westerlo W 1-054.8 1558 1604 40.99% 23.29% 35.71%-0.01 +9.2 33
2020-01-31 @ Beerschot L 0-154.8 1604 1558 35.71% 23.29% 40.99%+0.01 -9.1 40
2020-02-01 Roeselare W 2-152.1 1544 1477 55.63% 22.25% 22.12%+0.46 +5.8 42
2020-02-01 @ Oud-Heverlee Leuven L 1-252.1 1477 1544 22.12% 22.25% 55.63%-0.46 -5.8 22
2020-02-01 Union SG L 0-243.4 1434 1587 26.93% 22.84% 50.22%-0.45 -13.7 19
2020-02-01 @ Sporting Lokeren W 2-043.4 1587 1434 50.22% 22.84% 26.93%+0.45 +13.7 36
2020-02-02 Excelsior Virton D 0-061.0 1445 1606 26.03% 22.76% 51.22%-0.49 +1.5 26
2020-02-02 @ Lommel D 0-061.0 1606 1445 51.22% 22.76% 26.03%+0.49 -1.5 40
2020-02-07 Beerschot D 1-165.4 1471 1567 34.05% 23.26% 42.69%-0.22 +0.4 23
2020-02-07 @ Roeselare D 1-165.4 1567 1471 42.69% 23.26% 34.05%+0.22 -0.4 34
2020-02-08 Lommel W 3-038.0 1550 1447 59.51% 21.63% 18.86%+0.61 +14.5 45
2020-02-08 @ Oud-Heverlee Leuven L 0-338.0 1447 1550 18.86% 21.63% 59.51%-0.61 -14.5 26
2020-02-08 Union SG D 0-065.5 1604 1600 47.85% 23.02% 29.13%+0.20 -1.1 41
2020-02-08 @ Excelsior Virton D 0-065.5 1600 1604 29.13% 23.02% 47.85%-0.20 +1.1 37
2020-02-11 Union SG D 0-064.5 1565 1602 42.34% 23.27% 34.39%+0.03 -0.4 46
2020-02-11 @ Oud-Heverlee Leuven D 0-064.5 1602 1565 34.39% 23.27% 42.34%-0.03 +0.5 38
2020-02-12 Sporting Lokeren W 3-254.1 1595 1420 66.28% 20.07% 13.65%+0.91 +3.5 43
2020-02-12 @ Westerlo L 2-354.1 1420 1595 13.65% 20.07% 66.28%-0.91 -3.5 19
2020-02-14 Oud-Heverlee Leuven W 2-158.3 1566 1564 47.62% 23.04% 29.34%+0.19 +7.4 37
2020-02-14 @ Beerschot L 1-258.3 1564 1566 29.34% 23.04% 47.62%-0.19 -7.4 46
2020-02-15 Roeselare D 3-377.5 1602 1471 62.25% 21.08% 16.67%+0.72 -1.6 39
2020-02-15 @ Union SG D 3-377.5 1471 1602 16.67% 21.08% 62.25%-0.72 +1.6 24
2020-02-15 Westerlo L 0-147.3 1432 1598 25.40% 22.69% 51.91%-0.51 -6.9 26
2020-02-15 @ Lommel W 1-047.3 1598 1432 51.91% 22.69% 25.40%+0.51 +6.9 46
2020-02-16 Excelsior Virton L 0-242.1 1417 1603 23.28% 22.42% 54.30%-0.59 -12.1 19
2020-02-16 @ Sporting Lokeren W 2-042.1 1603 1417 54.30% 22.42% 23.28%+0.59 +12.1 44
2020-02-21 Union SG L 3-563.8 1557 1600 41.40% 23.29% 35.31%+0.00 -14.1 46
2020-02-21 @ Oud-Heverlee Leuven W 5-363.8 1600 1557 35.31% 23.29% 41.40%+0.00 +14.2 42
2020-02-22 Excelsior Virton W 2-161.0 1605 1615 46.02% 23.13% 30.85%+0.14 +7.7 49
2020-02-22 @ Westerlo L 1-261.0 1615 1605 30.85% 23.13% 46.02%-0.14 -7.7 44
2020-02-22 Sporting Lokeren D 2-266.5 1473 1405 55.68% 22.24% 22.08%+0.46 -1.4 25
2020-02-22 @ Roeselare D 2-266.5 1405 1473 22.08% 22.24% 55.68%-0.46 +1.4 20
2020-02-23 Lommel W 2-148.8 1574 1425 63.93% 20.69% 15.38%+0.80 +4.1 40
2020-02-23 @ Beerschot L 1-248.8 1425 1574 15.38% 20.69% 63.93%-0.80 -4.1 26
2020-02-28 Beerschot L 0-241.3 1406 1578 24.83% 22.62% 52.55%-0.53 -12.8 20
2020-02-28 @ Sporting Lokeren W 2-041.3 1578 1406 52.55% 22.62% 24.83%+0.53 +12.8 43
2020-02-28 Oud-Heverlee Leuven W 4-149.8 1608 1543 55.33% 22.29% 22.38%+0.45 +14.3 47
2020-02-28 @ Excelsior Virton L 1-449.8 1543 1608 22.38% 22.29% 55.33%-0.45 -14.3 46
2020-02-28 Roeselare D 0-055.1 1421 1471 40.45% 23.30% 36.25%-0.03 -0.2 27
2020-02-28 @ Lommel D 0-055.1 1471 1421 36.25% 23.30% 40.45%+0.03 +0.2 26
2020-02-28 Westerlo W 3-156.7 1615 1613 47.55% 23.04% 29.41%+0.19 +12.8 45
2020-02-28 @ Union SG L 1-356.7 1613 1615 29.41% 23.04% 47.55%-0.19 -12.8 49

Playoff Game Log

Every playoff game for the team selected at the top of the tab (empty if they didn't reach the postseason). Sort any column by clicking its header. @ before an opponent name indicates an away game; the record column shows the team's running playoff record.

Date Opponent ScoreExcitement Pre Elo Opp Elo Win % Tie % Loss %Proj. Margin Elo Δ Record
2020-03-08 Oud-Heverlee Leuven W 1-049.4 1591 1528 55.01% 22.33% 22.66%+0.44 +6.3 1-0
2020-03-08 @ Beerschot L 0-149.4 1528 1591 22.66% 22.33% 55.01%-0.44 -6.3 0-1
2020-08-02 Beerschot L 1-453.6 1522 1597 36.97% 23.31% 39.72%-0.13 -21.7 0-2
2020-08-02 @ Oud-Heverlee Leuven W 4-153.6 1597 1522 39.72% 23.31% 36.97%+0.13 +21.7 2-0

Biggest Upsets

The 25 games where the underdog won despite the lowest pregame win probability. Underdog Win % is the winner's pregame chance of winning the game (lower = bigger upset). @ before a team name indicates the away side. An asterisk (*) after the date marks a playoff game.

# Date Underdog Win % Winning Team Losing Team
Team Elo Score Team Elo Score
1 2020-01-12 13.49% Sporting Lokeren 1427 2 @ Excelsior Virton 1604 1
2 2019-11-15 18.73% Beerschot 1500 3 @ Oud-Heverlee Leuven 1605 0
3 2019-10-05 19.31% Sporting Lokeren 1507 3 @ Oud-Heverlee Leuven 1605 2
4 2019-10-19 21.43% @ Roeselare 1431 3 Union SG 1636 0
5 2019-11-16 21.88% Lommel 1421 1 @ Sporting Lokeren 1491 0
6 2019-12-01 23.14% Beerschot 1537 2 @ Union SG 1594 0
7 2019-10-12 23.69% @ Roeselare 1410 3 Oud-Heverlee Leuven 1592 1
8 2020-01-11 24.06% Oud-Heverlee Leuven 1551 3 @ Union SG 1600 2
9 2019-11-22 24.60% Oud-Heverlee Leuven 1566 2 @ Westerlo 1610 1
10 2019-12-06 26.18% @ Lommel 1424 3 Oud-Heverlee Leuven 1583 2
11 2019-12-08 26.20% Union SG 1570 3 @ Westerlo 1598 0
12 2019-11-08 26.43% Westerlo 1576 2 @ Union SG 1603 0
13 2019-12-20 27.91% @ Lommel 1427 1 Beerschot 1572 0
14 2019-11-08 28.12% Oud-Heverlee Leuven 1593 1 @ Excelsior Virton 1605 0
15 2019-12-07 28.89% Roeselare 1469 3 @ Sporting Lokeren 1475 1
16 2019-12-14 29.01% Beerschot 1560 1 @ Westerlo 1565 0
17 2019-10-05 30.05% Excelsior Virton 1580 1 @ Westerlo 1576 0
18 2019-08-31 30.75% Oud-Heverlee Leuven 1551 2 @ Sporting Lokeren 1542 0
19 2019-12-21 30.96% Excelsior Virton 1583 2 @ Oud-Heverlee Leuven 1572 0
20 2019-08-30 32.45% @ Beerschot 1529 1 Union SG 1637 0
21 2020-01-19 33.02% Westerlo 1589 3 @ Oud-Heverlee Leuven 1562 1
22 2019-11-08 33.51% @ Lommel 1410 1 Beerschot 1510 0
23 2019-10-19 34.36% @ Beerschot 1502 2 Excelsior Virton 1595 1
24 2019-08-17 35.04% Excelsior Virton 1503 3 @ Lommel 1462 0
25 2020-02-21 35.31% Union SG 1600 5 @ Oud-Heverlee Leuven 1557 3

Biggest Elo Changes

The 25 games that resulted in the largest shift in Elo rating.

# Date Elo Δ Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 2019-11-15 38.45 Beerschot 3 1500 18.73% @ Oud-Heverlee Leuven 0 1605 59.67% 21.60%
2 2019-10-19 36.56 @ Roeselare 3 1431 21.43% Union SG 0 1636 56.43% 22.14%
3 2019-12-08 33.44 Union SG 3 1570 26.20% @ Westerlo 0 1598 51.03% 22.77%
4 2019-12-22 31.59 Westerlo 4 1553 42.57% @ Sporting Lokeren 0 1458 34.17% 23.26%
5 2019-08-17 28.23 Excelsior Virton 3 1503 35.04% @ Lommel 0 1462 41.68% 23.28%
6 2019-09-08 26.27 @ Excelsior Virton 4 1540 49.89% Sporting Lokeren 0 1521 27.23% 22.87%
7 2019-12-01 24.39 Beerschot 2 1537 23.14% @ Union SG 0 1594 54.46% 22.40%
8 2019-08-16 23.41 @ Oud-Heverlee Leuven 3 1528 43.98% Beerschot 0 1553 32.80% 23.22%
9 2019-11-08 22.93 Westerlo 2 1576 26.43% @ Union SG 0 1603 50.78% 22.80%
10 2020-08-02 * 21.69 Beerschot 4 1597 39.72% @ Oud-Heverlee Leuven 1 1522 36.97% 23.31%
11 2019-08-31 21.11 Oud-Heverlee Leuven 2 1551 30.75% @ Sporting Lokeren 0 1542 46.12% 23.12%
12 2019-12-21 21.03 Excelsior Virton 2 1583 30.96% @ Oud-Heverlee Leuven 0 1572 45.91% 23.13%
13 2019-10-12 20.90 @ Roeselare 3 1410 23.69% Oud-Heverlee Leuven 1 1592 53.83% 22.48%
14 2019-09-21 19.38 @ Excelsior Virton 3 1567 51.17% Beerschot 0 1537 26.07% 22.76%
15 2019-08-03 19.18 Westerlo 2 1525 35.71% @ Lommel 0 1478 40.99% 23.29%
16 2019-12-07 18.95 Roeselare 3 1469 28.89% @ Sporting Lokeren 1 1475 48.11% 23.00%
17 2019-09-07 18.56 @ Oud-Heverlee Leuven 4 1572 60.08% Roeselare 0 1463 18.39% 21.52%
18 2020-01-19 17.51 Westerlo 3 1589 33.02% @ Oud-Heverlee Leuven 1 1562 43.75% 23.22%
19 2020-01-18 16.45 Excelsior Virton 2 1589 43.11% @ Roeselare 0 1490 33.64% 23.25%
20 2019-11-17 15.52 @ Union SG 2 1580 45.55% Excelsior Virton 0 1593 31.30% 23.15%
21 2019-11-03 15.33 Excelsior Virton 3 1590 39.72% @ Sporting Lokeren 1 1515 36.97% 23.31%
22 2019-09-27 14.90 Westerlo 2 1561 47.19% @ Roeselare 0 1432 29.75% 23.06%
23 2020-01-12 14.60 Sporting Lokeren 2 1427 13.49% @ Excelsior Virton 1 1604 66.50% 20.01%
24 2020-02-08 14.54 @ Oud-Heverlee Leuven 3 1550 59.51% Lommel 0 1447 18.86% 21.63%
25 2020-02-28 14.31 @ Excelsior Virton 4 1608 55.33% Oud-Heverlee Leuven 1 1543 22.38% 22.29%

Most & Least Exciting Games

The season’s games ranked by excitement rating (0–100) — a blend of closeness, upset, team quality, and scoring. An asterisk (*) after the date indicates a playoff game.

# Date Excitement Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 2020-02-15 77.5 @ Union SG 3 1602 62.25% Roeselare 3 1471 16.67% 21.08%
2 2019-09-06 73.0 @ Lommel 2 1435 22.76% Union SG 2 1626 54.89% 22.35%
3 2019-12-13 72.7 @ Roeselare 2 1488 35.60% Oud-Heverlee Leuven 2 1572 41.11% 23.29%
4 2020-01-26 72.4 @ Union SG 2 1589 63.67% Lommel 2 1443 15.58% 20.75%
5 2019-10-05 71.5 Sporting Lokeren 3 1507 19.31% @ Oud-Heverlee Leuven 2 1605 58.96% 21.73%
6 2020-01-11 71.3 Oud-Heverlee Leuven 3 1551 24.06% @ Union SG 2 1600 53.41% 22.53%
7 2019-09-14 70.9 @ Union SG 1 1625 51.70% Oud-Heverlee Leuven 1 1591 25.59% 22.71%
8 2019-11-30 69.8 @ Excelsior Virton 1 1575 44.35% Westerlo 1 1598 32.45% 23.20%
9 2019-10-06 69.7 @ Union SG 1 1639 62.25% Beerschot 1 1509 16.67% 21.08%
10 2019-10-13 69.3 @ Sporting Lokeren 1 1519 31.18% Union SG 1 1637 45.67% 23.14%
11 2020-01-18 69.0 @ Beerschot 1 1558 43.28% Union SG 1 1588 33.48% 23.24%
12 2019-12-07 68.8 @ Beerschot 1 1561 45.49% Excelsior Virton 1 1575 31.35% 23.15%
13 2020-01-25 67.6 @ Westerlo 1 1607 62.44% Roeselare 1 1474 16.53% 21.04%
14 2019-12-21 67.3 @ Roeselare 1 1488 31.87% Union SG 1 1600 44.95% 23.18%
15 2019-12-15 67.0 @ Union SG 1 1603 63.83% Sporting Lokeren 1 1456 15.46% 20.71%
16 2020-02-22 66.5 @ Roeselare 2 1473 55.68% Sporting Lokeren 2 1405 22.08% 22.24%
17 2019-09-13 66.4 @ Sporting Lokeren 1 1494 36.72% Westerlo 1 1571 39.97% 23.31%
18 2019-11-22 66.4 Oud-Heverlee Leuven 2 1566 24.60% @ Westerlo 1 1610 52.80% 22.60%
19 2020-01-10 66.2 @ Beerschot 1 1560 56.04% Roeselare 1 1489 21.77% 22.19%
20 2019-11-24 65.9 @ Excelsior Virton 1 1578 61.55% Roeselare 1 1454 17.22% 21.23%
21 2019-12-06 65.8 @ Lommel 3 1424 26.18% Oud-Heverlee Leuven 2 1583 51.05% 22.77%
22 2020-02-08 65.5 @ Excelsior Virton 0 1604 47.85% Union SG 0 1600 29.13% 23.02%
23 2020-02-07 65.4 @ Roeselare 1 1471 34.05% Beerschot 1 1567 42.69% 23.26%
24 2019-08-10 65.2 @ Roeselare 1 1478 37.00% Beerschot 1 1553 39.69% 23.31%
25 2020-01-12 65.1 Sporting Lokeren 2 1427 13.49% @ Excelsior Virton 1 1604 66.50% 20.01%
# Date Excitement Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 2020-02-08 38.0 @ Oud-Heverlee Leuven 3 1550 59.51% Lommel 0 1447 18.86% 21.63%
2 2019-09-14 38.8 @ Beerschot 2 1526 58.09% Lommel 0 1436 20.03% 21.88%
3 2019-09-20 39.3 @ Sporting Lokeren 2 1495 53.58% Roeselare 0 1445 23.91% 22.51%
4 2019-09-07 39.6 @ Oud-Heverlee Leuven 4 1572 60.08% Roeselare 0 1463 18.39% 21.52%
5 2019-08-04 41.3 @ Union SG 3 1605 60.47% Roeselare 0 1492 18.08% 21.45%
6 2020-02-28 41.3 Beerschot 2 1578 52.55% @ Sporting Lokeren 0 1406 24.83% 22.62%
7 2020-02-16 42.1 Excelsior Virton 2 1603 54.30% @ Sporting Lokeren 0 1417 23.28% 22.42%
8 2019-09-22 42.7 @ Oud-Heverlee Leuven 1 1592 65.57% Lommel 0 1426 14.17% 20.27%
9 2019-10-20 42.7 Oud-Heverlee Leuven 2 1572 49.44% @ Lommel 0 1425 27.65% 22.91%
10 2019-10-12 42.9 @ Excelsior Virton 1 1591 65.17% Lommel 0 1429 14.46% 20.37%
11 2019-09-27 43.3 Westerlo 2 1561 47.19% @ Roeselare 0 1432 29.75% 23.06%
12 2020-02-01 43.4 Union SG 2 1587 50.22% @ Sporting Lokeren 0 1434 26.93% 22.84%
13 2020-01-17 43.5 @ Lommel 1 1435 46.51% Sporting Lokeren 0 1441 30.39% 23.10%
14 2019-09-08 43.6 @ Excelsior Virton 4 1540 49.89% Sporting Lokeren 0 1521 27.23% 22.87%
15 2019-12-22 44.0 Westerlo 4 1553 42.57% @ Sporting Lokeren 0 1458 34.17% 23.26%
16 2019-08-17 44.1 Excelsior Virton 3 1503 35.04% @ Lommel 0 1462 41.68% 23.28%
17 2019-09-21 44.3 @ Excelsior Virton 3 1567 51.17% Beerschot 0 1537 26.07% 22.76%
18 2019-10-18 44.8 @ Westerlo 2 1574 54.11% Sporting Lokeren 0 1520 23.44% 22.45%
19 2019-11-30 45.2 @ Roeselare 3 1457 50.04% Lommel 1 1436 27.10% 22.86%
20 2019-08-17 45.5 @ Westerlo 4 1552 56.29% Roeselare 1 1478 21.55% 22.16%
21 2019-12-14 45.5 @ Excelsior Virton 3 1576 63.21% Lommel 1 1435 15.93% 20.86%
22 2019-08-16 45.7 @ Oud-Heverlee Leuven 3 1528 43.98% Beerschot 0 1553 32.80% 23.22%
23 2019-09-07 46.3 @ Westerlo 2 1557 49.52% Beerschot 0 1540 27.58% 22.90%
24 2019-08-03 47.1 Westerlo 2 1525 35.71% @ Lommel 0 1478 40.99% 23.29%
25 2020-02-15 47.3 Westerlo 1 1598 51.91% @ Lommel 0 1432 25.40% 22.69%