Back to Football

VfL Bochum

Heartbreak#17610.0

Bochum, Rhine-Ruhr · Germany · Bundesliga

Power-ranking history

Hover a season for its rank and score
Rank (1 = best)1550Score (per-season normalised)0.00.51.074/7579/8084/8589/9094/9599/0004/0509/1014/1519/2024/25

Against expectation

Every German top-flight match this club has played in the Bundesliga, scored against the odds an Elo rating gave it before kick-off. Over 38 seasons from 1971-72 to 2024-25 it has fallen short of them by 14.4 match points.

VfL Bochum: surplus against expectation, 1971-72 to 2024-251971-72: +3.1 league points vs expected (34 on 30.9, 2 for a win) · bar height +1.5 match points1972-73: −1.2 league points vs expected (31 on 32.2, 2 for a win) · bar height −0.6 match points1973-74: −0.6 league points vs expected (30 on 30.6, 2 for a win) · bar height −0.3 match points1974-75: +1.6 league points vs expected (33 on 31.4, 2 for a win) · bar height +0.8 match points1975-76: −0.2 league points vs expected (30 on 30.2, 2 for a win) · bar height −0.1 match points1976-77: −2.0 league points vs expected (29 on 31.0, 2 for a win) · bar height −1.0 match points1977-78: +1.4 league points vs expected (31 on 29.6, 2 for a win) · bar height +0.7 match points1978-79: +2.0 league points vs expected (33 on 31.0, 2 for a win) · bar height +1.0 match points1979-80: +0.4 league points vs expected (32 on 31.6, 2 for a win) · bar height +0.2 match points1980-81: +0.1 league points vs expected (33 on 32.9, 2 for a win) · bar height +0.0 match points1981-82: −1.4 league points vs expected (32 on 33.5, 2 for a win) · bar height −0.7 match points1982-83: −3.1 league points vs expected (28 on 31.1, 2 for a win) · bar height −1.6 match points1983-84: −2.0 league points vs expected (28 on 30.0, 2 for a win) · bar height −1.0 match points1984-85: +2.9 league points vs expected (34 on 31.1, 2 for a win) · bar height +1.4 match points1985-86: −0.3 league points vs expected (32 on 32.3, 2 for a win) · bar height −0.1 match points1986-87: −0.4 league points vs expected (32 on 32.4, 2 for a win) · bar height −0.2 match points1987-88: −1.2 league points vs expected (30 on 31.2, 2 for a win) · bar height −0.6 match points1988-89: −5.5 league points vs expected (26 on 31.5, 2 for a win) · bar height −2.7 match points1989-90: −0.1 league points vs expected (29 on 29.1, 2 for a win) · bar height −0.1 match points1990-91: −1.5 league points vs expected (29 on 30.5, 2 for a win) · bar height −0.7 match points1991-92: +0.5 league points vs expected (29 on 28.5, 2 for a win) · bar height +0.3 match points1992-93: −2.0 league points vs expected (26 on 28.0, 2 for a win) · bar height −1.0 match points1994-95: −4.7 league points vs expected (22 on 26.7, 2 for a win) · bar height −2.4 match points1996-97: +12.8 league points vs expected (53 on 40.2, 3 for a win) · bar height +4.3 match points1997-98: −0.0 league points vs expected (41 on 41.0, 3 for a win) · bar height −0.3 match points1998-99: −11.4 league points vs expected (29 on 40.4, 3 for a win) · bar height −4.1 match points2000-01: −6.8 league points vs expected (27 on 33.8, 3 for a win) · bar height −2.8 match points2002-03: +8.6 league points vs expected (45 on 36.4, 3 for a win) · bar height +2.9 match points2003-04: +11.7 league points vs expected (56 on 44.3, 3 for a win) · bar height +4.3 match points2004-05: −8.6 league points vs expected (35 on 43.5, 3 for a win) · bar height −2.9 match points2006-07: +4.8 league points vs expected (45 on 40.3, 3 for a win) · bar height +1.2 match points2007-08: −3.9 league points vs expected (41 on 44.9, 3 for a win) · bar height −0.9 match points2008-09: −8.8 league points vs expected (32 on 40.8, 3 for a win) · bar height −2.6 match points2009-10: −8.8 league points vs expected (28 on 36.8, 3 for a win) · bar height −2.7 match points2021-22: +1.5 league points vs expected (42 on 40.5, 3 for a win) · bar height +0.1 match points2022-23: −1.6 league points vs expected (35 on 36.6, 3 for a win) · bar height −1.1 match points2023-24: −3.8 league points vs expected (33 on 36.8, 3 for a win) · bar height −0.6 match points2024-25: −6.1 league points vs expected (25 on 31.1, 3 for a win) · bar height −2.2 match points
1971-72one bar per season · height in match points · hover for that season2024-25
Best season against expectation
1996-97 +12.8 league pts
53 points on 40.2 expected as VfL Bochum
Worst season against expectation
1998-99 11.4 league pts
29 points on 40.4 expected as VfL Bochum

Season points use that season’s own scoring, two for a win before 1995-96 and three from it; the bars use match points so the whole series is comparable.

1991-92 table not final: source truncated on 1992-04-25, last 4 matchdays absent, 340 of 380.

Rhine-Ruhr against expectation →How this is measured →

What the squad was worth

Total market value of the squad, EUR millions, by month; the player count beside it is the size of the priced squad.

How this is measured

Drawn as a step, not a curve: Transfermarkt reprices every squad in December and June (marked with a small tick on the axis) and revalues continuously between, so the line only moves when a real valuation changed, never by interpolation.

A month renders no value at all once the priced squad falls below 15 players, so a thin squad is never shown as a cheap one. The series is floored at July 2012on purpose: earlier Transfermarkt totals reflect which players happened to be priced yet rather than the squad’s real worth, and are excluded rather than shown misleadingly low.

Upstream (dcaribou/transfermarkt-datasets) has been paused since July 2026, so the series ends where the source ends rather than where the season does.

Player valuations from Transfermarkt via github.com/dcaribou/transfermarkt-datasets (CC0).

What the squad was worth€27m
VfL Bochum: squad value by month, 2014-10 to 2026-060377314-1516-1718-1920-2122-2324-25
Peak
€68m in Oct 2024 · 34 players valued
Most recent
€27m in Jun 2026 · 18 players valued

Rhine-Ruhron the rankings →

The money ledger

Fees paid and received each season, and what the squad was worth once the trading is netted out.

How this is measured

Spent is the fees paid for players arriving, received the fees for players leaving, both in EUR millions by the July-to-June season of the move. A move with no fee on record (a free, a loan, an undisclosed sum) is counted, never priced: the small figure beside each total is the moves with a fee, plus those without (so 4+3 is four priced arrivals and three unpriced), and a quiet window is not mistaken for a cheap one. Wages are not here: they are estimates nobody licenses, and fees are documented.

Appreciationis the season’s change in squad value with the net spend taken out: buy 100m of players and finish 100m higher is zero; finish 120m higher and the club made 20m of players better, or the market repriced them. It needs a priced squad at both ends of the season (the same 15-player floor as the value chart), so it is blank rather than guessed for a season that lacks one.

The source has been paused since 6 July 2026, so the final row holds only the opening days of its window.

Transfer fees and player valuations from Transfermarkt via github.com/dcaribou/transfermarkt-datasets (CC0).

The money ledger+€35m
Spent
€5m
12 arrivals with a fee
Received
€40m
19 departures with a fee
Net
+€35m
192 moves with no fee
Appreciation
+€45m
11 seasons with a priced squad

Grown or bought: in 2026-27, trading €0m and appreciation . Over the last 5 seasons (2022-232026-27), trading +€25m and appreciation unpriced.

The director’s ledger: 68 arrivals graded since 2022-23, 99% EV-positive. €4m deployed for a 3.3× multiplier.

2026-27 spent received to 6 July 2026
3 moves, no fee on record
unpriced
2025-26 spent €0m received €7m
in: Oliver Olsen €0m
−€25m
squad gain
2024-25 spent €0m received €5m
in: Koji Miyoshi €0m
−€2m
squad gain
2023-24 spent €2m received
in: Moritz-Broni Kwarteng €1m
+€11m
squad gain
2022-23 spent €1m received €17m
in: Philipp Förster €1m
+€16m
squad gain
2021-22 spent received
13 moves, no fee on record
+€24m
squad gain
2020-21 spent received €1m
out: Vitaly Janelt €1m
+€11m
squad gain
2019-20 spent €0m received €0m
in: Silvere Ganvoula €0m
+€1m
squad gain
Show all 15 seasons
2018-19 spent €1m received
in: Dominik Baumgartner €0m
+€1m
squad gain
2017-18 spent received
7 moves, no fee on record
+€0m
squad gain
2016-17 spent received €1m
out: Onur Bulut €1m
+€2m
squad gain
2015-16 spent €1m received €3m
in: Michael Gregoritsch €1m
+€5m
squad gain
2014-15 spent received €1m
out: Lukas Klostermann €1m
unpriced
2013-14 spent received €3m
out: Leon Goretzka €3m
unpriced
2012-13 spent received €2m
out: Takashi Inui €1m
unpriced

Money against football

Every priced club-season in the six leagues: points against expectation across, squad value gained beyond the net spend up. This club’s seasons are joined.

Tap or drag on the plot: the nearest club-season, its points and its money.

the frontier: no other club-season beat it on both axes · this club, season by season, the largest dot the latest

Every club’s return on the transfer window →

Greatest games

VfL Bochum's top matches by the club Game Score: closeness, stakes, quality and upset over one unified rating of league and European play.All-time board.

#DateStageResultScore
11983-06-04BundesligaAL 2-3 v Werder Bremengame score 74.2
21988-05-28DFB-Pokal · FinalNL 0-1 v Eintracht Frankfurtgame score 62.9
31999-05-29BundesligaHL 2-3 v FC Hansa Rostockgame score 59.2
41998-10-27DFB-Pokal · Round of 16HL 0-1 v Borussia Mönchengladbachgame score 57.8
51996-11-13DFB-Pokal · QuarterfinalsAL 1-2 v Hamburger SVgame score 57.8
62003-02-05DFB-Pokal · QuarterfinalsHD 3-3 v 1. FC Kaiserslautern(pens 3 / 4)game score 57.4
72022-03-02DFB-Pokal · QuarterfinalsHL 1-2 v SC Freiburggame score 56.5
81980-04-26BundesligaAW 1-0 v Eintracht Frankfurtgame score 55.5
91999-12-21DFB-Pokal · QuarterfinalsHL 1-2 v Werder Bremengame score 55.4
102002-12-03DFB-Pokal · Round of 16AW 1-0 v Hamburger SVgame score 54.5

Footprint

Tiers played
L1
Top-flight (L1) seasons
38
First season
1972
Most recent season
2025

The Heartbreak Index10.0 · #176

The Tortured · Never won it, waiting since 1972

10.0
Heartbreak
#176
of 1,139 clubs
#96
in Football
10.0
agony
The clocks
  • First major trophy since 19729.1
  • Major final appearance since 19884.4
Heaviest wounds

relegated from the top flight, 2025 · relegated from the top flight, 1993 · relegated from the top flight, 2010 · relegated from the top flight, 1995

One formula, every club the site covers. See the whole board →

Season-by-season

Most recent season first. Covers Bundesliga only. Rows tagged "national playoff" are pre-modern formats where the workbook records only playoff participants, not round-robin standings.

2025
Bundesliga (1) · P18
34 P · 6-7-21 · 33:67 · -34
25
pts
2024
Bundesliga (1) · P16PO
34 P · 7-12-15 · 42:74 · -32
33
pts
2023
Bundesliga (1) · P14
34 P · 10-5-19 · 40:72 · -32
35
pts
2022
Bundesliga (1) · P13
34 P · 12-6-16 · 38:52 · -14
42
pts
2010
Bundesliga (1) · P17
34 P · 6-10-18 · 33:64 · -31
28
pts
2009
Bundesliga (1) · P14
34 P · 7-11-16 · 39:55 · -16
32
pts
2008
Bundesliga (1) · P12
34 P · 10-11-13 · 48:54 · -6
41
pts
2007
Bundesliga (1) · P8
34 P · 13-6-15 · 49:50 · -1
45
pts
2005
Bundesliga (1) · P16
34 P · 9-8-17 · 47:68 · -21
35
pts
UC
2004
Bundesliga (1) · P5
34 P · 15-11-8 · 57:39 · +18
56
pts
UC
2003
Bundesliga (1) · P9
34 P · 12-9-13 · 55:56 · -1
45
pts
2001
Bundesliga (1) · P18
34 P · 7-6-21 · 30:67 · -37
27
pts
Show all 38 seasons
1999
Bundesliga (1) · P17
34 P · 7-8-19 · 40:65 · -25
29
pts
1998
Bundesliga (1) · P12
34 P · 11-8-15 · 41:49 · -8
41
pts
UC
1997
Bundesliga (1) · P5
34 P · 14-11-9 · 54:51 · +3
53
pts
UC
1995
Bundesliga (1) · P16
34 P · 9-4-21 · 43:67 · -24
22
pts
1993
Bundesliga (1) · P16
34 P · 8-10-16 · 45:52 · -7
26
pts
1992
Bundesliga (1) · P15
38 P · 10-13-15 · 38:55 · -17
33
pts
1991
Bundesliga (1) · P14
34 P · 9-11-14 · 50:52 · -2
29
pts
1990
Bundesliga (1) · P16PO
34 P · 11-7-16 · 44:53 · -9
29
pts
1989
Bundesliga (1) · P15
34 P · 9-8-17 · 37:57 · -20
26
pts
1988
Bundesliga (1) · P12
34 P · 10-10-14 · 47:51 · -4
30
pts
Pokal
1987
Bundesliga (1) · P11
34 P · 9-14-11 · 52:44 · +8
32
pts
1986
Bundesliga (1) · P9
34 P · 14-4-16 · 55:57 · -2
32
pts
1985
Bundesliga (1) · P9
34 P · 12-10-12 · 52:54 · -2
34
pts
1984
Bundesliga (1) · P15
34 P · 10-8-16 · 58:70 · -12
28
pts
1983
Bundesliga (1) · P13
34 P · 8-12-14 · 43:49 · -6
28
pts
1982
Bundesliga (1) · P10
34 P · 12-8-14 · 52:51 · +1
32
pts
1981
Bundesliga (1) · P9
34 P · 9-15-10 · 53:45 · +8
33
pts
1980
Bundesliga (1) · P10
34 P · 13-6-15 · 41:44 · -3
32
pts
1979
Bundesliga (1) · P8
34 P · 10-13-11 · 47:46 · +1
33
pts
1978
Bundesliga (1) · P14
34 P · 11-9-14 · 49:51 · -2
31
pts
1977
Bundesliga (1) · P15
34 P · 11-7-16 · 47:62 · -15
29
pts
1976
Bundesliga (1) · P14
34 P · 12-6-16 · 49:62 · -13
30
pts
1975
Bundesliga (1) · P11
34 P · 14-5-15 · 53:53 · 0
33
pts
1974
Bundesliga (1) · P14
34 P · 9-12-13 · 45:57 · -12
30
pts
1973
Bundesliga (1) · P12
34 P · 11-9-14 · 50:68 · -18
31
pts
1972
Bundesliga (1) · P9
34 P · 14-6-14 · 59:69 · -10
34
pts
Domestic Cup Finals

Most recent first. Every domestic cup final the club has played, including losses. Scheduled finals (date not yet passed) are flagged.

1988
DFB-Pokal
Runner-up
1968
DFB-Pokal
Runner-up
European competition appearances

Most recent first. One row per entry showing the deepest round reached. A Cup Winner badge marks tournaments the club won: gold for the European Cup / Champions League, silver for every other UEFA or Intercontinental trophy.

2004-05
UEFA Cup(UC)
Qualifying
1997-98
UEFA Cup(UC)
Round of 16