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 | 89 | Fastball / validated |
| 2 | Hitter 669357 | 100 | 44 | Changeup / validated thin sample |
| 3 | Hitter 664761 | 100 | 66 | Sinker / validated |
| 4 | Hitter 669065 | 100 | 66 | Fastball / validated |
| 5 | Hitter 666176 | 100 | 30 | Changeup / validated thin sample |
| 6 | Hitter 702332 | 100 | 62 | Sinker / validated |
| 7 | Hitter 656775 | 99 | 79 | Fastball / validated |
| 8 | Hitter 663538 | 99 | 31 | Changeup / validated thin sample |
| 9 | Hitter 624641 | 99 | 28 | Sinker / validated |
| 10 | Hitter 678489 | 99 | 51 | Fastball / validated |
| 11 | Hitter 686555 | 99 | 29 | Changeup / validated thin sample |
| 12 | Hitter 605170 | 99 | 30 | Sinker / validated |
| 13 | Hitter 641933 | 99 | 35 | Fastball / validated |
| 14 | Hitter 808975 | 99 | 30 | Changeup / validated thin sample |
| 15 | Hitter 666023 | 99 | 35 | Sinker / validated |
| 16 | Hitter 672761 | 99 | 52 | Fastball / validated |
| 17 | Hitter 670770 | 99 | 26 | Changeup / validated thin sample |
| 18 | Hitter 592518 | 99 | 61 | Sinker / validated |
| 19 | Hitter 663728 | 99 | 76 | Fastball / validated |
| 20 | Hitter 800050 | 99 | 31 | Changeup / validated thin sample |
