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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019 | 22 | POR | 828 | 2 | 0 | 20 | 13 | 11 | 1.68 | 0.90 | 0.75 | 3.2 |
| 2020 | 23 | POR | 986 | 0 | 0 | 18 | 7 | 11 | 1.31 | 0.96 | 0.00 | 2.4 |
| 2021 | 24 | POR | 1,317 | 2 | 3 | 21 | 4 | 21 | 2.20 | 2.35 | 0.59 | 5.4 |
| 2022 | 25 | POR | 949 | 2 | 1 | 21 | 7 | 13 | 2.79 | 0.71 | 0.19 | 3.6 |
| 2023 | 26 | POR | 855 | 0 | 1 | 13 | 6 | 6 | 0.83 | 0.50 | 0.00 | 2.2 |
| 2024 | 27 | POR | 1 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | — |
Gave the Portland Timbers FC an entire corpus-attributed career — 6 seasons (2019–2024), one crest. The rarest loyalty in the sport.