Lab

Where was Vesta right, and where wrong?

Over 68 league matches of Fortuna Duesseldorf since 2017-18, each forecast by a model that had not seen that season, Vesta's likeliest result happened 53 times in 100; it said 54. Draws: said 23, happened 25 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
Matches68each forecast before its season
Likeliest result happened53 in 100Vesta said 54
Draws25 in 100Vesta said 23
Goals a match3.19Vesta expected 3.05
Likeliest score happened10 in 100Vesta said 12

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
10–20 in 1002915.917.2+1.3
20–30 in 1007824.925.6+0.7
30–40 in 1002934.734.5−0.3
40–50 in 1002144.347.6+3.3
50–60 in 1002154.852.4−2.4

The biggest surprises

results Vesta gave the least chance that happened
  1. Bayern Munich 3-3 Fortuna DuesseldorfSat 24 Nov 2018 · Bundesliga7 in 100
  2. RasenBallsport Leipzig 2-2 Fortuna DuesseldorfWed 17 Jun 2020 · Bundesliga14 in 100
  3. Hoffenheim 1-1 Fortuna DuesseldorfSat 2 Feb 2019 · Bundesliga15 in 100
  4. Fortuna Duesseldorf 2-1 Borussia DortmundTue 18 Dec 2018 · Bundesliga18 in 100
  5. Schalke 04 0-4 Fortuna DuesseldorfSat 2 Mar 2019 · Bundesliga19 in 100
  6. Hoffenheim 1-1 Fortuna DuesseldorfSat 30 Nov 2019 · Bundesliga20 in 100
  7. Wolfsburg 1-1 Fortuna DuesseldorfSat 8 Feb 2020 · Bundesliga21 in 100
  8. Freiburg 0-2 Fortuna DuesseldorfSat 22 Feb 2020 · Bundesliga22 in 100
  9. Werder Bremen 1-3 Fortuna DuesseldorfSat 17 Aug 2019 · Bundesliga22 in 100
  10. FC Cologne 2-2 Fortuna DuesseldorfSun 24 May 2020 · Bundesliga22 in 100
  11. RasenBallsport Leipzig 1-1 Fortuna DuesseldorfSun 2 Sep 2018 · Bundesliga23 in 100
  12. Mainz 05 1-1 Fortuna DuesseldorfSun 8 Mar 2020 · Bundesliga24 in 100

The surest calls that missed

the strongest favourites that did not win
  1. Bayern Munich 3-3 Fortuna DuesseldorfSat 24 Nov 2018 · home win said90 in 100
  2. RasenBallsport Leipzig 2-2 Fortuna DuesseldorfWed 17 Jun 2020 · home win said78 in 100
  3. Hoffenheim 1-1 Fortuna DuesseldorfSat 2 Feb 2019 · home win said76 in 100
  4. Wolfsburg 1-1 Fortuna DuesseldorfSat 8 Feb 2020 · home win said65 in 100
  5. Hoffenheim 1-1 Fortuna DuesseldorfSat 30 Nov 2019 · home win said65 in 100
  6. Fortuna Duesseldorf 2-1 Borussia DortmundTue 18 Dec 2018 · away win said61 in 100
  7. FC Cologne 2-2 Fortuna DuesseldorfSun 24 May 2020 · home win said60 in 100
  8. RasenBallsport Leipzig 1-1 Fortuna DuesseldorfSun 2 Sep 2018 · home win said58 in 100
  9. Schalke 04 0-4 Fortuna DuesseldorfSat 2 Mar 2019 · home win said56 in 100
  10. Fortuna Duesseldorf 1-1 Eintracht FrankfurtSat 1 Feb 2020 · away win said56 in 100
  11. Schalke 04 3-3 Fortuna DuesseldorfSat 9 Nov 2019 · home win said55 in 100
  12. Freiburg 0-2 Fortuna DuesseldorfSat 22 Feb 2020 · home win said54 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
Fortuna Duesseldorf687467.1+6.9
Bayer Leverkusen4127.8+4.2
Eintracht Frankfurt4107.3+2.7
Paderborn242.6+1.4
Wolfsburg486.8+1.2
Mainz 05475.9+1.1
Borussia M.Gladbach497.9+1.1
Nuernberg232.7+0.3
Augsburg477.00.0
Borussia Dortmund499.1−0.1
Union Berlin233.3−0.3
Bayern Munich41010.5−0.5
Overrated: fewer points than expected
ClubMatchesPointsExpectedGap
Hoffenheim437.7−4.7
Schalke 04446.7−2.7
Hertha Berlin446.5−2.5
Hannover 96202.4−2.4
FC Cologne213.2−2.2
Freiburg445.8−1.8
VfB Stuttgart212.8−1.8
Werder Bremen466.7−0.7
RasenBallsport Leipzig488.6−0.6
Bayern Munich41010.5−0.5
Union Berlin233.3−0.3
Borussia Dortmund499.1−0.1

League by league, season by seasonLeague by league

Fortuna Duesseldorf's matches; the current season so far
CSV
SeasonLeagueMatchesLikeliest saidHappenedDraws saidDrawsGoals expectedGoalsRPS
2019-20Bundesliga34555023353.113.030.181
2018-19Bundesliga34535623153.003.350.228

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