
ZAC GALLEN
01/Hitting
Regular season
| Season | Club | G | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | AVG | OBP | SLG | OPS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2024 | AZ | 56 | 1,122 | 124 | 266 | 58 | 10 | 26 | 57 | 108 | 312 | 36 | .237 | .304 | .376 | .680 |
| 2023 | AZ | 68 | 1,580 | 174 | 376 | 84 | 6 | 44 | 76 | 94 | 440 | 10 | .238 | .281 | .382 | .663 |
| 2022 | AZ | 62 | 1,302 | 112 | 242 | 64 | 2 | 30 | 47 | 94 | 384 | 12 | .186 | .241 | .307 | .548 |
| 2021 | AZ | 46 | 926 | 122 | 216 | 44 | 4 | 38 | 59 | 98 | 278 | 2 | .233 | .307 | .413 | .719 |
| 2020 | AZ | 24 | 524 | 48 | 110 | 12 | 0 | 18 | 21 | 50 | 164 | 14 | .210 | .279 | .336 | .615 |
| 2019 | AZ | 30 | 586 | 52 | 124 | 32 | 2 | 16 | 22 | 72 | 192 | 12 | .212 | .298 | .355 | .653 |
| Career | – | 286 | 6,040 | 632 | 1,334 | 294 | 24 | 172 | 282 | 516 | 1,770 | 86 | .221 | .282 | .363 | .645 |
02/Pitching
Regular season
| Season | Club | G | W | L | IP | H | ER | BB | SO | HR | ERA | WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | AZ | 19 | 3 | 9 | 98.0 | 122 | 69 | 31 | 61 | 18 | 6.34 | 1.56 |
| 2025 | AZ | 33 | 13 | 15 | 192.0 | 176 | 103 | 66 | 175 | 31 | 4.83 | 1.26 |
| 2024 | AZ | 28 | 14 | 6 | 148.0 | 133 | 60 | 54 | 156 | 13 | 3.65 | 1.26 |
| 2023 | AZ | 34 | 17 | 9 | 210.0 | 188 | 81 | 47 | 220 | 22 | 3.47 | 1.12 |
| 2022 | AZ | 31 | 12 | 4 | 184.0 | 121 | 52 | 47 | 192 | 15 | 2.54 | 0.91 |
| 2021 | AZ | 23 | 4 | 10 | 121.1 | 108 | 58 | 49 | 139 | 19 | 4.30 | 1.29 |
| 2020 | AZ | 12 | 3 | 2 | 72.0 | 55 | 22 | 25 | 82 | 9 | 2.75 | 1.11 |
| 2019 | AZ | 15 | 3 | 6 | 80.0 | 62 | 25 | 36 | 96 | 8 | 2.81 | 1.23 |
| Career | – | 195 | 69 | 61 | 1105.1 | 965 | 470 | 355 | 1,121 | 135 | 3.83 | 1.19 |
03/Postseason
Never folded in
| Season | Club | G | AB | H | HR | RBI | AVG | IP | SO | ERA |
|---|---|---|---|---|---|---|---|---|---|---|
| 2023 | AZ | 12 | 125 | 31 | 6 | 15 | .248 | 33.2 | 24 | 4.54 |
04/Every pitch
Play log from 2015
No batted balls with a location in this window.
Catcher’s view · the zone drawn is the average of the 2,935 batter zones recorded here, 1.61 to 3.40 feet
| Pitch | N | Share | MPH | RPM | Strike% |
|---|---|---|---|---|---|
| Four-Seam Fastball | 1,410 | 48.0% | 94.1 | 2,420 | 51.8% |
| Knuckle Curve | 644 | 21.9% | 81.6 | 2,515 | 50.2% |
| Cutter | 438 | 14.9% | 89.9 | 2,425 | 43.4% |
| Changeup | 418 | 14.2% | 86.2 | 1,539 | 47.1% |
| Slider | 24 | 0.8% | 86.7 | 2,503 | 33.3% |
| Sinker | 1 | 0.0% | 94.7 | 2,216 | 0.0% |
05/Game log
Regular season
| Date | Opp | Result | AB | R | H | HR | RBI | BB | SO | IP | H | ER | BB | SO |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| APR 16 | @ NYM | W 3–2 | 14 | 0 | 2 | 0 | 0 | 1 | 2 | 4.0 | 2 | 0 | 1 | 2 |
| APR 16 | @ NYM | W 3–2 | 14 | 0 | 2 | 0 | 0 | 1 | 2 | – | — | — | — | — |
| APR 22 | vs NYM | L 5–6 | 17 | 1 | 2 | 0 | 1 | 1 | 7 | 5.0 | 2 | 1 | 1 | 7 |
| APR 22 | vs NYM | L 5–6 | 17 | 1 | 2 | 0 | 0 | 1 | 7 | – | — | — | — | — |
| APR 27 | vs LAD | W 3–1 | 20 | 0 | 2 | 0 | 0 | 2 | 5 | 6.0 | 2 | 0 | 2 | 5 |
| APR 27 | vs LAD | W 3–1 | 20 | 0 | 2 | 0 | 0 | 2 | 5 | – | — | — | — | — |
| MAY 2 | @ MIA | W 5–4 | 23 | 2 | 5 | 0 | 0 | 0 | 5 | 6.1 | 5 | 2 | 0 | 5 |
| MAY 2 | @ MIA | W 5–4 | 23 | 2 | 5 | 0 | 0 | 0 | 5 | – | — | — | — | — |
| MAY 8 | vs COL | W 4–0 | 26 | 0 | 5 | 0 | 0 | 0 | 7 | – | — | — | — | — |
| MAY 8 | vs COL | W 4–0 | 26 | 0 | 5 | 0 | 0 | 0 | 7 | 7.0 | 5 | 0 | 0 | 7 |
| MAY 14 | vs CHC | L 2–4 | 20 | 1 | 2 | 1 | 1 | 1 | 9 | 6.0 | 2 | 1 | 1 | 9 |
| MAY 14 | vs CHC | L 2–4 | 20 | 1 | 2 | 1 | 0 | 1 | 9 | – | — | — | — | — |
| MAY 19 | @ CHC | W 3–1 | 17 | 1 | 2 | 0 | 0 | 3 | 4 | – | — | — | — | — |
| MAY 19 | @ CHC | W 3–1 | 17 | 1 | 2 | 0 | 1 | 3 | 4 | 5.0 | 2 | 1 | 3 | 4 |
| MAY 24 | vs KC | W 8–6 | 22 | 6 | 7 | 1 | 0 | 2 | 4 | – | — | — | — | — |
| MAY 24 | vs KC | W 8–6 | 22 | 6 | 7 | 1 | 4 | 2 | 4 | 5.1 | 7 | 6 | 2 | 4 |
| MAY 30 | vs ATL | W 6–2 | 24 | 2 | 7 | 1 | 1 | 2 | 6 | 5.2 | 7 | 2 | 2 | 6 |
| MAY 30 | vs ATL | W 6–2 | 24 | 2 | 7 | 1 | 0 | 2 | 6 | – | — | — | — | — |
| JUN 5 | @ PIT | L 0–3 | 21 | 2 | 5 | 1 | 2 | 3 | 4 | 6.0 | 5 | 2 | 3 | 4 |
| JUN 5 | @ PIT | L 0–3 | 21 | 2 | 5 | 1 | 0 | 3 | 4 | – | — | — | — | — |
| JUN 10 | @ PHI | L 5–7 | 13 | 6 | 7 | 2 | 0 | 1 | 2 | – | — | — | — | — |
| JUN 10 | @ PHI | L 5–7 | 13 | 6 | 7 | 2 | 5 | 1 | 2 | 1.2 | 7 | 4 | 1 | 2 |
| JUN 15 | vs CIN | W 7–4 | 22 | 2 | 2 | 0 | 0 | 0 | 5 | – | — | — | — | — |
| JUN 15 | vs CIN | W 7–4 | 22 | 2 | 2 | 0 | 1 | 0 | 5 | 7.0 | 2 | 2 | 0 | 5 |
| JUN 21 | @ SD | L 2–3 | 22 | 2 | 4 | 1 | 1 | 3 | 11 | 6.0 | 4 | 1 | 3 | 11 |
| JUN 21 | @ SD | L 2–3 | 22 | 2 | 4 | 1 | 0 | 3 | 11 | – | — | — | — | — |
| JUN 28 | vs SD | W 7–6 | 22 | 6 | 7 | 1 | 6 | 2 | 2 | 5.0 | 7 | 6 | 2 | 2 |
| JUN 28 | vs SD | W 7–6 | 22 | 6 | 7 | 1 | 0 | 2 | 2 | – | — | — | — | — |
| JUL 3 | @ COL | L 5–6 | 21 | 3 | 4 | 1 | 0 | 2 | 4 | – | — | — | — | — |
| JUL 3 | @ COL | L 5–6 | 21 | 3 | 4 | 1 | 3 | 2 | 4 | 6.0 | 4 | 3 | 2 | 4 |
| JUL 8 | vs COL | L 5–6 | 19 | 4 | 6 | 1 | 0 | 3 | 7 | – | — | — | — | — |
| JUL 8 | vs COL | L 5–6 | 19 | 4 | 6 | 1 | 4 | 3 | 7 | 5.0 | 6 | 4 | 3 | 7 |
| JUL 13 | @ SF | L 3–4 | 21 | 2 | 4 | 1 | 0 | 2 | 5 | – | — | — | — | — |
| JUL 13 | @ SF | L 3–4 | 21 | 2 | 4 | 1 | 2 | 2 | 5 | 6.2 | 4 | 2 | 2 | 5 |
| JUL 22 | vs WSH | W 10–1 | 24 | 0 | 2 | 0 | 0 | 0 | 7 | 7.0 | 2 | 0 | 0 | 7 |
| JUL 22 | vs WSH | W 10–1 | 24 | 0 | 2 | 0 | 0 | 0 | 7 | – | — | — | — | — |
| JUL 27 | vs SF | W 5–3 | 18 | 2 | 3 | 0 | 1 | 1 | 5 | 5.0 | 3 | 1 | 1 | 5 |
| JUL 27 | vs SF | W 5–3 | 18 | 2 | 3 | 0 | 0 | 1 | 5 | – | — | — | — | — |
| AUG 2 | @ CLE | W 6–3 | 22 | 3 | 6 | 0 | 3 | 3 | 5 | 5.2 | 6 | 3 | 3 | 5 |
| AUG 2 | @ CLE | W 6–3 | 22 | 3 | 6 | 0 | 0 | 3 | 5 | – | — | — | — | — |
| AUG 8 | vs PIT | W 3–0 | 21 | 0 | 3 | 0 | 0 | 2 | 8 | – | — | — | — | — |
| AUG 8 | vs PIT | W 3–0 | 21 | 0 | 3 | 0 | 0 | 2 | 8 | 7.0 | 3 | 0 | 2 | 8 |
| AUG 13 | @ COL | W 6–0 | 22 | 0 | 2 | 0 | 0 | 1 | 6 | – | — | — | — | — |
| AUG 13 | @ COL | W 6–0 | 22 | 0 | 2 | 0 | 0 | 1 | 6 | 7.0 | 2 | 0 | 1 | 6 |
| AUG 18 | @ SF | W 5–0 | 25 | 0 | 4 | 0 | 0 | 0 | 12 | 7.1 | 4 | 0 | 0 | 12 |
| AUG 18 | @ SF | W 5–0 | 25 | 0 | 4 | 0 | 0 | 0 | 12 | – | — | — | — | — |
| AUG 24 | @ KC | L 3–5 | 19 | 0 | 3 | 0 | 0 | 3 | 6 | 6.0 | 3 | 0 | 3 | 6 |
| AUG 24 | @ KC | L 3–5 | 19 | 0 | 3 | 0 | 0 | 3 | 6 | – | — | — | — | — |
| AUG 30 | vs PHI | W 12–3 | 21 | 0 | 2 | 0 | 0 | 1 | 7 | – | — | — | — | — |
| AUG 30 | vs PHI | W 12–3 | 21 | 0 | 2 | 0 | 0 | 1 | 7 | 7.0 | 2 | 0 | 1 | 7 |
| SEP 4 | vs MIL | W 5–1 | 23 | 0 | 2 | 0 | 0 | 1 | 7 | 7.0 | 2 | 0 | 1 | 7 |
| SEP 4 | vs MIL | W 5–1 | 23 | 0 | 2 | 0 | 0 | 1 | 7 | – | — | — | — | — |
| SEP 11 | @ COL | W 12–6 | 22 | 3 | 4 | 0 | 0 | 0 | 11 | – | — | — | — | — |
| SEP 11 | @ COL | W 12–6 | 22 | 3 | 4 | 0 | 3 | 0 | 11 | 6.0 | 4 | 3 | 0 | 11 |
| SEP 17 | vs SD | L 0–2 | 19 | 2 | 4 | 1 | 0 | 3 | 4 | – | — | — | — | — |
| SEP 17 | vs SD | L 0–2 | 19 | 2 | 4 | 1 | 2 | 3 | 4 | 5.1 | 4 | 2 | 3 | 4 |
| SEP 22 | @ LAD | L 2–3 | 26 | 1 | 2 | 0 | 1 | 0 | 13 | 8.0 | 2 | 1 | 0 | 13 |
| SEP 22 | @ LAD | L 2–3 | 26 | 1 | 2 | 0 | 0 | 0 | 13 | – | — | — | — | — |
| SEP 28 | @ HOU | W 5–2 | 25 | 2 | 6 | 1 | 0 | 1 | 6 | – | — | — | — | — |
| SEP 28 | @ HOU | W 5–2 | 25 | 2 | 6 | 1 | 2 | 1 | 6 | 7.0 | 6 | 2 | 1 | 6 |
| OCT 4 | @ MIL | L 0–3 | 20 | 3 | 5 | 2 | 3 | 3 | 6 | 5.0 | 5 | 3 | 3 | 6 |
| OCT 4 | @ MIL | L 0–3 | 20 | 3 | 5 | 2 | 0 | 3 | 6 | – | — | — | — | — |
Regular season and postseason are separate tables and are never summed into one career line; spring training is excluded entirely. Hitting and pitching come from different source rows, so a two-way player has both tables and neither borrows from the other. Innings pitched is summed as outs and converted once: the stored value counts thirds, so “6.1” means six innings and one out, and adding those as decimals understates a career. ERA and WHIP are computed from those totals rather than averaged across seasons. On-base percentage is (H + BB) over (AB + BB), which runs slightly under the official figure because the source rows carry no hit-by-pitch or sacrifice fly. The charts cover 2015 onward only, and the spray chart plots batted balls with a recorded landing spot: a strikeout or a walk has no location and is not a missing dot. Its field is a representative park, not the one the ball was hit in, because a spray chart pooled across a season is hit in thirty different outfields.