Joel Asoro
Career snapshot
Career highs
Born the same day
Shares 1999-04-27 · 6 players total
| Full name | Joel Asoro |
|---|---|
| Name in home country | Joel Joshoghene Asoro |
| Date of birth | 1999-04-27 (27 yrs) |
| Place of birth | Haninge, Sweden |
| Citizenship | Sweden Nigeria |
| Position | Attack - Right Winger (main: Attack) |
| Foot | right |
| Height | 176.00 m |
| Current club | FC Metz |
| Joined | 2023-08-24 |
| Contract expires | 2027-06-30 |
| Agent | BHM Sports Agency |
Percentile rank vs 890 other Attack - Right Wingers with ≥500 minutes in 24/25. Higher = better (except cards, where lower = better — inverted automatically).
| Club | Seasons | First | Last | Matches | Goals | Assists | Minutes |
|---|---|---|---|---|---|---|---|
| FC Metz | 2 | 23/24 | 24/25 | 44 | 5 | 4 | 527 |
| FC Metz B | 1 | 24/25 | 24/25 | 1 | 2 | 0 | 23 |
| Djurgårdens IF | 7 | 20/21 | 23/24 | 98 | 21 | 13 | 1,797 |
| IF Brommapojkarna U19 | 1 | 2015 | 2015 | 5 | 3 | 0 | 150 |
| Genoa CFC | 1 | 20/21 | 20/21 | 0 | 0 | 0 | 0 |
| Swansea City | 2 | 18/19 | 20/21 | 18 | 0 | 1 | 0 |
| FC Groningen | 1 | 19/20 | 19/20 | 17 | 3 | 2 | 394 |
| FC Groningen U21 | 1 | 19/20 | 19/20 | 6 | 1 | 0 | 463 |
| Swansea City U23 | 1 | 18/19 | 18/19 | 3 | 0 | 0 | 0 |
| Sunderland AFC | 2 | 16/17 | 17/18 | 33 | 3 | 1 | 405 |
| Sunderland AFC U23 | 2 | 16/17 | 17/18 | 23 | 3 | 1 | 972 |
| Sunderland AFC U18 | 1 | 16/17 | 16/17 | 1 | 0 | 0 | 0 |
Career trajectory — goals, assists & market value
Goals by season
Assists by season
| Season | Competition | Club | Matches | Goals | Assists | YC | RC | Minutes |
|---|---|---|---|---|---|---|---|---|
| 24/25 | Coupe de France | FC Metz | 3 | 0 | 0 | 0 | 0 | 0 |
| 24/25 | Ligue 2 | FC Metz | 20 | 3 | 2 | 0 | 0 | 102 |
| 24/25 | National 3 - Grp. H | FC Metz B | 1 | 2 | 0 | 0 | 0 | 23 |
| 23/24 | Coupe de France | FC Metz | 1 | 0 | 0 | 0 | 0 | 0 |
| 23/24 | Ligue 1 | FC Metz | 20 | 2 | 2 | 2 | 0 | 425 |
| 23/24 | UECL Quali | Djurgårdens IF | 2 | 1 | 0 | 0 | 0 | 117 |
| 22/23 | Conference L. | Djurgårdens IF | 8 | 2 | 2 | 2 | 0 | 271 |
| 22/23 | Svenska Cupen | Djurgårdens IF | 6 | 1 | 2 | 1 | 0 | 412 |
| 22/23 | UECL Quali | Djurgårdens IF | 6 | 5 | 1 | 2 | 0 | 83 |
| 21/22 | Svenska Cupen | Djurgårdens IF | 3 | 0 | 0 | 0 | 0 | 0 |
| 2023 | Allsvenskan | Djurgårdens IF | 16 | 3 | 1 | 1 | 0 | 326 |
| 2022 | Allsvenskan | Djurgårdens IF | 29 | 6 | 5 | 2 | 0 | 256 |
| 2021 | Allsvenskan | Djurgårdens IF | 26 | 3 | 2 | 1 | 0 | 332 |
| 2015 | U19 Allsvenskan Norra | IF Brommapojkarna U19 | 5 | 3 | 0 | 1 | 0 | 150 |
| 20/21 | EFL Cup | Swansea City | 1 | 0 | 0 | 0 | 0 | 0 |
| 20/21 | Serie A | Genoa CFC | 0 | 0 | 0 | 0 | 0 | 0 |
| 20/21 | Svenska Cupen | Djurgårdens IF | 2 | 0 | 0 | 0 | 0 | 0 |
| 19/20 | Beloften Preliminary Round | FC Groningen U21 | 6 | 1 | 0 | 0 | 0 | 463 |
| 19/20 | Eredivisie | FC Groningen | 15 | 3 | 2 | 1 | 0 | 394 |
| 19/20 | KNVB Beker | FC Groningen | 2 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | Championship | Swansea City | 14 | 0 | 1 | 0 | 0 | 0 |
| 18/19 | EFL Cup | Swansea City | 1 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | EFL Trophy | Swansea City U23 | 1 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | FA Cup | Swansea City | 2 | 0 | 0 | 0 | 0 | 0 |
| 18/19 | Premier League 2 | Swansea City U23 | 2 | 0 | 0 | 0 | 0 | 0 |
| 17/18 | Championship | Sunderland AFC | 26 | 3 | 1 | 2 | 0 | 405 |
| 17/18 | EFL Cup | Sunderland AFC | 2 | 0 | 0 | 0 | 0 | 0 |
| 17/18 | FA Cup | Sunderland AFC | 1 | 0 | 0 | 0 | 0 | 0 |
| 17/18 | Premier League 2 | Sunderland AFC U23 | 5 | 1 | 0 | 1 | 0 | 413 |
| 16/17 | EFL Cup | Sunderland AFC | 2 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | EFL Trophy | Sunderland AFC U23 | 2 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | FA Cup | Sunderland AFC | 1 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | FA Youth Cup | Sunderland AFC U18 | 1 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | Premier League | Sunderland AFC | 1 | 0 | 0 | 0 | 0 | 0 |
| 16/17 | Premier League 2 | Sunderland AFC U23 | 16 | 2 | 1 | 0 | 0 | 559 |
| Season | Date | From | To | Type | Market value | Fee |
|---|---|---|---|---|---|---|
| 14/15 | 2015-01-01 | IF Bromma U17 | IF Bromma U19 | Transfer | 0 | — |
| 15/16 | 2015-07-01 | IF Bromma U19 | Sunderland U18 | Transfer | 0 | — |
| 16/17 | 2016-07-01 | Sunderland U18 | Sunderland | Transfer | 0 | — |
| 18/19 | 2018-07-14 | Sunderland | Swansea | Transfer | 1500000 | €2.30m |
| 19/20 | 2019-08-15 | Swansea | FC Groningen | Loan | 2000000 | — |
| 19/20 | 2020-06-30 | FC Groningen | Swansea | Return from loan | 1300000 | — |
| 20/21 | 2020-09-16 | Swansea | Genoa | Loan | 1300000 | — |
| 20/21 | 2021-01-05 | Genoa | Swansea | Return from loan | 600000 | — |
| 20/21 | 2021-02-08 | Swansea | Djurgården | Transfer | 600000 | €700k |
| 23/24 | 2023-08-24 | Djurgården | FC Metz | Transfer | 1500000 | €1.20m |
No recorded injuries.
| Date | Value |
|---|---|
| Jan 1, 1970 | €1.00m |
| Jan 1, 1970 | €1.20m |
| Jan 1, 1970 | €1.50m |
| Jan 1, 1970 | €1.50m |
| Jan 1, 1970 | €1.50m |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €700k |
| Jan 1, 1970 | €1.50m |
| Jan 1, 1970 | €450k |
| Jan 1, 1970 | €600k |
| Jan 1, 1970 | €600k |
| Jan 1, 1970 | €600k |
| Jan 1, 1970 | €1.30m |
| Jan 1, 1970 | €1.00m |
| Jan 1, 1970 | €1.50m |
| Jan 1, 1970 | €2.00m |
| Jan 1, 1970 | €2.50m |
| Jan 1, 1970 | €1.50m |
| Team | Shirt | Matches | Goals | Debut | Age at debut | Status |
|---|---|---|---|---|---|---|
| Team #41525 | #17 | 10 | 8 | — | — | former national player |
| Team #23487 | — | 17 | 12 | — | — | former national player |
| Team #8595 | #21 | 17 | 3 | — | — | former national player |
| Team #3557 | #10 | 2 | 1 | — | — | former national player |
| Teammate | PPG played with | Joint goals | Minutes |
|---|---|---|---|
| Marcus Danielson | 2 | 0 | 0 |
| Josh Maja | 1 | 0 | 0 |
| Isak Hien | 2 | 0 | 0 |
| Jacob Une | 2 | 0 | 0 |
| Ethan Robson | 1 | 0 | 0 |
| Besard Sabovic | 2 | 1 | 0 |
| George Honeyman | 1 | 3 | 0 |
| Gustav Wikheim | 2 | 3 | 0 |
| Matthieu Udol | 1 | 1 | 0 |
| Victor Edvardsen | 2 | 5 | 0 |
| Magnus Eriksson | 2 | 6 | 0 |
| Elias Andersson | 2 | 0 | 0 |
| Emmanuel Banda | 2 | 1 | 0 |
| Jesper Löfgren | 2 | 0 | 0 |
| Hjalmar Ekdal | 2 | 1 | 0 |
| Piotr Johansson | 2 | 1 | 0 |
| Rasmus Schüller | 2 | 0 | 0 |
| Haris Radetinac | 2 | 2 | 0 |
| Jacob Widell Zetterström | 2 | 1 | 0 |
| Hampus Finndell | 2 | 2 | 0 |
Single-season peaks across competitions in this player's career.
Top goalscoring seasons
| Season | Competition | Club | Goals | Matches |
|---|---|---|---|---|
| 2022 | Allsvenskan | Djurgårdens IF | 6 | 29 |
| 22/23 | UECL Quali | Djurgårdens IF | 5 | 6 |
| 19/20 | Eredivisie | FC Groningen | 3 | 15 |
Top assist seasons
| Season | Competition | Club | Assists | Matches |
|---|---|---|---|---|
| 2022 | Allsvenskan | Djurgårdens IF | 5 | 29 |
| 19/20 | Eredivisie | FC Groningen | 2 | 15 |
| 2021 | Allsvenskan | Djurgårdens IF | 2 | 26 |
Every loan spell across this player's career.
| Season | Date | From | To | Type | Fee | Value at transfer |
|---|---|---|---|---|---|---|
| 20/21 | 2021-01-05 | Genoa | Swansea | Return from loan | — | €600k |
| 20/21 | 2020-09-16 | Swansea | Genoa | Loan | — | €1.30m |
| 19/20 | 2020-06-30 | FC Groningen | Swansea | Return from loan | — | €1.30m |
| 19/20 | 2019-08-15 | Swansea | FC Groningen | Loan | — | €2.00m |
Last 50 matches for FC Metz while Joel Asoro was at the club (joined 2023-08-24). The Availability column cross-references our injury database — matches inside a known injury window are flagged INJURED. Per-match goal attribution requires a paid feed (FBref/Sofascore) and isn't wired up yet.
| Date | Comp | Home | Score | Away | Availability |
|---|---|---|---|---|---|
| 2026-05-17 | FR1 |
OGC Nice | – | FC Metz | TIMED |
| 2026-05-10 | FR1 |
FC Metz | 0–4 | FC Lorient | Available |
| 2026-05-10 | FR1 |
FC Metz | 0–4 | FC Lorient | Available |
| 2026-05-02 | FR1 |
FC Metz | 1–2 | AS Monaco FC | Available |
| 2026-05-02 | FR1 |
FC Metz | 1–2 | AS Monaco FC | Available |
| 2026-04-26 | FR1 |
Le Havre AC | 4–4 | FC Metz | Available |
| 2026-04-26 | FR1 |
Le Havre AC | 4–4 | FC Metz | Available |
| 2026-04-19 | FR1 |
FC Metz | 1–3 | Paris FC | Available |
| 2026-04-19 | FR1 |
FC Metz | 1–3 | Paris FC | Available |
| 2026-04-10 | FR1 |
Olympique de Marseille | 3–1 | FC Metz | Available |
| 2026-04-05 | FR1 |
FC Metz | 0–0 | FC Nantes | Available |
| 2026-03-22 | FR1 |
Stade Rennais FC 1901 | 0–0 | FC Metz | Available |
| 2026-03-15 | FR1 |
FC Metz | 3–4 | Toulouse FC | Available |
| 2026-03-08 | FR1 |
Racing Club de Lens | 3–0 | FC Metz | Available |
| 2026-03-01 | FR1 |
FC Metz | 0–1 | Stade Brestois 29 | Available |
| 2026-02-21 | FR1 |
Paris Saint-Germain FC | 3–0 | FC Metz | Available |
| 2026-02-15 | FR1 |
FC Metz | 1–3 | AJ Auxerre | Available |
| 2026-02-06 | FR1 |
FC Metz | 0–0 | Lille OSC | Available |
| 2026-02-01 | FR1 |
Angers SCO | 1–0 | FC Metz | Available |
| 2026-01-25 | FR1 |
FC Metz | 2–5 | Olympique Lyonnais | Available |
| 2026-01-18 | FR1 |
RC Strasbourg Alsace | 2–1 | FC Metz | Available |
| 2026-01-04 | FR1 |
FC Lorient | 1–1 | FC Metz | Available |
| 2025-12-13 | FR1 |
FC Metz | 2–3 | Paris Saint-Germain FC | Available |
| 2025-12-07 | FR1 |
AJ Auxerre | 3–1 | FC Metz | Available |
| 2025-11-28 | FR1 |
FC Metz | 0–1 | Stade Rennais FC 1901 | Available |
| 2025-11-23 | FR1 |
Stade Brestois 29 | 3–2 | FC Metz | Available |
| 2025-11-09 | FR1 |
FC Metz | 2–1 | OGC Nice | Available |
| 2025-11-02 | FR1 |
FC Nantes | 0–2 | FC Metz | Available |
| 2025-10-29 | FR1 |
FC Metz | 2–0 | Racing Club de Lens | Available |
| 2025-10-26 | FR1 |
Lille OSC | 6–1 | FC Metz | Available |
| 2025-10-19 | FR1 |
Toulouse FC | 4–0 | FC Metz | Available |
| 2025-10-04 | FR1 |
FC Metz | 0–3 | Olympique de Marseille | Available |
| 2025-09-28 | FR1 |
FC Metz | 0–0 | Le Havre AC | Available |
| 2025-09-21 | FR1 |
AS Monaco FC | 5–2 | FC Metz | Available |
| 2025-09-14 | FR1 |
FC Metz | 1–1 | Angers SCO | Available |
| 2025-08-31 | FR1 |
Paris FC | 3–2 | FC Metz | Available |
| 2025-08-23 | FR1 |
Olympique Lyonnais | 3–0 | FC Metz | Available |
| 2025-08-17 | FR1 |
FC Metz | 0–1 | RC Strasbourg Alsace | Available |
| 2025-05-10 | FR2 |
Stade Lavallois | 2–3 | FC Metz | Available |
| 2025-05-02 | FR2 |
FC Metz | 3–3 | Rodez AF | Available |
| 2025-04-26 | FR2 |
Pau FC | 2–1 | FC Metz | Available |
| 2025-04-19 | FR2 |
FC Metz | 2–2 | Red Star FC | Available |
| 2025-04-11 | FR2 |
FC Martigues | 1–4 | FC Metz | Available |
| 2025-04-05 | FR2 |
SM Caen | 2–2 | FC Metz | Available |
| 2025-03-28 | FR2 |
FC Metz | 2–1 | ESTAC Troyes | Available |
| 2025-03-15 | FR2 |
USL Dunkerque | 2–3 | FC Metz | Available |
| 2025-03-08 | FR2 |
FC Metz | 5–1 | FC Annecy | Available |
| 2025-03-01 | FR2 |
Amiens SC | 1–2 | FC Metz | Available |
| 2025-02-22 | FR2 |
FC Metz | 0–1 | AC Ajaccio | Available |
| 2025-02-15 | FR2 |
EA Guingamp | 0–3 | FC Metz | Available |
Teams faced most often by Joel Asoro's clubs during seasons he played in those competitions (team-level results, not personal head-to-head goals — see disclaimer above).
| Opponent | P | W | D | L | GF | GA | GD | Win % |
|---|---|---|---|---|---|---|---|---|
| Middlesbrough FC | 10 | 3 | 2 | 5 | 11 | 15 | -4 | 30% |
| Millwall FC | 8 | 2 | 5 | 1 | 10 | 7 | +3 | 25% |
| Girondins Bordeaux | 8 | 1 | 0 | 7 | 4 | 18 | -14 | 13% |
| Montpellier HSC | 8 | 3 | 2 | 3 | 9 | 9 | 0 | 38% |
| SM Caen | 8 | 1 | 4 | 3 | 6 | 10 | -4 | 13% |
| Coventry City FC | 8 | 1 | 4 | 3 | 7 | 13 | -6 | 13% |
| Olympique Lyonnais | 8 | 0 | 1 | 7 | 2 | 22 | -20 | 0% |
| AS Saint-Étienne | 8 | 5 | 2 | 1 | 16 | 9 | +7 | 63% |
| Amiens SC | 8 | 5 | 0 | 3 | 12 | 9 | +3 | 63% |
| Watford FC | 8 | 2 | 3 | 3 | 10 | 10 | 0 | 25% |
| EA Guingamp | 8 | 2 | 3 | 3 | 13 | 15 | -2 | 25% |
| FC Emmen | 8 | 4 | 4 | 0 | 10 | 1 | +9 | 50% |
Auto-detected milestones based on cumulative career totals.
| Season / Year | Milestone | Date |
|---|---|---|
| 16/17 | Senior debut season | |
| 16/17 | First senior goal |
Yellow / second-yellow / red cards per season. Only seasons with at least one card are shown.
| Season | Matches | Mins | YC | 2nd YC | RC | Cards / 90′ |
|---|---|---|---|---|---|---|
| 23/24 | 23 | 542 | 2 | 0 | 0 | 0.33 |
| 22/23 | 20 | 766 | 5 | 0 | 0 | 0.59 |
| 2023 | 16 | 326 | 1 | 0 | 0 | 0.28 |
| 2022 | 29 | 256 | 2 | 0 | 0 | 0.7 |
| 2021 | 26 | 332 | 1 | 0 | 0 | 0.27 |
| 2015 | 5 | 150 | 1 | 0 | 0 | 0.6 |
| 19/20 | 23 | 857 | 1 | 0 | 0 | 0.11 |
| 17/18 | 34 | 818 | 3 | 0 | 0 | 0.33 |
Output by competition
Career goals and assists broken down by tournament.
More on Joel Asoro
Explore this player's career through different angles.
Similar players
Same position, similar age, sorted by market value.
Frequently asked about Joel Asoro
Who is Joel Asoro?
Joel Asoro is a Sweden professional footballer who plays as a right winger for FC Metz.
How old is Joel Asoro?
Joel Asoro is 27 years old. He was born on April 27, 1999 in Haninge.
What position does Joel Asoro play?
Joel Asoro plays as a right winger (Attack - Right Winger).
What club does Joel Asoro play for?
Joel Asoro currently plays for FC Metz.
How many career goals has Joel Asoro scored?
Across all senior club competitions in our dataset, Joel Asoro has scored 41 goals in 249 appearances.
What is Joel Asoro's market value?
Joel Asoro's most recent reported market value is €1.00m.