Grant Holmes or Robbie Ray
Baseball Stats Comparison
See which player would win in a trade View Trade Analyzer
| Robbie Ray SP - SF | Grant Holmes SP - ATL | |
| 2026 Stats | ||
| Games Played | 12 | 11 |
| Games Started | 12 | 11 |
| Innings Pitched | 62.2 | 57.0 |
| Wins | 3 | 3 |
| Losses | 6 | 2 |
| Saves | 0 | 0 |
| Blown Saves | 0 | 0 |
| Holds | 0 | 0 |
| Hits Allowed | 57 | 51 |
| Earned Runs | 31 | 25 |
| Home Runs Allowed | 13 | 11 |
| Strikeouts | 59 | 53 |
| Walks | 31 | 25 |
| ERA | 4.45 | 3.95 |
| WHIP | 1.40 | 1.33 |
| Robbie Ray SP - SF | Grant Holmes SP - ATL | |
| 2026 Projections | ||
| Games Played | 30 | 32 |
| Games Started | 30 | 20 |
| Innings Pitched | 168.1 | 124.8 |
| Wins | 10 | 7 |
| Losses | 10 | 7 |
| Saves | 0 | 0 |
| Blown Saves | 0 | 0 |
| Holds | 0 | 1 |
| Hits Allowed | 150 | 118 |
| Earned Runs | 76 | 58 |
| Home Runs Allowed | 24 | 17 |
| Strikeouts | 174 | 123 |
| Walks | 65 | 47 |
| ERA | 4.05 | 4.16 |
| WHIP | 1.28 | 1.33 |
| Robbie Ray SP - SF | Grant Holmes SP - ATL | |
| News | ||
| Robbie Ray allowed one earned run on five hits and two walks while striking out six over four innings in Sunday’s win over the Rockies. Chris Schommer Mon, Jun 1st | Grant Holmes was tagged for three runs on seven hits and one walk while striking out five over 4 2/3 innings in Friday's 8-3 win over the Reds. Nate Miller - FantasyPros Sat, May 30th | |
| Robbie Ray allowed four earned runs on two hits and seven walks while striking out three over four innings in Sunday's win over the White Sox. Chris Schommer Mon, May 25th | Grant Holmes allowed two runs on six hits and two walks while racking up 10 strikeouts over five innings in Saturday's 2-0 loss to the Nationals. Nate Miller - FantasyPros Sun, May 24th | |
| Robbie Ray allowed nine earned runs on 11 hits and two walks while striking out one over 4 1/3 innings in Monday’s 12-2 loss to the Diamondbacks. Chris Schommer Tue, May 19th | Grant Holmes fired six scoreless innings in Sunday's 8-1 win over the Red Sox, giving up five hits and one walk while striking out four. Nate Miller - FantasyPros Mon, May 18th | |
| Robbie Ray allowed three earned runs on seven hits while striking out two and walking two over 4 2/3 innings in a 4-0 loss to the Dodgers. Chris Schommer Thu, May 14th | Grant Holmes allowed two runs on just one hit and four walks while striking out five across four innings in Tuesday's 5-2 win over the Cubs. Nate Miller - FantasyPros Wed, May 13th | |
| Robbie Ray allowed one earned run on four hits and four walks while striking out seven over six innings in Friday's 5-2 win over the Pirates. Chris Schommer Sat, May 9th | Grant Holmes allowed six runs (five earned) on seven hits and three walks while striking out four over five innings in Friday's 8-6 win over the Rockies. Nate Miller - FantasyPros Sat, May 2nd | |
| Notes | ||
| Robbie Ray rebounded in 2025 with a 3.65 ERA and 1.21 WHIP across 182.1 innings for San Francisco, earning an All-Star nod after an injury-marred 2023 and abbreviated 2024. Looking ahead to 2026, projections point to stable mid-rotation production rather than a return to ace-level dominance. Ray's declining strikeout trend (from 32% in 2021 to sub-25% in 2025) caps his fantasy ceiling, but his ability to take the ball for 30+ starts and limit damage keeps his floor relatively intact. Kelly Kirby - FantasyPros | ||
| Robbie Ray SP - SF | Grant Holmes SP - ATL | |||||
| Date | Opp | Opp Pitcher | VBR | Opp | Opp Pitcher | VBR |
|---|---|---|---|---|---|---|
| Fri, Mar 27th | vs NYY | Cam Schlittler (7-2) | #36 | vs KC | Cole Ragans (1-4) | #49 |
| Sat, Mar 28th | vs NYY | Will Warren (7-1) | #60 | vs KC | Michael Wacha (4-3) | #78 |
| Sun, Mar 29th |   |   |   | vs KC | Seth Lugo (2-4) | #104 |
| Mon, Mar 30th | @ SD | Walker Buehler (3-3) | #220 | vs ATH | Jacob Lopez (4-3) | #202 |
| Tue, Mar 31st | @ SD | German Marquez (3-2) | #330 | vs ATH | Aaron Civale (5-2) | #219 |
| Wed, Apr 1st | @ SD | Nick Pivetta (1-2) | #138 | vs ATH | Luis Severino (2-6) | #146 |
| Thu, Apr 2nd | vs NYM | David Peterson (3-5) | #117 | @ ARI | Ryne Nelson (2-4) | #89 |
| Fri, Apr 3rd | vs NYM | Nolan McLean (3-4) | #29 | @ ARI | Eduardo Rodriguez (5-1) | #112 |
| Sat, Apr 4th | vs NYM | Clay Holmes (4-4) | #165 | @ ARI | Michael Soroka (7-2) | #67 |
| Sun, Apr 5th | vs NYM | Kodai Senga (0-4) | #129 | @ ARI | Brandon Pfaadt (0-1) | #115 |
| Mon, Apr 6th | vs PHI | Andrew Painter (1-6) | #170 | @ LAA | Jose Soriano (6-4) | #45 |
| Tue, Apr 7th | vs PHI | Cristopher Sanchez (6-2) | #3 | @ LAA | Yusei Kikuchi (0-3) | #155 |
| Wed, Apr 8th | vs PHI | Aaron Nola (3-4) | #39 | @ LAA | Reid Detmers (2-5) | #41 |
| Fri, Apr 10th | @ BAL | Shane Baz (2-5) | #84 | vs CLE | Slade Cecconi (3-5) | #105 |
| Sat, Apr 11th | @ BAL | Chris Bassitt (4-3) | #125 | vs CLE | Parker Messick (6-1) | #51 |
| Sun, Apr 12th | @ BAL | Cade Povich (1-1) | #240 | vs CLE | Tanner Bibee (0-7) | #38 |
| Mon, Apr 13th |   |   |   | vs MIA | Eury Perez (3-6) | #109 |
| Tue, Apr 14th | @ CIN | Brady Singer (2-5) | #143 | vs MIA | Max Meyer (5-0) | #68 |
| Wed, Apr 15th | @ CIN | Rhett Lowder (3-3) | #206 | vs MIA | Chris Paddack (0-7) | #324 |
| Fri, Apr 17th | @ WSH | Zack Littell (5-4) | #169 | @ PHI | Taijuan Walker (1-4) | #413 |
| Sat, Apr 18th | @ WSH | Cade Cavalli (3-3) | #87 | @ PHI | Cristopher Sanchez (6-2) | #3 |
| Sun, Apr 19th | @ WSH | PJ Poulin (3-0) | #237 | @ PHI | Andrew Painter (1-6) | #170 |
| Mon, Apr 20th |   |   |   | @ WSH | Jake Irvin (2-4) | #203 |
| Tue, Apr 21st | vs LAD | Yoshinobu Yamamoto (5-4) | #13 | @ WSH | Foster Griffin (6-2) | #88 |
| Wed, Apr 22nd | vs LAD | Shohei Ohtani (5-2) | #1 | @ WSH | Zack Littell (5-4) | #169 |
| Thu, Apr 23rd | vs LAD | Tyler Glasnow (3-0) | #37 | @ WSH | Cade Cavalli (3-3) | #87 |
| Fri, Apr 24th | vs MIA | Sandy Alcantara (3-4) | #73 | vs PHI | Andrew Painter (1-6) | #170 |
| Sat, Apr 25th | vs MIA | Eury Perez (3-6) | #109 | vs PHI | Zack Wheeler (4-1) | #7 |
| Sun, Apr 26th | vs MIA | Max Meyer (5-0) | #68 | vs PHI | Aaron Nola (3-4) | #39 |
| Tue, Apr 28th | @ PHI | Jesus Luzardo (4-4) | #10 | vs DET | Casey Mize (2-3) | #65 |
| Wed, Apr 29th |   |   |   | vs DET | Tarik Skubal (3-2) | #4 |
| Thu, Apr 30th | @ PHI | Tim Mayza | vs DET | Framber Valdez (2-4) | #26 | |
| Fri, May 1st | @ TB | Shane McClanahan (6-2) | #22 | @ COL | Jose Quintana (2-3) | #425 |
| Sat, May 2nd | @ TB | Griffin Jax (1-3) | #59 | @ COL | Brennan Bernardino (2-3) | #257 |
| Sun, May 3rd | @ TB | Steven Matz (4-2) | #98 | @ COL | Kyle Freeland (1-6) | #395 |
| Mon, May 4th | vs SD | Randy Vasquez (5-3) | #199 | @ SEA | Logan Gilbert (3-4) | #11 |
| Tue, May 5th | vs SD | Walker Buehler (3-3) | #220 | @ SEA | George Kirby (5-4) | #14 |
| Wed, May 6th | vs SD | Bradgley Rodriguez | @ SEA | Bryan Woo (5-3) | #6 | |
| Fri, May 8th | vs PIT | Carmen Mlodzinski (4-3) | #132 | @ LAD | Emmet Sheehan (3-1) | #42 |
| Sat, May 9th | vs PIT | Braxton Ashcraft (5-2) | #47 | @ LAD | Blake Snell (0-1) | #64 |
| Sun, May 10th | vs PIT | Bubba Chandler (1-6) | #122 | @ LAD | Justin Wrobleski (7-2) | #130 |
| Tue, May 12th | @ LAD | Yoshinobu Yamamoto (5-4) | #13 | vs CHC | Colin Rea (5-3) | #140 |
| Wed, May 13th | @ LAD | Shohei Ohtani (5-2) | #1 | vs CHC | Shota Imanaga (4-6) | #24 |
| Thu, May 14th | @ LAD | Emmet Sheehan (3-1) | #42 | vs CHC | Ben Brown (2-2) | #52 |
| Fri, May 15th | @ ATH | Aaron Civale (5-2) | #219 | vs BOS | Connelly Early (5-2) | #97 |
| Sat, May 16th | @ ATH | Luis Severino (2-6) | #146 | vs BOS | Payton Tolle (2-2) | #75 |
| Sun, May 17th | @ ATH | Jeffrey Springs (3-6) | #111 | vs BOS | Brayan Bello (2-5) | #144 |
| Mon, May 18th | @ ARI | Zac Gallen (3-4) | #71 | @ MIA | Max Meyer (5-0) | #68 |
| Tue, May 19th | @ ARI | Ryne Nelson (2-4) | #89 | @ MIA | Braxton Garrett (0-1) | #120 |
| Wed, May 20th | @ ARI | Merrill Kelly (5-3) | #93 | @ MIA | Janson Junk (3-5) | #116 |
| Thu, May 21st |   |   |   | @ MIA | Sandy Alcantara (3-4) | #73 |
| Fri, May 22nd | vs CWS | Davis Martin (8-1) | #79 | vs WSH | Richard Lovelady (2-2) | #204 |
| Sat, May 23rd | vs CWS | Bryan Hudson (3-1) | #175 | vs WSH | Jake Irvin (2-4) | #203 |
| Sun, May 24th | vs CWS | Noah Schultz (2-4) | #221 | vs WSH | Foster Griffin (6-2) | #88 |
| Tue, May 26th | vs ARI | Eduardo Rodriguez (5-1) | #112 | @ BOS | Ranger Suarez (2-3) | #32 |
| Wed, May 27th | vs ARI | Michael Soroka (7-2) | #67 | @ BOS | Connelly Early (5-2) | #97 |
| Thu, May 28th |   |   |   | @ BOS | Payton Tolle (2-2) | #75 |
| Fri, May 29th | @ COL | Michael Lorenzen (2-7) | #427 | @ CIN | Chris Paddack (0-7) | #324 |
| Sat, May 30th | @ COL | Ryan Feltner (2-1) | #424 | @ CIN | Brady Singer (2-5) | #143 |
| Sun, May 31st | @ COL | Tanner Gordon (0-1) | #325 | @ CIN | Nick Lodolo (2-1) | #58 |
| Tue, Jun 2nd | @ MIL | Kyle Harrison (6-1) | #63 | vs TOR | Kevin Gausman (4-3) | #19 |
| Wed, Jun 3rd | @ MIL | Coleman Crow (0-0) | #197 | vs TOR | Patrick Corbin (2-1) | #216 |
| Thu, Jun 4th | @ MIL | Brandon Sproat (1-4) | #158 | vs TOR | Austin Voth | |
| Fri, Jun 5th | @ CHC | Ben Brown (2-2) | #52 | vs PIT | Mitch Keller (5-2) | #95 |
| Sat, Jun 6th | @ CHC | Jordan Wicks (0-2) | #234 | vs PIT | Braxton Ashcraft (5-2) | #47 |
| Sun, Jun 7th | @ CHC | Jameson Taillon (2-4) | #107 | vs PIT | Bubba Chandler (1-6) | #122 |
| Tue, Jun 9th | vs WSH | Jake Irvin (2-4) | #203 | @ CWS | Davis Martin (8-1) | #79 |
| Wed, Jun 10th | vs WSH | Foster Griffin (6-2) | #88 | @ CWS | Erick Fedde (0-5) | #373 |
| Thu, Jun 11th |   |   |   | @ CWS | ||
| Fri, Jun 12th | vs CHC | @ NYM | ||||
| Sat, Jun 13th | vs CHC | @ NYM | ||||
| Sun, Jun 14th | vs CHC | @ NYM | ||||
| Tue, Jun 16th | @ ATL | vs SF | ||||
| Wed, Jun 17th | @ ATL | vs SF | ||||
| Thu, Jun 18th | @ ATL | vs SF | ||||
| Fri, Jun 19th | @ MIA | vs MIL | ||||
| Sat, Jun 20th | @ MIA | vs MIL | ||||
| Sun, Jun 21st | @ MIA | vs MIL | ||||
| Mon, Jun 22nd |   |   |   | @ SD | ||
| Tue, Jun 23rd | vs ATH | @ SD | ||||
| Wed, Jun 24th | vs ATH | @ SD | ||||
| Fri, Jun 26th | vs ATL | @ SF | ||||
| Sat, Jun 27th | vs ATL | @ SF | ||||
| Sun, Jun 28th | vs ATL | @ SF | ||||
| Tue, Jun 30th | @ ARI | vs STL | ||||
| Wed, Jul 1st | @ ARI | vs STL | ||||
| Thu, Jul 2nd |   |   |   | vs STL | ||
| Fri, Jul 3rd | @ COL | vs NYM | ||||
| Sat, Jul 4th | @ COL | vs NYM | ||||
| Sun, Jul 5th | @ COL | vs NYM | ||||
| Mon, Jul 6th | vs TOR | vs NYM | ||||
| Tue, Jul 7th | vs TOR | @ PIT | ||||
| Wed, Jul 8th | vs TOR | @ PIT | ||||
| Thu, Jul 9th | vs COL | @ PIT | ||||
| Fri, Jul 10th | vs COL | @ STL | ||||
| Sat, Jul 11th | vs COL | @ STL | ||||
| Sun, Jul 12th | vs COL | @ STL | ||||
| Fri, Jul 17th | @ SEA | vs TEX | ||||
| Sat, Jul 18th | @ SEA | vs TEX | ||||
| Sun, Jul 19th | @ SEA | vs TEX | ||||
| Mon, Jul 20th | @ KC | vs SD | ||||
| Tue, Jul 21st | @ KC | vs SD | ||||
| Wed, Jul 22nd | @ KC | vs SD | ||||
| Thu, Jul 23rd |   |   |   | vs SD | ||
| Fri, Jul 24th | vs LAA | @ BAL | ||||
| Sat, Jul 25th | vs LAA | @ BAL | ||||
| Sun, Jul 26th | vs LAA | @ BAL | ||||
| Mon, Jul 27th | vs MIL | @ NYM | ||||
| Tue, Jul 28th | vs MIL | @ NYM | ||||
| Wed, Jul 29th | vs MIL | @ NYM | ||||
| Thu, Jul 30th | @ SD | vs WSH | ||||
| Fri, Jul 31st | @ SD | vs WSH | ||||
| Sat, Aug 1st | @ SD | vs WSH | ||||
| Sun, Aug 2nd | @ SD | vs WSH | ||||
| Tue, Aug 4th | @ TEX | vs MIA | ||||
| Wed, Aug 5th | @ TEX | vs MIA | ||||
| Thu, Aug 6th |   |   |   | vs MIA | ||
| Fri, Aug 7th | vs DET | @ NYY | ||||
| Sat, Aug 8th | vs DET | @ NYY | ||||
| Sun, Aug 9th | vs DET | @ NYY | ||||
| Mon, Aug 10th | vs HOU | vs NYM | ||||
| Tue, Aug 11th | vs HOU | vs NYM | ||||
| Wed, Aug 12th | vs HOU | vs NYM | ||||
| Fri, Aug 14th | vs COL | vs ARI | ||||
| Sat, Aug 15th | vs COL | vs ARI | ||||
| Sun, Aug 16th | vs COL | vs ARI | ||||
| Mon, Aug 17th |   |   |   | @ MIN | ||
| Tue, Aug 18th | @ CLE | @ MIN | ||||
| Wed, Aug 19th | @ CLE | @ MIN | ||||
| Fri, Aug 21st | @ BOS | @ MIL | ||||
| Sat, Aug 22nd | @ BOS | @ MIL | ||||
| Sun, Aug 23rd | @ BOS | @ MIL | ||||
| Tue, Aug 25th | vs CIN | vs LAD | ||||
| Wed, Aug 26th | vs CIN | vs LAD | ||||
| Thu, Aug 27th | vs ARI | vs LAD | ||||
| Fri, Aug 28th | vs ARI | vs COL | ||||
| Sat, Aug 29th | vs ARI | vs COL | ||||
| Sun, Aug 30th | vs ARI | vs COL | ||||
| Tue, Sep 1st | @ PIT | @ WSH | ||||
| Wed, Sep 2nd | @ PIT | @ WSH | ||||
| Fri, Sep 4th | @ NYM | @ PHI | ||||
| Sat, Sep 5th | @ NYM | @ PHI | ||||
| Sun, Sep 6th | @ NYM | @ PHI | ||||
| Mon, Sep 7th | vs STL | @ PHI | ||||
| Tue, Sep 8th | vs STL | vs TB | ||||
| Wed, Sep 9th | vs STL | vs TB | ||||
| Thu, Sep 10th |   |   |   | vs TB | ||
| Fri, Sep 11th | vs SD | vs PHI | ||||
| Sat, Sep 12th | vs SD | vs PHI | ||||
| Sun, Sep 13th | vs SD | vs PHI | ||||
| Mon, Sep 14th | @ STL | @ CHC | ||||
| Tue, Sep 15th | @ STL | @ CHC | ||||
| Wed, Sep 16th | @ STL | @ CHC | ||||
| Fri, Sep 18th | @ LAD | @ HOU | ||||
| Sat, Sep 19th | @ LAD | @ HOU | ||||
| Sun, Sep 20th | @ LAD | @ HOU | ||||
| Tue, Sep 22nd | vs MIN | vs CIN | ||||
| Wed, Sep 23rd | vs MIN | vs CIN | ||||
| Thu, Sep 24th |   |   |   | vs CIN | ||
| Fri, Sep 25th | vs LAD | @ MIA | ||||
| Sat, Sep 26th | vs LAD | @ MIA | ||||
| Sun, Sep 27th | vs LAD | @ MIA | ||||
| Wed, Mar 25th | vs NYY | Max Fried (4-3) | #33 |   |   |   |
| Thu, Apr 16th | @ CIN | Chase Burns (7-1) | #25 |   |   |   |
| Mon, May 11th | @ LAD | Roki Sasaki (3-3) | #131 |   |   |   |
| Mon, May 25th | vs ARI | Merrill Kelly (5-3) | #93 |   |   |   |
| Mon, Jun 1st | @ MIL | Shane Drohan (2-1) | #145 |   |   |   |
| Mon, Jun 8th | vs WSH | Miles Mikolas (1-4) | #215 |   |   |   |
| Thu, Jun 25th | vs ATH |   |   |   | ||
| Mon, Jun 29th | @ ARI |   |   |   | ||
| Mon, Aug 3rd | @ TEX |   |   |   | ||
| Thu, Aug 20th | @ CLE |   |   |   | ||
| Mon, Aug 24th | vs CIN |   |   |   | ||
| Thu, Sep 3rd | @ PIT |   |   |   | ||
| Mon, Sep 21st | vs MIN |   |   |   | ||

