Johnston, Troy
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.306 |
| xwOBA current pace | 0.330 |
| xwOBA rolling p50 | 0.320 |
| Observed weight | 60% |
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
168 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.003 |
| wOBA Δ | +0.057 |
| Sample | 331 PA |
negative regression
Point projection and range
| Metric | Point | Range | Half-width |
|---|---|---|---|
| Plate Appearances | 261 | -- | -- |
| Home Runs | 9 | -- | -- |
| Stolen Bases | 0 | -- | -- |
| xwOBA | 0.333 | 0.222 to 0.376 | +/- 0.077 |
| ISO | 0.178 | 0.075 to 0.239 | +/- 0.082 |
| Barrel% | 4.7% | 1.8% to 7.6% | +/- 2.9% |
| Hard-Hit% | 36.4% | 24.3% to 44.4% | +/- 10.0% |
| K% | 24.4% | 13.5% to 28.6% | +/- 7.6% |
| BB% | 7.3% | 3.2% to 9.6% | +/- 3.2% |
| BABIP | 0.317 | 0.210 to 0.381 | +/- 0.085 |
11 career PA
| xwOBA | 0.099 |
| K% | 8.7% |
| BB% | 2.1% |
| Barrel | 1.7% |
125 career PA
| xwOBA | 0.112 |
| K% | 7.7% |
| BB% | 2.5% |
| Barrel | 2.5% |