Sunday, April 30, 2023

Simple ORA Top 10 (thru 4/29)

Runs = (R*5 + RBI*4)/9 + HR/12
Outs = AB - H + CS + GIDP + SH + SF
ORA = Runs / Outs * 27

Rk Name                 Runs Outs  ORA
 1 Max Muncy, LAD       20.1  58  9.38
 2 Yordan Alvarez, HOU  20.3  59  9.28
 3 Randy Arozarena, TBR 24.7  75  8.89
 4 Adolis Garcia, TEX   25.1  80  8.48
 5 Brandon Lowe, TBR    19.7  63  8.44
 6 Patrick Wisdom, CHC  20.8  67  8.40
 7 Jonah Heim, TEX      16.6  54  8.28
 8 Yandy Diaz, TBR      20.5  67  8.25
 9 Marcus Semien, TEX   24.0  81  7.99
10 Cody Bellinger, CHC  19.3  66  7.89

Sunday, April 23, 2023

Garcia's Big Game Propels Him into the Simple ORA Lead

The Rangers' Adolis Garcia went 5-for-5 with 3 home runs, 2 doubles, 5 runs scored, and 8 RBI.

The simple formula (R*5 + RBI*4)/9 + HR/12 estimates he created (5*5 + 8*4)/9 + 3/12 = (25 + 32)/9 + 1/4 = 57/9 + 1/4 = 6.58 Runs against zero Outs.

He actually created a Run more than that, as documented in the table below:

Inn Batter Event    Runner     Runs  Outs
1st Garcia Home Run Jankowski 0.750
                    Garcia    1.000
2nd Garcia HBP      Semien    0.250
                    Jankowski 0.250
                    Garcia    0.250
3rd Garcia Home Run Lowe      0.750
                    Garcia    1.000
5th Garcia Home Run Lowe      0.750
                    Garcia    1.000
7th Garcia Double   Duran     0.500
                    Lowe      0.573
                    Garcia    0.500
7th Leon   Single   Garcia    0.064

           Batting            7.573
           Baserunning        0.064
           Total              7.637 0.000

His three home runs all came with a runner on 1st, so they moved the runner 3/4 of the way around the bases (and himself all the way around). That's 5.25 Runs right there. His hit by pitch advanced both runners, and they and Garcia all went on to score. That's 1/4 Run for each, 6 Runs total. (Garcia doesn't get any baserunning credit for going to 2nd on a single or for scoring on a double.)

Garcia's 7th inning double scored Duran from 2nd, that's 1/2 of a Run for him and 1/2 of a run for Garcia, who again went on to score; 7 Runs total. Lowe scored from 1st; Garcia gets credit for the 2.293 bases that the runner on 1st averaged in 2022 when batters doubled with one out and runners on 1st and 2nd. 2.293 / 4 = .573 Runs. Finally, Garcia deserves credit for the last .256 of his bases for scoring from 2nd on a two-out single, worth .064 baserunning Runs. Despite Garcia not earning any Runs for his 8th inning double (because it didn't lead to any runs being scored), his totals for the game are 7.573 batting Runs, .064 baserunning Runs, and 7.637 total Runs.

His home runs were worth 1.75 Runs each. The simple formula says all two-run homers are worth (1*5 + 2*4)/9 + 1/12 = 13/9 + 1/12 = 1.53 Runs. Even though he did nothing to help himself score once he reached 1st with a HBP, he advanced two runners who went on to score, so he earned 3/4 of a Run instead of the 5/9 the simple formula estimates for a run scored and no RBI. Of his eight RBI, three were of himself, four were of the runner on 1st, and one was of the runner on 2nd. None were of a runner on 3rd. Hence why he outperformed his estimated Runs by more than one full run.

Here's the new Top 10, based on the simple formulas. ORA, like ERA, is Runs per 27 Outs. 

Rk Player               Runs Outs sORA
 1 Adolis Garcia, TEX   23.0  59 10.54
 2 Brandon Lowe, TBR    16.6  44 10.19
 3 Yordan Alvarez, HOU  19.4  54  9.69
 4 Randy Arozarena, TBR 19.1  55  9.37
 5 Max Muncy, LAD       17.6  51  9.32
 6 James Outman, LAD    16.8  49  9.26
 7 Marcus Semien, TEX   20.3  60  9.15
 8 Pete Alonso, NYM     21.1  64  8.88
 9 Yandy Diaz, TBR      16.7  51  8.85
10 Patrick Wisdom, CHC  18.2  56  8.77

Thursday, April 20, 2023

Semien’s Three Singles

Brandon Lowe is still leading in Simple ORA, Mateo and Chapman are still hanging on to top-4 spots (although Mateo might drop off due to another injury), and the Cubs' Patrick Wisdom has surged into the NL lead. But it's the Rangers' Marcus Semien, the MLB leader now in estimated Runs, who had the most interesting day yesterday.

Runs created or produced or generated can be estimated with a simple formula using only runs scored, RBI, and home runs. Runs scored are worth 5/9 of a Run, RBI are worth 4/9 of a Run, and home runs chip in with 1/12 of a Run. Outs are estimated by taking hitless at-bats and adding sacrifices, caught stealings, and grounded into double plays. And ORA, just like ERA, is Runs per 27 Outs.

Semien went 3-for-5 with 3 singles, 2 runs scored and 2 RBI yesterday as the Rangers beat the Royals, 12-3. So the simple formulas estimate he created 2 Runs and was to blame for 2 Outs. Real ORA looks at each run scored and out made and determines who was really responsible for them. Sometimes it's straightforward. Sometimes we need the average outcome for that event type in that base/out situation to tell us who gets credit for what. Since the 2023 event files won't be available until the season over, we'll get by with using the 2022 percentages for this demonstration.

Semien led off the game with a single and then went to 2nd on Travis Jankowski's walk. Semien is fully responsible for getting himself to 1st and Jankowski is fully responsible for advancing him to 2nd. That is backed up by the ORA system, in which the batter gets credit for the average outcome. The batter averaged at least one base on a bases-empty, no-out single, and the runner averaged one base exactly when the batter walked with no outs and a runner on 1st.

Then Semien advanced to third on Nathaniel Lowe's flyout and scored on an Adolis Garcia sac fly. Who gets credit for those bases? This time the batters share credit with the runner for both plays. The runner on 2nd averaged 0.427 bases when the batter hit a fly ball that wasn't a hit with no outs and runners on 1st and 2nd. So the batter, Lowe, gets credit for 42.7% of Semien's advance from 2nd to 3rd. The rest, 57.3%, goes to the runner, Semien.

With 1st and 3rd and one out, the runner on 3rd averaged 0.743 bases (which means he scored 74.3% of the time) when the batter hit a fly ball that wasn't scored a hit. The batter, Garcia, gets credit for 74.3% of Semien's final advance, and Semien gets credit for the other 25.7% of it.

Since Semien scored, those bases are worth a quarter of a run each. He gets 0.25 of a Run for getting to 1st on a single, nothing for going to 2nd on the walk, 0.573 / 4 = 0.143 of a Run for advancing to 3rd on the fly out, and 0.257 / 4 = 0.064 of a Run for scoring on the sac fly. Altogether Semien gets credit for 0.25 + 0.143 + 0.064 = about 0.457 of his Run. Since the single was due to his hitting skill and the other advances were due to his baserunning, he’s earned 0.25 batting Runs and 0.207 baserunning Runs.

Inn Batter Event   Runner  Runs  Outs
1st Semien Single  Semien 0.250
1st Lowe   Fly Out Semien 0.143
1st Garcia Sac Fly Semien 0.064

           Batting        0.250
           Baserunning    0.207
           Total          0.457

In the second Semien hit a two-out single which scored Leody Taveras from 2nd. The runner averaged 1.744 bases when the batter singled with two outs and a runner at 2nd. So Semien gets credit for those 1.744 bases, worth 1.744 / 4 = 0.436 Runs. Semien stole 2nd but was stranded when Jankowski struck out, so his own bases are worthless. He's now up to 0.893 Runs, 0.686 batting and 0.207 baserunning.

Inn Batter Event   Runner   Runs  Outs
1st Semien Single  Semien  0.250
1st Lowe   Fly Out Semien  0.143
1st Garcia Sac Fly Semien  0.064
2nd Semien Single  Taveras 0.436

           Batting         0.686
           Baserunning     0.207
           Total           0.893

In the 4th Semien hit his third straight single, this one scoring Taveras from 3rd. The runner doesn't always score in these situations; he averaged 0.97 bases when the batter hit a single with one out and a runner on 3rd in 2022. So Semien picks up another 0.97 / 4 = 0.243 batting Runs.

This time Jankowski forced Semien at 2nd. The simple method gives all the blame to the batter for the hitless at-bat. The percentages say the runner was only out 76.2% of the time the batter hit a ground ball that wasn't a hit or a sac bunt with one out and a runner on 1st. That's Jankowski's share; Semien is to blame for the other 23.8% of his out. But with his 2nd RBI he’s up to 1.136 Runs for the game.

Inn Batter    Event    Runner   Runs  Outs
1st Semien    Single   Semien  0.250
1st Lowe      Fly Out  Semien  0.143
1st Garcia    Sac Fly  Semien  0.064
2nd Semien    Single   Taveras 0.436
4th Semien    Single   Taveras 0.243
4th Jankowski Forceout Semien        0.238

              Batting          0.929
              Baserunning      0.207 0.238
              Total            1.136 0.238

In the 7th Semien reached base again, this time on that rarest of batting plays: the catcher's interference. After Jankowski struck out, Semien went to 2nd on Lowe's walk and scored on Garcia's single. The runner on 2nd averaged 1.545 bases when the batter hit a single with one out and runners on 1st and 2nd. So Semien gets credit just for the last 2 - 1.545 = 0.455 bases of his advance, worth 0.114 Runs, plus all of 1st base, 0.25 Runs, for the interference; 0.364 Runs total for his 2nd run scored.

Semien finished the game with fly outs in each of the last two innings. The batter obviously gets full blame for getting put out, but sometimes a tiny bit of that out is a baserunning Out. "Not everyone with a rope around their neck hangs," Lee Van Cleef tells a woman in The Good, the Bad and the Ugly. Not every batter who hits a catchable fly ball gets put out. Occasionally the batter reaches on an error. The batter is only responsible for the average outcome. The runner, including the batter as a runner, is on the hook for the rest. In this instance, Semien gets 0.3% of a baserunning Out for not escaping from the putout on that 8th-inning fly ball.

Inn Batter    Event        Runner   Runs  Outs
1st Semien    Single       Semien  0.250
1st Lowe      Fly Out      Semien  0.143
1st Garcia    Sac Fly      Semien  0.064
2nd Semien    Single       Taveras 0.436
4th Semien    Single       Taveras 0.243
4th Jankowski Forceout     Semien        0.238
7th Semien    Interference Semien  0.250
7th Garcia    Single       Semien  0.114
8th Semien    Fly Out      Semien        1.000
9th Semien    Fly Out      Semien        1.000

              Batting              1.179 1.997
              Baserunning          0.321 0.241
              Total                1.500 2.238

Semien created 1.5 Runs and 2.238 Outs, which is somewhat less impressive than the 2 of each the simple formulas estimated. Semien was fully responsible for the outs caused by his two hitless at-bats, plus he bears some of the blame for his teammate forcing him out. Meanwhile, he got a little more help from his teammates than usual scoring two runs and driving in two. Still, 1.5 Runs against 2.238 Outs is nothing to sneeze at; that's a 18.10 ORA for the game. The simple version has him at an even 27 for the game and in 6th place overall with a 8.84 average for the season.

Rk Player               Runs Outs sORA
 1 Brandon Lowe, TBR    14.5  37 10.60
 2 Jorge Mateo, BAL     12.8  35  9.88
 3 Patrick Wisdom, CHC  15.7  44  9.61
 4 Matt Chapman, TOR    15.2  43  9.54
 5 Yordan Alvarez, HOU  16.3  47  9.38
 6 Marcus Semien, TEX   18.3  56  8.84
 7 Yandy Diaz, TBR      15.2  47  8.71
 8 Matt Olson, ATL      17.7  56  8.54
 9 Randy Arozarena, TBR 16.1  51  8.53
10 Brandon Marsh, PHI   11.3  36  8.44

Monday, April 17, 2023

Jorge Mateo Keeps Doing Lots of Baseball Things in Baseball Games

Mateo went 2-for-3 with a run scored and an RBI (on a sac fly) in the Orioles' 8-4 win over the White Sox yesterday. Based on his traditional stats we would assume he created 1 Run against 2 Outs. Let's take a closer look to see what actually happened.

In the 2nd Mateo walked to load the bases, but the next batter, Terrin Vavra, struck out to leave the runners stranded. Can't create any runs if no runs score. Next.

In the 4th he hit the sac fly, which scored Adam Frazier. In 2022 the runner on 3rd scored 74.3% of the time the batter hit a fly ball with one out and runners on 1st and 3rd. The batter deserves credit for the average, 74.3%, and the runner, Frazier, deserves credit for the other 25.7%. But this was just the last quarter of Frazier's trip around the bases we're dividing up. Mateo's share is 0.743 / 4, or 0.186 Runs.

The batter was out 99.6% of the time in this scenario. The batter gets blamed for the average, the runner gets the rest. So Mateo the batter is charged 0.996 of an Out and Mateo the baserunner is charged the other 0.004 of it.

Inn Batter Event   Runner   Runs  Outs
4th Mateo  Sac Fly Frazier 0.186
                   Mateo         1.000

           Batting         0.186 0.996
           Baserunning           0.004
           Total                 1.000

In the 6th Mateo singled, moving Gunnar Henderson to 2nd, and then was forced out by Vavra. Henderson later scored on a wild pitch. Mateo deserves a quarter of Henderson's run. Vavra deserves 68.7% of Mateo's out, because that's how often the runner on 1st was put out when the batter hit a ground ball that wasn't a hit or a sac bunt with runners on 1st and 2nd and one out. Mateo deserves the other 31.3%.

Inn Batter Event     Runner     Runs  Outs
4th Mateo  Sac Fly   Frazier   0.186
                     Mateo           1.000
6th Mateo  Single    Henderson 0.250
6th Vavra  Groundout Mateo           0.313

           Batting             0.436 0.996
           Baserunning               0.317
           Total               0.436 1.313

In the 8th inning of a tie game, Mateo led off with a double, stole 3rd, and scored on a Cedric Mullins single. Mateo actually deserves a tiny bit of baserunning credit on the double (because occasionally a batter was thrown out trying to stretch a leadoff double into a triple, and therefore advanced zero bases) and for scoring from 3rd on the single (because runners didn't always score from 3rd on a single hit with no outs and runners on 1st and 3rd). His total for the inning: 0.499 batting Runs (for the double), 0.255 baserunning Runs (mostly for the stolen base), and 0.754 total Runs.

Inn Batter  Event     Runner     Runs  Outs
4th Mateo   Sac Fly   Frazier   0.186
                      Mateo           1.000
6th Mateo   Single    Henderson 0.250
6th Vavra   Groundout Mateo           0.313
8th Mateo   Double    Mateo     0.500
8th         Stole 2nd Mateo     0.250
8th Mullins Single    Mateo     0.004

            Batting             0.935 0.996
            Baserunning         0.255 0.317
            Total               1.190 1.313

In the 9th Mateo moved Henderson to 2nd with a groundout, and Henderson once again went on to score. Mateo deserves 23.9% of Henderson's base (because the runner on 1st advanced 0.239 bases per ground ball that wasn't a hit or a sac bunt with no outs and a runner on 1st) and therefore 6% of his run. Mateo the batter deserves 63.6% of his out (because the batter was put out 63.6% of the time he hit a ground ball non-hit, non-sac bunt with no outs and a runner on 1st). Mateo the baserunner deserves the other 36.4% of the out for being easier pickings than the runner on 1st.

Inn Batter  Event     Runner     Runs  Outs
4th Mateo   Sac Fly   Frazier   0.186
                      Mateo           1.000
6th Mateo   Single    Henderson 0.250
6th Vavra   Groundout Mateo           0.313
8th Mateo   Double    Mateo     0.500
8th         Stole 2nd Mateo     0.250
8th Mullins Single    Mateo     0.004
9th Mateo   Groundout Henderson 0.060
                      Mateo           1.000

            Batting             0.995 1.632
            Baserunning         0.255 0.681
            Total               1.250 2.313

The simple formulas estimated Mateo created 1 Run and 2 Outs. Because of all his small-ball activity, Mateo actually earned a little more of each - 1.25 Runs against 2.313 Outs, which is a slightly higher game ORA (14.59 instead of 13.50).

His performance by the simple formulas was still enough to vault him to 2nd in the Simple ORA Top 10:

Rk Player               Runs Outs sORA
 1 Brandon Lowe, TBR    13.5  29 12.59
 2 Jorge Mateo, BAL     12.8  32 10.80
 3 Yordan Alvarez, HOU  14.8  39 10.23
 4 Matt Chapman, TOR    13.0  35 10.05
 5 Brandon Marsh, PHI   10.2  28  9.80
 6 J.D. Davis, SFG      10.0  29  9.31
 7 Matt Olson, ATL      15.2  46  8.92
 8 Rafael Devers, BOS   15.0  47  8.63
 9 Pete Alonso, NYM     14.7  46  8.61
10 Randy Arozarena, TBR 13.9  44  8.54

Sunday, April 16, 2023

Jorge Mateo and the Runs Estimator that actually gives credit for Sacrifice Bunts

If the extra-inning automatic runner goes to 3rd on a sac bunt, stays put when the next batter walks, and then scores on a groundout, who deserves credit for the run?

No one does, according to establishment Linear Weights formulas like weighted on-base average (wOBA). Groundouts are always negative-run events and sac bunts aren't even part of the equation (they're considered "managerial decisions" according to the explainer on baseball-reference). The only player who made a positive-run contribution was the batter who drew the walk, which actually did nothing to score the runner.

That's why I believe it's important to track both Runs AND Outs, the only two outcomes that actually matter in the game of baseball (and in Offensive Run Average). If you’re only tracking Runs, the move-batters-closer-to-home aspect of a sacrifice has to be neutralized by its tendency to move your team closer to the end of the inning, to the extent that it’s at best a wash, run value-wise. If you’re tracking both Runs AND Outs, the positive and negative outcomes are each kept on their own sides of the ledger.

The batters who moved the automatic runner with a sac bunt and a groundout in this hypothetical scenario (which turns out to not be so hypothetical since it's exactly what happened in the 10th inning of yesterday's Orioles/White Sox game) made outs, but they helped generate a run, too. If the automatic runner had been stranded or put out, those “productive outs” would have been worthless, and the batters would still be on the hook for the outs. Like Alec Baldwin said in Glengarry Glen Ross, "it's f*** or walk.” The batter who walks didn't make any outs, but he didn't generate any runs, either.

(This isn't supposed to be a rant against walks in general, just the idea that the walk in this particular scenario created any runs. The single-season leader in ORA (going back at least 46 years) is Barry Bonds, 12.41 in 2004, the year he walked a MLB-record 232 times.)

Anyways, MLB's top two players in simple ORA so far this year are facing each other in a weekend series, and for the second straight night Matt Chapman's Blue Jays prevailed over Brandon Lowe's recently-undefeated Rays.

But it's Jorge Mateo, still in 4th place, who had the far more interesting game. His Orioles lost to the White Sox, 7-6, in ten innings, but Mateo homered and drove in two runs. My simple formula estimates Runs as (R*5 + RBI*4)/9 + HR/12, so Mateo earned an estimated (1*5 + 2*4)/9 + 1/12 = 13/9 + 1/12 = 1.53 Runs, about the same as the 1.5 he earned in two plate appearances Friday.

He had just one hitless at-bat but also a sac bunt and his first caught stealing of the year, so that's three estimated Outs.

Mateo led off the 3rd with a home run. That's easy; one Run.

In the 5th Mateo led off with a single, then was thrown out at 2nd in a strike-him-out/throw-him-out double play. Two outs were made; who was responsible for them?

On this occasion each man was largely responsible for his own out. When batters struck out with no outs and a runner on 1st in 2022, the batter was out 100% of the time and the runner was out just 1.8% of the time. The batter is responsible for the average outcome. Mateo is to blame for most of his out, but not all of it; Mullins bears a little responsibility for not making contact. 1.8% of Mateo's out is charged to Mullins' batting (or lack of it) and Mateo is to blame for the other 98.2% of it. Since he ran into that out, it's counted as a baserunning Out. So far he has 1 batting Run against 0.982 baserunning Outs.

In the 6th inning Mateo hit a bases-loaded single, scoring Austin Hays and advancing Adam Frazier to 3rd and Ramon Urias to 2nd. The average advance is at least one base for all runners on a bases-loaded, one-out single. Since no one exceeded one base, Mateo gets credit for all bases. But only Hays and Frazier scored (Hays on this play and Frazier when the next batter, Mullins, walked). Urias and Mateo were stranded, so their bases are worthless. Bases advanced by destined-to-score runners are worth a quarter-run each, so Mateo earns another 1/2 Run (1/4 for Hays and 1/4 for Frazier) for his single. He's now up to 1.5 batting Runs against 0.982 baserunning Outs.

In the 7th Mateo came up again with the bases loaded, only this time he grounded out to end the inning. In 2022, the batter was put out 67.2% of the time he hit a ground ball that wasn't a hit with the bases loaded and two outs. 30.5% of the time one of the runners on base was put out, and 2.2% of the time, no one was. The batter is responsible for the average outcome, so Mateo the batter is responsible for 67.2% of his out. Mateo the baserunner is responsible for the rest - 32.8% of it. He now has 0.672 batting Outs, 1.31 baserunning Outs, and 1.982 total Outs.

Mateo led off the 10th with a sac bunt that moved the automatic runner, Gunnar Henderson, to 3rd. It's tiebreaker rules: anything good you do to the automatic runner is worth twice as much. He only needs to advance two bases to score, so each base he advances is worth HALF of a run. That's provided he goes on to score, of course, which Henderson did. So Mateo earns half of a Run for bunting him over to 3rd.

The batter was only out 95.2% of the time he laid down a sac bunt with no outs and a runner on 2nd. So this is another out split between Mateo's batting and his baserunning: 0.952 to his batting Outs and 0.048 to his baserunning Outs.

Here is the table of events that earned Mateo Runs and Outs, along with the runners who actually did the advancing or the getting put out.

Inn  Batter  Event     Runner     Runs  Outs
 3rd Mateo   Home Run  Mateo     1.000
 5th Mullins K/CS DP   Mateo           0.982
 6th Mateo   Single    Hays      0.250
                       Frazier   0.250
 7th Mateo   Groundout Mateo           1.000
10th Mateo   Sac Bunt  Henderson 0.500
                       Mateo           1.000

             Batting             2.000 1.624
             Baserunning               1.358
             Total               2.000 2.982

Thanks to the extra-inning sac bunt, Mateo actually created two full runs, almost half of a run more than what the simple formula estimated. He was responsible for almost 3 full outs (but not quite).

And as always, here's the up-to-date Top 10 based on the simple formulas:

Rk Name                Runs Outs sORA
 1 Brandon Lowe, TBR   13.0  26 13.47
 2 Matt Chapman, TOR   13.0  31 11.35
 3 Yordan Alvarez, HOU 14.8  36 11.08
 4 Jorge Mateo, BAL    11.8  30 10.63
 5 Will Smith, LAD     10.6  29  9.85
 6 Rafael Devers, BOS  15.0  43  9.44
 7 J.D. Davis, SFG     10.0  29  9.31
 8 Sean Murphy, ATL     9.9  29  9.23
 9 Max Muncy, LAD      12.8  39  8.88
10 Matt Olson, ATL     13.8  43  8.63

Saturday, April 15, 2023

Mateo's Two Innings

Baltimore speedster Jorge Mateo has run his way into the Simple ORA Top 10, now ranking 4th with a 10.28 average. Mateo pinch-hit in the 7th inning of the Orioles' 6-3 win over the White Sox, stayed in the game at shortstop, and ended up scoring 2 runs and driving in one. The simple formula says he produced (2*5 + 1*4)/9 + 0/12 = 14/9 = 1.56 Runs against 0 Outs.

In the 7th inning Mateo walked, went to 2nd on Terrin Vavra's single, went to 3rd on Cedric Mullins's walk, and scored on Adley Rutschman's 3-run double.

In the ORA system, a base is worth a quarter run if the runner advancing it scores. The only question is who deserves credit for it - the batter or runner or both. On batting plays, the batter gets credit for the average advance. The runner gets credit for the rest.

Mateo was the batter when he walked, and batters averaged, unsurprisingly, one base exactly when they drew a walk with a runner on 2nd and one out in 2022. Since Mateo went on to score, that base is worth a quarter of a run to him.

The runner on 1st averaged 1.44 bases when a single was hit with two outs and runners on 1st and 2nd, which is the situation Mateo found himself in when Vavra singled. If Mateo had gone to 3rd, he would have gotten credit for the above-average part of his advance, 2 - 1.44 = 0.56 of a base, and that 0.56 of a base would have been worth 0.56 / 4 = 0.14 Runs, because he went on to score. Since Mateo had to stop at 2nd (because Gunnar Henderson stopped at 3rd), he advanced just one base, less than the average advance for a runner in his situation. Therefore the batter Vavra gets full credit for moving Mateo to 2nd.

Mullins also gets the credit for moving Mateo to 3rd with a bases-loaded walk, and Rutschman gets the credit for scoring him with a double. So Mateo only deserves credit for one quarter of his run, getting to 1st base. The succeeding batters did the rest of the work. The simple formula assumes he deserves 5/9, or 0.56 of it.

In the 8th Mateo drove in Austin Hays from 2nd with a double, went to 3rd on an error on a pickoff, and scored on a Ryan O'Hearn double.

The runner averaged two bases exactly and the batter averaged slightly more, about 2.01 (on account of errors and such), on two-out doubles with a runner on 2nd. Since both the batter and the runner advanced two bases, Mateo gets credit for all four bases. They both scored so those four bases are worth a full run to Mateo.

The batter has nothing to do with non-batting plays, like pickoffs. So the runners always get full credit for all bases they advance and all outs they run into. So Mateo gets another quarter of a run for going to 3rd on the pickoff error.

The nature of the ORA system causes Runs (and Outs) to be naturally separated into what the batter did with his hitting ability, and everything else that happened (baserunning, errors, etc.) Mateo earned the quarter of a run from his 7th-inning walk and the full run from his RBI double with his batting. He earned the advance to 3rd on the pickoff error with his baserunning.

Needless to say, O'Hearn gets credit for the last quarter of Mateo's run, driving him in from 3rd with a double.

The simple formula says Mateo deserves 0.56 (5/9) of a Run for each of his two runs scored and 0.44 (4/9) for his RBI; 1.56 total.

The “complex” version of ORA is in this instance even simpler: his two runs scored were worth an average of half of a Run each and so was his RBI. He earned 0.25 of a Run for getting to 1st with a walk, 0.75 of a Run for getting to 3rd with a double and pickoff error, and 0.5 of a Run for driving in Hays from 2nd. He earned 1.25 batting Runs, 0.25 baserunning Runs, and 1.50 total Runs. Not bad for two innings of work.

By all accounts he created zero outs. He didn't have any hitless at-bats or sacrifices. No runners were harmed during either of his plate appearances. He didn’t run into any outs. He was even safe on an error when he was picked off.

Here's the Top 10 through yesterday's games, based on the aforementioned simple formulas. Runs = (R*5 + RBI*4)/9 + HR/12, Outs = AB - H + CS + GIDP + SF + SH, and sORA = Runs / Outs x 27.

Rk Player                Runs Outs sORA
 1 Brandon Lowe, TBR     13.0  25 14.01
 2 Matt Chapman, TOR     12.5  29 11.61
 3 Yordan Alvarez, HOU   12.9  33 10.55
 4 Jorge Mateo, BAL      10.3  27 10.28
 5 Will Smith, LAD       10.6  29  9.85
 6 Max Muncy, LAD        12.8  36  9.63
 7 Rafael Devers, BOS    13.5  38  9.59
 8 Brian Anderson, MIL   11.7  33  9.57
 9 Randy Arozarena, TBR  13.5  40  9.09
10 Francisco Lindor, NYM 13.0  39  9.02

Friday, April 14, 2023

There's a New Leader in simple ORA...

And it's Brandon Lowe. Yesterday he went 2-for-4 with a home run, 2 runs scored and 2 RBI to help his Rays improve to 13-0. The simple formulas estimate he created 2.08 Runs and 2 Outs.

For the complex version, instead of a narrative walk-thru, here's a table! (actually just single-space with Courier font, but whatever). The runner is who actually advanced the bases or got put out, and the Runs and Outs are what Lowe was responsible for. In the 5th, for example, Lowe was responsible for 0.248 of Josh Lowe's run, 0.34 of Francisco Mejia's run, and 0.25 of his own run. He earned no baserunning credit for going to 2nd on Randy Arozarena's single or for going to 3rd on Wander Franco's hit by pitch or for scoring on Manuel Margot's single, so I omitted those lines.

Inn Batter  Event     Runner   Runs  Outs
1st B. Lowe Strikeout B. Lowe       1.000
3rd B. Lowe Strikeout B. Lowe       1.000
5th B. Lowe Single    J. Lowe 0.248
                      Mejia   0.340
                      B. Lowe 0.250
7th B. Lowe Home Run  B. Lowe 1.000
Total                         1.838 2.000

The simple formula, (R*5 + RBI*4)/9 + HR/12, overestimates his actual Run contribution a little. Even though his single moved Mejia from 1st to 3rd, the RBI was of a runner already on 3rd and he did nothing to help himself score once he got to 1st.

The simple ORA Top 10 (simple ORA = estimated Runs per 27 estimated Outs) unsurprisingly has four Tampa Bay Rays:

Rk Name                  Runs Outs  sORA
 1 Brandon Lowe, TBR     12.4  22  15.24
 2 Matt Chapman, TOR     12.5  26  12.95
 3 Yordan Alvarez, HOU   11.8  30  10.63
 4 Yandy Diaz, TBR       11.6  31  10.06
 5 Will Smith, LAD       10.6  29   9.85
 6 Randy Arozarena, TBR  13.5  38   9.57
 7 Ryan Mountcastle, BAL 14.5  41   9.55
 8 Max Muncy, LAD        11.8  34   9.33
 9 Bryan Reynolds, PIT   12.2  36   9.15
10 Isaac Paredes, TBR     9.1  27   9.14

Thursday, April 13, 2023

There are two kinds of people in the world, those with a run to score and the people who have the job of batting them in

"You may score the runs, but I do the hitting. We cut down my percentage, it's liable to interfere with my swing."

If I'd ever messed around with AI or installed the photo-editing software I got for Christmas I would put a Blue Jays hat on Clint's head, but here we are.

Duvall is on the IL and Lowe had just a pinch-hit groundout yesterday, so today I'll break down the performance of the 3rd-place man in Simple ORA, Matt Chapman. Chapman went 2-for-3 with a run scored against the Tigers yesterday. The simple formula that estimates Runs produced says Chapman earned 5/9 of a Run against one Out (one hitless at-bat).

In the first Chapman hit an inning-ending double; it ended the inning because Vladimir Guerrero Jr. was thrown out at home trying to score from 1st. It was the 3rd out, so none of the bases advanced led to any runs. How much of the out Chapman is responsible for depends on how often the runner is put out in this situation. If Chapman had homered, the runner would never be out. If he had hit a ground ball that wasn't a base hit with one out, the runner would be out a high percentage of the time. In 2022, the runner was out 3.9% of the time when the batter hit a double with two outs and a runner on 1st. So Chapman would be responsible for 3.9% of Guerrero's out.

In the 4th inning Chapman popped out. The batter was out 98.8% of the time he hit a pop up that wasn't a base hit with one out and a runner on 1st. So Chapman is responsible for 98.8% of his out. He was the one put out, so he's also responsible for the other 1.2%, but that goes in his baserunning Outs. Baserunning Outs (and Runs) are catch-alls for everything a player does on offense that doesn't reflect batting skill (at least not the skill that shows in his batting average), like reaching base on an error. 98.8% of the out is for popping up and the other 1.2% is for not reaching base anyway, because 1.2% of batters did reach base. So he now has 0.039 + 0.988 = 1.027 batting Outs, 0.012 of a baserunning Out, and 1.039 total Outs so far.

In the 6th Chapman hit a two-out single, and this time he was the one to run into the 3rd out when he was thrown out trying to go 1st to 3rd on Daulton Varsho's single. Once again Chapman's hit is worthless because no one scored in the inning. The runner was out just 1.2% of the time the batter singled with two outs and a runner on 1st in 2022. So Varsho would get dinged with 1.2% of that out. The other 98.8% is charged to Chapman for his reckless baserunning. So far he's 2-for-3 but has produced zero Runs against 2.027 Outs (1.027 batting and 1 baserunning).

In the 9th Chapman walked, moving Guerrero to 2nd. Spoiler alert but both Blue Jays went on to score. The walk pushed them both one quarter of the way around the bases, so Chapman produced a quarter of a run for each of them - a half run total. He's finally on the board with 0.5 of a batting Run.

Then the runners advanced to 2nd and 3rd on a wild pitch. The batter obviously has nothing to do with baserunning plays; the runner alone is responsible for any bases he advances or outs he runs into. Since Chapman scored, 2nd base was worth another quarter of a run to him. He's now up to 0.75 of a Run, 0.5 batting and 0.25 baserunning.

After a hit by pitch loaded the bases, new Tiger reliever Chasen Shreve gave up a sac fly to Whit Merrifield. Chapman advanced to 3rd. Runners on 2nd advanced a total of 32 bases the 85 times the batter hit a fly ball that wasn't a hit with the bases loaded and no outs, 0.376 bases per fly ball. Since Chapman is destined to score, that 37.6% of a base is worth one quarter of that, or 9.4% of a run to the batter, Merrifield. But Chapman is the one who did the running, and he gets the other 62.4% of the base, worth 15.6% of the run. He now has 0.5 batting Runs and 0.406 baserunning Runs.

And then pinch hitter Alejandro Kirk hit another sac fly, sending Chapman home with the tying run. The runner on 3rd scored 74.3% of the time the batter hit a fly ball non-hit with one out and runners on 1st and 3rd. Kirk gets that 74.3% of a base, worth 18.6% of a run. Chapman gets the other 25.7% of the base and the final 6.4% of his run.

That was an eventful 9th inning. Let's break it down again, this time in table form. "RunsBat" and "RunsBR" are Chapman's batting and baserunning Runs. "Scoring Runner" just means the runner is destined to score, but not necessarily on that event.

Batter     Event      Scoring Runner RunsBat RunsBR
Chapman    Walk       Guerrero Jr.     0.25
                      Chapman          0.25
Varsho     Wild Pitch Chapman                 0.25
Merrifield Flyball    Chapman                 0.156
Kirk       Flyball    Chapman                 0.064

9th inning total      Guerrero Jr.     0.25
9th inning total      Chapman          0.25   0.47
9th inning total      All              0.50   0.47

In other words, Chapman created 0.25 of Guerrero's run with his bat. He created 0.72 of his own run, 0.25 with his bat and 0.47 with his baserunning.

And here is an ORA event log/box score of sorts for Chapman's game. Except for steal attempts (which Chapman didn't have), all running plays are assigned to the event that got him on base.

Inn Event   Runs  Outs
1st Double       0.039
4th Out          1.000
6th Single       0.988
9th Walk    0.97

Batting     0.50 1.027
Baserunning 0.47 1.000
Total       0.97 2.027

So Chapman caused more than double the Outs the simple method estimated, but he also created nearly a full Run instead of just the 5/9 estimated. I should mention again the caveat that these are based on 2022 percentages. For example, in 2023 the bigger bases might entice runners to get thrown out more often than 1.2% of the time going 1st to 3rd on a single with two outs. If that happens, it will cut into the runner's percentage of the blame. The batter is only responsible for the average outcome. If the average is tiny, the batter only gets a tiny share of the credit or blame. If runners are getting mowed down left and right, it must be the event itself that's the problem and therefore batters deserve more of the blame. In reality runners probably won't get thrown out on base hits any more often this year than they did last year, but who knows.

Anyways, with another ORA walk-thru out of the way, here's the current Top 10 based on the simple formulas that estimate Runs and Outs. Runs = (R*5 + RBI*4)/9 + HR/12, and Outs = (AB - H + CS + GIDP + SF + SH). And ORA is on the same scale as ERA: Runs per 27 Outs.

Rk Player               Runs Outs  sORA
 1 Adam Duvall, BOS     12.7  18  19.00
 2 Brandon Lowe, TBR    10.3  20  13.95
 3 Matt Chapman, TOR    12.5  26  12.95
 4 Yordan Alvarez, HOU  11.8  30  10.63
 5 Yandy Diaz, TBR      10.5  28  10.10
 6 Will Smith, LAD      10.6  29   9.85
 7 Brian Anderson, MIL   9.7  27   9.69
 8 Bryan Reynolds, PIT  12.2  34   9.68
 8 Max Muncy, LAD       12.2  34   9.68
10 Randy Arozarena, TBR 12.5  35   9.62

Wednesday, April 12, 2023

Ryan Mountcastle's 9-RBI game

So it turns out that Duvall's "meh" game was a game in which he broke his wrist diving for a fly ball in the 9th inning. Don't I feel bad. Duvall will lead MLB in Simple ORA until a couple more Boston games, after which he will no longer qualify for a batting title. The Orioles' Ryan Mountcastle has already passed him in simple Runs after a 2-homer, 9-RBI game yesterday. The Red Sox, meanwhile, lost again to the indomitable Rays. They are now 5-3 with Duvall and 0-3 without him.

Rk Player                Runs Outs  sORA
 1 Adam Duvall, BOS      12.7  18  19.00
 2 Brandon Lowe, TBR     10.3  19  14.68
 3 Matt Chapman, TOR     11.9  25  12.87
 4 Yandy Diaz, TBR       10.0  24  11.28
 5 Ryan Mountcastle, BAL 13.4  34  10.65
 6 Yordan Alvarez, HOU   11.8  30  10.63
 7 Bryan Reynolds, PIT   12.2  31  10.62
 8 Brian Anderson, MIL    9.7  25  10.47
 9 Will Smith, LAD       10.1  27  10.14
10 James Outman, LAD      8.7  24   9.78

I was going to skip an ORA walk-thru today, but what was that?! Ryan Mountcastle had 9 RBI in one game? I might have to take a closer look at that. A batter's Run contribution can be estimated by the formula (R*5 + RBI*4)/9 + HR/12. Mountcastle therefore had (2*5 + 9*4)/9 + 2/12 = (10+36)/9 + 1/6 = 46/9 + 1/6 = 5.28 estimated Runs. He had two estimated Outs: a hitless at-bat and a sac fly. To figure up how many Runs and Outs he really contributed, I'll have to dive into yesterday's O's/A's play-by-play armed with the 2022 percentages.

In the 1st Mountcastle hit a sac fly scoring Austin Hays. The situation is a fly ball that wasn't a hit with a runner on 3rd and one out. That happened 193 times in 2022, and the runner on 3rd advanced 150 bases, 0.777 bases per event. The batter gets credit for the average advance, if the runner equals or surpasses it. Hays gets credit for the rest - 0.223 - for his baserunning for scoring on the fly ball out. But Mountcastle had nothing to do with getting Hays to 3rd in the first place. He was already 3/4 of the way home. Each base advanced is worth a quarter of a run, so Mountcastle is actually only responsible for 0.777 of Hays' final base (home "base") and 0.194 of his run - far less than the 0.444 (4 / 9) the simple method credits him for.

Errors are included in fly-ball non-hits, as they are in all batted-ball non-hit event types. But no errors happened in this situation in 2022. The batter was out 193 out of 193 times. If there had been an error or two, a tiny fraction of Mountcastle's out would go in his baserunning Outs; baserunning Runs and Outs are kind of catch-alls for everything a batter/runner does that doesn't have anything to do with his batting ability. If a batter had reached base even once when he hit a fly ball non-hit with a runner on 3rd and one out, that means Mountcastle had a chance to reach safely. Since it didn't happen in this situation in 2022, my system assumes Mountcastle was 100% out the instant he hit a playable fly ball, so the out is 100% a batting Out. 0.194 batting Runs against 1.000 batting Out for the sac fly.

In the 3rd Mountcastle hit a single scoring Jorge Mateo from 3rd. Of the 357 times a batter singled with two outs and runners on 1st and 3rd, the runner on 3rd scored 354 times - 99.2% of the time. Mountcastle gets credit for 99.2% of Mateo's final base, and one quarter of that, or 24.8%, of his run. Mountcastle also gets credit for advancing Adley Rutschman to 2nd and himself to 1st, but they were stranded there so those bases are worthless. Mountcastle is now up to 0.442 batting Runs against the 1 batting Out.

In the 5th Mountcastle hit a 3-run homer, scoring Hays from 2nd and Rutschman from 1st. Home runs are easy: the average advance is always however many bases the runner is from home. Since the batter gets credit for the average advance and those bases are always worth a quarter-run each (because the runners scored), Mountcastle gets 1/2 of a run for the runner on 2nd, 3/4 of a run for the runner on 1st, and a full run for himself. That's 2.25 batting Runs for his first homer of the day, which brings him to 2.692 for the game so far.

In the 6th Mountcastle grounded out with Rutschman on 2nd and one out. Rutschman stayed put and was ultimately stranded at 2nd. This time the batter was only out 91% of the time he hit a ground ball that wasn't a hit or a sac bunt with a runner on 2nd and one out. So Mountcastle gets 0.91 of a batting Out and the rest - 0.09 - goes in his baserunning Outs. Through 6 he has 2.692 batting Runs against 1.91 batting Outs, 0.09 baserunning Outs, and 2 total Outs.

And in the 7th came Mountcastle's 2nd home run - a two-out grand slam. Add up all the bases everyone advanced and divide by four. 10 / 4 = 2.5 batting Runs. That brings him up to 5.19 Runs for the game, almost the same as the 5.28 the simple formula estimated. Here's his ORA box score for the game:

            Runs Outs
Batting     5.19 1.91
Baserunning      0.09
Total       5.19 2.00

Monday, April 10, 2023

Breakdown of a Meh Duvall Game

I've only done breakdowns of awesome Adam Duvall games, which are what most of Adam Duvall's games have been so far this season. Yesterday he went 1-for-4 with no runs scored or RBI. The simple method says he created zero Runs and three Outs. What does the longform method, based on 2022 stats, reveal? Did he play any part in any of the four runs the Red Sox scored?

In the 1st he struck out with two outs and runners on 1st and 2nd. Duvall gets 99.9% of a batting Out and 0.1% of a baserunning Out (for not reaching 1st on a passed ball or wild pitch).

In the 4th he led off with a single and then was forced at second by Christian Arroyo. Runners were out 78.3% of the time the batter hit a ground ball that wasn't a hit or a sac bunt with a runner on 1st and no outs. So Arroyo is responsible for 78.3% of that out, and Duvall is responsible for the other 21.7% of it. 0.999 batting Outs, 0.218 baserunning Outs.

In the 5th Duvall came up again with runners on 1st and 2nd and two outs. This time he forced Justin Turner at 2nd. The runner on 1st was out just 23.3% of the time the batter hit a ground ball non-hit in this base/out situation, so Duvall gets just 23.3% of an out. 1.232 batting Outs, 0.218 baserunning Outs.

In the 8th Duvall led off with a groundout. Batters were out 97.1% of the time they hit a groundball non-hit with the bases empty and no outs. So Duvall gets 0.971 batting Outs and 0.029 baserunning Outs.

His game total: 2.203 batting Outs, 0.247 baserunning Outs, 2.45 total Outs. Duvall didn't earn any Run shares, but he does deserve less than the 3 Outs the simple method charges him with.

Despite the 0-against-3 game Duvall still has a comfortable lead in Simple ORA:

Rk Player               Runs Outs  sORA
 1 Adam Duvall, BOS     12.7  18  19.00
 2 Brandon Lowe, TBR     8.2  15  14.70
 3 Bryan Reynolds, PIT  12.2  24  13.72
 4 Brian Anderson, MIL   9.1  19  12.99
 5 Will Smith, LAD       9.6  20  12.94
 6 Mike Trout, LAA       9.3  20  12.49
 7 Matt Chapman, TOR    10.3  23  12.07
 8 Randy Arozarena, TBR 10.1  23  11.80
 9 James Outman, LAD     8.1  19  11.57
10 Yordan Alvarez, HOU  10.4  25  11.19

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...