Center Forward · Vancouver Whitecaps · season-by-season, by competition, and every match.
Past his 2024/25 peak — the recent trend is downward, so buyers are paying for what's left, not what was.
The record covers 6 seasons (2020/21–2025/26) across 2 clubs, including a move abroad — 157 appearances, 48 goals and 43 assists.
His best campaign on record is 2024/25 at Vancouver Whitecaps — Season rating 60, 15 goals and 12 assists in 34 games. 2023/24 was the leap — Season rating up 19 points at Vancouver Whitecaps. Form has slipped 47 Season points across his last 3 full seasons. The gap to his peak is 50 Season points.
2025/26 was disrupted — 28 fixtures missed through injury or absence. A streaky profile — form has swung hard between campaigns (spread of ±18 points), so the peak and the trough are far apart.
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | Vancouver Whitecaps | 8 | 1 | 1 | 21 | 10 |
| 2024/25 | Vancouver Whitecaps | 34 | 15 | 12 | 37 | 60 |
| 2023/24 | Vancouver Whitecaps | 35 | 11 | 13 | 40 | 57 |
| 2022/23 | Vancouver Whitecaps | 28 | 8 | 5 | 42 | 38 |
| 2021/22 | Vancouver Whitecaps | 19 | 4 | 5 | 41 | 24 |
| 2020/21 | Farense | 33 | 9 | 7 | 66 | 51 |
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| Major League Soccer | 8 | 391 | 1 | 1 | 6.9 |
| CONCACAF Champions League | 3 | 190 | 1 | 1 | 7.2 |
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| Jan 24 | Friendlies Clubs | H Raków Częstochowa | 2-3 | Not in squad | — | |||
| Jan 29 | Friendlies Clubs | A St Patrick's Athl. | 1-1 | Not in squad | — | |||
| Feb 2 | Friendlies Clubs | A LNZ Cherkasy | 2-0 | Not in squad | — | |||
| Feb 6 | Friendlies Clubs | A IF Brommapojkarna | 2-0 | Not in squad | — | |||
| Feb 21 | CONCACAF Champions League | A Deportivo Saprissa | 1-2 | Played | 73 | 1 | 7.3 | |
| Feb 23 | Major League Soccer | A Portland Timbers | 4-1 | Played | 90 | 1 | 8.5 | |
| Feb 28 | CONCACAF Champions League | H Deportivo Saprissa | 2-0 | Played | 27 | 6.7 | ||
| Mar 2 | Major League Soccer | H Los Angeles Galaxy | 2-1 | Played | 86 | 7.0 | ||
| Mar 6 | CONCACAF Champions League | H Monterrey | 1-1 | Played | 90 | 1 | 7.6 | |
| Mar 9 | Major League Soccer | H CF Montreal | 2-0 | Played | 24 | 6.3 | ||
| Mar 13 | CONCACAF Champions League | A Monterrey | 2-2 | Not in squad | — | |||
| Mar 16 | Major League Soccer | A FC Dallas | 1-0 | Jumpers knee | — | |||
| Mar 23 | Major League Soccer | H Chicago Fire | 1-3 | Jumpers knee | — | |||
| Mar 29 | Major League Soccer | A Toronto FC | 0-0 | Jumpers knee | — | |||
| Apr 3 | CONCACAF Champions League | H U.N.A.M. - Pumas | 1-1 | Not in squad | — | |||
| Apr 6 | Major League Soccer | H Colorado Rapids | 2-0 | Jumpers knee | — | |||
| Apr 10 | CONCACAF Champions League | A U.N.A.M. - Pumas | 2-2 | Not in squad | — | |||
| Apr 12 | Major League Soccer | H Austin | 5-1 | Jumpers knee | — | |||
| Apr 20 | Major League Soccer | A St. Louis City | 0-0 | Jumpers knee | — | |||
| Apr 25 | CONCACAF Champions League | H Inter Miami | 2-0 | Not in squad | — | |||
| Apr 27 | Major League Soccer | A Minnesota United FC | 3-1 | Jumpers knee | — | |||
| May 1 | CONCACAF Champions League | A Inter Miami | 3-1 | Not in squad | — | |||
| May 4 | Major League Soccer | H Real Salt Lake | 2-1 | Jumpers knee | — | |||
| May 11 | Major League Soccer | H Los Angeles FC | 2-2 | Jumpers knee | — | |||
| May 18 | Major League Soccer | A Austin | 0-0 | Jumpers knee | — | |||
| May 21 | Canadian Championship | A Valour | 2-2 | Not in squad | — | |||
| May 25 | Major League Soccer | A Real Salt Lake | 3-2 | Jumpers knee | — | |||
| May 29 | Major League Soccer | H Minnesota United FC | 0-0 | Jumpers knee | — | |||
| Jun 2 | CONCACAF Champions League | A Cruz Azul | 0-5 | Not in squad | — | |||
| Jun 9 | Major League Soccer | H Seattle Sounders | 3-0 | Jumpers knee | — | |||
| Jun 14 | Major League Soccer | A Columbus Crew | 1-2 | Jumpers knee | — | |||
| Jun 26 | Major League Soccer | H San Diego | 3-5 | Jumpers knee | — | |||
| Jun 30 | Major League Soccer | A Los Angeles FC | 1-0 | Jumpers knee | — | |||
| Jul 5 | Major League Soccer | A Los Angeles Galaxy | 0-3 | Jumpers knee | — | |||
| Jul 10 | Canadian Championship | H Valour | 2-1 | Not in squad | — | |||
| Jul 13 | Major League Soccer | A Colorado Rapids | 0-3 | Jumpers knee | — | |||
| Jul 17 | Major League Soccer | A Houston Dynamo | 3-0 | Jumpers knee | — | |||
| Jul 20 | Major League Soccer | A San Diego | 1-1 | Jumpers knee | — | |||
| Jul 27 | Major League Soccer | H Sporting Kansas City | 3-0 | Jumpers knee | — | |||
| Aug 10 | Major League Soccer | A San Jose Earthquakes | 1-2 | Jumpers knee | — | |||
| Aug 13 | Canadian Championship | A Forge | 2-2 | Not in squad | — | |||
| Aug 18 | Major League Soccer | H Houston Dynamo | 1-1 | Jumpers knee | — | |||
| Aug 24 | Major League Soccer | H St. Louis City | 3-2 | Jumpers knee | — | |||
| Sep 14 | Major League Soccer | H Philadelphia Union | 7-0 | Jumpers knee | — | |||
| Sep 17 | Canadian Championship | H Forge | 4-0 | Not in squad | — | |||
| Sep 21 | Major League Soccer | A Sporting Kansas City | 2-0 | Knee Injury | — | |||
| Sep 25 | Major League Soccer | H Portland Timbers | 1-1 | Knee Injury | — | |||
| Sep 28 | Major League Soccer | A Seattle Sounders | 2-2 | Knee Injury | — | |||
| Oct 2 | Canadian Championship | H Vancouver FC | 4-2 | Not in squad | — | |||
| Oct 5 | Major League Soccer | H San Jose Earthquakes | 4-1 | Played | 12 | 7.0 | ||
| Oct 11 | Major League Soccer | A Orlando City SC | 2-1 | Played | 24 | 1 | 7.3 | |
| Oct 19 | Major League Soccer | H FC Dallas | 1-2 | Played | 8 | 6.6 | ||
| Oct 26 | Major League Soccer | H FC Dallas | 3-0 | Played | 14 | 6.9 | ||
| Nov 2 | Major League Soccer | A FC Dallas | 1-1 | Played | 15 | 6.9 | ||
| Nov 23 | Major League Soccer | H Los Angeles FC | 2-2 | Played | 58 | 6.5 | ||
| Nov 30 | Major League Soccer | A San Diego | 3-1 | Played | 29 | 6.3 | ||
| Dec 6 | Major League Soccer | A Inter Miami | 1-3 | Played | 31 | 6.5 |