Pitch Arsenal
Batter vs. pitcher pitch-type matchups — when a batter who crushes a pitch type faces a pitcher whose version of that pitch is getting shelled, that's an exploitable edge.
⚡ Arsenal Edges
Historical Snapshot
Validated pre-game snapshot. This view was captured before first pitch.
refresh_14 - 2026-07-24T14:00:28-04:00
Arsenal Edges · 2026-07-24
| Hit? | Signal Composite signal strength combining three factors: how much the batter crushes this pitch (45%), how badly the pitcher gets shelled on it (35%), and how often the pitcher throws it (10%). Higher = more exploitable. | Batter | Pitcher |
Pitch
The specific pitch type where the matchup edge exists. Color-coded by family: Hard — Fastball, Sinker, Cutter Breaking — Slider, Curve, Sweeper Offspeed — Changeup, Splitter |
Bat RV/100
Batter's Run Value per 100 pitches against this pitch type. +15 = solid · +30 = elite crusher |
Pit RV/100
Pitcher's Run Value allowed per 100 on this pitch type. +10 = vulnerable · +20 = getting shelled |
Usage% How often the pitcher throws this pitch type. | Bat HRs Home runs the batter has hit off this specific pitch type this season. | Pit HRs Home runs the pitcher has allowed on this pitch type this season. | Rank The batter's rank on that day's slate (by model HR probability score). |
|---|---|---|---|---|---|---|---|---|---|---|
| · | Bryce Eldridge | Grayson Rodriguez | Fastball | +4.4 | +2.1 | 54% | 6 | 4 | #33 | |
| · | Jung Hoo Lee | Grayson Rodriguez | Fastball | +2.2 | +2.1 | 54% | 3 | 4 | #211 | |
| · | Kyle Stowers | German Marquez | Knuckle Curve | +5.6 | +1.4 | 36% | 1 | 4 | #59 | |
| · | Brandon Valenzuela | Patrick Sandoval | Slider | +3.3 | +4.4 | 36% | 4 | 1 | #131 | |
| · | Javier Sanoja | German Marquez | Knuckle Curve | +5.7 | +1.4 | 36% | 0 | 4 | #192 | |
| · | Nathaniel Lowe | Dustin May | Cutter | +10.3 | -1.1 | 22% | 3 | 1 | #64 | |
| · | Christian Yelich | Tomoyuki Sugano | Splitter | +10.1 | -0.3 | 20% | 1 | 3 | #101 | |
| · | Drew Gilbert | Grayson Rodriguez | Fastball | +0.8 | +2.1 | 54% | 2 | 4 | #210 | |
| · | Willy Adames | Grayson Rodriguez | Fastball | +0.6 | +2.1 | 54% | 9 | 4 | #48 | |
| · | Jakob Marsee | German Marquez | Changeup | +2.4 | +14.1 | 3% | 1 | 1 | #190 | |
| · | Luis Arraez | Grayson Rodriguez | Fastball | +0.4 | +2.1 | 54% | 2 | 4 | #227 | |
| · | Rafael Devers | Grayson Rodriguez | Fastball | +0.3 | +2.1 | 54% | 11 | 4 | #36 | |
| · | Juan Soto | Roki Sasaki | Fastball | +2.7 | +1.6 | 43% | 8 | 10 | #15 | |
| · | Heliot Ramos | Grayson Rodriguez | Fastball | -0.1 | +2.1 | 54% | 1 | 4 | #68 | |
| · | Liam Hicks | German Marquez | Changeup | +1.8 | +14.1 | 3% | 2 | 1 | #112 | |
| · | Ceddanne Rafaela | Trey Yesavage | Splitter | +6.8 | -0.2 | 29% | 0 | 2 | #160 | |
| · | Nathan Lukes | Patrick Sandoval | Slider | +1.7 | +4.4 | 36% | 2 | 1 | #220 | |
| · | Cj Abrams | Eduardo Rodriguez | Cutter | +8.4 | +1.6 | 12% | 6 | 3 | #7 | |
| · | Bryce Harper | Cam Schlittler | Fastball | +3.6 | -1.4 | 44% | 11 | 4 | #19 | |
| · | Ketel Marte | Carson Palmquist | Sinker | +4.2 | +0.6 | 35% | 5 | 0 | #39 | |
| · | Geraldo Perdomo | Carson Palmquist | Sweeper | +3.3 | +0.4 | 40% | 0 | 0 | #165 | |
| · | Javier Sanoja | German Marquez | Changeup | +0.8 | +14.1 | 3% | 0 | 1 | #192 | |
| · | Ernie Clement | Patrick Sandoval | Slider | +1.2 | +4.4 | 36% | 2 | 1 | #207 | |
| · | Ben Rice | Jesus Luzardo | Fastball | +6.1 | +0.9 | 24% | 15 | 3 | #2 | |
| · | Kazuma Okamoto | Patrick Sandoval | Slider | +0.8 | +4.4 | 36% | 3 | 1 | #60 | |
| · | Kyle Tucker | Sean Manaea | Sweeper | +3.4 | +2.2 | 32% | 1 | 3 | #177 | |
| · | Xavier Edwards | German Marquez | Changeup | +0.6 | +14.1 | 3% | 0 | 1 | #182 | |
| · | Xavier Edwards | German Marquez | Fastball | +2.4 | +1.9 | 38% | 3 | 3 | #182 | |
| · | Casey Schmitt | Grayson Rodriguez | Fastball | -1.6 | +2.1 | 54% | 3 | 4 | #45 | |
| · | Gabriel Moreno | Carson Palmquist | Sweeper | +2.9 | +0.4 | 40% | 1 | 0 | #109 |
💀 Pitcher Arsenal Preview
Michael Lorenzen
+32.8 RV allowed
Zac Gallen
+23.3 RV allowed
Merrill Kelly
+22.6 RV allowed
What is Run Value (RV)?
Run Value measures how much a pitch outcome changes the expected runs in a game.
Positive RV for a batter = good (they're generating offense). Positive RV against a pitcher = bad (they're giving up offense).
RV/100 normalizes per 100 pitches seen/thrown for fair comparison.
How Arsenal Edges work: When a batter with a high RV against fastballs faces a pitcher whose fastball has a high RV allowed, and that pitcher throws their fastball 40%+ of the time — that's a concrete, pitch-level HR edge that goes beyond general HR/FB rates.
Pitch families: Hard (Fastball, Sinker, Cutter) · Breaking (Slider, Curveball, Sweeper) · Offspeed (Changeup, Splitter)
Data source: Statcast pitch-level data via Baseball Savant. Hover any column header for a detailed explanation, or hover any cell for per-pitcher/batter context.
How Arsenal Edges work: When a batter with a high RV against fastballs faces a pitcher whose fastball has a high RV allowed, and that pitcher throws their fastball 40%+ of the time — that's a concrete, pitch-level HR edge that goes beyond general HR/FB rates.
Pitch families: Hard (Fastball, Sinker, Cutter) · Breaking (Slider, Curveball, Sweeper) · Offspeed (Changeup, Splitter)
Data source: Statcast pitch-level data via Baseball Savant. Hover any column header for a detailed explanation, or hover any cell for per-pitcher/batter context.