Afonso Moreira 9
Deployed as Left Midfield in 7 of last 10 starts · declared Left Wing
DNA strand · vs Bundesliga midfielders (n = 94) · 280 minutes · hollow tick = rank across all covered leagues
Overall
Creation
Defence
Threat
Each rung is a percentile among Bundesliga midfielders over the same window (1 = best on every axis, so fewer cards or errors reads as a high rung). Rates need 270 minutes with detailed stats; ratios need a volume floor. Grey rungs are below their gate.
The DNA strand needs 270 minutes for Bayer 04 Leverkusen in this window — 251 so far; it appears once the sample is there.
The DNA strand needs 270 minutes for Bayer 04 Leverkusen in this window — 29 so far; it appears once the sample is there.
DNA strand at Olympique Lyonnais · vs all covered leagues, attackers (n = 101) · 1719 minutes · no covered domestic league for this club
Overall
Attack
Creation
Duels
Each rung is a percentile among all covered leagues, attackers over the same window (1 = best on every axis, so fewer cards or errors reads as a high rung). Rates need 270 minutes with detailed stats; ratios need a volume floor. Grey rungs are below their gate.
DNA strand at Olympique Lyonnais · vs all covered leagues, attackers (n = 144) · 357 minutes · no covered domestic league for this club
Overall
Attack
Creation
Duels
Each rung is a percentile among all covered leagues, attackers over the same window (1 = best on every axis, so fewer cards or errors reads as a high rung). Rates need 270 minutes with detailed stats; ratios need a volume floor. Grey rungs are below their gate.
Also at Olympique Lyonnais (32 apps, 2053′, 6+9) in the last 365 days.
Started record · Bayer 04 Leverkusen results by his involvement
3 matches · 1–1–1 · 1.33 ppg · 2.67 scored, 1.67 conceded per game · 251 minutes
Team 1.33 ppg when he starts (3) v 3.0 when he does not (1)
"Not in squad" counts the club's matches with lineup coverage while he was listed at the club. A record, not an effect.
Last 20 appearances anywhere, newest first · includes matches for Olympique Lyonnais.
| Date | Match | Pos | Min | G | A | xG | Sh | KP | Rating |
|---|---|---|---|---|---|---|---|---|---|
| 2026-09-16 | W 2–0 v Celje · Europa League | Attacker sub | 29 | 0.02 | 1.0 | 0.0 | 6.8 | ||
| 2026-09-12 | D 2–2 at FC Augsburg · Bundesliga | Left Midfield | 76 | 0.07 | 2.0 | 2.0 | 6.9 | ||
| 2026-09-05 | W 4–0 v FC Union Berlin · Bundesliga | Right Midfield | 90 | 0.29 | 3.0 | 0.0 | 6.8 | ||
| 2026-08-29 | L 2–3 at Elversberg · Bundesliga | Left Midfield | 85 | 0.1 | 2.0 | 0.0 | 6.2 | ||
| 2026-05-17 | L 0–4 v Lens for Olympique Lyonnais · Ligue 1 | Attacker | 90 | 0.22 | 3.0 | 2.0 | 7.2 | ||
| 2026-05-10 | L 1–2 at Toulouse for Olympique Lyonnais · Ligue 1 | Left Midfield | 90 | 0.07 | 1.0 | 4.0 | 7.7 | ||
| 2026-05-03 | W 4–2 v Rennes for Olympique Lyonnais · Ligue 1 | Left Midfield | 90 | 1 | 0.44 | 4.0 | 0.0 | 8.2 | |
| 2026-04-25 | W 3–2 v Auxerre for Olympique Lyonnais · Ligue 1 | Left Midfield | 90 | 0.15 | 2.0 | 1.0 | 6.4 | ||
| 2026-04-19 | W 2–1 at Paris Saint Germain for Olympique Lyonnais · Ligue 1 | Attacker | 90 | 1 | 1 | 0.22 | 2.0 | 2.0 | 8.5 |
| 2026-04-12 | W 2–0 v Lorient for Olympique Lyonnais · Ligue 1 | Left Midfield | 90 | 0.04 | 2.0 | 2.0 | 7.0 | ||
| 2026-04-05 | D 0–0 at Angers SCO for Olympique Lyonnais · Ligue 1 | Left Midfield | 90 | 0.22 | 3.0 | 1.0 | 6.6 | ||
| 2026-03-22 | L 1–2 v Monaco for Olympique Lyonnais · Ligue 1 | Left Midfield | 85 | 0.0 | 0.0 | 0.0 | 6.5 | ||
| 2026-03-19 | L 0–2 v Celta de Vigo for Olympique Lyonnais · Europa League | Attacker sub | 23 | 0.0 | 0.0 | 1.0 | 6.8 | ||
| 2026-02-07 | W 1–0 at Nantes for Olympique Lyonnais · Ligue 1 | Left Wing | 86 | 1 | 0.23 | 3.0 | 2.0 | 7.5 | |
| 2026-02-01 | W 1–0 v LOSC Lille for Olympique Lyonnais · Ligue 1 | Left Wing | 90 | 0.0 | 0.0 | 1.0 | 6.7 | ||
| 2026-01-29 | W 4–2 v PAOK for Olympique Lyonnais · Europa League | Left Midfield | 87 | 2 | 0.33 | 4.0 | 6.0 | 8.4 | |
| 2026-01-25 | W 5–2 at Metz for Olympique Lyonnais · Ligue 1 | Left Midfield | 90 | 0.19 | 1.0 | 1.0 | 6.3 | ||
| 2026-01-22 | W 1–0 at Young Boys for Olympique Lyonnais · Europa League | Left Wing | 77 | 0.06 | 2.0 | 2.0 | 7.2 | ||
| 2026-01-18 | W 2–1 v Brest for Olympique Lyonnais · Ligue 1 | Left Wing | 90 | 1 | 0.07 | 2.0 | 2.0 | 6.8 | |
| 2026-01-03 | W 3–1 at Monaco for Olympique Lyonnais · Ligue 1 | Attacker | 90 | 0.21 | 2.0 | 1.0 | 7.1 |
xG and shots need detailed match coverage; a dash means the match had none.
Bayer 04 Leverkusen
| Season | Apps | Starts | Min | G | A | xG | Rating | Top scorers | Assists |
|---|---|---|---|---|---|---|---|---|---|
| 2026/2027 · Europa League current New signing · 1 Jul | 1 | 0 | 29 32% | 0 | 0 | 0.0 | 6.82 | – | – |
| 2026/2027 · Bundesliga current New signing · 1 Jul | 3 | 3 | 251 93% | 0 | 0 | 0.5 | 6.66 | – | – |
Olympique Lyonnais · also in the window
| Season | Apps | Starts | Min | G | A | xG | Rating | Top scorers | Assists |
|---|---|---|---|---|---|---|---|---|---|
| 2026/2027 · Europa League current | 0 | 0 | 0 | 0 | 0 | – | – | – | – |
| 2026/2027 · Ligue 1 current | 0 | 0 | 0 | 0 | 0 | – | – | – | – |
| 2026/2027 · Champions League current | 0 | 0 | 0 | 0 | 0 | – | – | – | – |
| 2025/2026 · Ligue 1 | 27 | 18 | 1719 56% | 4 | 7 | 2.9 | 7.07 | #54 (4) | #3 (7) |
| 2025/2026 · Europa League | 7 | 3 | 357 40% | 2 | 2 | 1.6 | 7.24 | #70 (2) | #91 (2) |
Rating percentile is within the domestic league and position for that season. Top-scorer and assist ranks come from the provider's season leaderboards where the competition publishes them.
Transfers · 4 moves · €31.5m in fees
-
1 Jul 2026
Transfer
Olympique Lyonnais →
Bayer 04 Leverkusen
€29.5m
Left Wing
-
22 Jul 2025
Transfer
Sporting CP II →
Olympique Lyonnais
€2m
Left Wing
-
30 Jun 2024
End of loan
Gil Vicente →
Sporting CP II
Attacker
-
29 Jan 2024
Loan
Sporting CP II →
Gil Vicente
Attacker
Injuries and suspensions · 1 spell · 1 injury · 7 games missed
- injury Hamstring Injury at Olympique Lyonnais 8 Feb 2026 → 16 Mar 2026 7 missed · 36 days
Compare Afonso Moreira with any player in a current squad. The overall block is always mirrored; the positional strand and radar are mirrored when the declared position groups match.
Portugal