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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2017 | 29 | POR | 3,036 | 8 | 4 | 86 | 32 | 55 | 6.21 | 3.99 | 3.96 | 15 |
| 2018 | 30 | POR | 3,431 | 13 | 8 | 91 | 37 | 65 | 7.41 | 10.00 | 5.23 | 16.2 |
| 2019 | 31 | POR | 2,867 | 6 | 11 | 110 | 33 | 83 | 7.70 | 10.07 | 2.02 | 15.1 |
| 2020 | 32 | POR | 1,100 | 4 | 6 | 34 | 11 | 19 | 2.17 | 3.45 | 0.83 | 6.1 |
| 2021 | 33 | POR | 1,526 | 9 | 6 | 53 | 23 | 27 | 5.53 | 4.57 | 4.76 | 11.8 |
| 2022 | 34 | POR | 2,010 | 7 | 7 | 59 | 20 | 43 | 5.57 | 5.16 | 2.73 | 11.8 |
| 2023 | 35 | POR | 527 | 1 | 1 | 6 | 1 | 8 | 0.54 | 0.73 | 0.46 | 2.2 |
Gave the Portland Timbers FC an entire corpus-attributed career — 7 seasons (2017–2023), one crest. The rarest loyalty in the sport.