Sport-specific career totals from the active profile tables, with VAL shown whenever the sport has a value file.
| Season | Age | Team | Min | G | A | Sh | SoT | KP | xG | xA | g+ | VAL |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018 | 20 | POR | 1,522 | 1 | 1 | 21 | 8 | 11 | 1.83 | 0.83 | 0.55 | 4.3 |
| 2019 | 21 | POR | 1,905 | 4 | 2 | 38 | 10 | 19 | 3.95 | 1.86 | 1.72 | 7.6 |
| 2020 | 22 | POR | 991 | 0 | 0 | 13 | 6 | 7 | 1.19 | 0.34 | 0.00 | 2.3 |
| 2021 | 23 | POR | 1,656 | 3 | 1 | 24 | 6 | 8 | 2.81 | 1.92 | 0.96 | 5.8 |
| 2022 | 24 | POR | 1,843 | 2 | 2 | 23 | 8 | 14 | 3.03 | 1.45 | 2.02 | 6.8 |
| 2023 | 25 | POR | 2,100 | 2 | 1 | 25 | 6 | 24 | 2.87 | 2.47 | 1.49 | 7 |
| 2024 | 26 | POR | 1,562 | 0 | 2 | 10 | 6 | 15 | 0.39 | 1.42 | 0.00 | 3.8 |
| 2025 | 27 | POR | 1,301 | 2 | 0 | 10 | 2 | 16 | 0.97 | 1.03 | 1.01 | 4.4 |
Gave the Portland Timbers FC an entire corpus-attributed career β 8 seasons (2018β2025), one crest. The rarest loyalty in the sport.