MLB/Players/Brad Keller
Brad Keller

BRAD KELLER

P · Philadelphia Phillies · 20182026 · 432 games
432
CAREER GAMES · REGULAR SEASON
7 seasons
.263
CAREER BATTING AVERAGE
1,454 hits in 5,534 at-bats
142
CAREER HOME RUNS
340 RBI · 42 stolen bases
4.13
CAREER ERA
821.1 innings · 645 strikeouts
44-60
CAREER RECORD
WHIP 1.41

01/Hitting

Season by season
Regular season
SeasonClubGABRH2B3BHRRBIBBSOSBAVGOBPSLGOPS
2024BOS323505696220182830642.274.332.491.823
2023KC22324528416062290624.259.420.364.784
2022KC701,106172306488347811420410.277.344.427.771
2021KC521,064178316544368012824010.297.372.457.829
2020KC1838632784041334700.202.267.244.510
2019KC561,248160308382030681402442.247.323.381.704
2018KC821,056100266384145110019214.252.317.335.652
Career3325,5347501,454220361423406361,07642.263.339.392.731

02/Pitching

Season by season
Regular season
SeasonClubGWLIPHERBBSOHRERAWHIP
2026PHI322131.12914133244.021.34
2025CHC684269.24516227542.070.96
2024BOS160441.14825153295.441.52
2023KC113445.14223453134.571.92
2022KC35614139.21537957102175.091.50
2021KC26812133.21588064120185.391.66
2020KC95354.23915173522.471.02
2019KC28714165.11547770122154.191.35
2018KC4196140.113348509673.081.30
Career2664460821.1801377353645794.131.41

04/Every pitch

2024 Regular season
Play log from 2015
Spray chart · 0 batted balls

No batted balls with a location in this window.

Pitch locations · 730 pitches
Called strike (119) Swinging strike (72) In play (140) Foul (124) Ball (275)

Catcher’s view · the zone drawn is the average of the 730 batter zones recorded here, 1.59 to 3.38 feet

Pitch mix
PitchNShareMPHRPMStrike%
Four-Seam Fastball27637.8%93.82,24141.7%
Slider26636.4%86.02,55745.9%
Changeup9713.3%88.61,67340.2%
Sweeper435.9%83.72,66053.5%
Sinker364.9%92.72,11227.8%
Knuckle Curve121.6%81.22,50450.0%

05/Game log

2024
Regular season
DateOppResultABRHHRRBIBBSOIPHERBBSO
APR 29vs MINL 236000021
APR 29vs MINL 2360000211.20021
MAY 3@ STLL 03203503254.25325
MAY 3@ STLL 0320350025
MAY 7@ TBL 1514151000
MAY 7@ TBL 15141511003.05100
MAY 12vs CLEL 07100000133.10013
MAY 12vs CLEL 0710000013
MAY 18@ NYYL 1620674014
MAY 18@ NYYL 16206746144.07514
MAY 27@ BALL 31119470012
MAY 27@ BALL 311194704124.07412
JUN 1vs DETW 6382212022.02202
JUN 1vs DETW 638221002
JUN 5vs ATLW 903000000
JUN 5vs ATLW 9030000001.00000
JUN 7@ CWSL 277110012
JUN 7@ CWSL 2771101122.01112
JUN 9@ CWSW 642000001
JUN 9@ CWSW 6420000010.20001
JUN 13vs PHIW 93100200133.02013
JUN 13vs PHIW 9310020013
JUN 17@ TORW 736010010
JUN 17@ TORW 7360100101.21010
JUN 21@ CINL 2550100101.11010
JUN 21@ CINL 255010010
JUN 23@ CINW 747340001
JUN 23@ CINW 7473403011.04301
AUG 10vs HOUL 4518362026
AUG 10vs HOUL 45183623264.06326
AUG 26vs TORL 3720571022
AUG 26vs TORL 37205715224.07322

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.