Per-type validation first exposed sample holes for curveballs and cutters. Family aggregation followed Robert Orr-style pitch recognition grouping rather than goalpost moving.
Pitch-Type Vulnerability validated pitch-family resistance.
A hitter pitch-family vulnerability surface using regressed wOBA against pitch-recognition families, displayed as resistance percentile where 100 is best.
2023-2025 Statcast pitch-event outcomes grouped into hitter-recognition pitch families: Fastball, Sinker, Changeup, Breaking horizontal, Breaking vertical, and Cutters/Splitters.
Resistance percentile = 100 - percentile(regressed same-family wOBA vulnerability)
Fastball, Sinker, and Changeup cleared the locked r >= .300 gate. Horizontal breaking is borderline and labeled cautiously. Vertical breaking and cutters/splitters show raw current-year context with limited-sample disclosure.
Future v1.1 should use hierarchical/Bayesian estimation for small-sample breaking-ball and cutter/splitter vulnerability.
Breaking-horizontal is displayed with an interpret-cautiously tag; r .239 missed the .300 predictive gate.
Breaking-vertical and Cutters/Splitters remain insufficient-sample surfaces; most hitters do not accumulate 100+ qualified exposures per year.
It is not a recommendation engine by itself; it is matchup context for how hitters handle pitch families.
| Rank | Player | Metric | Sample | Status |
|---|---|---|---|---|
| 1 | Hitter 678662 | 100 | 106 | Fastball / validated |
| 2 | Hitter 669357 | 100 | 55 | Changeup / validated thin sample |
| 3 | Hitter 664770 | 100 | 41 | Sinker / validated |
| 4 | Hitter 691176 | 100 | 32 | Fastball / validated |
| 5 | Hitter 663538 | 100 | 42 | Changeup / validated thin sample |
| 6 | Hitter 671732 | 100 | 54 | Sinker / validated |
| 7 | Hitter 665966 | 100 | 65 | Fastball / validated |
| 8 | Hitter 680779 | 100 | 21 | Changeup / validated thin sample |
| 9 | Hitter 808982 | 99 | 73 | Sinker / validated |
| 10 | Hitter 683002 | 99 | 99 | Fastball / validated |
| 11 | Hitter 666176 | 99 | 37 | Changeup / validated thin sample |
| 12 | Hitter 664761 | 99 | 87 | Sinker / validated |
| 13 | Hitter 678489 | 99 | 57 | Fastball / validated |
| 14 | Hitter 670770 | 99 | 28 | Changeup / validated thin sample |
| 15 | Hitter 605170 | 99 | 36 | Sinker / validated |
| 16 | Hitter 695657 | 99 | 144 | Fastball / validated |
| 17 | Hitter 623168 | 99 | 21 | Changeup / validated thin sample |
| 18 | Hitter 666182 | 99 | 88 | Sinker / validated |
| 19 | Hitter 678218 | 99 | 52 | Fastball / validated |
| 20 | Hitter 686555 | 99 | 45 | Changeup / validated thin sample |
