Kyle Harrison or Robbie Ray
Baseball Stats Comparison
See which player would win in a trade View Trade Analyzer
| Robbie Ray SP - SF | Kyle Harrison SP,RP - MIL | |
| 2026 Stats | ||
| Games Played | 12 | 10 |
| Games Started | 12 | 10 |
| Innings Pitched | 62.2 | 51.2 |
| Wins | 3 | 6 |
| Losses | 6 | 1 |
| Saves | 0 | 0 |
| Blown Saves | 0 | 0 |
| Holds | 0 | 0 |
| Hits Allowed | 57 | 38 |
| Earned Runs | 31 | 9 |
| Home Runs Allowed | 13 | 3 |
| Strikeouts | 59 | 61 |
| Walks | 31 | 14 |
| ERA | 4.45 | 1.57 |
| WHIP | 1.40 | 1.01 |
| Robbie Ray SP - SF | Kyle Harrison SP,RP - MIL | |
| 2026 Projections | ||
| Games Played | 30 | 27 |
| Games Started | 30 | 16 |
| Innings Pitched | 168.1 | 94.0 |
| Wins | 10 | 5 |
| Losses | 10 | 5 |
| Saves | 0 | 0 |
| Blown Saves | 0 | 0 |
| Holds | 0 | 1 |
| Hits Allowed | 150 | 87 |
| Earned Runs | 76 | 44 |
| Home Runs Allowed | 24 | 13 |
| Strikeouts | 174 | 93 |
| Walks | 65 | 37 |
| ERA | 4.05 | 4.23 |
| WHIP | 1.28 | 1.31 |
| Robbie Ray SP - SF | Kyle Harrison SP,RP - MIL | |
| News | ||
| 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 | Kyle Harrison allowed four hits while striking out two over six scoreless innings in Tuesday’s win over the Cardinals. Chris Schommer Wed, May 27th | |
| 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 | Kyle Harrison allowed two hits and one walk while striking out 11 over seven scoreless innings in Wednesday’s 5-0 win over the Cubs. Chris Schommer Thu, May 21st | |
| 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 | Kyle Harrison allowed five hits while striking out seven over five scoreless innings in Thursday’s 7-1 win over the Padres. Chris Schommer Fri, May 15th | |
| 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 | Kyle Harrison allowed two earned runs on four hits and four walks while striking out six over four innings in Saturday's win over the Yankees. Chris Schommer Sun, May 10th | |
| Robbie Ray allowed three earned runs on four hits and no walks while striking out five over 6 1/3 innings in Friday's loss to the Rays. Chris Schommer Sat, May 2nd | Kyle Harrison allowed one earned run on seven hits and one walk while striking out five over six innings in Saturday's 4-1 win over the Nationals. Chris Schommer Sun, May 3rd | |
| 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 | Kyle Harrison SP,RP - MIL | |||||
| Date | Opp | Opp Pitcher | VBR | Opp | Opp Pitcher | VBR |
|---|---|---|---|---|---|---|
| Thu, Mar 26th |   |   |   | vs CWS | Shane Smith (0-2) | #205 |
| Sat, Mar 28th | vs NYY | Will Warren (7-1) | #60 | vs CWS | Sean Burke (2-3) | #142 |
| Sun, Mar 29th |   |   |   | vs CWS | Anthony Kay (5-1) | #182 |
| Mon, Mar 30th | @ SD | Walker Buehler (3-3) | #220 | vs TB | Nick Martinez (5-1) | #81 |
| Tue, Mar 31st | @ SD | German Marquez (3-2) | #330 | vs TB | Shane McClanahan (6-2) | #22 |
| Wed, Apr 1st | @ SD | Nick Pivetta (1-2) | #138 | vs TB | Drew Rasmussen (4-2) | #21 |
| Sat, Apr 4th | vs NYM | Clay Holmes (4-4) | #165 | @ KC | Seth Lugo (2-4) | #104 |
| Sun, Apr 5th | vs NYM | Kodai Senga (0-4) | #129 | @ KC | Kris Bubic (3-2) | #80 |
| Mon, Apr 6th | vs PHI | Andrew Painter (1-6) | #170 | @ BOS | Brayan Bello (2-5) | #144 |
| Tue, Apr 7th | vs PHI | Cristopher Sanchez (6-2) | #3 | @ BOS | Garrett Crochet (3-3) | #9 |
| Wed, Apr 8th | vs PHI | Aaron Nola (3-4) | #39 | @ BOS | Sonny Gray (6-1) | #30 |
| Fri, Apr 10th | @ BAL | Shane Baz (2-5) | #84 | vs WSH | Jake Irvin (2-4) | #203 |
| Sat, Apr 11th | @ BAL | Chris Bassitt (4-3) | #125 | vs WSH | Foster Griffin (6-2) | #88 |
| Sun, Apr 12th | @ BAL | Cade Povich (1-1) | #240 | vs WSH | Zack Littell (5-4) | #169 |
| Tue, Apr 14th | @ CIN | Brady Singer (2-5) | #143 | vs TOR | Kevin Gausman (4-3) | #19 |
| Wed, Apr 15th | @ CIN | Rhett Lowder (3-3) | #206 | vs TOR | Dylan Cease (3-3) | #16 |
| Thu, Apr 16th | @ CIN | Chase Burns (7-1) | #25 | vs TOR | Patrick Corbin (2-1) | #216 |
| Fri, Apr 17th | @ WSH | Zack Littell (5-4) | #169 | @ MIA | Janson Junk (3-5) | #116 |
| Sat, Apr 18th | @ WSH | Cade Cavalli (3-3) | #87 | @ MIA | Sandy Alcantara (3-4) | #73 |
| Sun, Apr 19th | @ WSH | PJ Poulin (3-0) | #237 | @ MIA | Eury Perez (3-6) | #109 |
| Tue, Apr 21st | vs LAD | Yoshinobu Yamamoto (5-4) | #13 | @ DET | Keider Montero (2-3) | #201 |
| Wed, Apr 22nd | vs LAD | Shohei Ohtani (5-2) | #1 | @ DET | Casey Mize (2-3) | #65 |
| Thu, Apr 23rd | vs LAD | Tyler Glasnow (3-0) | #37 | @ DET | Tarik Skubal (3-2) | #4 |
| Fri, Apr 24th | vs MIA | Sandy Alcantara (3-4) | #73 | vs PIT | Paul Skenes (6-5) | #2 |
| Sat, Apr 25th | vs MIA | Eury Perez (3-6) | #109 | vs PIT | Mitch Keller (5-2) | #95 |
| Sun, Apr 26th | vs MIA | Max Meyer (5-0) | #68 | vs PIT | Carmen Mlodzinski (4-3) | #132 |
| Tue, Apr 28th | @ PHI | Jesus Luzardo (4-4) | #10 | vs ARI | Merrill Kelly (5-3) | #93 |
| Wed, Apr 29th |   |   |   | vs ARI | Eduardo Rodriguez (5-1) | #112 |
| Thu, Apr 30th | @ PHI | Tim Mayza | vs ARI | Michael Soroka (7-2) | #67 | |
| Fri, May 1st | @ TB | Shane McClanahan (6-2) | #22 | @ WSH | Jake Irvin (2-4) | #203 |
| Sat, May 2nd | @ TB | Griffin Jax (1-3) | #59 | @ WSH | Foster Griffin (6-2) | #88 |
| Sun, May 3rd | @ TB | Steven Matz (4-2) | #98 | @ WSH | PJ Poulin (3-0) | #237 |
| Mon, May 4th | vs SD | Randy Vasquez (5-3) | #199 | @ STL | Kyle Leahy (5-3) | #162 |
| Wed, May 6th | vs SD | Bradgley Rodriguez | @ STL | Andre Pallante (5-4) | #163 | |
| Fri, May 8th | vs PIT | Carmen Mlodzinski (4-3) | #132 | vs NYY | Max Fried (4-3) | #33 |
| Sat, May 9th | vs PIT | Braxton Ashcraft (5-2) | #47 | vs NYY | Cam Schlittler (7-2) | #36 |
| Sun, May 10th | vs PIT | Bubba Chandler (1-6) | #122 | vs NYY | Carlos Rodon (1-2) | #34 |
| Tue, May 12th | @ LAD | Yoshinobu Yamamoto (5-4) | #13 | vs SD | Bradgley Rodriguez | |
| Wed, May 13th | @ LAD | Shohei Ohtani (5-2) | #1 | vs SD | Michael King (4-4) | #35 |
| Thu, May 14th | @ LAD | Emmet Sheehan (3-1) | #42 | vs SD | Griffin Canning (0-4) | #141 |
| Fri, May 15th | @ ATH | Aaron Civale (5-2) | #219 | @ MIN | Joe Ryan (3-3) | #15 |
| Sat, May 16th | @ ATH | Luis Severino (2-6) | #146 | @ MIN | Connor Prielipp (1-3) | #124 |
| Sun, May 17th | @ ATH | Jeffrey Springs (3-6) | #111 | @ MIN | Bailey Ober (6-3) | #72 |
| Mon, May 18th | @ ARI | Zac Gallen (3-4) | #71 | @ CHC | Shota Imanaga (4-6) | #24 |
| Tue, May 19th | @ ARI | Ryne Nelson (2-4) | #89 | @ CHC | Ben Brown (2-2) | #52 |
| Wed, May 20th | @ ARI | Merrill Kelly (5-3) | #93 | @ CHC | Edward Cabrera (3-2) | #70 |
| Fri, May 22nd | vs CWS | Davis Martin (8-1) | #79 | vs LAD | Justin Wrobleski (7-2) | #130 |
| Sat, May 23rd | vs CWS | Bryan Hudson (3-1) | #175 | vs LAD | Roki Sasaki (3-3) | #131 |
| Sun, May 24th | vs CWS | Noah Schultz (2-4) | #221 | vs LAD | Yoshinobu Yamamoto (5-4) | #13 |
| Mon, May 25th | vs ARI | Merrill Kelly (5-3) | #93 | vs STL | Matthew Liberatore (3-3) | #114 |
| Tue, May 26th | vs ARI | Eduardo Rodriguez (5-1) | #112 | vs STL | Michael McGreevy (3-4) | #86 |
| Wed, May 27th | vs ARI | Michael Soroka (7-2) | #67 | vs STL | Dustin May (3-6) | #85 |
| Fri, May 29th | @ COL | Michael Lorenzen (2-7) | #427 | @ HOU | Kai-Wei Teng (3-3) | #181 |
| Sat, May 30th | @ COL | Ryan Feltner (2-1) | #424 | @ HOU | Peter Lambert (4-4) | #190 |
| Sun, May 31st | @ COL | Tanner Gordon (0-1) | #325 | @ HOU | Tatsuya Imai (2-3) | #152 |
| Mon, Jun 1st | @ MIL | Shane Drohan (2-1) | #145 | vs SF | Landen Roupp (5-5) | #61 |
| Tue, Jun 2nd | @ MIL | Kyle Harrison (6-1) | #63 | vs SF | Trevor McDonald (2-2) | #161 |
| Wed, Jun 3rd | @ MIL | Coleman Crow (0-0) | #197 | vs SF | Logan Webb (2-4) | #12 |
| Thu, Jun 4th | @ MIL | Brandon Sproat (1-4) | #158 | vs SF | Adrian Houser (2-5) | #189 |
| Fri, Jun 5th | @ CHC | Ben Brown (2-2) | #52 | @ COL | Ryan Feltner (2-1) | #424 |
| Sat, Jun 6th | @ CHC | Jordan Wicks (0-2) | #234 | @ COL | Tanner Gordon (0-1) | #325 |
| Sun, Jun 7th | @ CHC | Jameson Taillon (2-4) | #107 | @ COL | Kyle Freeland (1-6) | #395 |
| Mon, Jun 8th | vs WSH | Miles Mikolas (1-4) | #215 | @ ATH | Jeffrey Springs (3-6) | #111 |
| Tue, Jun 9th | vs WSH | Jake Irvin (2-4) | #203 | @ ATH | J.T. Ginn (3-3) | #127 |
| Wed, Jun 10th | vs WSH | Foster Griffin (6-2) | #88 | @ ATH | Kade Morris | #383 |
| Fri, Jun 12th | vs CHC | vs PHI | ||||
| Sat, Jun 13th | vs CHC | vs PHI | ||||
| Sun, Jun 14th | vs CHC | vs PHI | ||||
| Tue, Jun 16th | @ ATL | vs CLE | ||||
| Wed, Jun 17th | @ ATL | vs CLE | ||||
| Thu, Jun 18th | @ ATL | vs CLE | ||||
| Fri, Jun 19th | @ MIA | @ ATL | ||||
| Sat, Jun 20th | @ MIA | @ ATL | ||||
| Sun, Jun 21st | @ MIA | @ ATL | ||||
| Mon, Jun 22nd |   |   |   | @ CIN | ||
| Tue, Jun 23rd | vs ATH | @ CIN | ||||
| Wed, Jun 24th | vs ATH | @ CIN | ||||
| Fri, Jun 26th | vs ATL | vs CHC | ||||
| Sat, Jun 27th | vs ATL | vs CHC | ||||
| Sun, Jun 28th | vs ATL | vs CHC | ||||
| Mon, Jun 29th | @ ARI | vs CIN | ||||
| Tue, Jun 30th | @ ARI | vs CIN | ||||
| Wed, Jul 1st | @ ARI | vs CIN | ||||
| Thu, Jul 2nd |   |   |   | vs CIN | ||
| Fri, Jul 3rd | @ COL | @ ARI | ||||
| Sat, Jul 4th | @ COL | @ ARI | ||||
| Sun, Jul 5th | @ COL | @ ARI | ||||
| Mon, Jul 6th | vs TOR | @ STL | ||||
| Tue, Jul 7th | vs TOR | @ STL | ||||
| Wed, Jul 8th | vs TOR | @ STL | ||||
| Thu, Jul 9th | vs COL | @ STL | ||||
| Fri, Jul 10th | vs COL | @ PIT | ||||
| Sat, Jul 11th | vs COL | @ PIT | ||||
| Sun, Jul 12th | vs COL | @ PIT | ||||
| Fri, Jul 17th | @ SEA | vs MIA | ||||
| Sat, Jul 18th | @ SEA | vs MIA | ||||
| Sun, Jul 19th | @ SEA | vs MIA | ||||
| Mon, Jul 20th | @ KC | vs NYM | ||||
| Tue, Jul 21st | @ KC | vs NYM | ||||
| Wed, Jul 22nd | @ KC | vs NYM | ||||
| Fri, Jul 24th | vs LAA | vs COL | ||||
| Sat, Jul 25th | vs LAA | vs COL | ||||
| Sun, Jul 26th | vs LAA | vs COL | ||||
| Mon, Jul 27th | vs MIL | @ SF | ||||
| Tue, Jul 28th | vs MIL | @ SF | ||||
| Wed, Jul 29th | vs MIL | @ SF | ||||
| Fri, Jul 31st | @ SD | @ LAA | ||||
| Sat, Aug 1st | @ SD | @ LAA | ||||
| Sun, Aug 2nd | @ SD | @ LAA | ||||
| Mon, Aug 3rd | @ TEX | vs PIT | ||||
| Tue, Aug 4th | @ TEX | vs PIT | ||||
| Wed, Aug 5th | @ TEX | vs PIT | ||||
| Thu, Aug 6th |   |   |   | vs PIT | ||
| Fri, Aug 7th | vs DET | vs MIN | ||||
| Sat, Aug 8th | vs DET | vs MIN | ||||
| Sun, Aug 9th | vs DET | vs MIN | ||||
| Mon, Aug 10th | vs HOU | @ SD | ||||
| Tue, Aug 11th | vs HOU | @ SD | ||||
| Wed, Aug 12th | vs HOU | @ SD | ||||
| Thu, Aug 13th |   |   |   | @ LAD | ||
| Fri, Aug 14th | vs COL | @ LAD | ||||
| Sat, Aug 15th | vs COL | @ LAD | ||||
| Sun, Aug 16th | vs COL | @ LAD | ||||
| Tue, Aug 18th | @ CLE | vs SEA | ||||
| Wed, Aug 19th | @ CLE | vs SEA | ||||
| Thu, Aug 20th | @ CLE | vs SEA | ||||
| Fri, Aug 21st | @ BOS | vs ATL | ||||
| Sat, Aug 22nd | @ BOS | vs ATL | ||||
| Sun, Aug 23rd | @ BOS | vs ATL | ||||
| Tue, Aug 25th | vs CIN | @ NYM | ||||
| Wed, Aug 26th | vs CIN | @ NYM | ||||
| Thu, Aug 27th | vs ARI | @ NYM | ||||
| Fri, Aug 28th | vs ARI | vs TEX | ||||
| Sat, Aug 29th | vs ARI | vs TEX | ||||
| Sun, Aug 30th | vs ARI | vs TEX | ||||
| Mon, Aug 31st |   |   |   | @ CHC | ||
| Tue, Sep 1st | @ PIT | @ CHC | ||||
| Wed, Sep 2nd | @ PIT | @ CHC | ||||
| Thu, Sep 3rd | @ PIT | @ CHC | ||||
| Fri, Sep 4th | @ NYM | @ CIN | ||||
| Sat, Sep 5th | @ NYM | @ CIN | ||||
| Sun, Sep 6th | @ NYM | @ CIN | ||||
| Mon, Sep 7th | vs STL | vs CHC | ||||
| Tue, Sep 8th | vs STL | vs CHC | ||||
| Wed, Sep 9th | vs STL | vs CHC | ||||
| Fri, Sep 11th | vs SD | vs CIN | ||||
| Sat, Sep 12th | vs SD | vs CIN | ||||
| Sun, Sep 13th | vs SD | vs CIN | ||||
| Tue, Sep 15th | @ STL | @ PIT | ||||
| Wed, Sep 16th | @ STL | @ PIT | ||||
| Thu, Sep 17th |   |   |   | @ PIT | ||
| Fri, Sep 18th | @ LAD | @ BAL | ||||
| Sat, Sep 19th | @ LAD | @ BAL | ||||
| Sun, Sep 20th | @ LAD | @ BAL | ||||
| Tue, Sep 22nd | vs MIN | @ PHI | ||||
| Wed, Sep 23rd | vs MIN | @ PHI | ||||
| Thu, Sep 24th |   |   |   | @ PHI | ||
| Fri, Sep 25th | vs LAD | vs STL | ||||
| Sat, Sep 26th | vs LAD | vs STL | ||||
| Sun, Sep 27th | vs LAD | vs STL | ||||
| Wed, Mar 25th | vs NYY | Max Fried (4-3) | #33 |   |   |   |
| Fri, Mar 27th | vs NYY | Cam Schlittler (7-2) | #36 |   |   |   |
| Thu, Apr 2nd | vs NYM | David Peterson (3-5) | #117 |   |   |   |
| Fri, Apr 3rd | vs NYM | Nolan McLean (3-4) | #29 |   |   |   |
| Tue, May 5th | vs SD | Walker Buehler (3-3) | #220 |   |   |   |
| Mon, May 11th | @ LAD | Roki Sasaki (3-3) | #131 |   |   |   |
| Thu, Jun 25th | vs ATH |   |   |   | ||
| Thu, Jul 30th | @ SD |   |   |   | ||
| Mon, Aug 24th | vs CIN |   |   |   | ||
| Mon, Sep 14th | @ STL |   |   |   | ||
| Mon, Sep 21st | vs MIN |   |   |   | ||

