Last scored matchup
Geraldo isn't on today's slate. He was last scored 11 days ago, away at San Diego Padres on Sunday, September 27, 2026, where he landed on singles (85.3/100), walks (72.5/100), fantasy points (60.8/100). This page refreshes with new projections as soon as he's back in a lineup.
He's swinging a hot bat
Geraldo is 15-for-37 (.405) over his last 10 games — well clear of his .265 season mark. Our model does lean on recent form, but it weights it against the matchup rather than chasing it: a hot bat facing a tough arm in a bad park still grades as a tough spot. Streaks like this one also end without warning, which is why the score moves on the matchup and not on the streak.
What kind of hitter he is
Geraldo has 9 home runs and 37 extra-base hits in 555 at-bats this season. That profile is why he grades better on the total-bases and home-run boards than his batting average alone would suggest — those boards reward damage, not just contact. Park and weather matter more for a hitter like him too, and both feed the score.
He bats from both sides
Geraldo is a switch-hitter, which changes how the model reads every one of his matchups. Most hitters carry a real platoon penalty — a lefty bat facing a good lefty arm is a materially worse spot, and the score drops accordingly. Geraldo takes the favourable side almost every night, so he doesn't collect that penalty. What moves his number instead is the quality of the arm rather than its handedness, and how the two sides of his own swing actually compare, which is rarely as balanced as the switch-hitter label suggests.
Floor and ceiling
Geraldo has recorded at least one hit in 96 of 154 games he's batted in — 62% — with 37 multi-hit games among them. That's about average — most regulars land somewhere near it.
Home and away
Geraldo is hitting .258 at home (70-for-271) and .271 on the road (77-for-284) across the season. There's not much in it, which is the normal case. Home-road splits get talked about far more than they hold up.
Against San Diego Padres
Geraldo is 3-for-9 (.333) against San Diego Padres in our log, over 3 games. Worth knowing, worth not over-reading. 9 at-bats against one club is a tiny sample, and the model treats it as a minor input next to what that pitching staff actually allows to his handedness. Batter-versus-pitcher history is the most quoted number in baseball and one of the least predictive.
His best game in the log
Geraldo's biggest night was Thursday, September 24, 2026 at COL — 3-for-5 with 1 driven in. That's the ceiling, not the expectation. The projection you'll see on a board is closer to his typical game than his best one, which is the whole point of projecting rather than remembering.
How our calls on Geraldo have graded
We've ranked Geraldo a top-20 hitter matchup 38 times this season. He got a hit in 23 of them — 61%. That's the model reading him well, and it's the number we'd point to if you asked why we keep ranking him. It's also a season-sized sample on one player, which is smaller than it sounds; don't extrapolate it into a promise about tonight.
Where he lands across our boards
Geraldo was scored on 12 boards in that matchup, and the spread is the interesting part: singles graded 85.3/100 while doubles came in at 18.6/100. Same player, same game, same opposing arm — different questions. A spread that wide usually means the matchup favours one kind of outcome over another, and it's the clearest argument for reading the board that matches what you actually care about.
How the model reads him
Take the name off Geraldo and the model still produces the same number, because it's scoring the matchup rather than the player. His splits against this handedness, what the opposing starter and bullpen actually allow, how many plate appearances he's likely to get, the park, the weather, how he's swinging lately. All of it lands on a 0–100 scale against everyone else playing today. We don't publish how it's weighted. We publish every result it produces.
What we'd flag
Three caveats worth carrying. Not every player gets a posted line — book coverage runs to about 87% for confirmed starters, so a blank line is the market's silence, not ours. Lineup changes land late enough to strand a projection published hours earlier. And judging any of this on a single night is meaningless; the model is tuned on hundreds of settled outcomes.