Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Operario-PR | 2026/27 | 44 | 5 | 2 |
| Cape Verde Islands | 2023 – 2025 | 0 | 0 | — |
| Universitatea Cluj | 2024/25 | 8 | 1 | 0 |
| Portimonense | 2023/24 | 18 | 2 | 2 |
| Henan Jianye | 2023/24 | 15 | 2 | 4 |
| Kunshan | 2020/21 – 2022/23 | 69 | 20 | — |
| Vitoria Setubal | 2018/19 – 2019/20 | 59 | 8 | 2 |
| Northampton | 2017/18 | 12 | 0 | 0 |
| Legia | 2017/18 | 6 | 2 | 0 |
| Portugal U23 | 2016 | 3 | 0 | — |
| Nottingham | 2016/17 | 25 | 2 | 2 |
| Benfica U19 | 2013 – 2015 | 20 | 9 | 1 |
| Benfica B | 2014/15 – 2015/16 | 36 | 4 | — |
| Portugal U19 | 2015 | 6 | 4 | 0 |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2023 | Kunshan | Henan Jianye | Free |
| 29 Jul 2020 | Vitoria Setubal | Kunshan | € 900K |
| 2 Aug 2018 | Legia Warszawa | Vitoria Setubal | — |
| 1 Jul 2018 | Northampton | Legia Warszawa | — |
| 3 Jan 2018 | Legia Warszawa | Northampton | Loan |
| 10 Jul 2017 | Benfica | Legia Warszawa | — |
| 1 Jul 2017 | Nottingham Forest | Benfica | — |
| 22 Jul 2016 | Benfica | Nottingham Forest | Loan |
| 8 Jan 2024 | Henan Jianye | Portimonense | Free |
| 3 Jul 2024 | Portimonense | Universitatea Cluj | Free |
| 31 Dec 2025 | Universitatea Cluj | Operario-PR | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | Paranaense - 1 | Operario-PR | 9 | — | — | 0 | 0 | 2 | 0 | — |
| 2026/27 | Copa Do Brasil | Operario-PR | 4 | 4 | 178 | 1 | 0 | 1 | 0 | 6.67 |
| 2026/27 | Serie B | Operario-PR | 31 | 25 | 1830 | 4 | 2 | 6 | 0 | 6.70 |
| 2024/25 | Cupa României | Universitatea Cluj | 1 | 1 | 42 | 0 | — | 0 | 0 | — |
| 2024/25 | Liga I | Universitatea Cluj | 7 | 6 | 368 | 1 | 0 | 2 | 0 | 6.73 |
| 2023/24 | Primeira Liga | Portimonense | 18 | 14 | 988 | 2 | 2 | 4 | 0 | 6.66 |
| 2023/24 | Super League | Henan Jianye | 15 | 15 | 1072 | 2 | 4 | 5 | 0 | 6.69 |
| 2022/23 | League One | Kunshan | 25 | 22 | 1953 | 8 | — | 9 | 0 | — |
| 2021/22 | League One | Kunshan | 28 | 25 | 2210 | 9 | — | 11 | 1 | — |
| 2021/22 | FA Cup | Kunshan | 1 | 1 | 90 | 1 | — | 1 | 0 | — |
| 2020/21 | League One | Kunshan | 13 | 10 | 787 | 1 | — | 3 | 1 | — |
| 2020/21 | FA Cup | Kunshan | 2 | 2 | 152 | 1 | — | 0 | 0 | — |
| 2019/20 | Primeira Liga | Vitoria Setubal | 25 | 17 | 1531 | 3 | 2 | 7 | 0 | 6.70 |
| 2019/20 | Taça da Liga | Vitoria Setubal | 4 | 2 | 195 | 0 | — | 0 | 0 | — |
| 2019/20 | Taça de Portugal | Vitoria Setubal | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | Primeira Liga | Vitoria Setubal | 26 | 19 | 1631 | 4 | — | 5 | 0 | 6.49 |
| 2018/19 | Taça da Liga | Vitoria Setubal | 2 | 1 | 134 | 1 | — | 1 | 0 | — |
| 2018/19 | Taça de Portugal | Vitoria Setubal | 1 | 0 | 31 | 0 | — | 1 | 0 | — |
| 2017/18 | League One | Northampton | 12 | — | — | 0 | 0 | 5 | 1 | — |
| 2017/18 | Ekstraklasa | Legia | 3 | — | — | 0 | 0 | 1 | 0 | — |
| 2017/18 | Polish Cup | Legia | 1 | — | — | 2 | 0 | 1 | 0 | — |
| 2017/18 | UEFA Europa League | Legia | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2016 | Tournoi Maurice Revello | Portugal U23 | 3 | 2 | 219 | 0 | — | 0 | 1 | — |
| 2016/17 | Championship | Nottingham | 22 | 16 | 1448 | 2 | 2 | 10 | 3 | 6.68 |
| 2016/17 | FA Cup | Nottingham | 1 | — | — | 0 | 0 | 1 | 0 | — |
| 2016/17 | League Cup | Nottingham | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2015/16 | Segunda Liga | Benfica B | 33 | 29 | 2527 | 2 | — | 13 | 0 | — |
| 2015 | UEFA U19 Championship | Portugal U19 | 3 | 3 | 236 | 2 | — | 0 | 0 | — |
| 2015 | UEFA Youth League | Benfica U19 | 4 | — | — | 3 | 1 | 1 | 0 | — |
| 2015 | Euro U19 - Qualification | Portugal U19 | 3 | — | — | 2 | 0 | 0 | 0 | — |
| 2014/15 | Segunda Liga | Benfica B | 3 | 1 | 127 | 2 | — | 1 | 0 | — |
| 2014 | UEFA Youth League | Benfica U19 | 6 | — | — | 3 | 0 | 3 | 0 | — |
| 2013 | UEFA Youth League | Benfica U19 | 10 | — | — | 3 | 0 | 1 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Suspended | 14 Feb 2018 | 18 Feb 2018 | 4 |
| Suspended | 6 Nov 2016 | 3 Dec 2016 | 27 |
| Suspended | 19 Oct 2016 | 30 Oct 2016 | 11 |
| Suspended | 12 Sept 2016 | 15 Sept 2016 | 3 |
Trophies
| Competition | Season | Place |
|---|---|---|
| Júniores U19 (Portugal) | 2013/2014 | 2nd Place |
| Super Cup (Poland) | 2018 | 2nd Place |
| China League One (China PR) | 2022 | Winner |
| UEFA Youth League (Europe) | 2013/2014 | 2nd Place |
