THE BOOK cover
The Unwritten Book is Finally Written!
An in-depth analysis of: The sacrifice bunt, batter/pitcher matchups, the intentional base on balls, optimizing a batting lineup, hot and cold streaks, clutch performance, platooning strategies, and much more.
Read Excerpts & Customer Reviews

Buy The Book from Amazon


SABR101 required reading if you enter this site. Check out the Sabermetric Wiki. And interesting baseball books.
MOST RECENT ARTICLES
MAIL : You ask | We say

Advanced


THE BOOK--Playing The Percentages In Baseball

<< Back to main

Wednesday, October 21, 2009

Starter v Relief, 1953-2008

By Tangotiger, 02:43 PM

Rally compiled this great file.  It has each pitcher’s starter and relief numbers lined up by pitcher/year.  He also shows you extra columns where all the data is equally weighted for each pitcher.  Fantastic stuff, and EXACTLY the way I would have done it.  This explains why I think it’s great anyway!  It’s one of those things I’ve been meaning to do since forever.  Rally compiled the data for all of us to use.

Here’s what I find.  I went ahead and calculated the wOBA for all the starters/relief, and for pitchers since 1993, it was .352 for starters and .323 for relievers, a gap of 29 wOBA points, almost identical to what I found in The Book. The relievers had a wOBA that was 8% less than starters.  When I looked at the whole dataset (1953-2008), it was also the same 8%.  Basically, this reafffirms the 1 run per 9IP gap I’ve been using.

You can try slicing and dicing Rally’s data any way you like, but you will see little bias in eras.  Basically, use the “rule of 17”: difference in BABIP is 17 points higher as starter.  K/PA is 17% higher as reliever.  And HR per contacted PA is 17% higher as starter.  Walk rate is FLAT.

I know about the selection bias.  It was discussed at length in The Book.  (For those who don’t have it, read it for free on Amazon.com.) The next step is to do what I did in The Book, for all these pitchers.  I’d bet you’ll find results that match those.

The golden rule basically comes down to this: when you compare a reliever’s stats, you MUST MUST MUST use a different baseline than a starter.  And that baseline is roughly a 1 run difference per 9IP.  And it has nothing at all to do with leverage.  The basic way to think about it is that a starter is pitching with one hand tied behind his back.  So, you can’t compare him straight up to a reliever.


#1    terpsfan101      (see all posts) 2009/10/21 (Wed) @ 16:49

I wonder why Rally doesn’t list IP, R, and ER. These aren’t difficult stats to compile from Retrosheet’s PBP data.


#2    Rally      (see all posts) 2009/10/21 (Wed) @ 22:00

I could have done innings, but for what I was trying to do I thought batters faced was more useful.  As for runs and earned runs, I’m not sure how to get that from retrosheet.  When a run scores you might have a different pitcher on the mound, and I’m not sure how to code for that in Access.


#3    terpsfan101      (see all posts) 2009/10/22 (Thu) @ 00:10

Rally, I can calculate ER, R, and IP if you can tell me which field are you using to make the distinction between starter and reliever.


#4    terpsfan101      (see all posts) 2009/10/22 (Thu) @ 00:16

I found the field: PIT_START_FL.

I won’t bore you with the details of calculating R and ER (unless you want to know). Looking at my database, I have to run 8 seperate queries to calculate R and ER.


#5    Rally      (see all posts) 2009/10/22 (Thu) @ 09:35

I ran a query to determine who the starting pitcher was for every game (my database table was set up with BEVENT).  Then I just link that query to my table, if resultpitcher = starting pitcher then “starter”, if not, “reliever”.


#6    Tangotiger      (see all posts) 2009/10/22 (Thu) @ 10:53

I see.  CWEVENT would help you, as it has 50 extra fields, with a good handful as ones that I suggested to Ted to include.

What I was doing with BEVENT was creating my own post-processing to include more fields.  I create some 5 or 6 dozen extra fields to supplement BEVENT.  Ted came around and said he was extending CWEVENT, so I told him all teh fields I was creating, and he added a whole bunch of those, plus more of his own.

There is, frankly, no reason to use BEVENT.  It’s well worth the tiny time investment to switch to CWEVENT.


#7    Colin Wyers      (see all posts) 2009/10/22 (Thu) @ 11:08

Absolutely concur with Tom on CWEVENT.

What I do to figure R and ER (I’m going from memory here, so please excuse me if there are any errors):

SELECT PIT_ID
, YEAR_ID
, PIT_START_FL
, SUM(EVENT_OUTS_CT)/3 AS IP
, SUM(IF(BAT_FATE_ID = 4,1,0)) AS ER
, SUM(IF(BAT_FATE_ID >= 4,1,0)) AS R
FROM retrosheet.events
GROUP BY PIT_ID, YEAR_ID, PIT_START_FL;


#8    Tangotiger      (see all posts) 2009/10/22 (Thu) @ 11:36

Colin: that won’t necessarily work.  You’ll be missing pinch runners.


#9    Colin Wyers      (see all posts) 2009/10/23 (Fri) @ 00:27

Tom, I just compared the BAT_FATE_ID>3 totals to the EVENT_RUNS_CT totals for my entire Retrosheet database and they’re identical. Apparently CWEVENT includes a pinch runner’s performance when it figures out the BAT_FATE_ID field.


#10    Tangotiger      (see all posts) 2009/10/23 (Fri) @ 00:34

Colin: very interesting to know that.  Thanks…


#11    terpsfan101      (see all posts) 2009/10/23 (Fri) @ 00:36

To calculate R and ER for pitchers, you need to use these fields:

BAT_DEST_ID: 4 for ER and >4 for R
group by
RESP_PIT_ID

RUN1_DEST_ID: 4 and >4
group by
RUN1_RESP_PIT_ID

RUN_2_DEST_ID: 4 and >4
group by
RUN2_RESP_PIT_ID

RUN_3_DEST_ID: 4 and >4
group by
RUN3_RESP_PIT_ID

Before I run these queries I create a table with these fields: yearID, pitcherID, field_tm_id, R, and ER. I then append the result of the above queries to this table. That’s 8 seperate queries: 4 baserunner-pitcher combos for Runs and 4 combos for earned runs.

Using the table with the appended results, I can then sum R and ER for each pitcher.


#12    terpsfan101      (see all posts) 2009/10/23 (Fri) @ 00:40

The four DEST_ID columns should be >3 for Runs Allowed. Sorry for the mistake. The way I listed it above will give you earned runs and unearned runs, which you would have to add together to get runs allowed.


#13    terpsfan101      (see all posts) 2009/10/23 (Fri) @ 00:43

Of course, Colin’s method is a lot simpler. I’ll see if I get similar results with his query. I’ve already verified my method against the official statisitcs. If it varies at all, it is due to scoring differences between the official rules and the Chadwick program.


#14    Colin Wyers      (see all posts) 2009/10/23 (Fri) @ 00:56

Actually, now that I dig through my old code, it occurs to me that you need to do

IN (4,6)

in order to get earned runs - 6 designated runs that are unearned to the team but earned to the pitcher.


#15    terpsfan101      (see all posts) 2009/10/23 (Fri) @ 01:11

Good catch Colin. I’m still trying to verify your query. I can’t seem to get it to run. Is the title of your table “retrosheet events”?


#16    terpsfan101      (see all posts) 2009/10/23 (Fri) @ 01:55

Thanks again Colin for pointing out that ER charged to the pitcher but not to the team are coded as 6. I missed a handful of ER this way. In my postseason database (1903-2008), I originally had 8601 ER charged to pitchers. Now I have 8617 ER allowed by pitchers.

I couldn’t get your query to run Colin. Looking at your SQL, you need to change PIT_ID to RESP_PIT_ID. Sometimes pitchers are removed in the middle of facing a batter, like with a 1-0 count. If you use PIT_ID, then you will occasionally give credit to the wrong pitcher.


#17    Anthony      (see all posts) 2009/10/23 (Fri) @ 10:21

Under what circumstances will a run be earned to a pitcher but not to his team? I’ve never heard of that before.


#18    Colin Wyers      (see all posts) 2009/10/23 (Fri) @ 11:12

Good point, terps. Thanks.

Anthony: If a reliever enters a situation where there are two outs and a third out “should” have been recorded but was not due to an error, that reliever does not get any unearned runs based upon his performance.

So let’s say you have a sequence that looks like:

Flyout
Flyout
Routine grounder to second is booted, second baseman charged with error, batter reaches first.

Then the pitcher gets replaced by a reliever, who gives up a home run.

The batter on first is charged to the original pitcher, but due to the error the run is unearned. The batter who hit the home run is charged to the relief pitcher, though, as an EARNED run. Both runs accrue as unearned runs to the team, however.

(As with anything to do with errors, the concept of earned and unearned runs is simple and straighforward - until you actually have to think about it.)


#19    rod      (see all posts) 2009/10/23 (Fri) @ 15:14

I’ve always thought - SP walks 2 batters with 1 out and is relieved. RP immediately gives up 3b to 1st batter, then retires the next 2.

SP:2ER, RP 0ER

the SP gave up 3 bases, the RP 5, so, shouldn’t the ER be .75 for SP and 1.15 for RP.....


#20    Rally      (see all posts) 2009/10/23 (Fri) @ 15:57

Pitcher enters game with runner on 1st, no outs.  The first batter he faced grounds to short and is forced at 2nd.  The next batter hits a homer.

Does this pitcher get charged with 1 run or 2?  Both batters who score are batters he faced, though the runner on first was not his responsibility.


#21    Colin Wyers      (see all posts) 2009/10/23 (Fri) @ 16:41

Rally - I’m pretty sure that the reliever would be charged with one run. (The new baserunner takes the place of the previous baserunner as far as “responsiblity” goes.) I can double check.

That does, of course, lead to an interesting question with using BAT_FATE_ID to figure out ER/R. I’ll look into that.


#22          (see all posts) 2009/10/23 (Fri) @ 22:40

How are you caluclating BIP?


#23    wallypipp      (see all posts) 2009/10/23 (Fri) @ 23:14

got it.


Page 1 of 1 pages


Name (required)
E-Mail (optional)
Website (optional)

<< Back to main


Latest...

COMMENTS

Jul 30 03:43
Roy Halladay’s Bobby Orr career

Jul 30 02:33
Cleveland: Meet Patrick Roy

Jul 30 01:42
“I believe…”

Jul 30 00:30
Maddon at it again…

Jul 29 23:04
Introductions: Strasburg, BABIP… BABIP, Strasburg

Jul 29 20:31
Bannister: the greatest saberist spokesperson ever

Jul 29 19:25
Gotta give Joe Torre some credit

Jul 29 19:10
SABR 111 - Out value

Jul 29 17:47
Reducing bias in fielding metrics

Jul 29 17:44
Colin full-time at BPro