Cape League Batting (expand stats for Game Logs)
2022 — Hyannis Harbor Hawks · Princeton
2023 — Falmouth Commodores · Princeton
| Date |
Team |
Opp |
Result |
Pos |
PA | AB | R | H | TB |
2B | 3B | HR | RBI |
SH | SF | HBP |
BB | IBB | SO |
SB | CS | GIDP |
PO | A | E | DP |
AVG | OBP | SLG | OPS | wOBA | wRC+ |
| 6/12 |
Hyannis |
@Wareham |
L 1-2
|
RF |
3 |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
3 |
0 |
0 |
0 |
0.000 |
0.000 |
0.000 |
0.000 |
— | — |
| Season Total |
| | | |
3 |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
3 |
0 |
0 |
0 |
0.000 |
0.000 |
0.000 |
0.000 |
— |
-132 |
| 6/10 |
Falmouth |
Wareham |
L 10-11
|
DH |
6 |
5 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0.200 |
0.333 |
0.200 |
0.533 |
— | — |
| 6/11 |
Falmouth |
Bourne |
T 3-3
|
RF |
4 |
4 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
2 |
1 |
0 |
1 |
0.222 |
0.300 |
0.222 |
0.522 |
— | — |
| 6/12 |
Falmouth |
@Harwich |
W 2-1
|
LF |
4 |
4 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0.231 |
0.286 |
0.231 |
0.517 |
— | — |
| 6/13 |
Falmouth |
Yarmouth-Dennis |
L 6-14
|
RF |
4 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0.176 |
0.222 |
0.176 |
0.398 |
— | — |
| 6/14 |
Falmouth |
@Hyannis |
L 5-6
|
DH |
3 |
3 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0.200 |
0.238 |
0.200 |
0.438 |
— | — |
| Season Total |
| | | |
21 |
20 |
1 |
4 |
4 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
1 |
0 |
3 |
0 |
0 |
0 |
4 |
1 |
0 |
1 |
0.200 |
0.238 |
0.200 |
0.438 |
0.224 |
10 |
Professional Batting
| Year | Level | Team | Org |
G | PA | AB | R | H | TB |
2B | 3B | HR | RBI |
BB | SO | SB | CS |
HBP | SF | SAC | GIDP |
AVG | OBP | SLG | OPS | BABIP |
| 2023 | A |
San Jose | San Francisco Giants |
23 | 99 | 79 |
15 | 19 | 32 |
5 | 1 | 2 | 13 |
15 | 0 | 3 |
1 |
2 |
0 |
0 |
0 |
0.241 |
0.364 |
0.405 |
0.769 |
0.221 |
| 2024 | A |
San Jose | San Francisco Giants |
27 | 126 | 105 |
16 | 29 | 38 |
7 | 1 | 0 | 14 |
14 | 0 | 5 |
3 |
6 |
0 |
0 |
0 |
0.276 |
0.389 |
0.362 |
0.751 |
0.276 |
| 2024 | A+ |
Eugene | San Francisco Giants |
56 | 247 | 211 |
46 | 48 | 79 |
9 | 2 | 6 | 38 |
31 | 0 | 19 |
2 |
3 |
0 |
0 |
0 |
0.227 |
0.332 |
0.374 |
0.706 |
0.205 |
| 2025 | A+ |
Eugene | San Francisco Giants |
81 | 373 | 319 |
65 | 98 | 140 |
15 | 3 | 7 | 45 |
44 | 0 | 30 |
2 |
7 |
0 |
0 |
0 |
0.307 |
0.399 |
0.439 |
0.838 |
0.292 |
| 2025 | AA |
Richmond | San Francisco Giants |
45 | 186 | 161 |
26 | 32 | 52 |
9 | 1 | 3 | 20 |
23 | 0 | 11 |
0 |
1 |
0 |
0 |
0 |
0.199 |
0.303 |
0.323 |
0.626 |
0.184 |
| 2026 | AA |
Richmond | San Francisco Giants |
37 | 174 | 142 |
33 | 46 | 68 |
9 | 2 | 3 | 32 |
25 | 0 | 10 |
2 |
3 |
0 |
0 |
0 |
0.324 |
0.430 |
0.479 |
0.909 |
0.309 |
| 2026 | AAA |
Sacramento | San Francisco Giants |
84 | 382 | 330 |
64 | 106 | 160 |
24 | 3 | 8 | 57 |
41 | 0 | 22 |
1 |
2 |
0 |
0 |
0 |
0.321 |
0.395 |
0.485 |
0.880 |
0.234 |
| 2026 |
AAA |
Career (1 yr) |
|
84 | 382 | 330 |
64 | 106 | 160 |
24 | 3 | 8 | 57 |
41 | 0 | 22 |
1 |
2 |
0 |
0 |
0 |
0.321 |
0.399 |
0.485 |
0.884 |
— |
| 2025–2026 |
AA |
Career (2 yrs) |
|
82 | 360 | 303 |
59 | 78 | 120 |
18 | 3 | 6 | 52 |
48 | 0 | 21 |
2 |
4 |
0 |
0 |
0 |
0.257 |
0.366 |
0.396 |
0.762 |
— |
| 2024–2025 |
A+ |
Career (2 yrs) |
|
137 | 620 | 530 |
111 | 146 | 219 |
24 | 5 | 13 | 83 |
75 | 0 | 49 |
4 |
10 |
0 |
0 |
0 |
0.275 |
0.376 |
0.413 |
0.789 |
— |
| 2023–2024 |
A |
Career (2 yrs) |
|
50 | 225 | 184 |
31 | 48 | 70 |
12 | 2 | 2 | 27 |
29 | 0 | 8 |
4 |
8 |
0 |
0 |
0 |
0.261 |
0.385 |
0.380 |
0.765 |
— |
2022 Advanced Metrics (Trackman)
Batting
Sample too small for percentile ranks
Run Value/100 replicates MLB's own published methodology: a count-conditioned run-expectancy model (base-out state × ball-strike count, same RE24 approach as the baserunning model but extended to the pitch level) values every single pitch, not just PA outcomes — a called strike moving the count from 1-1 to 1-2 has real value even though nothing "happened." Doesn't use Trackman at all, just play-by-play + pitch sequencing, so it isn't restricted to Trackman-covered games the way most of this section is. The Fielding row is a range-runs estimate: batted balls are bucketed by position + Trackman-derived difficulty (hang time/distance/exit velo, same buckets as the baserunning model), and the fielder — parsed directly from that specific play's PBP description, not a per-game starting lineup — is credited or debited the run-value gap between the bucket's expected out rate and what actually happened. Barrel% uses MLB's actual published EV/launch-angle lookup table — a ball must be hit 98+ mph, with the qualifying launch-angle window widening as EV climbs (a tight 26-30° band right at 98 mph, up to a wide 8-50° band at 116+ mph); Solid Contact % is a CCBL-only complement using that same table shifted 10 mph lower (88+ mph and up), since MLB's absolute 98+ mph Barrel threshold leaves ~70% of CCBL hitters flat at 0%. Hard-Hit % is exit velo alone, no launch-angle requirement: 95+ mph off the bat. xBA/xSLG/xwOBA use a k-nearest-neighbor model on this season's own batted balls, not MLB's own published model or league-wide MLB data — those, Fielding, and Run Value should be read as CCBL-relative, not compared directly to MLB's own advanced tracking numbers.