Central · FC Porto · season-by-season, by competition, and every match.
Below his 2022/23 peak but holding a solid level — the platform for a return is there.
The record covers 6 seasons (2022/23–2025/26) across 3 clubs, including a move abroad — 130 appearances, 25 goals and 20 assists.
His best campaign on record is 2022/23 at Celta Vigo — Season rating 48, 11 goals and 4 assists in 36 games. 2024/25 was the leap — Season rating up 17 points at Al-Ahli Jeddah. Form is on a climb — up 9 Season points across his last 3 full seasons. The gap to his peak is 17 Season points.
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | FC Porto | 31 | 3 | 8 | 66 | 31 |
| 2024/25 | Al-Ahli Jeddah | 32 | 7 | 5 | 63 | 39 |
| 2023/24 | Al-Ahli Jeddah | 18 | 4 | 3 | 58 | 22 |
| 2022/23 | Celta Vigo | 36 | 11 | 4 | 91 | 48 |
| 2021/22 | Celta Vigo | 7 | 0 | 0 | 68 | 2 |
| 2020/21 | Celta Vigo | 6 | 0 | 0 | 70 | 2 |
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| Primeira Liga | 31 | 1622 | 3 | 8 | 6.9 |
| Friendlies Clubs | 12 | 734 | 1 | 1 | 7.0 |
| UEFA Europa League | 10 | 439 | 2 | 1 | 7.0 |
| Taça de Portugal | 6 | 167 | 0 | 1 | 6.5 |
| UEFA U21 Championship - Qualification | 6 | 159 | 2 | 0 | — |
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| May 31 | Friendlies Clubs | A Wydad AC | 1-0 | Not in squad | — | |||
| Jun 8 | Friendlies Clubs | H Riga | 0-2 | Not in squad | — | |||
| Jun 15 | FIFA Club World Cup | A Palmeiras | 0-0 | Played | 67 | 6.6 | ||
| Jun 19 | FIFA Club World Cup | A Inter Miami | 1-2 | Played | 59 | 6.6 | ||
| Jun 24 | FIFA Club World Cup | H Al Ahly | 4-4 | Played | 21 | 1 | 6.9 | |
| Aug 3 | Friendlies Clubs | H Atletico Madrid | 1-0 | Not in squad | — | |||
| Aug 11 | Primeira Liga | H Guimaraes | 3-0 | Played | 65 | 6.3 | ||
| Aug 18 | Primeira Liga | A GIL Vicente | 2-0 | Played | 58 | 1 | 6.9 | |
| Aug 24 | Primeira Liga | H Casa Pia | 4-0 | Played | 90 | 6.6 | ||
| Aug 30 | Primeira Liga | A Sporting CP | 2-1 | Not in squad | — | |||
| Sep 13 | Primeira Liga | H Nacional | 1-0 | Played | 34 | 6.9 | ||
| Sep 19 | Primeira Liga | A Rio Ave | 3-0 | Played | 58 | 1 | 2 | 9.5 |
| Sep 25 | UEFA Europa League | A Red Bull Salzburg | 1-0 | Played | 53 | 6.5 | ||
| Sep 29 | Primeira Liga | A Arouca | 4-0 | Played | 51 | 6.6 | ||
| Oct 2 | UEFA Europa League | H FK Crvena Zvezda | 2-1 | Played | 17 | 7.0 | ||
| Oct 5 | Primeira Liga | H Benfica | 0-0 | Played | 63 | 6.3 | ||
| Oct 18 | Taça de Portugal | A Celoricense | 4-0 | Not in squad | — | |||
| Oct 23 | UEFA Europa League | A Nottingham Forest | 0-2 | Played | 32 | 6.3 | ||
| Oct 27 | Primeira Liga | A Moreirense | 2-1 | Played | 58 | 6.2 | ||
| Nov 2 | Primeira Liga | H SC Braga | 2-1 | Played | 33 | 1 | 7.2 | |
| Nov 6 | UEFA Europa League | A Utrecht | 1-1 | Played | 90 | 7.0 | ||
| Nov 9 | Primeira Liga | A Famalicao | 1-0 | Played | 32 | 6.9 | ||
| Nov 22 | Taça de Portugal | H Sintrense | 3-0 | Not in squad | — | |||
| Nov 27 | UEFA Europa League | H Nice | 3-0 | Played | 80 | 2 | 9.7 | |
| Nov 30 | Primeira Liga | H Estoril | 1-0 | Played | 31 | 6.3 | ||
| Dec 4 | Taça da Liga | H Guimaraes | 1-3 | Not in squad | — | |||
| Dec 7 | Primeira Liga | A Tondela | 2-0 | Unused sub | 0 | — | ||
| Dec 11 | UEFA Europa League | H Malmo FF | 2-1 | Not in squad | — | |||
| Dec 15 | Primeira Liga | H Estrela | 3-1 | Played | 14 | 6.5 | ||
| Dec 18 | Taça de Portugal | H Famalicao | 4-1 | Not in squad | — | |||
| Dec 22 | Primeira Liga | A Alverca | 3-0 | Played | 31 | 6.9 | ||
| Dec 29 | Primeira Liga | H AVS | 2-0 | Played | 31 | 7.0 | ||
| Jan 4 | Primeira Liga | A Santa Clara | 1-0 | Played | 61 | 6.6 | ||
| Jan 14 | Taça de Portugal | H Benfica | 1-0 | Played | 62 | 1 | 6.5 | |
| Jan 18 | Primeira Liga | A Guimaraes | 1-0 | Played | 60 | 6.3 | ||
| Jan 22 | UEFA Europa League | A Plzen | 1-1 | Played | 34 | 7.3 | ||
| Jan 26 | Primeira Liga | H GIL Vicente | 3-0 | Played | 61 | 6.7 | ||
| Jan 29 | UEFA Europa League | H Rangers | 3-1 | Played | 9 | 6.5 | ||
| Feb 2 | Primeira Liga | A Casa Pia | 1-2 | Played | 90 | 6.7 | ||
| Feb 9 | Primeira Liga | H Sporting CP | 1-1 | Played | 63 | 6.5 | ||
| Feb 15 | Primeira Liga | A Nacional | 1-0 | Played | 31 | 1 | 7.3 | |
| Feb 22 | Primeira Liga | H Rio Ave | 1-0 | Played | 65 | 6.7 | ||
| Feb 27 | Primeira Liga | H Arouca | 3-1 | Played | 62 | 7.2 | ||
| Mar 3 | Taça de Portugal | A Sporting CP | 0-1 | Played | 34 | 6.6 | ||
| Mar 8 | Primeira Liga | A Benfica | 2-2 | Played | 45 | 1 | 6.9 | |
| Mar 12 | UEFA Europa League | A VfB Stuttgart | 2-1 | Played | 20 | 6.3 | ||
| Mar 15 | Primeira Liga | H Moreirense | 3-0 | Played | 66 | 1 | 6.7 | |
| Mar 19 | UEFA Europa League | H VfB Stuttgart | 2-0 | Unused sub | 0 | — | ||
| Mar 22 | Primeira Liga | A SC Braga | 2-1 | Played | 67 | 5.9 | ||
| Apr 4 | Primeira Liga | H Famalicao | 2-2 | Not in squad | — | |||
| Apr 9 | UEFA Europa League | H Nottingham Forest | 1-1 | Played | 59 | 1 | 7.3 | |
| Apr 12 | Primeira Liga | A Estoril | 3-1 | Played | 70 | 1 | 7.5 | |
| Apr 16 | UEFA Europa League | A Nottingham Forest | 0-1 | Played | 45 | 6.3 | ||
| Apr 19 | Primeira Liga | H Tondela | 2-0 | Played | 45 | 1 | 8.7 | |
| Apr 22 | Taça de Portugal | H Sporting CP | 0-0 | Played | 71 | 6.3 | ||
| Apr 26 | Primeira Liga | A Estrela | 2-1 | Played | 70 | 7.3 | ||
| May 2 | Primeira Liga | H Alverca | 1-0 | Played | 74 | 1 | 7.0 | |
| May 10 | Primeira Liga | A AVS | 1-3 | Played | 9 | 7.0 | ||
| May 16 | Primeira Liga | H Santa Clara | 1-0 | Played | 34 | 6.7 |