

Last 5rating per match
Form, 12 monthsaverage rating per month
Club matchesBologna
Key statsSerie A
xG — expected goals: the quality of the chances taken; xA — expected assists: the quality of the chances created. Values per 90 minutes are shown under the totals. What xG, npxG, xA and xGChain mean
Player profileattributes and traits
Player Position average
Strengths
No outstanding strengths
Weaknesses
No outstanding weaknesses
Player positions: DR · MR
Positions on the pitch
Percentiles per 90per 90 minutes vs positional peers of the league
AttackingPer 90 · Percentile
PlaymakingPer 90 · Percentile
DefendingPer 90 · Percentile
What a percentile means
The percentile shows what share of players of the same position in this league the player beats on a per-90-minute metric. 90% — better than nine out of ten peers; 50% — the league median. Per 90 minutes removes the effect of playing time.
For fouls, offsides, being dribbled past and goals conceded the scale is inverted: a higher percentile means fewer of them.
vs 86 defenders · Serie A · season 25/26 · min 270′ · player 1818′
Similar playersSerie A · defenders · season 25/26
Emanuele ValeriParma · Defender - Left-BackRating0G2A27age84%
Hassane KamaraUdinese · Defender - Left-BackRating0G2A32age82%
Sascha BritschgiParma · Defender - Right-BackRating0G2A20age82%
Antonino GalloLecce · Defender - Left-BackRating0G4A26age81%
Adam ObertCagliari · Defender - Left-BackRating0G3A24age81%
Sebastian WalukiewiczSassuolo · Defender - Right-BackRating0G1A26ageProfile match = 100 − mean gap of per-90 percentiles across 28 metrics of this position; players of the same league, position group and season with at least 270 minutes.
Reality checkactual vs expected, by season
Goals vs xG
-0.5Goals xG · total 0 / 0.5
Assists vs xA
-0.9Assists xA · total 2 / 2.9
Bars above xG mean the player scores more than the quality of his chances suggests; a long run below xG is usually a finishing problem, a short one — variance.
Availability
Season statsSeason 26/27
| Competition | Team | Season | Apps | Min | Rating | G | A | G+A | YC | RC |
|---|---|---|---|---|---|---|---|---|---|---|
Serie A | Bologna | 26/27 | 3 | 171 | 6.27 | — | — | 0 | — | — |
Transfers17
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 20/08/2025 | 25/26 | Cagliari | Bologna | €7.50m | €5.00m |
| 17/07/2024 | 24/25 | Atalanta | Cagliari | €5.30m | €3.00m |
| 30/06/2024 | 23/24 | Frosinone | Atalanta | End of loan | €3.00m |
| 18/01/2024 | 23/24 | Atalanta | Frosinone | loan transfer | €2.00m |
| 30/06/2023 | 22/23 | Sassuolo | Atalanta | End of loan | €2.00m |
| 31/01/2023 | 22/23 | Atalanta | Sassuolo | Loan fee:€500k | €1.80m |
| 30/06/2022 | 21/22 | Salernitana | Atalanta | End of loan | €1.40m |
| 19/07/2021 | 21/22 | Atalanta | Salernitana | loan transfer | €700k |
| 30/06/2021 | 20/21 | Cremonese | Atalanta | End of loan | €700k |
| 30/07/2019 | 19/20 | Atalanta | Cremonese | loan transfer | €300k |
| 01/07/2019 | 19/20 | Atalanta U19 | Atalanta | - | €300k |
| 18/01/2017 | 16/17 | Vicenza U19 | Atalanta U19 | End of loan | €50k |
| 30/08/2016 | 16/17 | Atalanta U17 | Vicenza U19 | loan transfer | - |
| 01/07/2015 | 15/16 | Atalanta Youth | Atalanta U17 | - | - |
| 01/07/2014 | 14/15 | Feltreseprealpi | Atalanta Youth | €2k | - |
| 30/06/2014 | 13/14 | FC Südtirol - A | Feltreseprealpi | End of loan | - |
| 01/07/2013 | 13/14 | Feltreseprealpi | FC Südtirol - A | loan transfer | - |
Market value
Value history
| Date | Age | Club | Value |
|---|---|---|---|
| 31/10/2016 | 17 | Vicenza Primavera | €50k |
| 26/06/2017 | 18 | Atalanta Primavera | €75k |
| 30/06/2018 | 19 | Atalanta Primavera | €100k |
| 17/06/2019 | 19 | Atalanta Primavera | €300k |
| 30/12/2019 | 20 | US Cremonese | €300k |
| 21/08/2020 | 21 | US Cremonese | €500k |
| 22/02/2021 | 21 | US Cremonese | €550k |
| 24/06/2021 | 22 | US Cremonese | €700k |
| 28/12/2021 | 22 | US Salernitana 1919 | €800k |
| 07/06/2022 | 22 | US Salernitana 1919 | €1.40m |
| 11/11/2022 | 23 | Atalanta BC | €1.80m |
| 21/03/2023 | 23 | US Sassuolo | €2.00m |
| 15/06/2023 | 23 | US Sassuolo | €2.00m |
| 20/12/2023 | 24 | Atalanta BC | €2.00m |
| 05/06/2024 | 24 | Frosinone Calcio | €3.00m |
| 18/12/2024 | 25 | Cagliari Calcio | €3.00m |
| 25/03/2025 | 25 | Cagliari Calcio | €4.50m |
| 17/06/2025 | 25 | Cagliari Calcio | €5.00m |
| 07/10/2025 | 26 | Bologna FC 1909 | €7.00m |
| 23/12/2025 | 26 | Bologna FC 1909 | €7.50m |
| 29/05/2026 | 26 | Bologna FC 1909 | €7.00m |
xG Statisticsall seasons
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Serie A | Bologna | 2 | 90 | 0 | 0.04 | 0.04 | 0 | 0 | 1 | 0 | 0.11 |
| 2025 | Serie A | Bologna | 32 | 1776 | 0 | 0.42 | 0.42 | 2 | 2.86 | 11 | 26 | 5.78 |
What xG, npxG, xA and xGChain mean
xGExpected goals- How many goals an average finisher would score from the same shots. A 0.30 xG shot goes in about 3 times in 10. Goals above xG mean efficient finishing; below — a cold streak or poor finishing.
npxGNon-penalty xG- The same xG without penalties. A penalty alone is worth about 0.76 xG, so npxG is a cleaner view of open-play and set-piece chances.
xAExpected assists- The xG of the shots that followed the player's passes. High xA with few assists means teammates missed good chances.
xGChainxG chain- Team xG from every possession the player touched. It shows involvement in build-up, not only the shot or the final pass, so a deep midfielder can rank high without scoring.
KPKey passes- Passes that led directly to a shot — the volume behind xA.
Teammatessame club
Artem DovbykAttack - Centre-Forward29age€15.00mvalue
Arthur TheateDefender - Centre-Back26age€17.00mvalue
Eivind HellandDefender - Centre-Back21age€8.00mvalue
Emil HolmDefender - Right-Back26age€10.00mvalue
Federico BernardeschiAttack - Right Winger32age€3.50mvalue
Jay EnemAttack - Centre-Forward23age€4.50mvalue
Jens OdgaardMidfield - Attacking Midfield27age€12.00mvalue
Jesper KarlssonAttack - Left Winger28age€3.00mvalue
Serie A
Torino
Napoli
Sassuolo
Atalanta
Lazio
Serie A
Cagliari
Atalanta
Frosinone
Sassuolo
Salernitana
Cremonese
Atalanta U19
Vicenza U19
US Salernitana 1919