FC Köln 2–2 TSG Hoffenheim
- Ache 15'
- El Mala 63'
- Kabak 45'
- Kramaric 60'
21 February 2026
The match in data
A 2–2 draw between FC Köln and TSG Hoffenheim on 21 February 2026, on matchday 23 of the 2025-26 Bundesliga.
Player of the match: Ragnar Ache (FC Köln), rated 67, thanks above all to 1 goal and 1 big chance created. Ache produced 1.3 times as much as a forward typically does, at 0.6 times the cost.
For TSG Hoffenheim, the highest-rated player was Vladimír Coufal, with 58.
Ragnar Ache
FC Köln · 85'
Produced 1.34× and cost 0.55× their position's average
- 1 goal 3.5×
- 1 big chance created 3.8×
- 0.29 xG 1.0×
- 2 shots off target 1.5×
- 8 duels lost 1.3×
Match ratings
Everyone who played, sorted by rating. No rating: goalkeepers and anyone who played under 20 minutes.
| Player | Position | Min | Rating |
|---|---|---|---|
| Ragnar Ache ★ | Forward | 85 | 67 |
| Jakub Kamiński | Forward | 90 | 64 |
| Said El Mala | Forward | 85 | 59 |
| Rav van den Berg | Defender | 90 | 55 |
| Tom Krauß | Midfielder | 90 | 54 |
| Eric Martel | Midfielder | 90 | 48 |
| Kristoffer Lund | Defender | 90 | 41 |
| Joël Schmied | Defender | 90 | 40 |
| Cenk Özkacar | Defender | 90 | 38 |
| Jahmai Simpson-Pusey | Defender | 21 | 38 |
| Sebastian Sebulonsen | Defender | 69 | 37 |
| Marvin Schwäbe | Goalkeeper | 90 | no rating |
| Luca Waldschmidt | Forward | 5 | no rating |
| Marius Bülter | Forward | 5 | no rating |
| Fynn Schenten | Forward | 1 | no rating |
| Ísak Jóhannesson | Midfielder | 1 | no rating |
| Player | Position | Min | Rating |
|---|---|---|---|
| Vladimír Coufal | Defender | 90 | 58 |
| Ozan Kabak | Defender | 90 | 50 |
| Albian Hajdari | Defender | 90 | 45 |
| Leon Avdullahu | Midfielder | 90 | 45 |
| Wouter Burger | Midfielder | 73 | 44 |
| Fisnik Asllani | Forward | 90 | 37 |
| Andrej Kramaric | Midfielder | 89 | 37 |
| Grischa Prömel | Midfielder | 90 | 36 |
| Robin Hranac | Defender | 90 | 35 |
| Bazoumana Touré | Forward | 90 | 33 |
| Oliver Baumann | Goalkeeper | 90 | no rating |
| Alexander Prass | Midfielder | 17 | no rating |
| Max Moerstedt | Forward | 1 | no rating |
| Valentin Gendrey | Defender | 1 | no rating |
| Yannick Eduardo | Forward | 1 | no rating |
How is the rating calculated?
The rating measures a single match: what the player produced against what they cost, compared with the average for their position in that league and season, and adjusted by position (a 70 for a forward is as hard to get as a 70 for a defender). A normal match is around 50, 70 is already very good and only one in a hundred goes above 80. It is not the NVP, which ranks the whole season.