Our engine ran 10,000 Monte Carlo plate appearances of Juan Soto against Zack Wheeler at Citizens Bank Park. It gives a 21.6% probability of a hit per plate appearance, with 22.6% strikeouts, 14.0% walks and 5.0% home runs per PA. Average simulated length: 3.49 pitches per plate appearance. No raw head-to-head rate drives any of these numbers; the inputs are regressed multi-season rates for both players (methodology below).
| Outcome | Sim probability | Rate |
|---|---|---|
| Walk | 14.0% | |
| Strikeout | 22.6% | |
| Hit by pitch | 0.6% | |
| Single | 12.6% | |
| Double | 3.6% | |
| Triple | 0.3% | |
| Home run | 5.0% | |
| Batted-ball out | 41.2% |
Where the simulated plate appearances ended, and the hit probability conditioned on that count.
| Count | PA ends here | P(hit) at count | K / BB |
|---|---|---|---|
| 0-0 | 12.4% | 36.5% | |
| 0-1 | 10.6% | 31.2% | |
| 1-2 | 9.1% | 32.4% | |
| 1-3 | 8.8% | 0.0% | |
| 0-3 | 7.9% | 0.0% | |
| 1-1 | 7.7% | 34.8% | |
| 3-2 | 7.1% | 0.0% | |
| 2-2 | 6.8% | 34.7% | |
| 2-3 | 5.9% | 0.0% |
Career line: 70 PA, 14 hits (2 HR), 16 BB, 14 SO. .259 AVG / .836 OPS. Statcast-era pitch log: 77 PA across 9 seasons (2018–2026).
| Season | PA | H | HR | BB | SO | OPS |
|---|---|---|---|---|---|---|
| 2018 | 7 | 2 | 0 | 1 | 1 | .762 |
| 2019 | 15 | 2 | 1 | 3 | 6 | .750 |
| 2020 | 6 | 0 | 0 | 3 | 1 | .500 |
| 2021 | 18 | 7 | 1 | 4 | 2 | 1.397 |
| 2022 | 3 | 0 | 0 | 0 | 0 | .000 |
| 2023 | 6 | 0 | 0 | 1 | 1 | .167 |
| 2024 | 3 | 1 | 0 | 0 | 1 | 1.000 |
| 2025 | 6 | 1 | 0 | 3 | 1 | 1.000 |
| 2026 | 6 | 1 | 0 | 1 | 1 | .533 |
Read rate: 70 career PA is 0.1% of one full batter season. One extra dropped popup changes the career average by 1.9 points.
Re-running the same 10,000 simulated PAs with Citizens Bank Park's factors (hit 1.03x, home run 1.12x) moves the hit probability from 20.6% in a neutral park to 21.6%, a +1-point move.
Zack Wheeler's 2026 pitch mix (24,765 pitches tracked).
| Pitch | Usage | Avg velo | Whiff / swing |
|---|---|---|---|
| Four-Seam Fastball | 39.7% | 96 mph | |
| Sinker | 19.4% | 96 mph | |
| Cutter | 16.6% | 91 mph | |
| Curveball | 10.5% | 81 mph | |
| Sweeper | 6.7% | 84 mph | |
| Split-Finger | 4.6% | 87 mph | |
| Changeup | 2.6% | 89 mph |
| Pitch | PA | H | K | Whiff / swing |
|---|---|---|---|---|
| Four-Seam Fastball | 32 | 8 | 3 | 0% |
| Cutter | 15 | 1 | 5 | 0% |
| Curveball | 13 | 4 | 4 | 0% |
| Split-Finger | 4 | 1 | 0 | 0% |
| Changeup | 3 | 0 | 1 | 0% |
| Sinker | 8 | 1 | 4 | 0% |
Inputs: Juan Soto's and Zack Wheeler's last-three-season lines (3589 PA / 3892 BF weighted 1x/2x/3x by recency), shrunk toward league average, blended with a log5 odds-ratio matchup model, conditioned on real league count-level pitch and batted-ball frequencies, and park-adjusted with committed park factors. The count process is calibrated per pair so simulated strikeout and walk rates land within 0.3% of the model targets (this page: 0.03% K error,0.01% BB error).
Head-to-head history never enters the simulation; a batter-pitcher pair shares a few dozen career PAs at most, and honesty means the model's priors are the players' own multi-season tendencies, not a 30-PA fluke. Full engine notes on the methodology page.