Cape League Batting (expand stats for Game Logs)
2023 — Hyannis Harbor Hawks · Maryland
| 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/16 |
Hyannis |
Bourne |
L 6-8
|
RF |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0.000 |
0.500 |
0.000 |
0.500 |
— | — |
| Season Total |
| | | |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0.000 |
0.500 |
0.000 |
0.500 |
0.401 |
124 |
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 |
| 2024 | A |
Palm Beach | St. Louis Cardinals |
28 | 115 | 90 |
21 | 31 | 39 |
6 | 1 | 0 | 20 |
17 | 0 | 5 |
1 |
7 |
0 |
0 |
0 |
0.344 |
0.482 |
0.433 |
0.915 |
0.344 |
| 2025 | A+ |
Peoria | St. Louis Cardinals |
87 | 371 | 316 |
35 | 78 | 111 |
16 | 1 | 5 | 45 |
40 | 0 | 3 |
10 |
13 |
0 |
0 |
0 |
0.247 |
0.354 |
0.351 |
0.705 |
0.235 |
| 2026 | A |
Palm Beach | St. Louis Cardinals |
11 | 45 | 40 |
7 | 10 | 18 |
2 | 0 | 2 | 10 |
3 | 0 | 0 |
1 |
2 |
0 |
0 |
0 |
0.250 |
0.333 |
0.450 |
0.783 |
0.238 |
| 2026 | A+ |
Peoria | St. Louis Cardinals |
49 | 199 | 172 |
34 | 49 | 72 |
12 | 1 | 3 | 27 |
16 | 0 | 8 |
5 |
6 |
0 |
0 |
0 |
0.285 |
0.364 |
0.419 |
0.783 |
0.239 |
| 2025–2026 |
A+ |
Career (2 yrs) |
|
136 | 570 | 488 |
69 | 127 | 183 |
28 | 2 | 8 | 72 |
56 | 0 | 11 |
15 |
19 |
0 |
0 |
0 |
0.260 |
0.359 |
0.375 |
0.734 |
— |
| 2024–2026 |
A |
Career (2 yrs) |
|
39 | 160 | 130 |
28 | 41 | 57 |
8 | 1 | 2 | 30 |
20 | 0 | 5 |
2 |
9 |
0 |
0 |
0 |
0.315 |
0.440 |
0.438 |
0.878 |
— |
2023 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.