Lab

Where was Vesta right, and where wrong?

Over 311 league matches of Borussia Dortmund since 2017-18, each forecast by a model that had not seen that season, Vesta's likeliest result happened 63 times in 100; it said 58. Draws: said 22, happened 19 in 100.

Since its public record began on 30 Sep 2026: 51 league matches settled, the likeliest result happened 61 times in 100 (Vesta said 50). Every published forecast

League data to · Vesta · out of sample, 2017-18 on

Free
Matches311each forecast before its season
Likeliest result happened63 in 100Vesta said 58
Draws19 in 100Vesta said 22
Goals a match3.53Vesta expected 3.24
Likeliest score happened9 in 100Vesta said 11

When Vesta says N in 100, does it happen N times?Said v happened

every home win, draw and away win chance, grouped in bands of 10; on the line = exactly right
00252550507575100100 Vesta said (in 100)
Chance bandChancesSaidHappenedGap
0–10 in 100368.213.9+5.7
10–20 in 10021815.914.7−1.2
20–30 in 10030924.019.4−4.6
30–40 in 1007434.133.8−0.4
40–50 in 1008244.747.6+2.8
50–60 in 1008255.769.5+13.8
60–70 in 1007665.265.8+0.6
70–80 in 1005274.275.0+0.8

The biggest surprises

results Vesta gave the least chance that happened
  1. Borussia Dortmund 0-2 Mainz 05Wed 17 Jun 2020 · Bundesliga8 in 100
  2. Borussia Dortmund 1-2 Werder BremenSat 9 Dec 2017 · Bundesliga9 in 100
  3. Borussia Dortmund 1-2 Mainz 05Sat 5 May 2018 · Bundesliga10 in 100
  4. Borussia Dortmund 1-2 FC CologneSat 28 Nov 2020 · Bundesliga10 in 100
  5. Borussia Dortmund 2-3 HoffenheimSun 25 Feb 2024 · Bundesliga10 in 100
  6. Borussia Dortmund 3-4 BochumSat 30 Apr 2022 · Bundesliga12 in 100
  7. Borussia Dortmund 2-3 RasenBallsport LeipzigSat 14 Oct 2017 · Bundesliga12 in 100
  8. Borussia Dortmund 2-3 Werder BremenSat 20 Aug 2022 · Bundesliga13 in 100
  9. Borussia Dortmund 2-4 Schalke 04Sat 27 Apr 2019 · Bundesliga13 in 100
  10. Borussia Dortmund 2-2 FreiburgSat 27 Jan 2018 · Bundesliga13 in 100
  11. Borussia Dortmund 0-1 AugsburgSat 8 Mar 2025 · Bundesliga14 in 100
  12. Borussia Dortmund 2-2 Mainz 05Sat 27 May 2023 · Bundesliga15 in 100

The surest calls that missed

the strongest favourites that did not win
  1. Borussia Dortmund 2-2 FreiburgSat 27 Jan 2018 · home win said80 in 100
  2. Borussia Dortmund 0-2 Mainz 05Wed 17 Jun 2020 · home win said77 in 100
  3. Borussia Dortmund 0-0 WolfsburgSun 14 Jan 2018 · home win said77 in 100
  4. Borussia Dortmund 2-2 Mainz 05Sat 27 May 2023 · home win said76 in 100
  5. Borussia Dortmund 1-2 Werder BremenSat 9 Dec 2017 · home win said75 in 100
  6. Borussia Dortmund 2-3 HoffenheimSun 25 Feb 2024 · home win said75 in 100
  7. Borussia Dortmund 2-2 FC HeidenheimFri 1 Sep 2023 · home win said75 in 100
  8. Borussia Dortmund 3-3 PaderbornFri 22 Nov 2019 · home win said74 in 100
  9. Borussia Dortmund 1-1 Mainz 05Sat 16 Jan 2021 · home win said74 in 100
  10. Borussia Dortmund 1-2 Mainz 05Sat 5 May 2018 · home win said73 in 100
  11. Borussia Dortmund 1-2 FC CologneSat 28 Nov 2020 · home win said73 in 100
  12. Borussia Dortmund 2-3 RasenBallsport LeipzigSat 14 Oct 2017 · home win said71 in 100

Which clubs beat Vesta's expectationsClubs v Vesta

points won against the points Vesta's forecasts gave (3 × win + draw), these matches
Underrated: more points than expected
ClubMatchesPointsExpectedGap
Borussia Dortmund311610578.7+31.3
Bayern Munich184235.2+6.8
Bochum894.4+4.6
VfB Stuttgart172016.9+3.1
Augsburg181512.0+3.0
Holstein Kiel231.3+1.7
Hannover 96442.8+1.2
Schalke 041097.8+1.2
RasenBallsport Leipzig182523.9+1.1
Hoffenheim191918.1+0.9
Fortuna Duesseldorf432.2+0.8
Mainz 05181514.5+0.5
Overrated: fewer points than expected
ClubMatchesPointsExpectedGap
Wolfsburg18515.8−10.8
Eintracht Frankfurt181217.5−5.5
Bayer Leverkusen181823.1−5.1
Freiburg181014.2−4.2
Hertha Berlin1258.3−3.3
Borussia M.Gladbach181316.3−3.3
FC Cologne14810.2−2.2
St. Pauli413.1−2.1
Arminia Bielefeld402.1−2.1
FC Heidenheim623.8−1.8
Hamburger SV512.6−1.6
Darmstadt201.0−1.0

League by league, season by seasonLeague by league

Borussia Dortmund's matches; the current season so far
CSV
SeasonLeagueMatchesLikeliest saidHappenedDraws saidDrawsGoals expectedGoalsRPS
2026-27Bundesliga5578023203.163.000.166
2025-26Bundesliga34586523213.153.060.142
2024-25Bundesliga34555623183.213.590.219
2023-24Bundesliga34595921263.493.260.179
2022-23Bundesliga34567122153.263.740.178
2021-22Bundesliga3458762193.384.030.178
2020-21Bundesliga34565923123.073.560.219
2019-20Bundesliga34596521183.273.680.176
2018-19Bundesliga34576222213.103.680.173
2017-18Bundesliga34615621293.223.260.208

Each season from 2017-18 was hidden from Vesta and forecast with a model fitted only on the seasons before it, the same model that publishes today's forecasts (checked Tue 13 Oct 2026). These are the forecasts of past seasons, not the published ones: the public record of forecasts made before kick-off starts on 30 Sep 2026 and lives in Vesta's track record.

Related questions