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 | 79 | Fastball / validated |
| 2 | Hitter 669357 | 100 | 44 | Changeup / validated thin sample |
| 3 | Hitter 702332 | 100 | 53 | Sinker / validated |
| 4 | Hitter 678489 | 100 | 46 | Fastball / validated |
| 5 | Hitter 666176 | 100 | 29 | Changeup / validated thin sample |
| 6 | Hitter 592518 | 100 | 54 | Sinker / validated |
| 7 | Hitter 656775 | 99 | 71 | Fastball / validated |
| 8 | Hitter 663538 | 99 | 24 | Changeup / validated thin sample |
| 9 | Hitter 605170 | 99 | 28 | Sinker / validated |
| 10 | Hitter 686217 | 99 | 81 | Fastball / validated |
| 11 | Hitter 808975 | 99 | 30 | Changeup / validated thin sample |
| 12 | Hitter 693307 | 99 | 52 | Sinker / validated |
| 13 | Hitter 694671 | 99 | 27 | Fastball / validated |
| 14 | Hitter 670770 | 99 | 26 | Changeup / validated thin sample |
| 15 | Hitter 664761 | 99 | 62 | Sinker / validated |
| 16 | Hitter 663728 | 99 | 66 | Fastball / validated |
| 17 | Hitter 800050 | 99 | 31 | Changeup / validated thin sample |
| 18 | Hitter 666971 | 99 | 21 | Sinker / validated |
| 19 | Hitter 669394 | 99 | 64 | Fastball / validated |
| 20 | Hitter 680757 | 99 | 29 | Changeup / validated thin sample |
