# 2019–20 TSG 1899 Hoffenheim season

The 2019–20 TSG 1899 Hoffenheim season was the club's 121st season in existence and the club's 12th consecutive season in the top flight of German football. In addition to the domestic league, TSG 1899 Hoffenheim participated in that season's edition of the DFB-Pokal. The season covered the period from 1 July 2019 to 30 June 2020.

## Players
### First-team squad

    As of 17 January 2020
Note: Flags indicate national team as defined under FIFA eligibility rules; some limited exceptions apply. Players may hold more than one non-FIFA nationality.
| No. | Pos. | Nation | Player |
| 1 | GK | GER | Oliver Baumann (vice-captain) |
| 2 | DF | NED | Joshua Brenet |
| 3 | DF | CZE | Pavel Kadeřábek |
| 4 | DF | BIH | Ermin Bičakčić |
| 5 | DF | GRE | Kostas Stafylidis |
| 6 | MF | NOR | Håvard Nordtveit |
| 8 | MF | GER | Dennis Geiger |
| 9 | FW | TOG | Ihlas Bebou |
| 10 | FW | ISR | Mu'nas Dabbur |
| 11 | MF | AUT | Florian Grillitsch |
| 12 | GK | GER | Philipp Pentke |
| 14 | MF | AUT | Christoph Baumgartner |
| 16 | MF | GER | Sebastian Rudy (on loan from Schalke 04) |
| 17 | MF | SUI | Steven Zuber |
| No. | Pos. | Nation | Player |
| 18 | MF | MLI | Diadie Samassékou |
| 19 | FW | ALG | Ishak Belfodil |
| 21 | DF | GER | Benjamin Hübner (captain) |
| 23 | FW | ARM | Sargis Adamyan |
| 25 | DF | GER | Kevin Akpoguma |
| 27 | FW | CRO | Andrej Kramarić |
| 28 | GK | GER | Michael Esser |
| 29 | FW | DEN | Robert Skov |
| 31 | DF | BRA | Lucas Ribeiro |
| 33 | GK | GER | Alexander Stolz |
| 35 | FW | GER | Maximilian Beier |
| 38 | DF | AUT | Stefan Posch |
| 41 | MF | ISR | Ilay Elmkies |
| — | MF | BRA | Felipe Pires |

### Players out on loan

Note: Flags indicate national team as defined under FIFA eligibility rules; some limited exceptions apply. Players may hold more than one non-FIFA nationality.
| No. | Pos. | Nation | Player |
| — | GK | SUI | Gregor Kobel (at VfB Stuttgart until 30 June 2020) |
| — | DF | GER | Alfons Amade (at Eintracht Braunschweig until 30 June 2020) |
| — | DF | NED | Justin Hoogma (at FC Utrecht until 30 June 2020) |
| — | DF | GHA | Kasim Nuhu (at Fortuna Düsseldorf until 30 June 2020) |
| — | MF | BRA | Bruno Nazário (at Botafogo until 31 December 2020) |
| No. | Pos. | Nation | Player |
| — | MF | GER | Kevin Vogt (at Werder Bremen until 30 June 2020) |
| — | GK | SVN | Domen Gril (at NK Bravo until 30 June 2020) |
| — | MF | GER | Leonardo Bittencourt (at Werder Bremen until 30 June 2020) |
| — | FW | GER | David Otto (at Heidenheim until 30 June 2020) |

### Reserve team
## Transfers
### Transfers in

| # | Position | Player | Transferred from | Fee | Date |
| 23 | FW | Sargis Adamyan | Jahn Regensburg | €1,500,000 | 14 May 2019 |
| 5 | DF | Kostas Stafylidis | FC Augsburg | Free | 15 May 2019 |
| 9 | FW | Ihlas Bebou | Hannover 96 | €8,500,000 | 16 May 2019 |
| 12 | GK | Philipp Pentke | Jahn Regensburg | Free | 1 July 2019 |
| 29 | FW | Robert Skov | FC Copenhagen | €10,000,000 | 29 July 2019 |
| 18 | MF | Diadie Samassékou | RB Salzburg | €12,000,000 | 15 August 2019 |
| 10 | FW | Mu'nas Dabbur | Sevilla | €12,000,000 | 7 January 2020 |
| 28 | GK | Michael Esser | Hannover 96 | Free | 14 January 2020 |
| 7 | FW | Jacob Bruun Larsen | Borussia Dortmund | €9,000,000 | 31 January 2020 |

#### Loans in

| # | Position | Player | Loaned from | Date | Loan expires | Source |
| 16 | MF | Sebastian Rudy | Schalke 04 | 31 July 2018 | 30 June 2020 | |
| 37 | FW | Jürgen Locadia | Brighton & Hove Albion | 29 August 2019 | 31 January 2020 | |

### Transfers out

| # | Position | Player | Transferred to | Fee | Date |
| 10 | MF | Kerem Demirbay | Bayer Leverkusen | €32,000,000 | 9 May 2019 |
| 16 | DF | Nico Schulz | Borussia Dortmund | €25,500,000 | 22 May 2019 |
| | FW | Antonio Čolak | Rijeka | €850,000 | 22 June 2019 |
| 37 | FW | Robin Hack | 1. FC Nürnberg | €500,000 | 1 July 2019 |
| 34 | FW | Joelinton | Newcastle United | €44,000,000 | 23 July 2019 |
| 18 | MF | Nadiem Amiri | Bayer Leverkusen | €9,000,000 | 30 July 2019 |
| 28 | FW | Ádám Szalai | Mainz 05 | Free | 27 August 2019 |
| 32 | FW | Vincenzo Grifo | SC Freiburg | €7,000,000 | 2 September 2019 |
| 7 | MF | Lukas Rupp | Norwich City | €500,000 | 13 January 2020 |
| 20 | MF | Robert Žulj | VfL Bochum | Undisclosed | 15 January 2020 |
| 30 | FW | Philipp Ochs | Hannover 96 | Free | 31 January 2020 |

#### Loans out

| # | Position | Player | Loaned to | Date | Loan expires |
| | FW | Bruno Nazário | Athletico Paranaense | 16 July 2018 | 31 December 2019 |
| | GK | Gregor Kobel | VfB Stuttgart | 1 July 2019 | 30 June 2020 |
| 26 | FW | David Otto | 1. FC Heidenheim | 1 July 2019 | 30 June 2020 |
| 23 | FW | Felipe Pires | Fortaleza | 22 July 2019 | 31 December 2019 |
| 24 | DF | Justin Hoogma | FC Utrecht | 30 July 2019 | 30 June 2020 |
| 15 | DF | Kasim Nuhu | Fortuna Düsseldorf | 8 August 2019 | 30 June 2020 |
| 13 | MF | Leonardo Bittencourt | Werder Bremen | 2 September 2019 | 30 June 2020 |
| 22 | MF | Kevin Vogt | Werder Bremen | 12 January 2020 | 30 June 2020 |
| | FW | Bruno Nazário | Botafogo | 17 January 2020 | 31 December 2020 |
| 2 | DF | Joshua Brenet | Vitesse | 31 January 2020 | 30 June 2020 |

## Pre-season and friendlies

Win  Draw  Loss

## Competitions

Win  Draw  Loss

### Overview

| Competition | First match | Last match | Starting round | Final position | Record | Record | Record | Record | Record | Record | Record | Record |
| Competition | First match | Last match | Starting round | Final position | Pld | W | D | L | GF | GA | GD | Win % |
| Bundesliga | 17 August 2019 | 27 June 2020 | Matchday 1 | 6th | 34 | 15 | 7 | 12 | 53 | 53 | +0 | 044.12 |
| DFB-Pokal | 10 August 2019 | 5 February 2020 | First round | Round of 16 | 3 | 1 | 1 | 1 | 8 | 7 | +1 | 033.33 |
| Total | Total | Total | Total | Total | 37 | 16 | 8 | 13 | 61 | 60 | +1 | 043.24 |
Last updated: 27 June 2020 Source: Soccerway

### Bundesliga
#### League table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification or relegation |
| 4 | Borussia Mönchengladbach | 34 | 20 | 5 | 9 | 66 | 40 | +26 | 65 | Qualification for the Champions League group stage |
| 5 | Bayer Leverkusen | 34 | 19 | 6 | 9 | 61 | 44 | +17 | 63 | Qualification for the Europa League group stage |
| 6 | 1899 Hoffenheim | 34 | 15 | 7 | 12 | 53 | 53 | 0 | 52 | Qualification for the Europa League group stage |
| 7 | VfL Wolfsburg | 34 | 13 | 10 | 11 | 48 | 46 | +2 | 49 | Qualification for the Europa League second qualifying round |
| 8 | SC Freiburg | 34 | 13 | 9 | 12 | 48 | 47 | +1 | 48 | |
* 1 2 Since the winners of the 2019–20 DFB-Pokal, Bayern Munich, qualified for the Champions League based on league position, the Europa League group stage spot was passed to the sixth-placed team, and the Europa League second qualifying round spot was passed to the seventh-placed team.

#### Results summary

| Overall | Overall | Overall | Overall | Overall | Overall | Overall | Overall | Home | Home | Home | Home | Home | Home | Away | Away | Away | Away | Away | Away |
Last updated: 27 June 2020. Source: Bundesliga

#### Results by round

| Round | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
| Ground | A | H | H | A | H | A | A | H | A | H | A | H | A | H | A | A | H | H | A | H | A | H | A | H | A | H | A | H | A | A | H | H | H | A |
| Result | L | W | D | L | D | L | W | W | W | W | W | L | D | L | L | W | W | L | W | W | L | L | D | L | D | L | D | W | W | D | L | W | W | W |
| Position | 14 | 9 | 9 | 13 | 11 | 12 | 12 | 11 | 10 | 9 | 8 | 8 | 8 | 8 | 9 | 9 | 7 | 8 | 7 | 7 | 7 | 8 | 8 | 9 | 9 | 9 | 9 | 7 | 7 | 7 | 7 | 7 | 7 | 6 |

#### Matches

The Bundesliga schedule was announced on 28 June 2019.

### DFB-Pokal
## Statistics
### Appearances and goals

| No. | Pos | Nat | Player | Total | Total | Bundesliga | Bundesliga | DFB-Pokal | DFB-Pokal |
| No. | Pos | Nat | Player | Apps | Goals | Apps | Goals | Apps | Goals |
| Goalkeepers ||||||||||
| 1 | GK | GER | Oliver Baumann | 31 | 0 | 30 | 0 | 1 | 0 |
| 12 | GK | GER | Philipp Pentke | 6 | 0 | 4 | 0 | 2 | 0 |
| 28 | GK | GER | Michael Esser | 0 | 0 | 0 | 0 | 0 | 0 |
| 33 | GK | GER | Alexander Stolz | 0 | 0 | 0 | 0 | 0 | 0 |
| Defenders ||||||||||
| 3 | DF | CZE | Pavel Kadeřábek | 33 | 3 | 28+2 | 2 | 3 | 1 |
| 4 | DF | BIH | Ermin Bičakčić | 22 | 2 | 13+8 | 2 | 1 | 0 |
| 5 | DF | GRE | Kostas Stafylidis | 7 | 1 | 4+3 | 1 | 0 | 0 |
| 21 | DF | GER | Benjamin Hübner | 27 | 1 | 25 | 1 | 2 | 0 |
| 25 | DF | GER | Kevin Akpoguma | 19 | 0 | 12+6 | 0 | 1 | 0 |
| 31 | DF | BRA | Lucas Ribeiro | 3 | 0 | 0+2 | 0 | 0+1 | 0 |
| 32 | DF | NED | Melayro Bogarde | 2 | 0 | 1+1 | 0 | 0 | 0 |
| 38 | DF | AUT | Stefan Posch | 30 | 0 | 27+1 | 0 | 2 | 0 |
| Midfielders ||||||||||
| 6 | MF | NOR | Håvard Nordtveit | 12 | 0 | 7+4 | 0 | 1 | 0 |
| 8 | MF | GER | Dennis Geiger | 23 | 0 | 13+8 | 0 | 2 | 0 |
| 11 | MF | AUT | Florian Grillitsch | 34 | 1 | 28+3 | 0 | 2+1 | 1 |
| 14 | MF | AUT | Christoph Baumgartner | 28 | 6 | 17+9 | 6 | 1+1 | 0 |
| 16 | MF | GER | Sebastian Rudy | 35 | 1 | 31+1 | 1 | 3 | 0 |
| 17 | MF | SUI | Steven Zuber | 16 | 2 | 10+4 | 2 | 2 | 0 |
| 18 | MF | MLI | Diadie Samassékou | 21 | 0 | 16+5 | 0 | 0 | 0 |
| 41 | MF | ISR | Ilay Elmkies | 1 | 0 | 0+1 | 0 | 0 | 0 |
| Forwards ||||||||||
| 7 | FW | DEN | Jacob Bruun Larsen | 12 | 0 | 5+6 | 0 | 1 | 0 |
| 9 | FW | TOG | Ihlas Bebou | 35 | 7 | 20+12 | 6 | 3 | 1 |
| 10 | FW | ISR | Mu'nas Dabbur | 15 | 6 | 11+3 | 4 | 0+1 | 2 |
| 19 | FW | ALG | Ishak Belfodil | 5 | 0 | 3+2 | 0 | 0 | 0 |
| 23 | FW | ARM | Sargis Adamyan | 16 | 6 | 6+9 | 5 | 1 | 1 |
| 27 | FW | CRO | Andrej Kramarić | 20 | 12 | 14+5 | 12 | 1 | 0 |
| 29 | FW | DEN | Robert Skov | 33 | 4 | 29+2 | 4 | 0+2 | 0 |
| 35 | FW | GER | Maximilian Beier | 6 | 0 | 0+6 | 0 | 0 | 0 |
| Players transferred out during the season ||||||||||
| 2 | DF | NED | Joshua Brenet | 2 | 0 | 0 | 0 | 1+1 | 0 |
| 7 | MF | GER | Lukas Rupp | 9 | 0 | 4+3 | 0 | 0+2 | 0 |
| 20 | MF | AUT | Robert Žulj | 0 | 0 | 0 | 0 | 0 | 0 |
| 22 | MF | GER | Kevin Vogt | 12 | 0 | 11 | 0 | 1 | 0 |
| 28 | FW | HUN | Ádám Szalai | 1 | 1 | 0 | 0 | 0+1 | 1 |
| 30 | FW | GER | Philipp Ochs | 0 | 0 | 0 | 0 | 0 | 0 |
| 32 | MF | ITA | Vincenzo Grifo | 1 | 0 | 0 | 0 | 1 | 0 |
| 37 | FW | NED | Jürgen Locadia | 12 | 4 | 5+6 | 4 | 1 | 0 |
Last updated: 27 June 2020 Source: Competitions