
Afonso MoreiraLW#9
Leverkusen·
Bundesliga·Attack - Left Winger
Last 5rating per match
Form, 12 monthsaverage rating per month
Club matchesLeverkusen
Next matches
25 Oct · 14:30BundesligaA
1899 Hoffenheim2.734.142.24PredictionOdds are 1X2 for the match; the club's outcome is highlighted. Prediction opens the full match preview.
Key statsUEFA Europa 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 forwards — Bundesliga, season 26/27. What xG, npxG, xA and xGChain mean
Player profileattributes and traits
Player Position average
Strengths
- Passing
Weaknesses
- Penalty taking
Player positions: LW
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 38 forwards · Bundesliga · season 26/27 · min 270′ · player 474′
Similar playersBundesliga · forwards · season 26/27
Hugo BolinMönchengladbach · Attack - Left WingerRating2G0A23age78%
Mikey Moore1.FC Köln · Attack - Right WingerRating0G0A19age77%
Niklas BesteFreiburg · Attack - Right WingerRating0G1A27age76%
Moussa DiabyLeverkusen · Attack - Right WingerRating1G0A27age75%
Deniz UndavStuttgart · Attack - Centre-ForwardRating0G0A30age75%
Moussa SyllaFC Schalke 04 · Attack - Centre-ForwardRating0G0A26ageProfile 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.
Availability
Season statsSeason 26/27
| Competition | Team | Season | Apps | Min | Rating | G | A | G+A | YC | RC |
|---|---|---|---|---|---|---|---|---|---|---|
UEFA Europa League | Bayer 04 Leverkusen | 26/27 | 3 | 133 | 6.60 | — | 1 | 1 | — | — |
Bundesliga | Bayer 04 Leverkusen | 26/27 | 6 | 474 | 6.67 | — | 1 | 1 | 1 | — |
DFB Pokal | Bayer 04 Leverkusen | 26/27 | 1 | 90 | 6.80 | — | 1 | 1 | — | — |
Transfers9
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 01/07/2026 | 26/27 | Lyon | Leverkusen | €29.50m | €20.00m |
| 22/07/2025 | 25/26 | Sporting B | Lyon | €2.00m | €400k |
| 30/06/2024 | 23/24 | Gil Vicente | Sporting B | End of loan | €400k |
| 29/01/2024 | 23/24 | Sporting B | Gil Vicente | loan transfer | - |
| 01/07/2022 | 22/23 | Sporting U19 | Sporting B | - | - |
| 01/07/2021 | 21/22 | Sporting U17 | Sporting U19 | - | - |
| 01/07/2020 | 20/21 | Sporting Sub-15 | Sporting U17 | - | - |
| 01/07/2018 | 18/19 | Sporting Yth. | Sporting Sub-15 | - | - |
| 01/07/2017 | 17/18 | Cracks Form. | Sporting Yth. | ? | - |
Market value
Value history
| Date | Age | Club | Value |
|---|---|---|---|
| 08/03/2024 | 18 | Gil Vicente FC | €400k |
| 06/06/2024 | 19 | Gil Vicente FC | €400k |
| 30/05/2025 | 20 | Sporting CP B | €400k |
| 15/12/2025 | 20 | Olympique Lyon | €5.00m |
| 27/03/2026 | 21 | Olympique Lyon | €10.00m |
| 01/06/2026 | 21 | Olympique Lyon | €20.00m |
xG Statisticsall seasons
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Bundesliga | Bayer Leverkusen | 2 | 177 | 0 | 0.6 | 0.6 | 0 | 0 | 5 | 0 | 1.1 |
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
Aleix GarcíaMidfield - Central Midfield29age€20.00mvalue
Christian KofaneAttack - Centre-Forward20age€40.00mvalue
Edmond TapsobaDefender - Centre-Back27age€35.00mvalue
Eliesse Ben SeghirAttack - Left Winger21age€20.00mvalue
Equi FernándezMidfield - Defensive Midfield24age€20.00mvalue
Facundo MedinaDefender - Centre-Back27age€18.00mvalue
Guéla DouéDefender - Right-Back23age€20.00mvalue
Ibrahim MazaMidfield - Attacking Midfield20age€45.00mvalue
Ofi
SC Freiburg
Lech Poznan
FSV Mainz 05
RB Leipzig
UEFA Europa League
Bayer 04 Leverkusen
Bundesliga
DFB Pokal
Lyon
Sporting B
Gil Vicente
Sporting U19
Bayer Leverkusen