Monday, April 3, 2023

Adam Duvall and the ORA Deep Dive

Adam Duvall continues to be on fire in the early going. He now leads MLB with 7.1 estimated Runs after going 3-for-5 with 2 2B, 2 runs scored, and 2 RBI yesterday. The simple version of ORA, using the formula (R*5 + RBI*4)/9 + HR/12 says he created or produced or generated 2 Runs (whichever verb you prefer; I've just been calling them Runs with a capital R, as opposed to small-r runs scored) and made 2 Outs (because he had 2 hitless at-bats).

For his REAL ORA, we need the retrosheet event files, which won't be released until the season's over. Saturday's game was pretty straight-forward. A two-run homer with a runner on 3rd is always worth 1.25 Runs to the batter, no matter the year. Yesterday Adam got himself involved in some more interesting plays, so I'll use the 2022 percentages to go through it all and do a deep-dive into how ORA works that hopefully makes sense. (And this time I'll say no more about simple ORA until I'm through.)

Duvall struck out looking in the 1st inning.

In the 3rd he hit a two-out double. In 2022, batters hit a double 1,106 times with two outs and no one on. They advanced 2,205 bases, 1.994 per double. Why not exactly two per double? Batters were put out six times trying to stretch the double into a triple. If the batter's put out on his own batting event, whether he struck out or got thrown out at home trying to stretch a triple, they mark it a zero, Dude. 1,106 - 6 = 1,100. That's 2,200 bases. But batters had 2,205 bases on their doubles. I'm guessing that on five of those 1,100 doubles where the batter didn't get himself out, he succeeded in making it to 3rd on an error. Or maybe one time it was an especially egregious error and the batter scored, and then there were three other times where the batter was safe at 3rd. At any rate, batters averaged 1.994 bases when they hit a double with two outs and no one on.

The batter gets credit for any advance up to and including the average for that base on that event type in that base/out situation. In this case it's the batter (the "runner at home") on a double with none on and two outs. Any advance in excess of the average goes to the runner, which includes the batter as a runner.

All that is to say that Duvall gets 1.994 bases for hitting a double, and then another 0.006 bases for not doing something stupid, like getting himself thrown out. Since Duvall later scored, those bases are worth a quarter run each. He gets about 0.498 batting Runs for the 1.994 bases and about 0.002 baserunning Runs for the 0.006 bases and exactly 0.5 Runs total.

The distinction between batting Runs and baserunning Runs seems silly and trivial on this play where Duvall is the only player involved and doesn't REALLY have a non-thrill-seeking choice of doing anything other than stopping at 2nd. I didn't mention it at the time, but batters can also earn tiny fractions of baserunning Outs for striking out and NOT reaching 1st on an error. In the case of Duvall's 1st-inning strikeout, batters struck out 219 times last year with one out and runners on 2nd and 3rd, and were put out all 219 times. So 100% of Duvall's Out would be a batting Out, by 2022 percentages at least.

The need for baserunning Runs and Outs becomes more apparent on the very next play, because Alex Verdugo singled and Duvall scored. This time Duvall had a very real choice to play it safe and stop at 3rd. Since he scored instead, he deserves some credit for advancing beyond the average for a runner in his situation. In 2022, batters singled with two outs and a runner on 2nd 809 times, and the runner on 2nd advanced 1,411 bases - an average of 1.744 bases. Duvall advanced two bases, 2nd to home, so Verdugo gets credit for the 1.744 average, worth 0.436 batting Runs, and Duvall gets credit for the rest: 0.256 bases, worth 0.064 baserunning Runs.

So through 3 innings Duvall's ORA "box score" looks like this:

             Runs  Outs
Batting     0.498 1.000
Baserunning 0.066
Total       0.564 1.000

In the 5th inning Duvall singled, scoring Justin Turner from 3rd and Masataka Yoshida from 2nd. Of the 75 times a batter singled with no outs and runners on 2nd and 3rd in 2022, the runner on 3rd scored 72 times, or 0.96 bases per event, and the runner on 2nd advanced 96 bases, 1.28 per event. Both runners exceeded those averages, so Duvall gets credit for 2.24 (0.96 + 1.28) of the 3 bases advanced and the runners get credit for the other 0.76. The 2.24 bases are worth 0.56 batting Runs to Duvall.

The next batter, Verdugo, reached on an error on a fly ball. Duvall advanced to 2nd. Of the 1,286 fly balls hit with no outs and a runner on 1st that didn't turn into hits in 2022, the runner on 1st advanced just 38 bases, or .03 bases per event. I group reached-on-error plays with all other non-hits of their batted-ball type. Errors on fly balls are grouped with all non-hit fly balls. That way most of the credit goes in the baserunning bucket instead of the batting bucket, since the play supposedly didn't involve much batting skill. In this case, Verdugo the hitter gets credit for just 3% of Duvall's base, and Duvall the baserunner gets credit for the other 97%.

Then Christian Arroyo moved the runners to 2nd and 3rd with a sac bunt. I have sac bunts in a group of their own so that unlike other batted-ball non-hits, the batter usually gets full credit for sacrificing himself to move the runners over. Last year runners on 2nd advanced 98 bases on 92 sac bunts with no outs and runners on 1st and 2nd, or 1.065 bases per event. Duvall advanced just one base, so Arroyo gets full credit for it.

Then the Orioles finally stopped the bleeding. The next two batters struck out and grounded out, so Duvall was stranded at 3rd which means his 0.97 bases on the error are worthless. He still has the 0.56 batting Runs for driving in the two runners though. That brings his game total to 1.058 batting Runs and 1.124 total Runs.

In the 7th, Duvall hit his second double of the game, moving Yoshida to 3rd. The runner on 1st advanced 1,000 bases exactly on 440 doubles hit with no outs and a runner on 1st, 2.273 bases per double. The batter advanced 886 bases, or 2.014 per. If Yoshida had scored on the play, he and Duvall would have shared credit for that final base (home "base"), 0.273 for Duvall and 0.727 for Yoshida. As it is Yoshida stopped at 3rd, so both he and Duvall advanced just two bases each and Duvall gets credit for all four of them.

After Verdugo popped out, pinch hitter Triston Casas singled, scoring Yoshida and sending Duvall to 3rd. Like Yoshida on the last play, Duvall stopped short of the average advance for the situation, so he gets no baserunning credit here. But Yoshida scored, so Duvall's bases for moving him from 1st to 3rd get converted to cold hard batting Runs, 0.5 of them.

And then Enrique Hernandez singled, scoring Duvall. The runner on 3rd scored 331 of 333 times the batter hit a single with one out and runners on 1st and 3rd. So Duvall gets a tiny bit of baserunning credit: 2/333, or .006 of that base, for not staying put at 3rd even though he wasn't forced. The run scored gets him 0.5 batting Runs for getting himself to second with the double and about 0.002 baserunning Runs for scoring on the single. That brings him up to 2.058 batting Runs, about 0.068 baserunning Runs, and 2.126 total Runs.

Duvall lined out in the 8th, but we're not done yet. The 3rd baseman made a throwing error allowing Yoshida to advance to 3rd. Of the 293 times the batter hit a line drive non-hit with one out and a runner on 2nd, the batter was out every time, but the runner on 2nd advanced 35 bases, or 0.119 bases per event. Yoshida scored on the next play, so Duvall gets another 0.03 batting Runs for the advance on his line out.

Let's go back through just to make sure I did my math right:

Inn Batter    Event     RunsBat RunsBR OutsBat OutsBR
  1 Duvall    Strikeout                  1.000
  3 Duvall    Double      0.498  0.002
  3 Verdugo   Single             0.064
  5 Duvall    Single      0.560
  7 Duvall    Double      1.000
  7 Hernandez Single             0.002
  8 Duvall    Line out    0.030          1.000
TOTAL                     2.088  0.068   2.000

Here's Duvall's final ORA box score for the game:

             Runs  Outs
Batting     2.088 2.000
Baserunning 0.068
Total       2.156 2.000

There's probably a rounding error or two in there, but it doesn't matter. Like I said, these are 2022 percentages. 2023 numbers will be a little different. This is just for illustration purposes.

ORA is on the same scale as ERA: Runs per 27 Outs. So Duvall's ORA for that game is a little over 29; 2.156 / 2 x 27 = 29.06. If you'll recall, Duvall had exactly 2 Runs by the simple method, and 2 Outs. So he outperformed his estimated Runs, which means he did more of the "little" things - like moving a runner from 1st to 3rd - than he did pick up easy RBI by knocking in runners from 3rd.

And finally, speaking of simple ORA, Duvall's big game yesterday actually lowered his season average, to 31.75, and he fell to 2nd place in the Top 10, behind one of his opponents in the season-opening series:

Rk Player               Runs Outs  sORA
 1 Adam Frazier, BAL     3.8   3  33.75
 2 Adam Duvall, BOS      7.1   6  31.75
 3 Wander Franco, TBR    3.5   4  23.81
 4 Nolan Gorman, STL     3.9   5  21.30
 5 Yordan Alvarez, HOU   4.5   6  20.38
 6 C.J. Cron, COL        5.0   8  16.97
 7 Cedric Mullins, BAL   5.5   9  16.50
 8 Robbie Grossman, TEX  3.4   6  15.38
 9 Miguel Vargas, LAD    1.7   3  15.00
10 Logan O'Hoppe, LAA    3.9   7  14.89

No comments:

Post a Comment

Ohtani Doing His Barry Bonds Impression

With Mike Trout injured and Ohtani red-hot (.359/.472/.906 with 23 HR in 43 games, and an 11.47 sORA, since May 30th), Shohei Ohtani has b...