Castro, Willi
Everyday offensive profile with usable floor
Season percentile report
The headline weighs outcome stats (xwOBA, barrels); each bar averages its full strip group below. 100 = best in MLB.
percentile
Preseason / current pace / Bayesian update
Rolling bands shrink current-season signal toward the preseason prior until the sample earns more weight.
| xwOBA preseason | 0.330 |
| xwOBA current pace | 0.294 |
| xwOBA rolling p50 | 0.308 |
| Observed weight | 61% |
Actual percentile with projection tick
100th = best in MLB.
SEAGER+ and decision components
SEAGER+ is the promoted plate-discipline index; component rows marked rebadged research are visible diagnostic context, not standalone promoted metrics.
xwOBA snapshot line
Live snapshot series; true 50/100 PA windows require PA-level logs
Field-coordinate spray profile
138 Statcast batted-ball coordinates from the pitch-event feed (2026). Direction profile remains as the v1 context layer when coordinate density is limited.
Swing path, attack angle, bat speed
Aggregate Savant bat-tracking metrics; not per-swing motion capture. The full swing, with the recommended path overlaid, lives in the 3D Swing Simulator.
Aggregate zone heatmap
Aggregate zone metrics from seasonal Statcast leaderboards.
Current-season signal
| xwOBA Δ | -0.035 |
| wOBA Δ | +0.018 |
| Sample | 341 PA |
negative regression
Point projection and range
| Metric | Point | Range | Half-width |
|---|---|---|---|
| Plate Appearances | 499 | -- | -- |
| Home Runs | 12 | -- | -- |
| Stolen Bases | 0 | -- | -- |
| xwOBA | 0.329 | 0.304 to 0.377 | +/- 0.037 |
| ISO | 0.154 | 0.108 to 0.242 | +/- 0.067 |
| Barrel% | 4.6% | 2.9% to 7.0% | +/- 2.1% |
| Hard-Hit% | 37.1% | 31.7% to 43.6% | +/- 6.0% |
| K% | 23.7% | 20.6% to 29.4% | +/- 4.4% |
| BB% | 7.8% | 6.0% to 11.0% | +/- 2.5% |
| BABIP | 0.313 | 0.273 to 0.365 | +/- 0.046 |
757 career PA
| xwOBA | 0.260 |
| K% | 19.4% |
| BB% | 6.0% |
| Barrel | 3.5% |
1969 career PA
| xwOBA | 0.267 |
| K% | 21.2% |
| BB% | 7.5% |
| Barrel | 4.0% |