These are historical per-period rates and splits for team:PIT, not a prediction and not an edge claim. descriptive_only: true.
as of 2025-09-28| Pitch type | N pitches | P10 mph | P50 mph | P90 mph |
|---|---|---|---|---|
| FF | 8655 | 90.9 | 95.1 | 98.3 |
| SL | 3547 | 82.5 | 86.7 | 91.0 |
| SI | 2743 | 90.6 | 94.4 | 97.6 |
| CU | 1960 | 76.4 | 79.4 | 85.2 |
| ST | 1950 | 80.6 | 83.0 | 85.1 |
| CH | 1615 | 82.0 | 87.8 | 90.7 |
sample floor
An entity earns a descriptive card only after clearing a minimum-sample floor, so rates are not read off tiny samples. The floor for this pack is 30 real MLB franchises; AL/NL All-Star-Game placeholder codes excluded from the 32 raw team codes in the pull. team = PITCHING team, derived as home_team when inning_topbot=='Top' else away_team (defense is whichever side is not currently batting). no per-pitch swing/miss field in this pull (no `description` column; `type` merges called+swinging+foul into one S bucket, `des` only fires on PA-ending pitches) -- outcome mix (ball/strike/in-play) substitutes. Entities below the floor are deliberately left off -- we do not print rates we cannot stand behind.