Scoring This Year’s No-Hitters
We’ve still got a week to go in May, a month that has included four no-hitters, including two last week on back-to-back days — the Tigers’ Spencer Turnbull against the Mariners on Tuesday, and then the Yankees’ Corey Kluber against the Rangers on Wednesday, plus two that were just two days apart earlier this month. That brings this year’s total to six no-hitters of the nine-inning variety, plus a seven-inning one by Madison Bumgarner that The Man doesn’t want you to count. Particularly because the major league batting average of .237 is in a virtual tie for the all-time low mark set in 1968, these remarkable achievements are threatening to lose some luster.
That’s a shame, because the experience of actually watching a no-hitter from start to finish, rather than just flipping over to rubberneck for the final three or six outs, is still one of the most gripping in all of sports. The dawning of the possibility at some point in the middle innings — individually, we all have our thresholds for when our antennae go up — and then the batter-by-batter, pitch-by-pitch suspense, knowing that this gem could disintegrate either though one bad pitch or one bad break, makes a no-hitter a thrill to watch. Every single one of them is meaningful to its participants; for the pitcher and probably the catcher as well, it’s the pinnacle of performance. It takes a heart of coal not to be moved by the likes of Turnbull or Carlos Rodón having that one day of untouchability after years of ups and downs.
That said, some no-hitters are more impressive than others, with strikeouts galore and maybe just a walk or two separating them from perfection. Particularly given the current conditions, under which three teams have been no-hit twice — Cleveland, Texas, and Seattle — it’s obvious that there are varying degrees of difficulty when it comes to opponents as well. No-hitting the Mariners, who entered Sunday with a team batting average of .198, isn’t the same as doing it to the Rangers (.236), and neither of those are the equal of, say, Sean Manaea no-hitting the 2018 Red Sox, who hit .271.
In ruminating on this, I got to wondering if starting pitcher Game Scores — specifically Game Score Version 2.0, which we feature in our game logs — could help place this year’s no-hitters in context with the other recent ones we’ve seen. Updating a Bill James creation that dates back to the days of the annual Baseball Abstracts, and that assigns a value to each pitcher’s start based upon the components of his stat line as an estimate of the quality of his performance, Tom Tango offered this formula:
Game Score Version 2 = 40 + 2 * outs + K – BB – 2* H – 3* R – 6 * HR
A score of 50 is considered average, while a no-hitter might break 100, and a perfect game with at least six strikeouts is mathematically guaranteed do so. The stat isn’t designed for use with relievers.
We can rank no-hitters easily enough by Game Scores of either variety (though for the rest of this piece, I’ll use Tango’s revised version) to illustrate which pitchers were more dominant, but can we account for the conditions under which they occur? At a time when hits are as scarce as ever, strikeouts more plentiful than ever, and homers much more common than they were six or seven years ago, it makes sense to apply some adjustments to those scores. Likewise when considering that starting pitchers are generally working appreciably shorter stints.
For my first attempt, I took a stab at adjusting for league-wide conditions — not just per-game levels for scoring, but for hits, walks, strikeouts, homers, and innings. While Game Scores were designed to center at 50, and while one can apply a league-wide constant to make them do just that, the unadjusted annual major league averages actually vary by a few points due to the changing frequencies of each event. Over the past decade, Game Scores peaked in 2014 at 53.6; that year, teams scored an average of just 4.07 runs per game, the majors’ lowest mark since 1981, and homered 0.86 times per game, the lowest mark since ’92. Last year, when teams scored 4.65 runs per game but starters averaged less than five innings per turn (4.78) for the first time, they averaged a Game Score of 48.8, the lowest of the decade. In 2019, with longer stints, higher scoring, and a record home run level, they were just an eyelash ahead at 48.9.
So my first adjustment to Game Scores accounts for those changing conditions. Here is how the 35 complete-game no-hitters since 2012 (including Bumgarner, who’s coming along for the ride on this exercise) stack up in terms of both Game Score and what I’ve called Game Score Above Average (GScAA):
Pitcher | Date | Tm | Opp | BB | SO | GSc | LgGSc | GScAA |
---|---|---|---|---|---|---|---|---|
Max Scherzer | 10/3/15 | WSN | NYM | 0 | 17 | 111 | 52.0 | 59.0 |
Justin Verlander | 9/1/19 | HOU | TOR | 1 | 14 | 106 | 48.9 | 57.1 |
Matt Cain* | 6/13/12 | SFG | HOU | 0 | 14 | 108 | 51.3 | 56.7 |
Lucas Giolito | 8/25/20 | CHW | PIT | 1 | 13 | 105 | 48.8 | 56.2 |
Clayton Kershaw | 6/18/14 | LAD | COL | 0 | 15 | 109 | 53.6 | 55.4 |
Félix Hernández* | 8/15/12 | SEA | TBR | 0 | 12 | 106 | 51.3 | 54.7 |
John Means | 5/5/21 | BAL | SEA | 0 | 12 | 106 | 51.5 | 54.5 |
Chris Heston | 6/9/15 | SFG | NYM | 0 | 11 | 105 | 52.0 | 53.0 |
Joe Musgrove | 4/9/21 | SDP | TEX | 0 | 10 | 104 | 51.6 | 52.4 |
Jake Arrieta | 8/30/15 | CHC | LAD | 1 | 12 | 104 | 52.0 | 52.0 |
Max Scherzer | 6/20/15 | WSN | PIT | 0 | 10 | 104 | 52.0 | 52.0 |
Philip Humber* | 4/21/12 | CHW | SEA | 0 | 9 | 103 | 51.3 | 51.7 |
Cole Hamels | 7/25/15 | PHI | CHC | 2 | 13 | 103 | 52.0 | 51.0 |
Edinson Vólquez | 6/3/17 | MIA | ARI | 2 | 10 | 100 | 49.2 | 50.8 |
Homer Bailey | 9/28/12 | CIN | PIT | 1 | 10 | 102 | 51.3 | 50.7 |
Jered Weaver | 5/2/12 | LAA | MIN | 1 | 9 | 101 | 51.3 | 49.7 |
Corey Kluber | 5/19/21 | NYY | TEX | 1 | 9 | 101 | 51.5 | 49.5 |
Carlos Rodón | 4/14/21 | CHW | CLE | 0 | 7 | 101 | 51.5 | 49.5 |
Sean Manaea | 4/21/18 | OAK | BOS | 2 | 10 | 100 | 50.9 | 49.1 |
Homer Bailey | 7/2/13 | CIN | SFG | 1 | 9 | 101 | 52.2 | 48.8 |
Wade Miley | 5/7/21 | CIN | CLE | 1 | 8 | 100 | 51.5 | 48.5 |
Jordan Zimmermann | 9/28/14 | WSN | MIA | 1 | 10 | 102 | 53.6 | 48.4 |
Spencer Turnbull | 5/18/21 | DET | SEA | 2 | 9 | 99 | 51.5 | 47.5 |
Mike Fiers | 5/7/19 | OAK | CIN | 2 | 6 | 96 | 48.9 | 47.1 |
Tim Lincecum | 7/13/13 | SFG | SDP | 4 | 13 | 99 | 52.2 | 46.8 |
Mike Fiers | 8/21/15 | HOU | LAD | 3 | 10 | 98 | 52.0 | 46.0 |
Tim Lincecum | 6/25/14 | SFG | SDP | 1 | 6 | 98 | 53.6 | 44.4 |
Alec Mills | 9/13/20 | CHC | MIL | 3 | 5 | 93 | 48.8 | 44.2 |
James Paxton | 5/8/18 | SEA | TOR | 3 | 7 | 95 | 50.9 | 44.1 |
Henderson Alvarez III | 9/29/13 | MIA | DET | 1 | 4 | 96 | 52.2 | 43.8 |
Hisashi Iwakuma | 8/12/15 | SEA | BAL | 3 | 7 | 95 | 52.0 | 43.0 |
Jake Arrieta | 4/21/16 | CHC | CIN | 4 | 6 | 92 | 50.3 | 41.7 |
Johan Santana | 6/1/12 | NYM | STL | 5 | 8 | 92 | 51.3 | 40.7 |
Josh Beckett | 5/25/14 | LAD | PHI | 3 | 6 | 94 | 53.6 | 40.4 |
Madison Bumgarner | 4/25/21 | ARI | ATL | 0 | 7 | 89 | 51.5 | 37.5 |
The table is sortable, so you can pick your poison. By raw Game Score, with or without the adjustment, the gems of Means and Musgrove rank quite high — in the neighborhood of the decade’s three perfect games — thanks to their high strikeout totals and lack of walks. Means’ no-hitter would have been perfect had a batter not reached base on a dropped third strike (a first in the annals), and likewise for Musgrove if not for a hit-by-pitch, an event that’s not accounted for in Game Score (though given the high rates of recent years, perhaps it should be). Rodón hit a batter as well, but didn’t walk anybody either, for that matter.
In general, no-hitters from the more starter-friendly seasons — the ones with league-wide Game Scores of 52-53 — such as that of Kershaw, slide down the list a few rungs while those of less starter-friendly seasons, such as that of Giolito, climb a few rungs. Bumgarner, because he recorded only 21 outs, is in the basement here.
One problem with this method is that it doesn’t account for starters generally pitching better at home than on the road. They do, by about four-tenths of a run in terms of ERA (including 3.88 vs. 4.29 this year), and by two or three points in terms of Game Score (including 52.6 to 50.4 this year). If I utilize separate league Game Scores based upon each year’s home and road splits, voilà:
Pitcher | Date | Tm | Opp | BB | SO | GSc2 | LgGSc | GScAA |
---|---|---|---|---|---|---|---|---|
Max Scherzer | 10/3/15 | WSN | NYM | 0 | 17 | 111 | 50.7 | 60.3 |
Justin Verlander | 9/1/19 | HOU | TOR | 1 | 14 | 106 | 47.9 | 58.1 |
John Means | 5/5/21 | BAL | SEA | 0 | 12 | 106 | 50.4 | 55.6 |
Matt Cain* | 6/13/12 | SFG | HOU | 0 | 14 | 108 | 52.7 | 55.3 |
Lucas Giolito | 8/25/20 | CHW | PIT | 1 | 13 | 105 | 50.4 | 54.6 |
Clayton Kershaw | 6/18/14 | LAD | COL | 0 | 15 | 109 | 54.8 | 54.2 |
Joe Musgrove | 4/9/21 | SDP | TEX | 0 | 10 | 104 | 50.4 | 53.6 |
Jake Arrieta | 8/30/15 | CHC | LAD | 1 | 12 | 104 | 50.7 | 53.3 |
Félix Hernández* | 8/15/12 | SEA | TBR | 0 | 12 | 106 | 52.7 | 53.3 |
Philip Humber* | 4/21/12 | CHW | SEA | 0 | 9 | 103 | 49.9 | 53.1 |
Chris Heston | 6/9/15 | SFG | NYM | 0 | 11 | 105 | 52.0 | 53.0 |
Cole Hamels | 7/25/15 | PHI | CHC | 2 | 13 | 103 | 50.7 | 52.3 |
Homer Bailey | 9/28/12 | CIN | PIT | 1 | 10 | 102 | 49.9 | 52.1 |
Max Scherzer | 6/20/15 | WSN | PIT | 0 | 10 | 104 | 53.3 | 50.7 |
Corey Kluber | 5/19/21 | NYY | TEX | 1 | 9 | 101 | 50.4 | 50.6 |
Wade Miley | 5/7/21 | CIN | CLE | 1 | 8 | 100 | 50.4 | 49.6 |
Edinson Vólquez | 6/3/17 | MIA | ARI | 2 | 10 | 100 | 50.4 | 49.6 |
Spencer Turnbull | 5/18/21 | DET | SEA | 2 | 9 | 99 | 50.4 | 48.6 |
Carlos Rodón | 4/14/21 | CHW | CLE | 0 | 7 | 101 | 52.6 | 48.4 |
Jered Weaver | 5/2/12 | LAA | MIN | 1 | 9 | 101 | 52.7 | 48.3 |
Sean Manaea | 4/21/18 | OAK | BOS | 2 | 10 | 100 | 51.9 | 48.1 |
Tim Lincecum | 7/13/13 | SFG | SDP | 4 | 13 | 99 | 51.0 | 48.0 |
Homer Bailey | 7/2/13 | CIN | SFG | 1 | 9 | 101 | 53.5 | 47.5 |
Jordan Zimmermann | 9/28/14 | WSN | MIA | 1 | 10 | 102 | 54.8 | 47.2 |
Mike Fiers | 5/7/19 | OAK | CIN | 2 | 6 | 96 | 49.9 | 46.1 |
Alec Mills | 9/13/20 | CHC | MIL | 3 | 5 | 93 | 47.3 | 45.7 |
James Paxton | 5/8/18 | SEA | TOR | 3 | 7 | 95 | 49.9 | 45.1 |
Mike Fiers | 8/21/15 | HOU | LAD | 3 | 10 | 98 | 53.3 | 44.7 |
Tim Lincecum | 6/25/14 | SFG | SDP | 1 | 6 | 98 | 54.8 | 43.2 |
Jake Arrieta | 4/21/16 | CHC | CIN | 4 | 6 | 92 | 49.0 | 43.0 |
Henderson Alvarez III | 9/29/13 | MIA | DET | 1 | 4 | 96 | 53.5 | 42.5 |
Hisashi Iwakuma | 8/12/15 | SEA | BAL | 3 | 7 | 95 | 53.3 | 41.7 |
Josh Beckett | 5/25/14 | LAD | PHI | 3 | 6 | 94 | 52.3 | 41.7 |
Johan Santana | 6/1/12 | NYM | STL | 5 | 8 | 92 | 52.7 | 39.3 |
Madison Bumgarner | 4/25/21 | ARI | ATL | 0 | 7 | 89 | 50.4 | 38.6 |
By this methodology, Means’ sterling roadwork leapfrogs the Cain and Hernández perfect games, which took place at home (and in pitcher-friendly parks, to boot). However, what stands out now is that I haven’t accounted for the quality of the teams being no-hit. In my first swing at this, I calculated the per-game rates for the opposing starters in the various categories used within Game Scores for the teams that were no-hit. Take the 2015 Dodgers, who were no-hit twice in a 10-day span in August. Opposing starters averaged 5.70 innings against them that year, along with 5.38 hits, 2.74 runs, 0.77 homers, 2.06 walks, and 4.74 strikeouts. The average Game Score of Dodger opposing starters that year was 51.2, not far off from that year’s major league average of 52.0. Meanwhile, starters facing this year’s hitless wonder Mariners are averaging 5.68 innings, 4.05 hits, 2.36 runs, 0.82 homers, 1.86 walks, and 6.09 strikeouts, for an average Game Score of 56.4. Note that I’m not concerned with how the offenses fared against relievers, whom they didn’t see in these games, and that I’ve dispensed with the four combined no-hitters during this past decade.
In that iteration, my methodology pushed Kershaw’s 2014 no-hitter against the Rockies (50.0 opposing starter Game Score, which I’ll call OGSc) ahead of Scherzer’s 20-strikeout 2015 gem against the Mets (52.4 OGSc). The problem, I soon realized, was that I had failed to account for the Rockies’ wide home/road splits; they hit .329/.377/.548 against opposing starters while at Coors Field that season, but just .236/.279/.366 against them while on the road, and since Kershaw no-hit them at Dodger Stadium, my failure to make that distinction colored the results. Instead of using a 50.0 OGS based on the Rockies’ full season stats, it made more sense to use a 59.5 OGSc based upon their weak-as-kittens road performance, thus lowering the degree of difficulty of Kershaw’s accomplishment. That 59.5 OGSc turned out to be third-highest of the no-hit teams from the past decade, behind only the 2012 Astros (60.1, in the second year of their rebuild) and this year’s Mariners (61.1).
Thus I sent myself back to the drawing board once more, this time accounting for a) whether the team being no-hit was at home or on the road, using the team’s actual splits to determine the OGS; and b) whether the starter was on the home or the road, using the league’s splits because I figured that using the individual pitcher’s splits for one season would be too small a sample size; I could have used his team pitching splits here, but I did want to preserve some general sense of the league-wide landscape. In the end, I took the average of the LgSc and the OGSc to make a single adjustment to each no-hitter’s score:
Pitcher | Date | Tm | Opp | BB | SO | GSc | LgGSc | OppGSc | AdjGSc |
---|---|---|---|---|---|---|---|---|---|
Max Scherzer | 10/3/15 | WSN | NYM | 0 | 17 | 111 | 50.7 | 53.2 | 59.1 |
Justin Verlander | 9/1/19 | HOU | TOR | 1 | 14 | 106 | 47.9 | 52.9 | 55.6 |
Félix Hernández* | 8/15/12 | SEA | TBR | 0 | 12 | 106 | 52.7 | 48.9 | 55.2 |
Jake Arrieta | 8/30/15 | CHC | LAD | 1 | 12 | 104 | 50.7 | 50.4 | 53.4 |
Joe Musgrove | 4/9/21 | SDP | TEX | 0 | 10 | 104 | 50.4 | 52.2 | 52.7 |
Chris Heston | 6/9/15 | SFG | NYM | 0 | 11 | 105 | 52.0 | 53.2 | 52.4 |
Lucas Giolito | 8/25/20 | CHW | PIT | 1 | 13 | 105 | 50.4 | 55.5 | 52.1 |
Clayton Kershaw | 6/18/14 | LAD | COL | 0 | 15 | 109 | 54.8 | 59.5 | 51.9 |
Matt Cain* | 6/13/12 | SFG | HOU | 0 | 14 | 108 | 52.7 | 60.1 | 51.6 |
Cole Hamels | 7/25/15 | PHI | CHC | 2 | 13 | 103 | 50.7 | 52.7 | 51.3 |
John Means | 5/5/21 | BAL | SEA | 0 | 12 | 106 | 50.4 | 61.1 | 50.3 |
Max Scherzer | 6/20/15 | WSN | PIT | 0 | 10 | 104 | 53.3 | 54.5 | 50.1 |
Corey Kluber | 5/19/21 | NYY | TEX | 1 | 9 | 101 | 50.4 | 52.2 | 49.7 |
Sean Manaea | 4/21/18 | OAK | BOS | 2 | 10 | 100 | 51.9 | 49.1 | 49.5 |
Homer Bailey | 9/28/12 | CIN | PIT | 1 | 10 | 102 | 49.9 | 55.2 | 49.5 |
Philip Humber* | 4/21/12 | CHW | SEA | 0 | 9 | 103 | 49.9 | 57.3 | 49.4 |
Carlos Rodón | 4/14/21 | CHW | CLE | 0 | 7 | 101 | 52.6 | 53.1 | 48.2 |
Edinson Vólquez | 6/3/17 | MIA | ARI | 2 | 10 | 100 | 50.4 | 53.9 | 47.8 |
Jered Weaver | 5/2/12 | LAA | MIN | 1 | 9 | 101 | 52.7 | 54.2 | 47.5 |
Homer Bailey | 7/2/13 | CIN | SFG | 1 | 9 | 101 | 53.5 | 53.8 | 47.4 |
Wade Miley | 5/7/21 | CIN | CLE | 1 | 8 | 100 | 50.4 | 54.9 | 47.4 |
Mike Fiers | 8/21/15 | HOU | LAD | 3 | 10 | 98 | 53.3 | 50.4 | 46.1 |
Tim Lincecum | 7/13/13 | SFG | SDP | 4 | 13 | 99 | 51.0 | 56.1 | 45.5 |
James Paxton | 5/8/18 | SEA | TOR | 3 | 7 | 95 | 49.9 | 49.7 | 45.2 |
Jordan Zimmermann | 9/28/14 | WSN | MIA | 1 | 10 | 102 | 54.8 | 58.8 | 45.2 |
Henderson Alvarez III | 9/29/13 | MIA | DET | 1 | 4 | 96 | 53.5 | 48.2 | 45.2 |
Mike Fiers | 5/7/19 | OAK | CIN | 2 | 6 | 96 | 49.9 | 53.1 | 44.5 |
Spencer Turnbull | 5/18/21 | DET | SEA | 2 | 9 | 99 | 50.4 | 61.1 | 43.3 |
Jake Arrieta | 4/21/16 | CHC | CIN | 4 | 6 | 92 | 49.0 | 48.5 | 43.2 |
Alec Mills | 9/13/20 | CHC | MIL | 3 | 5 | 93 | 47.3 | 52.9 | 42.9 |
Madison Bumgarner | 4/25/21 | ARI | ATL | 0 | 7 | 89 | 50.4 | 45.4 | 41.1 |
Hisashi Iwakuma | 8/12/15 | SEA | BAL | 3 | 7 | 95 | 53.3 | 55.1 | 40.8 |
Tim Lincecum | 6/25/14 | SFG | SDP | 1 | 6 | 98 | 54.8 | 59.9 | 40.7 |
Johan Santana | 6/1/12 | NYM | STL | 5 | 8 | 92 | 52.7 | 51.2 | 40.1 |
Josh Beckett | 5/25/14 | LAD | PHI | 3 | 6 | 94 | 52.3 | 56.3 | 39.7 |
Scherzer’s second no-hitter of 2015 floats to the top no matter how I slice it, and in general, road no-hitters get a significant bump. As you can see because of the yellow highlighting, this year’s no-nos run the gamut from the near-elite (Musgrove) to the more modest (Turnbull and Bumgarner, whose lack of walks helps his shorter effort score better than four of the rockier no-hitters). The average for the 35 no-hitters is 47.9, with this year’s efforts by Miley, Turnbull, and Bumgarner below the mark but Rodón above; Cleveland’s offense has hit for a 78 wRC+ at home, compared to 90 on the road, which offsets the generally home-favoring conditions for starters.
All told, I think this is an interesting experiment that helps apply some perspective to this year’s efforts, but I’ll be the first to concede that the methodology is hardly definitive. As noted, I could have used the team-wide pitching home/road splits in place of the league-wide ones, and nowhere in this is there any accounting for which players are in the lineup that day; perhaps the fact that the top two no-hitters are late-season ones shouldn’t be lost in our calculations. Situating the past decade’s no-hitters within a longer timeline might be even more instructive and valuable given the extent to which they took place before the current brand of three true outcome-based ball has come into vogue. Still, I do think that this method suggests that we’re not merely getting the dregs from among the no-hitters. Every one of these took some combination of an outstanding performance, generally favorable conditions, and luck to come together, and this year’s six or seven no-hitters are no exception.
Brooklyn-based Jay Jaffe is a senior writer for FanGraphs, the author of The Cooperstown Casebook (Thomas Dunne Books, 2017) and the creator of the JAWS (Jaffe WAR Score) metric for Hall of Fame analysis. He founded the Futility Infielder website (2001), was a columnist for Baseball Prospectus (2005-2012) and a contributing writer for Sports Illustrated (2012-2018). He has been a recurring guest on MLB Network and a member of the BBWAA since 2011, and a Hall of Fame voter since 2021. Follow him on BlueSky @jayjaffe.bsky.social.
Thanks, Jay. Great review of the recent no-hitters.