Last scored matchup
CJ isn't on today's slate. He was last scored 3 days ago, away at Texas Rangers on Thursday, August 20, 2026, where he landed on fantasy points (100/100), hits (89.4/100), total bases (87.7/100). This page refreshes with new projections as soon as he's back in a lineup.
He's in a cold stretch
CJ is 8-for-41 (.195) across his last 10 games, down from .275 on the season. Slumps this size are mostly noise at this sample — 41 at-bats is a fortnight, not a trend — and the model treats it that way, discounting the cold run rather than writing him off. If the matchup underneath is good, he'll still grade well here. That's a feature, and sometimes it's wrong.
What kind of hitter he is
CJ has 27 home runs and 55 extra-base hits in 459 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's a left-handed bat
CJ hits from the left side, and that's the first thing the model looks at. Left-handed hitters see right-handed pitching most nights, which is the favourable side — so a lefty bat's baseline is set against righties, and drawing a left-handed starter is a genuine downgrade rather than a rounding error. When you see his score fall on a day he's still in the lineup, an opposing lefty is usually why. Handedness also shapes the park read: pull-side geometry matters more for a left-handed swing than the raw park factor suggests.
Floor and ceiling
CJ has recorded at least one hit in 82 of 120 games he's batted in — 68% — with 34 multi-hit games among them. That's about average — most regulars land somewhere near it.
Home and away
CJ is hitting .266 at home (63-for-237) and .284 on the road (63-for-222) 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.
How our calls on CJ have graded
We've ranked CJ a top-20 hitter matchup 20 times this season. He got a hit in 12 of them — 60%. 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
CJ was scored on 12 boards in that matchup, and the spread is the interesting part: fantasy points graded 100/100 while walks came in at 39.5/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 CJ 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.