Club goals, all competitions
35 vs 44 appearances
At 18, Kylian Mbappé was already a champion of France and a Champions League semi-finalist; Erling Haaland was the top scorer of a Norwegian runner-up and, from January, a squad player at Red Bull Salzburg. Mbappé scored 26 goals in 44 games for Monaco in 2016-17, 15 of them in Ligue 1 and 6 in the Champions League, won the title and was named Ligue 1 Young Player of the Year. Haaland scored 17 in 35 across his 2018 season at Molde and his first half-season at Salzburg, 13 of them in the league. It is the one age at which Mbappé was clearly ahead on goals, and the age at which the gap between them was widest in his favour. Every number from both seasons is below, with the running career totals at the end of the age.
Club goals, all competitions
35 vs 44 appearances
Goals per game
Club matches only
League goals
Eliteserien + Austrian Bundesliga vs Ligue 1
Champions League goals
Did not play vs Semi-finals
Career club goals through age 18
71 vs 58 appearances so far
Team trophies
1 vs 2 individual awards
| Statistic | Haaland | Mbappé |
|---|---|---|
| The age-18 season | ||
| Season(s) | 2018 + 2018/19 | 2016/17 |
| Club(s) | Molde / Red Bull Salzburg | Monaco |
| League | Eliteserien / Austrian Bundesliga | Ligue 1 |
| Turned 18 on | 21 July 2018 | 20 December 2016 |
| Club football, all competitions | ||
| Appearances | 35 | 44 |
| Goals | 17 | 26 (better) |
| Assists | – | 8 |
| Goal involvementsgoals + assists | – | 34 |
| Goals per game | 0.49 | 0.59 (better) |
| Hat-tricksclub and country, three or more goals | 1 | 2 (better) |
| By competition | ||
| League goals27 vs 29 apps | 13 | 15 (better) |
| Domestic cup goals2 vs 6 apps | 0 | 5 (better) |
| European goals6 vs 9 apps, all UEFA competitions | 4 | 6 (better) |
| Champions League goals0 vs 9 apps | 0 | 6 (better) |
| Champions League stage reached | Did not play | Semi-finals |
| Other (super cups, play-offs) | 0 | 0 |
| League shooting, Understat (no Haaland data vs Monaco in Ligue 1) | ||
| League minutes | – | 1,503 |
| Minutes per league goal | – | 100.2 |
| Non-penalty goals | – | 15 |
| Expected goals (xG) | – | 8.28 |
| Goals minus xG | – | +6.72 |
| Expected assists (xA) | – | 6.23 |
| Shots per 90 | – | 3.20 |
| Key passes per 90 | – | 1.86 |
| Big chances scored / hadnon-penalty shots with xG ≥ 0.30 | – | 8/10 |
| Big-chance conversion | – | 80.0% |
| Honours | ||
| Team trophies | 2 (better) | 1 |
| Individual awards | 1 | 2 (better) |
| Ballon d'Or for the season2019 vs 2017 award | Not ranked | 7 |
| International, by calendar year (Norway vs France) | ||
| Senior debut by the end of the season | Not yet (5 September 2019) | 25 March 2017 |
| Caps, year the season began2018 vs 2016 | 0 | 0 |
| Caps, following year2019 vs 2017 | 2 | 10 |
| Goals, year the season began2018 vs 2016 | 0 | 0 |
| Goals, following year2019 vs 2017 | 0 | 1 (better) |
| Career to date at the end of the age-18 season | ||
| Club goals before age 18 | 4 (better) | 1 |
| Club goals through age 18 | 21 | 27 (better) |
| Club appearances through age 18 | 71 | 58 |
| Career goals per game so far | 0.30 | 0.47 (better) |
An age-18 season is the club season that began in the calendar year in which the player turned 18: Haaland's 2018 (Molde) and 2018-19 (Salzburg), Mbappé's 2016-17 (Monaco). Because Haaland's 2018 is a calendar-year season his window runs from 1 January 2018 to 30 June 2019, and his four goals against Brann on 1 July 2018 came three weeks before his 18th birthday. Mbappé's window is 1 July 2016 to 30 June 2017. Understat covers the big five leagues only, so Haaland's Eliteserien and Austrian Bundesliga matches have no shooting data. International figures are by calendar year, as the dataset records them, for the year each age-18 season began and the year after: Haaland's two caps in 2019 came in September, after his 19th birthday, and are outside the window; all of Mbappé's 2017 caps came while he was 18. The Ballon d'Or row is the award made in the year the season ended.
| Player | Season | Club | Competition | Apps | Goals | Assists | Goals/game |
|---|---|---|---|---|---|---|---|
| Erling Haaland | 2018 | Molde | Eliteserien | 25 | 12 | – | 0.48 |
| Erling Haaland | 2018 | Molde | UEFA Europa League qualifying | 5 | 4 | – | 0.80 |
| Erling Haaland | 2018/19 | Red Bull Salzburg | Austrian Bundesliga | 2 | 1 | – | 0.50 |
| Erling Haaland | 2018/19 | Red Bull Salzburg | ÖFB-Cup | 2 | 0 | – | 0.00 |
| Erling Haaland | 2018/19 | Red Bull Salzburg | UEFA Europa League | 1 | 0 | – | 0.00 |
| Kylian Mbappé | 2016/17 | Monaco | Ligue 1 | 29 | 15 | 8 | 0.52 |
| Kylian Mbappé | 2016/17 | Monaco | Coupe de France | 3 | 2 | 0 | 0.67 |
| Kylian Mbappé | 2016/17 | Monaco | Coupe de la Ligue | 3 | 3 | 0 | 1.00 |
| Kylian Mbappé | 2016/17 | Monaco | UEFA Champions League | 9 | 6 | 0 | 0.67 |
Haaland's age-18 season is split across two clubs and two calendars: the 2018 Eliteserien season with Molde (March to November 2018, plus Europa League qualifying in July and August) and the second half of Salzburg's 2018-19 season after his move on 1 January 2019. Mbappé's cup row is split into the Coupe de France and the Coupe de la Ligue. Assists for Haaland's Norwegian and Austrian seasons have no verifiable per-competition source and are left blank.
| Date | Player | Team | Opponent | Competition | Goals |
|---|---|---|---|---|---|
| 14 December 2016 | Mbappé | Monaco | Rennes | Coupe de la Ligue | 3 |
| 11 February 2017 | Mbappé | Monaco | Metz | Ligue 1 | 3 |
| 1 July 2018 | Haaland | Molde | Brann | Eliteserien | 4 |
| Date | Player | Milestone |
|---|---|---|
| 25 March 2017 | Mbappé | France debut v Luxembourg (18y 89d) |
| 17 May 2017 | Mbappé | Won Ligue 1 with Monaco (club's first title in 17 years); 26 goals in all competitions in 2016-17 |
| 1 July 2018 | Haaland | Four goals in 21 minutes v Brann, first senior hat-trick |
| 1 January 2019 | Haaland | Joins Red Bull Salzburg (c. €8m) |
| 30 May 2019 | Haaland | Nine goals v Honduras at U-20 World Cup |
Full lists on the records and milestones page.
Team: Austrian Bundesliga (Red Bull Salzburg) · Austrian Cup (Red Bull Salzburg)
Individual: Eliteserien Breakthrough of the Year
Team: Ligue 1 (Monaco)
Individual: Ligue 1 Young Player of the Year · UEFA Champions League Team of the Season Also 2019-20, 2020-21, 2021-22
Mbappé turned 18 on 20 December 2016, five days after a hat-trick against Rennes in the Coupe de la Ligue, and spent the second half of the season as the most talked-about teenager in Europe. He started the campaign as a substitute behind Radamel Falcao and Valère Germain, became a regular in February, scored a hat-trick in a 5-0 win over Metz on 11 February, and finished with 15 Ligue 1 goals in 29 games, only 1,503 minutes of football. The last of them, a 19th-minute opener against Saint-Étienne on 17 May 2017, clinched Monaco's first title in 17 years and ended Paris Saint-Germain's run of four. His 8 assists in all competitions and 5 goals in 6 cup games completed a season of 26 goals, 0.59 per game. He was named Ligue 1 Young Player of the Year, and Paris Saint-Germain paid €180m for him that August, in the first weeks of his age-19 season.
Mbappé's 6 goals in 9 Champions League games all came in the knockout rounds. His first was at the Etihad on 21 February 2017, in a 5-3 defeat by Manchester City; he scored again in the 3-1 second leg that put Monaco through on away goals. Two goals in a 3-2 win at Borussia Dortmund and another in the 3-1 return took them to the semi-finals, and his sixth was Monaco's only goal in Turin as Juventus won the second leg 2-1 and the tie 4-1. He scored in five successive knockout matches and was named in the Champions League Team of the Season at 18. Haaland's European football at 18 was Europa League qualifying with Molde in July and August 2018: a penalty against Laçi, two against Hibernian in a 3-0 win and one against Zenit St Petersburg in a play-off round that Molde lost 4-3 on aggregate, 4 goals in 6 games, plus one appearance for Salzburg in the Europa League proper the following spring. His Champions League debut was still a year away.
Haaland's age-18 season began in Norway's 2018 Eliteserien, three months before his birthday. On 1 July 2018, still 17, he scored four goals in 21 minutes against league leaders Brann, his first senior hat-trick, and he finished the league season with 12 goals in 25 games as Molde's top scorer and the Eliteserien Breakthrough of the Year, with Molde second behind Rosenborg. Salzburg had agreed a fee of about €8m in August and he joined on 1 January 2019. The rest of the season was a slow start: a debut in the Austrian Cup quarter-final against Wiener Neustädter on 17 February, five appearances in all, and a first Salzburg goal on 12 May in the second of his two league games. Salzburg won the league and cup double, so the dataset credits him with two team trophies to Mbappé's one, but he was a spectator for most of it. His most striking numbers of the spring came at youth level: nine goals in Norway's 12-0 win over Honduras at the Under-20 World Cup on 30 May 2019, which won him the tournament's Golden Boot even though Norway went out in the group stage. Those goals are not in the senior figures on this page.
Understat has Mbappé's Ligue 1 season but nothing for Haaland's leagues, so the shooting rows are one-sided. They still say something: Mbappé's 15 league goals came from 8.28 expected goals, an overperformance of +6.72 that remains the largest of his career relative to minutes played, on 3.20 shots per 90 and with 8 of 10 big chances scored. None of his 15 were penalties. A goal every 100 minutes in a top-five league at 18 is the benchmark Haaland would answer a year later, with 44 goals in his age-19 season at Salzburg and Dortmund.
Mbappé made his France debut on 25 March 2017 against Luxembourg, aged 18 years and 89 days, and won 10 caps in calendar-year 2017 with 1 goal, scored against the Netherlands on 31 August, still 18 but by then a PSG player. Haaland's senior Norway debut did not come until 5 September 2019 against Malta, six weeks after his 19th birthday, so he had no caps at 18; the 2 he won in 2019 came in September, aged 19. In December 2017 Mbappé also finished seventh in the Ballon d'Or, at 18, on the strength of the Monaco season and his first months in Paris. The international page has both careers year by year.
Mbappé scored more goals (26 to 17), at a better rate (0.59 to 0.49), in a stronger league, with 6 Champions League goals to none, a league title he decided himself and a senior international career already under way. Haaland's two Salzburg medals are the only column he wins, and he played five games for them. The running total at the end of the age-18 seasons was Mbappé 27 club goals, Haaland 21, a lead of 6 that would be gone within a year: the same-age comparison follows the running total through every age, and the goals-by-age article picks the story up at 20.
Mbappé, clearly. In his age-18 season (2016-17) he scored 26 goals in 44 games for Monaco, won Ligue 1, reached the Champions League semi-finals with 6 goals and made his France debut. Haaland scored 17 in 35 games across Molde's 2018 season and his first half-season at Salzburg, and had not yet played for Norway.
26 club goals and 8 assists in 44 appearances for Monaco in 2016-17: 15 in Ligue 1, 6 in the Champions League and 5 in the French cups. He added 1 goal in 10 France caps in 2017.
17 club goals in 35 appearances: 12 in the 2018 Eliteserien for Molde, 4 in Europa League qualifying and one in the Austrian Bundesliga after joining Salzburg in January 2019. He also scored nine against Honduras at the 2019 Under-20 World Cup, which is a youth-level figure and not counted here.
Both. Mbappé won Ligue 1 with Monaco in 2016-17, scoring the goal that clinched the title against Saint-Étienne. Haaland won the Austrian Bundesliga and Austrian Cup with Salzburg in 2018-19, but had joined in January and made only five appearances in the second half of the season.
Mbappé: 27 club goals in 58 games against Haaland's 21 in 71. It was the last age at which Mbappé led the running total; Haaland's 44-goal age-19 season put him ahead, and he has stayed ahead since.