Playing now
Live| Season | Team | Competition | MP | Min | G | A |
|---|---|---|---|---|---|---|
| 2026/27 | Cavalry | Canadian Premier League | 21 | 1,890 | 0 | 1 |
| 2025/26 | Atlético Ottawa | Canadian Premier League | 30 | 2,730 | 0 | 0 |
| 2024/25 | Atlético Ottawa | Canadian Premier League | 22 | 2,010 | 0 | 0 |
| 2023/24 | Atlético Ottawa | Canadian Premier League | 22 | 1,980 | 0 | 0 |
| 2022/23 | Atlético Ottawa | Canadian Premier League | 28 | 2,517 | 0 | 0 |
| 2021/22 | Inter Toronto | Canadian Premier League | 22 | 1,900 | 0 | 0 |
| 2020/21 | Inter Toronto | Canadian Premier League | 6 | 540 | 0 | 0 |
| 2019/20 | Inter Toronto | Canadian Premier League | 26 | 2,340 | 0 | 0 |
| 2017/18 | Edmonton | North American Soccer League | 8 | 675 | 0 | 0 |
| 2016/17 | TFC II | United Soccer League | 2 | 115 | 0 | 0 |
| Total | 10 seasons | 187 | 16,697 | 0 | 1 |
Canadian Championship
2026/27No stats available right now.
Canadian Premier League
2026/27Compared with 12 players in the same position in 2026/27.
Value: per 90 minutes played, except the percentages. Percentile: how many of those players rank below, from 0 to 100. The dotted ring on the chart is the 50th percentile, meaning the average for the position.
| Metric | Value | Percentile |
|---|---|---|
| Saves | 2.19 | 29 |
| Save % | 79% | 96 |
| Clean sheets | 43% | 88 |
| High claims | 0.86 | 71 |
| Pass accuracy | 75% | 54 |
| Long passing | 41% | 71 |
| Metric | Total |
|---|---|
| Assists | 1 |
| Big chances created | 1 |
| Dribbles completed | 1 |
| Clearances | 9 |
| Saves | 46 |
| Clean sheets | 9 |
Canadian Championship
2025/26No stats available right now.
Canadian Premier League
2025/26Compared with 12 players in the same position in 2025/26.
Value: per 90 minutes played, except the percentages. Percentile: how many of those players rank below, from 0 to 100. The dotted ring on the chart is the 50th percentile, meaning the average for the position.
| Metric | Value | Percentile |
|---|---|---|
| Saves | 2.87 | 54 |
| Save % | 74% | 96 |
| Clean sheets | 37% | 88 |
| High claims | 0.69 | 46 |
| Pass accuracy | 75% | 63 |
| Long passing | 37% | 63 |
| Metric | Total |
|---|---|
| Dribbles completed | 1 |
| Tackles won | 1 |
| Clearances | 29 |
| Saves | 87 |
| Clean sheets | 11 |
Canadian Championship
2024/25No stats available right now.
Canadian Premier League
2024/25| Metric | Total |
|---|---|
| Shots | 1 |
| Interceptions | 1 |
| Clearances | 15 |
| Saves | 57 |
| Clean sheets | 7 |
Canadian Championship
2023/24No stats available right now.
Canadian Premier League
2023/24| Metric | Total |
|---|---|
| Clearances | 21 |
| Saves | 56 |
| Clean sheets | 7 |
Canadian Championship
2022/23No stats available right now.
Canadian Premier League
2022/23Compared with 12 players in the same position in 2022/23.
Value: per 90 minutes played, except the percentages. Percentile: how many of those players rank below, from 0 to 100. The dotted ring on the chart is the 50th percentile, meaning the average for the position.
| Metric | Value | Percentile |
|---|---|---|
| Saves | 2.68 | 46 |
| Save % | 73% | 79 |
| Clean sheets | 32% | 50 |
| High claims | 1.11 | 88 |
| Pass accuracy | 63% | 38 |
| Long passing | 33% | 13 |
| Metric | Total |
|---|---|
| Tackles won | 1 |
| Interceptions | 1 |
| Clearances | 19 |
| Saves | 75 |
| Clean sheets | 9 |
Canadian Championship
2021/22No stats available right now.
Canadian Premier League
2021/22| Metric | Total |
|---|---|
| Big chances created | 1 |
| Tackles won | 1 |
| Interceptions | 1 |
| Clearances | 15 |
| Saves | 74 |
| Clean sheets | 5 |
Canadian Premier League
2020/21| Metric | Total |
|---|---|
| Big chances created | 1 |
| Clearances | 5 |
| Saves | 13 |
| Clean sheets | 2 |
Canadian Championship
2019/20No stats available right now.
Canadian Premier League
2019/20Compared with 13 players in the same position in 2019/20.
Value: per 90 minutes played, except the percentages. Percentile: how many of those players rank below, from 0 to 100. The dotted ring on the chart is the 50th percentile, meaning the average for the position.
| Metric | Value | Percentile |
|---|---|---|
| Saves | 3.42 | 58 |
| Save % | 72% | 50 |
| Clean sheets | 23% | 35 |
| High claims | 0.88 | 88 |
| Pass accuracy | 71% | 81 |
| Long passing | 47% | 96 |
| Metric | Total |
|---|---|
| Big chances created | 1 |
| Clearances | 24 |
| Saves | 89 |
| Clean sheets | 6 |
US Open Cup
2018/19No stats available right now.
United Soccer League
2018/19No stats available right now.
Canadian Championship
2017/18No stats available right now.
North American Soccer League
2017/18Compared with 12 players in the same position in 2017/18.
Value: per 90 minutes played, except the percentages. Percentile: how many of those players rank below, from 0 to 100. The dotted ring on the chart is the 50th percentile, meaning the average for the position.
| Metric | Value | Percentile |
|---|---|---|
| Saves | 4.00 | 96 |
| Save % | 75% | 96 |
| Clean sheets | 0% | 4 |
| High claims | 0.93 | 88 |
| Pass accuracy | 62% | 46 |
| Long passing | 44% | 54 |
| Metric | Total |
|---|---|
| Clearances | 10 |
| Saves | 30 |
Canadian Championship
2016/17No stats available right now.
North American Soccer League
2016/17No stats available right now.
North American Soccer League The Championship
2016/17No stats available right now.
United Soccer League
2016/17Compared with 58 players in the same position in 2016/17.
Value: per 90 minutes played, except the percentages. Percentile: how many of those players rank below, from 0 to 100. The dotted ring on the chart is the 50th percentile, meaning the average for the position.
Small sample so far: few matches played.
No data in this competition: Pass accuracy, Long passing.
| Metric | Value | Percentile |
|---|---|---|
| Saves | 6.26 | 100 |
| Save % | 80% | 93 |
| Clean sheets | 0% | 6 |
| High claims | 0.00 | 49 |
| Metric | Total |
|---|---|
| Saves | 8 |
Recent matches
| Match | Min | G | A | Sv | GA | Cl | Pun | Pass | Score |
|---|---|---|---|---|---|---|---|---|---|
| 09/25Supra du QuébecG6-0 | 90' | 0 | 0 | 2 | 0 | 1 | 0 | 25/32 | 7.7 |
| 09/19ForgeE1-1 | 90' | 0 | 0 | 3 | 1 | 4 | 0 | 25/31 | 7.4 |
| 09/13AwayPacificG0-1 | 90' | 0 | 0 | 2 | 0 | 1 | 0 | 18/31 | 7.3 |
| 09/07AwayHFX WanderersG1-3 | 90' | 0 | 0 | 3 | 1 | 1 | 1 | 12/20 | 6.8 |
| 08/29Vancouver FCG1-0 | 90' | 0 | 0 | 2 | 0 | 0 | 0 | 16/23 | 7.6 |
| 08/22Atlético OttawaG3-1 | 90' | 0 | 1 | 1 | 1 | 0 | 0 | 22/28 | 7.8 |
| 08/15ForgeG2-1 | 90' | 0 | 0 | 1 | 1 | 2 | 0 | 18/24 | 6.5 |
| 08/08AwaySupra du QuébecE1-1 | 90' | 0 | 0 | 2 | 1 | 0 | 0 | 20/27 | 6.3 |
| 08/01Inter TorontoG5-0 | 90' | 0 | 0 | 1 | 0 | 0 | 0 | 13/13 | 7.4 |
| 07/24AwayVancouver FCP1-0 | 90' | 0 | 0 | 4 | 1 | 0 | 0 | 28/42 | 7.0 |
| 07/18HFX WanderersE1-1 | 90' | 0 | 0 | 4 | 1 | 0 | 0 | 14/18 | 7.2 |
| 07/13Vancouver Whitecaps FCE1-1 | 90' | 0 | 0 | 4 | 1 | 0 | 0 | 24/38 | 7.0 |
| 07/08AwayVancouver Whitecaps FCP4-1 | 90' | 0 | 0 | 3 | 4 | 0 | 0 | 24/33 | 5.4 |
| 07/04AwayAtlético OttawaG0-3 | 90' | 0 | 0 | 2 | 0 | 0 | 0 | 21/24 | 7.4 |
| 06/10AwayInter TorontoG1-5 | 90' | 0 | 0 | 2 | 1 | 1 | 0 | 15/22 | 6.4 |
CTJ
ATS
SLV
MTQ
KHA
POL
GEO
NIR
ARM
LVA
HUN
UKR
ITA
BEL
MNE
CYP
POL
BIH
SWE
ROU
TUR
FRA
AUS
BRA
IND
PAN
ATL
MTY
BER
GLP
GRN
CUB
BRB
LCA
SKN
JAM
GUA
HON
SUR
MOZ
SEN
SDN
ETH
TAN
GNB
NIG
LES
NGA
MAD
RWA
LBR
TOG
BDI
MWI
SSD
GAM
SOM
ALG
ZAM
MAR
GAB
MLI
CPV
EGY
ANG
BFA
BEN
SAB
RPO
AUR
NAL
CAR
CAV
SUP
WXW
GXH


