Current snapshot
| Age | 29 |
| Height | 6' 0" |
| Weight | 209 lb |
| Debut | 2019-08-24 |
2B · Bats/Throws S/R · 6' 0", 209 lb · Age 29
| PA | R | H | HR | SB | AVG | OBP | SLG | OPS | |
|---|---|---|---|---|---|---|---|---|---|
| 2024 | 635 | 89 | 138 | 12 | 14 | .247 | .331 | .385 | .716 |
| 2025 | 454 | 58 | 91 | 11 | 10 | .226 | .313 | .366 | .679 |
| 2026 | 234 | 31 | 58 | 5 | 5 | .278 | .350 | .402 | .752 |
| 8 Seasons | 2824 | 372 | 626 | 61 | 80 | .247 | .316 | .386 | .702 |
The headline weighs outcome stats (xwOBA, barrels); each bar averages its full strip group below. 100 = best in MLB.
Rolling bands shrink current-season signal toward the preseason prior until the sample earns more weight.
| xwOBA preseason | 0.330 |
| xwOBA current pace | 0.289 |
| xwOBA rolling p50 | 0.309 |
| Observed weight | 52% |
100th = best in MLB.
Our research metrics for how this hitter controls the strike zone and handles each pitch family.
Live snapshot series; true 50/100 PA windows require PA-level logs
123 Statcast batted-ball coordinates from the pitch-event feed (2026). Direction profile remains as the v1 context layer when coordinate density is limited.
Aggregate zone metrics from seasonal Statcast leaderboards.
Aggregate Savant bat-tracking metrics; not per-swing motion capture. The full swing, with the recommended path overlaid, lives in the 3D Swing Simulator.
| Age | 29 |
| Height | 6' 0" |
| Weight | 209 lb |
| Debut | 2019-08-24 |
| xwOBA Δ | -0.040 |
| wOBA Δ | +0.028 |
negative regression
Castro’s wOBA sits at 0.357, but the quality of contact underneath says it should be 0.289 — a gap of 0.068, -2.2 standard deviations from the MLB norm over 242 PA. The results have outrun the underlying process; as the sample grows, expect the numbers to drift back toward the deserved level.
| Module | Cards | Latest | Signal |
|---|---|---|---|
| Hitting | 2 | 2026-04-07 | On-base pressure held the card together |
| Hitter Projections 20260.329 xwOBA | 12 HR | Projection |
| 2026-05-20 vs TEX0 HR | 0 RBI / 3 Ch | 0 E | 0-1 | K |
| 2026-04-20 vs LAD0 HR | 0 RBI / 7 Ch | 0 E | 2-4 | K |
| 2026-04-15 @ HOU0 HR | 1 RBI / 2 Ch | 0 E | 1-1 | 2B, HBP, RBI |
| 2026-04-14 @ HOU0 HR | 0 RBI / 6 Ch | 2 E | 0-5 | 3 K |
| 2026-04-11 @ SD0 HR | 0 RBI / 0 Ch | 0 E | 0-1 | K |