
Kacper PotulskiCB#48
Mainz·
Bundesliga·Defender - Centre-Back
Last 5rating per match
Form, 12 monthsaverage rating per month
Key statsUEFA Nations League · Bundesliga · DFB Pokal
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. Rank: place among defenders — Bundesliga, season 26/27. What xG, npxG, xA and xGChain mean
Player profileattributes and traits
Player Position average
Strengths
No outstanding strengths
Weaknesses
No outstanding weaknesses
Player positions: DC
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 44 defenders · Bundesliga · season 26/27 · min 270′ · player 280′
Similar playersBundesliga · defenders · season 26/27
Fabio GruberMainz · Defender - Centre-BackRating0G0A24age79%
Noahkai BanksAugsburg · Defender - Centre-BackRating0G0A19age79%
Finn JeltschStuttgart · Defender - Centre-BackRating0G1A20age78%
Jeff ChabotStuttgart · Defender - Centre-BackRating0G0A28age77%
Kevin DiksMönchengladbach · Defender - Centre-BackRating0G0A29age77%
Luka Lochoshvili1.FC Köln · Defender - Centre-BackRating0G0A28ageProfile match = 100 − mean gap of per-90 percentiles across 27 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.7Goals xG · total 1 / 2.7
Assists vs xA
-0.6Assists xA · total 0 / 0.6
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
Poland2 caps · 1 goalsSeason statsSeason 26/27
| Competition | Team | Season | Apps | Min | Rating | G | A | G+A | YC | RC |
|---|---|---|---|---|---|---|---|---|---|---|
UEFA Nations League | Poland | 26/27 | 1 | 90 | 6.80 | — | — | 0 | — | — |
Bundesliga | 1. FSV Mainz 05 | 26/27 | 4 | 280 | 6.33 | — | — | 0 | 1 | — |
DFB Pokal | 1. FSV Mainz 05 | 26/27 | 1 | 28 | 6.90 | — | — | 0 | — | — |
Transfers6
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 01/01/2026 | 25/26 | FSV Mainz 05 II | Mainz | - | €2.50m |
| 01/07/2025 | 25/26 | Mainz 05 U19 | FSV Mainz 05 II | - | €200k |
| 01/07/2024 | 24/25 | Mainz 05 U17 | Mainz 05 U19 | - | - |
| 01/07/2023 | 23/24 | Legia U19 | Mainz 05 U17 | free transfer | - |
| 01/11/2022 | 22/23 | Legia Yth. | Legia U19 | - | - |
| 01/07/2021 | 21/22 | Lechia Youth | Legia Yth. | free transfer | - |
Market value
Value history
| Date | Age | Club | Value |
|---|---|---|---|
| 11/06/2025 | 17 | 1.FSV Mainz 05 U19 | €200k |
| 19/12/2025 | 18 | 1.FSV Mainz 05 II | €2.50m |
| 20/03/2026 | 18 | 1.FSV Mainz 05 | €12.00m |
| 27/05/2026 | 18 | 1.FSV Mainz 05 | €18.00m |
xG Statisticsall seasons
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Bundesliga | Mainz 05 | 2 | 99 | 0 | 0.05 | 0.05 | 0 | 0 | 1 | 0 | 0.86 |
| 2025 | Bundesliga | Mainz 05 | 15 | 1061 | 1 | 2.62 | 2.62 | 0 | 0.62 | 14 | 2 | 1.23 |
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
Alexander SchwolowGoalkeeper34age€450kvalue
Anthony CaciDefender - Right-Back29age€7.00mvalue
Benedict HollerbachAttack - Centre-Forward25age€8.00mvalue
Danny da CostaDefender - Centre-Back33age€1.20mvalue
Dominik KohrDefender - Centre-Back32age€2.00mvalue
Eric MartelMidfield - Defensive Midfield24age€8.00mvalue
Fabio GruberDefender - Centre-Back24age€3.00mvalue
Jae-sung LeeMidfield - Attacking Midfield34age€2.00mvalue
UEFA Nations League
Bundesliga
1. FSV Mainz 05
DFB Pokal
FSV Mainz 05 II
Mainz 05 U19
1.FSV Mainz 05 II