Not on the current slate
Keegan hasn't been scored in 55 days — his last matchup was against Chicago White Sox on Monday, June 29, 2026. A gap that long usually means an injury, a minor-league option, or a roster move rather than a rest day. Everything below is his most recent real production, not a projection.
Season line
2 starts, 0-1, 5.68 ERA, 1.50 WHIP, 25.1 innings. He's struck out 17 over that span, against 9 walks. This is the baseline the matchup adjusts from — the model starts here and then asks what the specific lineup he's facing does to strikeout arms, how the park plays, and how deep he's likely to go.
He throws left-handed
Keegan is a left-hander, and that matters more for a starter than it does for most hitters. Lineups get built specifically to attack lefties — managers stack right-handed bats against them — so the lineup he draws on a given night swings his projection further than a righty's would. The model prices the actual lineup rather than a season-long rate for exactly that reason. A stacked righty lineup is the spot where his strikeout projection comes down hardest.
His last 5 starts
Keegan has 4 strikeouts in 6.3 innings across his last 5 starts, a 5.7 K/9, with a 0.00 ERA over that stretch and 4 walks. Strikeouts are the one pitcher market where our model has found real, graded room — projected workload and the specific lineup he draws move that number more than a season-long rate does. Start-by-start detail is in the log below.
What his floor looks like
Keegan has made 24 starts this season, averaging 1.1 innings with a 5.68 ERA across them. In the 12 starts we hold detailed lines for, he got through five or more innings 0 times. That ratio is the honest read on his floor, and it's what separates an arm worth projecting on the outs board from one whose good starts are unpredictable enough that the market prices them better than we do.
How long he goes
Keegan is averaging 1.3 innings a start across his last 8 outings, with a high of 2.0 and about 21 pitches a night. He's not going deep, and that caps the strikeout and outs projections no matter how good the matchup looks — you can't strike out hitters you don't face. Expected batters faced is one of the bigger inputs to his score for exactly this reason.
A long gap since his last start
Keegan hasn't started in 57 days. That's the single most useful warning on a pitcher's page, and it's the model's weakest spot. A gap that long usually means an injured-list stint, and a first start back is often on a strict pitch limit that no stat line reveals — books frequently don't post an outs line at all in that spot. Our projection is built on his healthy workload, so it will overshoot a shortened rehab start. Read any projection here with that in mind until he's stretched back out.
How the model reads him
The number on Keegan is about tonight, not about him. Strip out the name and the model is asking one question: what does this specific lineup do to this kind of arm, in this park, for as many batters as he's likely to face? That gets scored against every other starter on the slate. The combination math is proprietary and re-tuned every week. The grading isn't — it's all public, including the misses.
What we'd flag
Books don't price every player — coverage tops out around 87% even for confirmed starters, so "no line" here usually means no book posted one rather than a gap in our data. Lineups change late, and an afternoon projection can be stale by first pitch. And the model is tuned across hundreds of graded outcomes, so one game tells you nothing about whether it's working. For Keegan specifically, he's coming off a 57-day gap.