
Giants.
The nightly market record for San Francisco.
Regular season is live. This page is a preview of the year-round offseason desk — the roster snapshot is real, but the move-tracking, futures-movement and projected-lineup sections are dormant until the season ends and those data sources wire up. The active surface today is the club desk.
Giants batters · 34 on the books.
| Batter | Bats | PA 26 | BA 26 | xBA 26 | PA 25 | BA 25 | xBA blended |
|---|---|---|---|---|---|---|---|
| Willy Adames | R | 252 | .239 | .226 | 686 | .225 | .238 |
| Rafael Devers | L | 251 | .251 | .226 | 729 | .252 | .238 |
| Luis Arraez | L | 248 | .321 | .293 | 675 | .292 | .264 |
| Matt Chapman | R | 248 | .234 | .209 | 535 | .231 | .229 |
| Casey Schmitt | R | 215 | .289 | .277 | 348 | .237 | .261 |
| Jung Hoo Lee | L | 212 | .303 | .307 | 617 | .266 | .268 |
| Heliot Ramos | R | 176 | .267 | .270 | 695 | .256 | .253 |
| Drew Gilbert | L | 125 | .231 | .220 | 109 | .190 | .231 |
| Harrison Bader | R | 111 | .170 | .215 | 501 | .277 | .237 |
| Bryce Eldridge | L | 71 | .242 | .298 | 37 | .107 | .272 |
| Daniel Susac | R | 66 | .293 | .262 | 0 | .000 | .255 |
| Jesus Rodriguez | R | 43 | .231 | .275 | 0 | .000 | .259 |
| Eric Haase | R | 37 | .286 | .295 | 77 | .229 | .260 |
| Jerar Encarnacion | R | 35 | .176 | .190 | 56 | .200 | .228 |
| Will Brennan | L | 23 | .087 | .174 | 13 | .091 | .224 |
| Christian Koss | R | 15 | .071 | .125 | 191 | .264 | .234 |
| Jared Oliva | R | 7 | .143 | .322 | 0 | .000 | .254 |
| Victor Bericoto | R | 6 | .167 | .095 | 0 | .000 | .229 |
| Jonah Cox | R | 2 | .500 | .840 | 0 | .000 | .268 |
| Buddy Kennedy | R | 1 | .000 | — | 32 | .069 | — |
| Wilmer Flores | — | 0 | .000 | — | 463 | .241 | — |
| Tyler Fitzgerald | — | 0 | .000 | — | 243 | .217 | — |
| Andrew Knizner | — | 0 | .000 | — | 88 | .221 | — |
| Grant McCray | — | 0 | .000 | — | 26 | .091 | — |
| David Villar | — | 0 | .000 | — | 25 | .200 | — |
| Logan Porter | R | 0 | .000 | — | 9 | .143 | — |
| Sergio Alcántara | — | 0 | .000 | — | 4 | .000 | — |
| Hayden Birdsong | — | 0 | .000 | — | 0 | .000 | — |
| Tyler Rogers | R | 0 | .000 | — | 0 | .000 | — |
| Ryan Walker | R | 0 | .000 | — | 0 | .000 | — |
| JT Brubaker | R | 0 | .000 | — | 0 | .000 | — |
| Adrian Houser | R | 0 | .000 | — | 0 | .000 | — |
| Robbie Ray | L | 0 | .000 | — | 0 | .000 | — |
| Caleb Kilian | R | 0 | .000 | — | 0 | .000 | — |
Highest-quality contact, blended.
| № | Batter | xBA blended | BA 26 | xBA 26 | PA 26 | Bats |
|---|---|---|---|---|---|---|
| 01 | Bryce Eldridge | .272 | .242 | .298 | 71 | L |
| 02 | Jung Hoo Lee | .268 | .303 | .307 | 212 | L |
| 03 | Luis Arraez | .264 | .321 | .293 | 248 | L |
| 04 | Casey Schmitt | .261 | .289 | .277 | 215 | R |
| 05 | Eric Haase | .260 | .286 | .295 | 37 | R |
| 06 | Jesus Rodriguez | .259 | .231 | .275 | 43 | R |
| 07 | Daniel Susac | .255 | .293 | .262 | 66 | R |
| 08 | Heliot Ramos | .253 | .267 | .270 | 176 | R |
| 09 | Rafael Devers | .238 | .251 | .226 | 251 | L |
| 10 | Willy Adames | .238 | .239 | .226 | 252 | R |
Roster moves · trades · free-agent activity.
Tracking trades, free-agent signings, non-tenders, and 40-man moves needs a dedicated source (MLB Trade Rumors RSS, MLB Transactions API, or editorial entry). Surface goes live the first time data lands.
Projected lineup · rotation outlook.
Lineup + rotation projections need a depth-chart source or a per-team editorial entry. The MlbBatter graph carries position-agnostic stats; turning that into a 1-9 + bench + rotation card requires position metadata the schema doesn't carry yet.
Win total · division · World Series.
Win-total, division, and championship futures move on different cadence than player props and require a different odds feed. The almanac currently sources player props via ParlayAPI + the-odds-api H2H — futures would slot alongside, with snapshot rows mirroring MlbLineSnapshot but typed to a futures market.
Camp battles · prospect progress.
Spring training battles (5th starter, bench spots, prospect debuts) are an editorial product — too low-frequency for a model, too high-judgment for an automatic feed. Plans for a per-team weekly note from the editor once the offseason calendar starts producing real signal.