

Last 5rating per match
Form, 12 monthsaverage rating per month
Club matchesUdinese
Key statsSerie A · Coppa Italia
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
- Discipline
Weaknesses
No outstanding weaknesses
Player positions: MC · DM
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 89 midfielders · Serie A · season 25/26 · min 270′ · player 1697′
Similar playersSerie A · midfielders · season 25/26
Patrizio MasiniFrosinone · Midfield - Central MidfieldRating0G1A25age81%
Tommaso PobegaBologna · Midfield - Central MidfieldRating3G1A27age80%
Cher NdourFiorentina · Midfield - Central MidfieldRating3G0A22age79%
Alessandro DeiolaCagliari · Midfield - Central MidfieldRating0G2A31age79%
Ibrahim SulemanaSassuolo · Midfield - Defensive MidfieldRating1G0A23age79%
Michel AdopoCagliari · Midfield - Central MidfieldRating1G2A26ageProfile 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
-1.5Goals xG · total 2 / 3.5
Assists vs xA
0.0Assists xA · total 1 / 1.0
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
Poland14 caps · 2 goalsSeason statsSeason 26/27
| Competition | Team | Season | Apps | Min | Rating | G | A | G+A | YC | RC |
|---|---|---|---|---|---|---|---|---|---|---|
Serie A | Udinese | 26/27 | 3 | 146 | 7.13 | 1 | — | 1 | 2 | — |
Coppa Italia | Udinese | 26/27 | 1 | 90 | 6.70 | — | — | 0 | — | — |
Transfers12
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 02/08/2025 | 25/26 | Ludogorets | Udinese | €3.00m | €4.50m |
| 28/07/2022 | 22/23 | F. Düsseldorf | Ludogorets | €1.30m | €800k |
| 28/07/2020 | 20/21 | Genk | F. Düsseldorf | €500k | €950k |
| 30/06/2020 | 19/20 | Waasland-Beveren | Genk | End of loan | €950k |
| 06/01/2020 | 19/20 | Genk | Waasland-Beveren | loan transfer | €1.60m |
| 01/07/2018 | 18/19 | Pogon Szczecin | Genk | €2.00m | €300k |
| 30/06/2017 | 16/17 | Stomil Olsztyn | Pogon Szczecin | End of loan | €150k |
| 22/02/2017 | 16/17 | Pogon Szczecin | Stomil Olsztyn | loan transfer | €150k |
| 01/07/2015 | 15/16 | Pogon II | Pogon Szczecin | - | - |
| 01/01/2015 | 14/15 | Wda Swiecie | Pogon II | free transfer | - |
| 01/07/2014 | 14/15 | Chemik Bydgoszcz | Wda Swiecie | free transfer | - |
| 01/07/2013 | 13/14 | Chemik U19 | Chemik Bydgoszcz | - | - |
Market value
Value history
| Date | Age | Club | Value |
|---|---|---|---|
| 10/01/2016 | 18 | Pogon Szczecin | €50k |
| 27/03/2016 | 18 | Pogon Szczecin | €50k |
| 24/07/2016 | 18 | Pogon Szczecin | €100k |
| 21/01/2017 | 19 | Pogon Szczecin | €150k |
| 02/03/2017 | 19 | Stomil Olsztyn | €150k |
| 05/07/2017 | 19 | Pogon Szczecin | €100k |
| 16/01/2018 | 20 | Pogon Szczecin | €300k |
| 03/07/2018 | 20 | KRC Genk | €2.00m |
| 27/12/2018 | 21 | KRC Genk | €2.00m |
| 10/06/2019 | 21 | KRC Genk | €1.80m |
| 13/12/2019 | 22 | KRC Genk | €1.60m |
| 30/03/2020 | 22 | KVRS Waasland - SK Beveren | €1.20m |
| 08/04/2020 | 22 | KVRS Waasland - SK Beveren | €950k |
| 08/02/2021 | 23 | Fortuna Düsseldorf | €700k |
| 16/06/2021 | 23 | Fortuna Düsseldorf | €700k |
| 15/12/2021 | 24 | Fortuna Düsseldorf | €700k |
| 23/03/2022 | 24 | Fortuna Düsseldorf | €800k |
| 16/06/2022 | 24 | Fortuna Düsseldorf | €800k |
| 07/09/2022 | 24 | Ludogorets Razgrad | €1.30m |
| 28/11/2022 | 25 | Ludogorets Razgrad | €1.50m |
| 05/06/2023 | 25 | Ludogorets Razgrad | €1.50m |
| 15/09/2023 | 25 | Ludogorets Razgrad | €2.00m |
| 20/12/2023 | 26 | Ludogorets Razgrad | €2.50m |
| 03/06/2024 | 26 | Ludogorets Razgrad | €5.00m |
| 02/12/2024 | 27 | Ludogorets Razgrad | €4.50m |
| 02/06/2025 | 27 | Ludogorets Razgrad | €4.50m |
| 23/12/2025 | 28 | Udinese Calcio | €4.50m |
| 29/05/2026 | 28 | Udinese Calcio | €4.50m |
xG Statisticsall seasons
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Serie A | Udinese | 3 | 150 | 1 | 0.34 | 0.34 | 0 | 0.22 | 4 | 3 | 0.6 |
| 2025 | Serie A | Udinese | 33 | 1702 | 1 | 3.21 | 3.21 | 1 | 0.78 | 36 | 12 | 6.51 |
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
Alessandro ZanoliDefender - Right-Back25age€4.50mvalue
Bartosz MrozekGoalkeeper26age€3.00mvalue
Christian KabaseleDefender - Centre-Back35age€750kvalue
Daniele PadelliGoalkeeper40age€150kvalue
Enzo EbosseDefender - Centre-Back27age€2.80mvalue
Giorgi ChakvetadzeMidfield - Attacking Midfield27age€3.50mvalue
Giulio VinciatiAttack - Centre-Forward19age€100kvalue
Hassane KamaraDefender - Left-Back32age€3.00mvalue
Serie A
Pogon Szczecin
Cagliari
Inter
Lazio
Venezia
Serie A
Coppa Italia
Ludogorets
F. Düsseldorf
Genk
Waasland-Beveren
Stomil Olsztyn
Pogon II
Wda Swiecie
Chemik Bydgoszcz
KRC Genk