The Trajectory Model
Statcast provides nine trajectory parameters for every pitch: the release position (x, y, z), initial velocity (vx0, vy0, vz0), and acceleration (ax, ay, az). These define a constant-acceleration kinematic model:
x(t) = x₀ + vx₀·t + ½·ax·t²y(t) = y₀ + vy₀·t + ½·ay·t²z(t) = z₀ + vz₀·t + ½·az·t² where y runs from the pitcher (~55 feet) to the plate (0 feet). To find where a pitch is at any distance from the plate, we solve the quadratic for t when y(t) = y_target, then compute x(t) and z(t).
This model assumes constant acceleration throughout the flight. In reality, air resistance changes as the ball decelerates — the ball slows down, which reduces drag, which changes the deceleration. This is the source of our systematic error.
The Decision Point
When does a batter commit to swing? Biomechanics research puts the commit point at approximately 150-170 milliseconds after release, which corresponds to about 23-25 feet from the plate for a 95 mph pitch.
We use 23.9 feet as our primary decision point. But since the exact distance is debated, we tested four alternatives (20, 23, 25, and 28 feet) and checked whether the tunneling leaderboard changes.
Spoiler: it doesn't change much.
How Accurate Is the Model?
We validated the trajectory model by computing where each pitch should arrive at the plate (y=0) and comparing to Statcast's measured plate_x and plate_z:
Top: validation metrics showing the model's systematic z-axis bias. Bottom: decision-distance sensitivity — leaderboard rankings are stable from 20-28 feet (Spearman ≥ 0.84). Blue bar = our primary 23.9 ft model.
The model does not meet a sub-inch accuracy threshold. The mean Euclidean error is 4.92 inches, dominated by a systematic z-axis bias of -4.56 inches. The constant-acceleration model consistently predicts the ball arriving lower than it actually does, because it doesn't account for the reduction in drag as the ball slows.
Why This Doesn't Kill the Tunneling Metric
The critical insight: the bias is systematic and cancels for relative comparisons.
When we compute the distance between a pitcher's fastball and curveball at the decision point, we're subtracting one biased position from another biased position. If both positions are shifted by the same amount (and they are, because the bias is a function of the physics, not the pitch type), the distance between them is correct even though the absolute positions are wrong.
Evidence: our computed plate-level pair distances match Statcast's measured plate positions to sub-inch accuracy, because we use Statcast's actual plate_x/plate_z for the plate component (not the trajectory model).
The trajectory model is only used for the decision-point positions, where the relative distance is what matters. Think of it as two swimmers in a river with a current: the current shifts both swimmers equally, so the distance between them is the same regardless of the current.
The Sensitivity Test
We computed full tunneling leaderboards at five decision distances (20, 23, 23.9, 25, and 28 feet) and measured two things:
- Spearman rank correlation vs the 23.9 ft baseline: How much does the leaderboard order change?
- Top-20 overlap: How many of the top 20 pitchers are the same?
| Distance | Spearman r | Top-20 Overlap | Interpretation |
|---|---|---|---|
| 20 ft | 0.896 | 11/20 | Moderately different — too early in flight |
| 23 ft | 0.963 | 14/20 | Very similar |
| 23.9 ft | 1.000 | 20/20 | Primary model |
| 25 ft | 0.963 | 14/20 | Very similar |
| 28 ft | 0.837 | 8/20 | Notably different — close to plate |
At 23 and 25 feet, 14 of the top 20 are the same as at 23.9 feet, and the full-leaderboard rank correlation is 0.96. Even at the extremes (20 and 28 feet), the correlation stays above 0.84. The tunneling leaderboard is not sensitive to the exact decision-point choice within the plausible biomechanical range.
What the Model Cannot Do
To be clear about the limitations:
- No literal flight-path reconstruction. We cannot plot the exact trajectory of a pitch to sub-inch precision. The constant-acceleration model is a simplification. Air resistance, spin-induced Magnus forces, and seam orientation effects all change during flight.
- No batter perception modeling. We compute where pitches are in physical space. We don't model what the batter actually sees — visual processing, depth perception, decision heuristics. The decision point is a spatial proxy for a perceptual process.
- No pitch sequencing. Our model computes centroids (average positions per pitch type). It doesn't capture whether a pitcher sequences FF→KC vs KC→FF, or whether back-to-back tunnel pairs are more effective than spread-out ones.
- No movement decomposition. Statcast's pfx_x/pfx_z represent induced movement (Magnus force), but the trajectory model uses total acceleration (ax/ay/az) which includes gravity. We don't separately decompose spin-induced movement from gravitational drop in the tunneling computation.
Dual-Model Validation
Two independent analysis teams built separate tunneling models from the same data. They agreed on:
- FF-KC as the best tunnel pair in baseball
- The same top-cluster and bottom-cluster pitchers
- Whiff rate as the only significant outcome correlation
- The physics model's systematic z-bias not affecting relative distances
They disagreed on the primary metric (divergence vs stabilized ratio), weighting scheme (product vs min), and exact decision distance (23.0 vs 23.9 ft). The final published model uses divergence (stronger whiff signal) at 23.9 ft (matching the brief's specification). See the main article for the full findings.
Reproducing This Analysis
The full analysis code is on GitHub — both independent analysis scripts, the research brief, and the cross-review comparison memo. To replicate:
- Pull full-season Statcast data via
pybaseball.statcast() - Filter to pitches with complete trajectory fields (release_pos_x/y/z, vx0/vy0/vz0, ax/ay/az)
- Solve the quadratic for
tat each decision distance - Compute Euclidean distances between pitch-type centroids at the decision point and plate
- Weight by
usage_a × usage_band aggregate per pitcher
The computation runs in ~2 minutes on a 2024 MacBook Pro for the full 2025 season (730K pitches).
References
Batter decision timing: Katsumata, H. & Russell, D.M. (2012). Prospective information for the batter's swing timing. J. Experimental Psychology: Human Perception and Performance.
Statcast trajectory data: MLB Advanced Media / Hawk-Eye Innovations. Fields documented at Baseball Savant.
Constant-acceleration model: Nathan, A.M. (2008). The physics of baseball pitching. American Journal of Physics.
Cite this analysis
CalledThird. "The Physics Behind the Tunneling Atlas." CalledThird.com, April 18, 2026. https://calledthird.com/analysis/tunneling-atlas-physics
All CalledThird analysis is original research. If you reference our findings, data, or charts in your work, please link back to the original article. For data inquiries: hello@calledthird.com