Bernardo
Bernardo, 31, from Brazil ➤ TSG 1899 Hoffenheim, since 2025 ➤ Left-Back ➤ Market value: €4.00m ➤ * 14/05/1995 in São Paulo, Brazil

Info
Biographical card, current club and contract facts. Empty fields mean the source did not publish that value.
- Club
- Hoffenheim
- League
- Bundesliga
- Position
- Defender - Left-Back
- Shirt
- #13
- Age
- 31
- Date of birth
- 14/05/1995
- Height
- 1,86m
- Foot
- left
- Citizenship
- Brazil
- Joined
- 01/07/2025
- Contract until
- 30/06/2027
- Market value
- €4.00m
- Career fees
- €16.60m
- Youth clubs
- Gremio Osasco Audax (SP)
Statistics
Career totals from Transfermarkt: this season, then by competition and by club. Minutes and cards appear when the source recorded them.
This season
| Season | Competition | Apps | Min | G | A | YC | RC |
|---|---|---|---|---|---|---|---|
| 26/27 | Bundesliga | 1 | 53 | 0 | 0 | 0 | 0 |
By competition
| Competition | Apps | G | A |
|---|---|---|---|
| Bundesliga | 124 | 2 | 2 |
| Bundesliga | 67 | 2 | 2 |
| Premier League | 39 | 0 | 1 |
| ÖFB-Cup | 12 | 2 | 1 |
| UEFA Champions League | 9 | 0 | 1 |
| Champions League Qu. | 7 | 1 | 0 |
| Europa League | 6 | 0 | 0 |
| FA Cup | 6 | 0 | 0 |
| EFL Cup | 5 | 1 | 2 |
| DFB-Pokal | 4 | 0 | 0 |
| Série D | 3 | 0 | 0 |
| Premier League Int. Cup U21 | 2 | 0 | 0 |
| Bundesliga Playoffs | 1 | 0 | 0 |
| 2. Liga | 1 | 0 | 0 |
| Série A | 0 | 0 | 0 |
| Copa do Brasil | 0 | 0 | 0 |
| Campeonato Paulista | 0 | 0 | 0 |
| Paulistão A1 - Fase Final | 0 | 0 | 0 |
By club
| Club | Apps | G | A |
|---|---|---|---|
| Salzburg | 93 | 5 | 4 |
| VfL Bochum | 56 | 1 | 0 |
| Brighton | 50 | 1 | 3 |
| Leipzig | 49 | 1 | 2 |
| Hoffenheim | 32 | 0 | 0 |
| Red Bull | 3 | 0 | 0 |
| Brighton U23 | 2 | 0 | 0 |
| FC Liefering | 1 | 0 | 0 |
| Ponte Preta | 0 | 0 | 0 |
Transfers
Recorded moves between clubs, with fee and market value on the day of the deal when the source has them.
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 01/07/2025 | 25/26 | VfL Bochum | Hoffenheim | free transfer | €5.50m |
| 02/08/2023 | 23/24 | Salzburg | VfL Bochum | €600k | €2.50m |
| 02/07/2021 | 21/22 | Brighton | Salzburg | ? | €4.00m |
| 30/06/2021 | 20/21 | Salzburg | Brighton | End of loan | €4.00m |
| 19/01/2021 | 20/21 | Brighton | Salzburg | loan transfer | €4.80m |
| 05/07/2018 | 18/19 | Leipzig | Brighton | €10.00m | €6.00m |
| 28/08/2016 | 16/17 | Salzburg | Leipzig | €6.00m | €1.00m |
| 14/01/2016 | 15/16 | Ponte Preta | Salzburg | ? | €100k |
| 07/01/2016 | 15/16 | Red Bull | Ponte Preta | End of loan | €100k |
| 16/06/2015 | 14/15 | Ponte Preta | Red Bull | loan transfer | €100k |
| 01/01/2015 | 14/15 | Coritiba U20 | Ponte Preta | free transfer | - |
| 15/04/2014 | 13/14 | Red Bull | Coritiba U20 | End of loan | - |
| 02/12/2013 | 13/14 | Coritiba U20 | Red Bull | loan transfer | - |
| 12/03/2013 | 12/13 | GO Audax U20 | Coritiba U20 | free transfer | - |
National
Senior and youth national-team spells: caps, goals, shirt number and whether the player is still in the current pool.
No national-team career rows for this player.
Market value
Current and peak Transfermarkt valuations, plus the history of changes by club and age. Rankings are relative to the current squad, league and position group.
- Current
- €4.00m
- Highest
- €9.00m · 13/08/2018
- Last change
- 27/05/2026
| Date | Age | Club | Value |
|---|---|---|---|
| 31/05/2015 | 20 | Associação Atlética Ponte Preta | €100k |
| 21/02/2016 | 20 | Red Bull Salzburg | €350k |
| 01/06/2016 | 21 | Red Bull Salzburg | €1.00m |
| 13/10/2016 | 21 | RB Leipzig | €2.50m |
| 07/02/2017 | 21 | RB Leipzig | €4.00m |
| 19/06/2017 | 22 | RB Leipzig | €5.00m |
| 28/12/2017 | 22 | RB Leipzig | €6.00m |
| 05/06/2018 | 23 | RB Leipzig | €6.00m |
| 13/08/2018 | 23 | Brighton & Hove Albion | €9.00m |
| 19/12/2018 | 23 | Brighton & Hove Albion | €9.00m |
| 13/06/2019 | 24 | Brighton & Hove Albion | €9.00m |
| 10/12/2019 | 24 | Brighton & Hove Albion | €6.00m |
| 08/04/2020 | 24 | Brighton & Hove Albion | €4.80m |
| 13/10/2020 | 25 | Brighton & Hove Albion | €4.80m |
| 02/06/2021 | 26 | Red Bull Salzburg | €4.00m |
| 16/12/2021 | 26 | Red Bull Salzburg | €3.00m |
| 27/05/2022 | 27 | Red Bull Salzburg | €2.50m |
| 10/11/2022 | 27 | Red Bull Salzburg | €2.50m |
| 12/06/2023 | 28 | Red Bull Salzburg | €2.50m |
| 18/10/2023 | 28 | VfL Bochum | €3.00m |
| 14/12/2023 | 28 | VfL Bochum | €4.00m |
| 27/03/2024 | 28 | VfL Bochum | €5.50m |
| 29/05/2024 | 29 | VfL Bochum | €5.50m |
| 09/10/2024 | 29 | VfL Bochum | €7.00m |
| 20/12/2024 | 29 | VfL Bochum | €5.50m |
| 05/06/2025 | 30 | VfL Bochum | €5.50m |
| 19/12/2025 | 30 | TSG 1899 Hoffenheim | €5.00m |
| 27/05/2026 | 31 | TSG 1899 Hoffenheim | €4.00m |
xG Statistics
Bernardo's xG Statistics block is an Understat shot model for the 2026 season. It does not replace goals and assists — it explains them. xG and xA ask whether the chances were good enough; xGChain and xGBuildup show how often the player was on the ball in moves that became shots. Use minutes as the denominator: a large xG in 80 minutes is a hot streak, the same xG over 1,200 minutes is a role. Figures are rounded to two decimals and stay empty when Understat has no match for this player.
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Bundesliga | Hoffenheim | 1 | 54 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.03 |
| 2025 | Bundesliga | Hoffenheim | 29 | 2340 | 0 | 0.44 | 0.44 | 0 | 0.35 | 10 | 9 | 8.21 |
What the columns mean
Read this table as chance quality, not as a scoreboard. A player can outscore xG (finishing well) or lag behind it (missed sitters). Compare rows only when minutes are in the same range.
Apps· Appearances- Matches in which the player was used in this league season, including substitute minutes.
Min· Minutes- Total minutes on the pitch. Useful when comparing output: 1 goal in 90 minutes is not the same as 1 goal in 800.
G· Goals- Goals credited to the player in the Understat shot model for that season.
xG· Expected goals- The quality of shots the player took, expressed as the number of goals an average finisher would score from the same chances. A 0.30 xG shot is a chance that goes in about 3 times in 10.
npxG· Non-penalty xG- Expected goals with penalties removed. This is the cleaner read of open-play and set-piece finishing, because a penalty is usually ~0.76 xG by itself.
A· Assists- Goals that followed the player's last pass. Actual assists, not the model.
xA· Expected assists- The xG value of shots that came directly from the player's key passes. High xA with few assists usually means teammates missed good chances.
Sh· Shots- Total shots recorded by Understat, including blocked and off-target attempts.
KP· Key passes- Passes that led to a shot. This is the volume behind xA.
xGChain· xG chain- Team xG from possessions the player touched. It captures involvement in build-up, not only the shot or the last pass. A midfielder who starts attacks can rank high here without scoring.
xGBuildup· xG buildup- The same possession xG, but excluding the shot-taker and the assist. This is the purest 'how much did this player help create the chance before the final ball' number.
NPG· Non-penalty goals- Goals scored from open play or set pieces, excluding penalties.







