Grant Holmes or Sonny Gray
Baseball Stats Comparison
See which player would win in a trade View Trade Analyzer
| Sonny Gray SP - BOS | Grant Holmes SP - ATL | |
| 2026 Stats | ||
| Games Played | 11 | 12 |
| Games Started | 11 | 12 |
| Innings Pitched | 56.1 | 63.0 |
| Wins | 7 | 4 |
| Losses | 1 | 2 |
| Saves | 0 | 0 |
| Blown Saves | 0 | 0 |
| Holds | 0 | 0 |
| Hits Allowed | 54 | 56 |
| Earned Runs | 20 | 27 |
| Home Runs Allowed | 6 | 12 |
| Strikeouts | 44 | 57 |
| Walks | 16 | 27 |
| ERA | 3.20 | 3.86 |
| WHIP | 1.24 | 1.32 |
| Sonny Gray SP - BOS | Grant Holmes SP - ATL | |
| 2026 Projections | ||
| Games Played | 30 | 32 |
| Games Started | 29 | 20 |
| Innings Pitched | 169.8 | 124.8 |
| Wins | 11 | 7 |
| Losses | 9 | 7 |
| Saves | 0 | 0 |
| Blown Saves | 0 | 0 |
| Holds | 0 | 1 |
| Hits Allowed | 158 | 118 |
| Earned Runs | 69 | 58 |
| Home Runs Allowed | 20 | 17 |
| Strikeouts | 179 | 123 |
| Walks | 44 | 47 |
| ERA | 3.64 | 4.16 |
| WHIP | 1.19 | 1.33 |
| Sonny Gray SP - BOS | Grant Holmes SP - ATL | |
| News | ||
| Gray's seven wins are tied for third in the American League behind Gavin Williams (nine) and Davis Martin (eight). He has a 3.20 ERA, 1.24 WHIP, and 44:16 K:BB across 56.1 innings this season and lines up for a road start against Tampa Bay next week. Bruno Mulé Sat, Jun 6th | Grant Holmes allowed two runs on five hits and two walks while striking out four over six innings in Wednesday's 7-3 win over the Blue Jays. Nate Miller - FantasyPros Thu, Jun 4th | |
| Gray's next start comes at Yankee Stadium — his first appearance there since a December interview in which he spoke about how much he dislikes the Yankees. He carries a 3.06 ERA into that matchup after Saturday's outing against Cleveland. Bruno Mulé Sun, May 31st | 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 | |
| Sonny Gray allowed three earned runs on six hits and two walks while striking out four over four innings in Sunday's 6-5 loss to the Twins. 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 | |
| Sonny Gray allowed one earned run on five hits and one walk while striking out nine over six innings in Monday’s 3-1 win over the Royals. 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 | |
| Sonny Gray allowed one earned run on two hits while also walking one and striking out six through six innings in Wednesday's 3-1 win over the Phillies. 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 | |
| Notes | ||
| Sonny Gray was one of the only bright spots in the Cardinals' 2025 season. He started 32 games, threw 180 2/3 innings, and struck out 201 batters. His ERA was inflated at 4.28 with an expected of 3.90, but his FIP (3.39) suggests both of these numbers are high, and his xFIP is even lower at 3.06. Gray turns 36 this year, and projections have him profiled as more of an SP3 or SP4. Still, the move to Boston should give him more win equity, and he is worth consideration in the middle rounds. Kelly Kirby - FantasyPros | ||
| Sonny Gray SP - BOS | Grant Holmes SP - ATL | |||||
| Date | Opp | Opp Pitcher | VBR | Opp | Opp Pitcher | VBR |
|---|---|---|---|---|---|---|
| Fri, Mar 27th |   |   |   | vs KC | Cole Ragans (1-4) | #45 |
| Sat, Mar 28th | @ CIN | Brady Singer (2-6) | #158 | vs KC | Michael Wacha (4-4) | #79 |
| Sun, Mar 29th | @ CIN | Rhett Lowder (3-3) | #191 | vs KC | Seth Lugo (2-4) | #110 |
| Mon, Mar 30th | @ HOU | Lance McCullers Jr. (2-3) | #235 | vs ATH | Jacob Lopez (4-3) | #207 |
| Tue, Mar 31st | @ HOU | Hunter Brown (1-0) | #14 | vs ATH | Aaron Civale (5-2) | #211 |
| Wed, Apr 1st | @ HOU | Mike Burrows (3-8) | #138 | vs ATH | Luis Severino (2-6) | #168 |
| Thu, Apr 2nd |   |   |   | @ ARI | Ryne Nelson (2-4) | #97 |
| Fri, Apr 3rd | vs SD | Michael King (4-5) | #40 | @ ARI | Eduardo Rodriguez (5-2) | #118 |
| Sat, Apr 4th | vs SD | Randy Vasquez (5-4) | #187 | @ ARI | Michael Soroka (8-3) | #59 |
| Sun, Apr 5th | vs SD | Walker Buehler (3-3) | #203 | @ ARI | Brandon Pfaadt (0-1) | #141 |
| Mon, Apr 6th | vs MIL | Brandon Woodruff (2-1) | #65 | @ LAA | Jose Soriano (7-4) | #56 |
| Tue, Apr 7th | vs MIL | Jacob Misiorowski (7-2) | #12 | @ LAA | Yusei Kikuchi (0-3) | #140 |
| Wed, Apr 8th | vs MIL | Shane Drohan (3-1) | #137 | @ LAA | Reid Detmers (2-5) | #44 |
| Fri, Apr 10th | @ STL | Dustin May (3-6) | #70 | vs CLE | Slade Cecconi (3-5) | #101 |
| Sat, Apr 11th | @ STL | Kyle Leahy (5-3) | #151 | vs CLE | Parker Messick (6-2) | #52 |
| Sun, Apr 12th | @ STL | Andre Pallante (6-4) | #147 | vs CLE | Tanner Bibee (1-7) | #43 |
| Mon, Apr 13th | @ MIN | Bailey Ober (6-3) | #105 | vs MIA | Eury Perez (3-6) | #112 |
| Tue, Apr 14th | @ MIN | Mick Abel (1-2) | #195 | vs MIA | Max Meyer (6-0) | #58 |
| Wed, Apr 15th | @ MIN | Simeon Woods Richardson (0-7) | #298 | vs MIA | Chris Paddack (0-7) | #312 |
| Fri, Apr 17th | vs DET | Casey Mize (2-3) | #61 | @ PHI | Taijuan Walker (1-4) | #415 |
| Sat, Apr 18th | vs DET | Tarik Skubal (3-2) | #3 | @ PHI | Cristopher Sanchez (8-2) | #4 |
| Sun, Apr 19th | vs DET | Framber Valdez (3-4) | #27 | @ PHI | Andrew Painter (1-7) | #167 |
| Mon, Apr 20th | vs DET | Jack Flaherty (1-7) | #66 | @ WSH | Jake Irvin (2-4) | #199 |
| Tue, Apr 21st | vs NYY | Luis Gil (1-2) | #249 | @ WSH | Foster Griffin (7-2) | #86 |
| Wed, Apr 22nd | vs NYY | Max Fried (4-3) | #30 | @ WSH | Zack Littell (6-4) | #146 |
| Thu, Apr 23rd | vs NYY | Cam Schlittler (7-3) | #37 | @ WSH | Cade Cavalli (3-4) | #85 |
| Fri, Apr 24th | @ BAL | Brandon Young (4-1) | #179 | vs PHI | Andrew Painter (1-7) | #167 |
| Sat, Apr 25th | @ BAL | Trevor Rogers (3-6) | #99 | vs PHI | Zack Wheeler (5-1) | #8 |
| Sun, Apr 26th | @ BAL | Kyle Bradish (3-7) | #46 | vs PHI | Aaron Nola (3-4) | #42 |
| Tue, Apr 28th | @ TOR | Trey Yesavage (2-3) | #60 | vs DET | Casey Mize (2-3) | #61 |
| Wed, Apr 29th | @ TOR | Eric Lauer (2-5) | #264 | vs DET | Tarik Skubal (3-2) | #3 |
| Thu, Apr 30th |   |   |   | vs DET | Framber Valdez (3-4) | #27 |
| Fri, May 1st | vs HOU | Mike Burrows (3-8) | #138 | @ COL | Jose Quintana (2-3) | #431 |
| Sat, May 2nd | vs HOU | Spencer Arrighetti (7-1) | #128 | @ COL | Brennan Bernardino (2-3) | #262 |
| Sun, May 3rd | vs HOU | Cody Bolton (0-1) | #404 | @ COL | Kyle Freeland (1-6) | #369 |
| Mon, May 4th | @ DET | Tyler Holton (1-4) | #149 | @ SEA | Logan Gilbert (4-4) | #15 |
| Tue, May 5th | @ DET | Framber Valdez (3-4) | #27 | @ SEA | George Kirby (5-5) | #16 |
| Wed, May 6th | @ DET | Jack Flaherty (1-7) | #66 | @ SEA | Bryan Woo (5-4) | #7 |
| Fri, May 8th | vs TB | Jesse Scholtens (5-3) | #275 | @ LAD | Emmet Sheehan (3-3) | #47 |
| Sat, May 9th |   |   |   | @ LAD | Blake Snell (0-1) | #71 |
| Sun, May 10th | vs TB | Nick Martinez (5-2) | #88 | @ LAD | Justin Wrobleski (7-2) | #111 |
| Tue, May 12th | vs PHI | Zack Wheeler (5-1) | #8 | vs CHC | Colin Rea (5-3) | #157 |
| Wed, May 13th | vs PHI | Andrew Painter (1-7) | #167 | vs CHC | Shota Imanaga (4-6) | #28 |
| Thu, May 14th | vs PHI | Jesus Luzardo (4-4) | #9 | vs CHC | Ben Brown (2-2) | #36 |
| Fri, May 15th | @ ATL | Spencer Strider (4-1) | #33 | vs BOS | Connelly Early (5-4) | #92 |
| Sat, May 16th | @ ATL | Bryce Elder (5-3) | #114 | vs BOS | Payton Tolle (3-2) | #57 |
| Sun, May 17th | @ ATL | Grant Holmes (4-2) | #124 | vs BOS | Brayan Bello (2-6) | #174 |
| Mon, May 18th | @ KC | Seth Lugo (2-4) | #110 | @ MIA | Max Meyer (6-0) | #58 |
| Tue, May 19th | @ KC | Bailey Falter (0-2) | #325 | @ MIA | Braxton Garrett (0-1) | #115 |
| Wed, May 20th | @ KC | Michael Wacha (4-4) | #79 | @ MIA | Janson Junk (3-5) | #125 |
| Thu, May 21st |   |   |   | @ MIA | Sandy Alcantara (5-4) | #64 |
| Fri, May 22nd | vs MIN | Connor Prielipp (2-4) | #106 | vs WSH | Richard Lovelady (2-3) | #233 |
| Sat, May 23rd | vs MIN | Taj Bradley (5-2) | #68 | vs WSH | Jake Irvin (2-4) | #199 |
| Sun, May 24th | vs MIN | Bailey Ober (6-3) | #105 | vs WSH | Foster Griffin (7-2) | #86 |
| Tue, May 26th | vs ATL | Spencer Strider (4-1) | #33 | @ BOS | Ranger Suarez (2-3) | #26 |
| Wed, May 27th | vs ATL | Bryce Elder (5-3) | #114 | @ BOS | Connelly Early (5-4) | #92 |
| Thu, May 28th | vs ATL | Chris Sale (8-4) | #5 | @ BOS | Payton Tolle (3-2) | #57 |
| Fri, May 29th | @ CLE | Slade Cecconi (3-5) | #101 | @ CIN | Chris Paddack (0-7) | #312 |
| Sat, May 30th | @ CLE | Parker Messick (6-2) | #52 | @ CIN | Brady Singer (2-6) | #158 |
| Sun, May 31st | @ CLE | Tanner Bibee (1-7) | #43 | @ CIN | Nick Lodolo (2-1) | #74 |
| Tue, Jun 2nd | vs BAL | Shane Baz (3-6) | #72 | vs TOR | Kevin Gausman (4-4) | #21 |
| Wed, Jun 3rd | vs BAL | Chris Bassitt (4-4) | #120 | vs TOR | Patrick Corbin (2-3) | #250 |
| Thu, Jun 4th | vs BAL | Trevor Rogers (3-6) | #99 | vs TOR | Mason Fluharty (3-0) | #159 |
| Fri, Jun 5th | @ NYY | Ryan Weathers (2-4) | #75 | vs PIT | Mitch Keller (5-3) | #93 |
| Sat, Jun 6th |   |   |   | vs PIT | Braxton Ashcraft (5-3) | #32 |
| Sun, Jun 7th | @ NYY | Cam Schlittler (7-3) | #37 | vs PIT | Mason Montgomery (1-1) | #163 |
| Tue, Jun 9th | @ TB | Nick Martinez (5-2) | #88 | @ CWS | Brandon Eisert (1-0) | #206 |
| Wed, Jun 10th | @ TB | Drew Rasmussen (5-2) | #19 | @ CWS | Davis Martin (8-2) | #82 |
| Thu, Jun 11th |   |   |   | @ CWS | Anthony Kay (5-1) | #201 |
| Fri, Jun 12th | vs TEX | Jack Leiter (3-5) | #77 | @ NYM | Nolan McLean (3-4) | #31 |
| Sat, Jun 13th | vs TEX | Jacob deGrom (5-4) | #6 | @ NYM | Sean Manaea (1-1) | #95 |
| Sun, Jun 14th | vs TEX | Nathan Eovaldi (5-6) | #20 | @ NYM | Kodai Senga (0-4) | #123 |
| Tue, Jun 16th | vs TOR | Dylan Cease (3-3) | #10 | vs SF | Adrian Houser (2-5) | #204 |
| Wed, Jun 17th | vs TOR | Max Scherzer (1-3) | #132 | vs SF | Robbie Ray (4-6) | #80 |
| Thu, Jun 18th | vs TOR | vs SF | ||||
| Fri, Jun 19th | @ SEA | vs MIL | ||||
| Sat, Jun 20th | @ SEA | vs MIL | ||||
| Sun, Jun 21st | @ SEA | vs MIL | ||||
| Mon, Jun 22nd | @ COL | @ SD | ||||
| Tue, Jun 23rd | @ COL | @ SD | ||||
| Wed, Jun 24th | @ COL | @ SD | ||||
| Fri, Jun 26th | vs NYY | @ SF | ||||
| Sat, Jun 27th | vs NYY | @ SF | ||||
| Sun, Jun 28th | vs NYY | @ SF | ||||
| Tue, Jun 30th | vs WSH | vs STL | ||||
| Wed, Jul 1st | vs WSH | vs STL | ||||
| Thu, Jul 2nd |   |   |   | vs STL | ||
| Fri, Jul 3rd | @ LAA | vs NYM | ||||
| Sat, Jul 4th | @ LAA | vs NYM | ||||
| Sun, Jul 5th | @ LAA | vs NYM | ||||
| Mon, Jul 6th |   |   |   | vs NYM | ||
| Tue, Jul 7th | @ CWS | @ PIT | ||||
| Wed, Jul 8th | @ CWS | @ PIT | ||||
| Thu, Jul 9th | @ CWS | @ PIT | ||||
| Fri, Jul 10th | @ NYM | @ STL | ||||
| Sat, Jul 11th | @ NYM | @ STL | ||||
| Sun, Jul 12th | @ NYM | @ STL | ||||
| Fri, Jul 17th | vs TB | vs TEX | ||||
| Sat, Jul 18th | vs TB | vs TEX | ||||
| Sun, Jul 19th | vs TB | vs TEX | ||||
| Mon, Jul 20th | vs BAL | vs SD | ||||
| Tue, Jul 21st | vs BAL | vs SD | ||||
| Wed, Jul 22nd | vs BAL | vs SD | ||||
| Thu, Jul 23rd |   |   |   | vs SD | ||
| Fri, Jul 24th | vs TOR | @ BAL | ||||
| Sat, Jul 25th | vs TOR | @ BAL | ||||
| Sun, Jul 26th | vs TOR | @ BAL | ||||
| Mon, Jul 27th | @ ATH | @ NYM | ||||
| Tue, Jul 28th | @ ATH | @ NYM | ||||
| Wed, Jul 29th | @ ATH | @ NYM | ||||
| Thu, Jul 30th | @ ATH | vs WSH | ||||
| Fri, Jul 31st | @ LAD | vs WSH | ||||
| Sat, Aug 1st | @ LAD | vs WSH | ||||
| Sun, Aug 2nd | @ LAD | vs WSH | ||||
| Tue, Aug 4th | vs CWS | vs MIA | ||||
| Wed, Aug 5th | vs CWS | vs MIA | ||||
| Thu, Aug 6th | vs CWS | vs MIA | ||||
| Fri, Aug 7th | vs ATH | @ NYY | ||||
| Sat, Aug 8th | vs ATH | @ NYY | ||||
| Sun, Aug 9th | vs ATH | @ NYY | ||||
| Mon, Aug 10th | @ TOR | vs NYM | ||||
| Tue, Aug 11th | @ TOR | vs NYM | ||||
| Wed, Aug 12th | @ TOR | vs NYM | ||||
| Fri, Aug 14th | @ PIT | vs ARI | ||||
| Sat, Aug 15th | @ PIT | vs ARI | ||||
| Sun, Aug 16th | @ PIT | vs ARI | ||||
| Mon, Aug 17th | vs ARI | @ MIN | ||||
| Tue, Aug 18th | vs ARI | @ MIN | ||||
| Wed, Aug 19th | vs ARI | @ MIN | ||||
| Fri, Aug 21st | vs SF | @ MIL | ||||
| Sat, Aug 22nd | vs SF | @ MIL | ||||
| Sun, Aug 23rd | vs SF | @ MIL | ||||
| Tue, Aug 25th | @ MIA | vs LAD | ||||
| Wed, Aug 26th | @ MIA | vs LAD | ||||
| Thu, Aug 27th |   |   |   | vs LAD | ||
| Fri, Aug 28th | @ NYY | vs COL | ||||
| Sat, Aug 29th | @ NYY | vs COL | ||||
| Sun, Aug 30th | @ NYY | vs COL | ||||
| Tue, Sep 1st | vs SEA | @ WSH | ||||
| Wed, Sep 2nd | vs SEA | @ WSH | ||||
| Fri, Sep 4th | @ BAL | @ PHI | ||||
| Sat, Sep 5th | @ BAL | @ PHI | ||||
| Sun, Sep 6th | @ BAL | @ PHI | ||||
| Mon, Sep 7th | vs LAA | @ PHI | ||||
| Tue, Sep 8th | vs LAA | vs TB | ||||
| Wed, Sep 9th | vs LAA | vs TB | ||||
| Thu, Sep 10th |   |   |   | vs TB | ||
| Fri, Sep 11th | vs KC | vs PHI | ||||
| Sat, Sep 12th | vs KC | vs PHI | ||||
| Sun, Sep 13th | vs KC | vs PHI | ||||
| Mon, Sep 14th |   |   |   | @ CHC | ||
| Tue, Sep 15th | @ TEX | @ CHC | ||||
| Wed, Sep 16th | @ TEX | @ CHC | ||||
| Fri, Sep 18th | @ TB | @ HOU | ||||
| Sat, Sep 19th | @ TB | @ HOU | ||||
| Sun, Sep 20th | @ TB | @ HOU | ||||
| Tue, Sep 22nd | vs CLE | vs CIN | ||||
| Wed, Sep 23rd | vs CLE | vs CIN | ||||
| Thu, Sep 24th | vs CLE | vs CIN | ||||
| Fri, Sep 25th | vs CHC | @ MIA | ||||
| Sat, Sep 26th | vs CHC | @ MIA | ||||
| Sun, Sep 27th | vs CHC | @ MIA | ||||
| Thu, Mar 26th | @ CIN | Andrew Abbott (4-4) | #94 |   |   |   |
| Mon, Apr 27th | @ TOR | Dylan Cease (3-3) | #10 |   |   |   |
| Thu, May 7th | vs TB | Griffin Jax (1-4) | #62 |   |   |   |
| Mon, Jun 8th | @ TB | Ian Seymour (3-0) | #127 |   |   |   |
| Thu, Jun 25th | vs NYY |   |   |   | ||
| Mon, Jun 29th | vs WSH |   |   |   | ||
| Thu, Aug 13th | @ TOR |   |   |   | ||
| Mon, Aug 24th | @ MIA |   |   |   | ||
| Mon, Aug 31st | vs SEA |   |   |   | ||
| Thu, Sep 3rd | @ BAL |   |   |   | ||
| Thu, Sep 17th | @ TEX |   |   |   | ||

