This name appears at more than one team in the same season, so these rows are at least two different people. Careers are currently matched on name because the spine has no canonical player id yet. Treat this page as a name, not a person, until the identity layer exists.
Career
| Season | Div | Team | Pos | GP | 90s | G | A | raw/90 | adj/90 | sched | rank | pct | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | D1 | Duquesne |
GK | 13 | 13.0 | 0 | 1 | 0.053 | 0.048 | 0.89 | · | not ranked | |
| 2025 | D2 | Point Loma |
MID | 15 | 7.0 | 0 | 2 | 0.285 | 0.294 | 1.09 | 955 | 61 | |
| 2025 | D3 | Mitchell |
MID | 16 | 15.2 | 4 | 0 | 0.280 | 0.249 | 0.83 | 2441 | 52 | |
| 2024 | D2 | Colorado Mesa |
GK | 17 | 16.9 | 0 | 0 | 0.002 | 0.002 | · | · | not ranked | |
| 2023 | D2 | Cal St. San Marcos |
MID | 20 | 7.4 | 1 | 1 | 0.276 | 0.285 | 1.09 | 998 | 61 | |
| 2023 | D2 | Colorado Mesa |
GK | 19 | 19.0 | 0 | 0 | 0.001 | 0.001 | · | · | not ranked | |
| 2022 | D2 | Cal St. San Marcos |
MID | 15 | 10.3 | 0 | 2 | 0.233 | 0.241 | 1.10 | 1194 | 52 | |
| Career | D1 + D2 + D3 | 5 teams | 115 | 88.7 | 5 | 6 | 0.087 | 0.085 |
The career row totals only what can be totalled. Schedule, rank and percentile are blank because each one is a position inside a single division-season, so there is no career version of them, and the best season's percentile is not one. The career raw/90 and adj/90 are every season put on the D1 scale and weighted by minutes, which is the only way to total a rate across divisions. The level ladder is measured from 665 players observed in two divisions, in both directions, so it is a within-player comparison rather than a guess. A goal in D2 counts as 0.72 of a D1 goal. A goal in D3 counts as 0.55 of a D1 goal. Treat it as a translation, not a projection. The ladder is an average over players who moved, and most of them were mid-table, so applying it to someone far out in his division's tail assumes the gap is the same size up there. The mover sample cannot check that.
2025 · every game by opponent strength
Each circle is one game, placed by how strong the opponent was and how many goal involvements he had. Filled circles are games he scored or assisted in. He drew 100% of his involvements against the weaker half where 56% was expected given the schedule he played (p = 0.557). That is within the normal range.
2025 game log
| Date | Opponent | opp rating | min | G | A | |
|---|---|---|---|---|---|---|
| 2025-08-21 | Seton Hill H | · | out of division, not counted | 90 | 0 | 0 |
| 2025-08-24 | Robert Morris H | +0.11 | 90 | 0 | 0 | |
| 2025-08-30 | Canisius A | -0.63 | weaker half | 90 | 0 | 0 |
| 2025-09-05 | Syracuse A | +0.18 | 90 | 0 | 0 | |
| 2025-09-09 | Mount St. Mary's A | -0.54 | weaker half | 90 | 0 | 0 |
| 2025-09-14 | St. Bonaventure H | -0.43 | weaker half | 90 | 0 | 1 |
| 2025-09-17 | Saint Francis H | · | out of division, not counted | 90 | 0 | 0 |
| 2025-09-20 | Saint Louis H | +0.25 | 89 | 0 | 0 | |
| 2025-09-30 | Detroit Mercy H | -0.40 | weaker half | 90 | 0 | 0 |
| 2025-10-08 | Rhode Island A | -0.01 | 90 | 0 | 0 | |
| 2025-10-11 | Fordham A | +0.12 | 90 | 0 | 0 | |
| 2025-10-18 | George Washington H | -0.62 | weaker half | 90 | 0 | 0 |
| 2025-10-21 | Northern Ky. A | -0.32 | weaker half | 90 | 0 | 0 |
| 2025-10-25 | Davidson A | +0.09 | 90 | 0 | 0 | |
| 2025-11-01 | George Mason H | +0.12 | 90 | 0 | 0 |




