Category Archives: Study Results

More Useless Stats

April is a dead zone for this data model as player stats cannot be accurately compiled until May and team stats around mid April.  This is because there are huge fluctuations throughout the league rending deceiving results.  That doesn’t stop certain Cubs announcers from rattling off meaningless team slash lines that make no sense (Hi JD!)  but whatever.  He just reads what some stat heads write on a cue card thinking it adds value to the color commentary.  it doesn’t.  But I digress ….

In the meantime let’s bide some time and waste it on even more useless stats.  The other day at the local pub a person who played at a pretty high level of baseball mentioned an interesting theory; he said pitchers  throw more strikes on the first pitch hoping the batter will be taking.  Is this true?

Since we have event data from that show pitch sequences back to 1988 this is something that can be either proven or disproven.  First a counting pitches script needed to be written.  In order to not get too crazy, only years 2015 – 2018 were processed which should be enough.

My first question when writing this script was what are the average pitch count per batter.  This comes to almost exactly 4.  Next I made these calculations:

  • Average # pitches / STRIKEOUT = 4.9
  • Average # pitches / OUT = 3.5
  • Average # pitches / WALK = 5.9
  • Average # pitches / HIT = 3.5

Whether batter gets an OUT or a HIT are the same at 3.5 pitches / batter.  Pitchers who like to throw strikeouts add another 1.4 pitches / batter to their pitch count and that goes up another whole pitch if they walk a batter.  Since many Sabermetric stats demand pitchers throw strikeouts this can spike pitch counts for no reason other than a pitcher needs to game FIP for his next contract or help his Draft Kings teams win.

More Fun With Numbers

The following table shows 4 event types and the percentages they occur based upon pitch number and type of pitch.  Row 1 B means first pitch Ball, then what happens.  C means Called Strike, F means Foul ball, S means swinging strike.  The percentages of columns in each row must add to 1.  More explanation below the fold.

1 B 0.179 0.447 0.141 0.233
1 C 0.293 0.444 0.049 0.214
1 F 0.295 0.436 0.046 0.222
1 S 0.362 0.389 0.052 0.196
2 B 0.215 0.410 0.164 0.211
2 C 0.339 0.395 0.070 0.195
2 F 0.358 0.392 0.054 0.196
2 S 0.447 0.338 0.053 0.162
3 B 0.266 0.351 0.203 0.179
3 C 0.396 0.335 0.106 0.163
3 F 0.378 0.368 0.069 0.185
3 S 0.624 0.214 0.059 0.104
4 B 0.271 0.299 0.277 0.153
4 C 0.408 0.249 0.215 0.128
4 F 0.378 0.358 0.086 0.177
4 S 0.790 0.107 0.050 0.053

The above shows the first 4 pitches which is almost exactly a per batter league average pitch count.  How it came to exactly 4 is as  fascinating as how Hits/2 almost exactly equals runs scored.

The second pitch above does not care what happened in the first pitch.  Ditto for pitches 3 and 4.  You would need to do some conditional probability to figure out anything in more detail and whether that would be worthwhile — it’s probably not worthwhile.

This post last April showed that MLB average Batting Average was 0.255 for all batters between 2010 and 2017.  The above Hit % is not a batting average as it uses Plate Appearances (PA) instead of At Bats (AB) as a divisor.  For this exercise using PA is a more accurate and less confusing measure.

Scanning this table you’ll see both Hits and Walks are most likely when a Ball is thrown which seems intuitively obvious.  Not sure how useful any of the above data is other than gaining an advantage on a bunch of friends at a game who like to bet on every pitch and batter.

The last table is the crux of this entire study.  Aside from Pitch number there are 5 categories of things that can happen listed:

  • SWING – batter swings and misses
  • CALLED – called strike
  • FOUL – batter makes contact hits a foul ball
  • BALL – ball
  • CONTACT – batter puts ball in play ( out of hit )

Swing , Foul, and Contact are don’t know because we don’t know if the ball was in the strike zone when that happened.  We know a Called strike was in the strike zone and a called Ball was not.  This table shows pitches 1 through 4.  All % columns in each row must add to 1.

Pitch Swing Called Foul Ball Contact
1 0.066 0.321 0.104 0.397 0.112
2 0.107 0.165 0.167 0.386 0.174
3 0.120 0.118 0.192 0.375 0.195
4 0.124 0.111 0.206 0.352 0.207

If a batter lays back and does nothing the above suggests it’s more likely the pitch will be a ball instead of a called strike.  Called strikes on the first pitch are almost double that of subsequent pitches so my friend does have a point.  Pitchers do throw more accurately on the first pitch compared to all the others.

Clarification 4/16/2019:  The above statement is wrong.  Batters may tend to lay back on the first pitch which is why Called Strikes are so high.  A high percentage of Swings and Fouls  would be called strikes.  What that percentage is we can’t tell from event data.  The radar guys keeping track of every pitch thrown would know.  Pitches in the strike zone and out of the strike zone could be estimated by estimating this probability.  It appears Called and Balls  would be somewhat equal according to the above table.

That is all for now.  Cubs are having a tumultuous April.  We can do a brief CHN team status with no player rankings in perhaps  7 – 10 days.  Hopefully things settle out for them.  This model had CHN with the highest Total value in MLB based upon 2016, 2017, and 2018 splits.  This should be expected since the Cubs have had an incredible run of winning these last three years and most of the players who racked up those wins are still on the team.

As always, past results do not affect future results and we really witnessed that these last 10 games even though they won their home opener today 10-0.  No one can predict the future and anyone making claims that they did with respect to the Cubs are lying.  The only thing this model can do is provide an accurate view of the past.  Most other systems can’t even do that.

Through our view of current year data starting in May when 1/6 of the season is in the books and many players have more than 100 PAs, we can use current year data to estimate a handicap for  single upcoming games.  We can’t estimate what will happen for the next 133 games because that is impossible.  Things change daily and weekly and, as we have shown here over an over, stats like BA, OPS, WAR, etc. etc. do not react to changes as quickly as this model does.  That’s our advantage which is why we beat ELO by over 10% last two seasons, Vegas by 10% in 2018 but only 2.5% in 2017 ( this is currently being looked into ).  More on this later.  Until then ….

The Simulation Part 3

It has been 9 months since Part 2 of this series and over a year since Part 1.  Part of this was procrastination but also since verification could mean results from simulation can’t beat Vegas lines there was little motivation to find out and get depressed.  But the 2019 baseball season is upon us and this has to be done so let’s get to it.  Note: Handicapping doesn’t begin here until May due to lack of enough current year data in April.

Verification isn’t complete but we have high level results showing error.  This post will show that error among multiple systems; including the fivethirtyeight ELO system, this data model’s simulation, the flip of a coin model, and much more.

tl;dr Cut the the chase: According to this error calculation ELO  surpasses Vegas lines,  our simulation surpasses ELO.   An adjustment had to be made from the simulation that produced probability results posted here last season and described in Parts 1 and 2.

Although Vegas starts handicapping on day 1 of an MLB season, this model does not have enough data to make proper evaluations until May (around 1/6 of a season).  This means a betting season for each team is around 133 games give or take a few with about 150 days (5 months) of actual betting.

Each system generates a break even probability.  As we saw in the last couple years of handicapping the beginning of each Cubs series, Vegas bet for and bet against add to more than 1.  The extra is the house spread which guarantees the bookie always gets a cut as long as they take in equal bets from each side.  Casinos in Vegas never gamble on anything.

In this error calculation there are two types of betting strategies; bet for and bet against a team every game.  If generated probabilities are accurate, each strategy would break even at the end of a season.  Predicted probabilities are too low if it leads to winning, too high if it leads to losing.

Clarification 3/30/2019:  The above wording is kind of confusing.  If you BETFOR all 30 mlb teams you will also BETAGAINST all 30 teams and mathematically that has to equal 0 except for Vegas where P(win) != 1 – P(lose).    The error ranked in tables below are betting for and against one team over ~133 events.  That error should be as close to 0 as possible.

This model’s handicapping season starts in May and runs around 133 games for each team.  This is nowhere near what would be considered an infinite set of events so there will be some variation, even for coin flip method where we know the actual probability.   The absolute value of error from all 30 teams gets added together and that gets divided by total bet to calculate percentage error.

Now let’s traverse the various systems examined, explain them, and look at their error for the 2018 season.  There will be a lot of tables so skip to the end for a summary.

Coin Flip

In the coin flip exercise we flip a coin 133 times, representing the number of events in a baseball season for this handicapping model, to put the following error percentages into perspective.  Even though we know a coin flip is exactly 50% heads, 50% tails, after 133 flips it rarely comes close to to 50/50.  After running 10000 simulated 133 event seasons the average error converged to 0.069 with a 0.010 standard deviation.  So even if a system can produce exact probabilities for a game, it cannot exceed 0.069 over the long term.

Clarification 3/30/2019: Just noticed that 133 events flipping a coin will mean no coin flipping season will end up with a perfect 50/50 split.  Changed that to 134 and the numbers didn’t change.


The 5050 system assigns each team 50% probability of winning.  If you have no information  about either team, with two outcomes the probability is a coin flip.  Below are the top highest error rates for this system.

TeamID Type TeamID BET TYPE Error
2018 5050 BAL BETAGAINST 0.414
2018 5050 BAL BETFOR -0.413
2018 5050 BOS BETFOR 0.308
2018 5050 BOS BETAGAINST 0.308
2018 5050 HOU BETFOR 0.267
2018 5050 HOU BETAGAINST -0.267
2018 5050 OAK BETFOR 0.248
2018 5050 OAK BETAGAINST -0.248
2018 5050 KCA BETFOR -0.248
2018 5050 KCA BETAGAINST 0.248

Baltimore had a WinPct of 0.290 for 2018 which is pretty horrible and puts it on the top of this and almost every list below.  Betting against Baltimore would net you $41.4 on every $100 bet and almost the same lost betting for them.  This is because the real probability for BAL winning each game between May and September was way below 50% on average.   Boston was the opposite and won way more games than 50% so betting for them would net you around $30 for every $100 bet — assuming someone would take this kind of bet.  Vegas surely won’t.

Home Field Advantage

The home field advantage exercise assigns a probability of 54% to home teams, 46% to away teams.  This is a historical average.  If you have no other information other than where they are playing then this may be a good probability to use.  Let’s see.

TeamID Type TeamID BET TYPE Error
2018 homefield BAL BETFOR -0.419
2018 homefield BAL BETAGAINST 0.411
2018 homefield BOS BETAGAINST -0.312
2018 homefield BOS BETFOR 0.306
2018 homefield HOU BETFOR 0.287
2018 homefield KCA BETFOR -0.254
2018 homefield HOU BETAGAINST -0.254
2018 homefield OAK BETFOR 0.253
2018 homefield OAK BETAGAINST -0.244
2018 homefield KCA BETAGAINST 0.244

The above spread looks very similar to the 5050 system above.  The TOTAL table at the end will show they are virtually tied in error which could indicate that in general there is no such thing as home field advantage which is kind of counter intuitive.  Still not sure how to interpret this but for now the numbers and code to make these list looks correct.

Again, the usual suspects are shown in the top ten.


Vegas is the gold standard.  If your system can beat Vegas you can literally win money in the long term.  Break even probabilities are derived from the last daily snapshot for each game between May and September.  In Vegas BETFOR probability will be different than  BETAGAINST probability.  This study only cares about break even probability assignments so it doesn’t matter.   If you bet the BETFOR probability an infinite number of times you will break even, unless there is error.

The following shows the top error betting strategies by team for Vegas lines.

Year Type TeamID BET TYPE Error
2018 vegas BAL BETFOR -0.298
2018 vegas OAK BETAGAINST -0.258
2018 vegas BOS BETAGAINST -0.233
2018 vegas OAK BETFOR 0.213
2018 vegas TBA BETAGAINST -0.172
2018 vegas MIL BETAGAINST -0.169
2018 vegas TBA BETFOR 0.166
2018 vegas COL BETAGAINST -0.159
2018 vegas BAL BETAGAINST 0.156
2018 vegas ARI BETAGAINST 0.145

The error shows a % +/- , + means you win money doing that, – means you lost that much using that strategy.   The top ten error % in Vegas are much less than the above two betting models which means they most likely will lose money — which we’ll see how much in subsequent parts to this series.

Even Vegas bettors were wrong betting for Baltimore who lost what could be a record number if games.  Betting against BOS and OAK were big losers last season too.


ELO surprised me in that it beat Vegas in this calculation.  Don’t know how Nate Silver calculates this but it’s pretty good and we’ll see how much money it makes in Vegas.

Year Type TeamID BET TYPE Error
2018 elo BAL BETFOR -0.254
2018 elo OAK BETAGAINST -0.211
2018 elo OAK BETFOR 0.180
2018 elo BAL BETAGAINST 0.165
2018 elo ARI BETAGAINST 0.162
2018 elo COL BETFOR 0.147
2018 elo COL BETAGAINST -0.143
2018 elo ARI BETFOR -0.134
2018 elo MIL BETFOR 0.132
2018 elo BOS BETAGAINST -0.130

The totals will come after the next system which tops them all.

The Simulation

The Simulation,  the subject of this series, generated using data and theories from this data model beats ELO and Vegas.  Note: The algorithm behind this simulation changed from last season.  it still uses away l-s, away l-r, home l-s , home l-r tiering but there was something missing that needed to be added.

Year Type TeamID BET TYPE Error
2018 sim ARI BETFOR -0.169
2018 sim TBA BETFOR 0.165
2018 sim OAK BETAGAINST -0.165
2018 sim ARI BETAGAINST 0.156
2018 sim PHI BETAGAINST 0.154
2018 sim BAL BETFOR -0.153
2018 sim LAN BETAGAINST -0.143
2018 sim LAN BETFOR 0.142
2018 sim CIN BETFOR 0.136
2018 sim PHI BETFOR -0.121

The above spread is much different than all of the above models.


TeamID Type TeamID BET TYPE Error
2018 sim TOTAL BETAGAINST 0.058
2018 sim TOTAL BETFOR 0.061
2018 elo TOTAL BETAGAINST 0.064
2018 elo TOTAL BETFOR 0.074
2018 vegas TOTAL BETAGAINST 0.074
2018 vegas TOTAL BETFOR 0.081
2018 homefield TOTAL BETAGAINST 0.150
2018 5050 TOTAL BETAGAINST 0.152

The above table is the rundown of all the systems and their error using data from 2018.  Although errors differ in 2016 and 2017, the ranking is not different. Absolute values of errors were added together and divided by number of events (games) to get the total error %.

The next part to this series will simulate betting seasons for 2016, 2017, and 2018   This data model has a 6 daily snapshot dataset of all Vegas lines from July 2014 until present and end of betting snapshot back to 2011.  For now only the last three years will be examined here.  Eventually all years will be compiled.  Until then ….

The DH argument Part 2

It appears DH won’t be in NL until 2022 which will give everyone time to get used to the idea.  In Part 1 we looked at how NL and AL pitchers hit as a group.  tl;dr Not well.  Below is a truncated table showing their Win Percentages for the last two years.

Win % for AL and NL Pitchers

YEAR AL Win% NL Win%
2017 0.224 0.224
2018 0.220 0.215

Numbers mean nothing unless put into context.  If you add up all the wins of all 30 MLB teams and divided it by all wins and losses it would come to 0.500 exactly.  For every win someone must lose.  This data model operates on the same principle.  A completely average player would have a Win% of 0.500.  It goes above 0.500 for above average players, below 0.500 for below average players.  Not too complicated!

The hypothesis that NL pitchers would hit better than AL pitchers was proven false with that table.  Pitchers on both leagues are pretty equal with their horrible hitting.  To demonstrate how bad a sub 0.250 Win% is for hitting let’s look at a player from last season, Chris Davis.  Chris Davis was once a great player.  This model has him ranked #3 in 2013, Chris’ career season.  In 2018 things didn’t go so well for him.  He’s ranked #1 in the bottom 200 for WAR.

Chris Davis 2018 WAR

Year Rank WAR oWAR dWAR PA Name_TeamID Pos
2018 -001- -2.8 -2.5 -1.0 522 Chris_Davis_BAL 1B-DH

OK WAR thinks he was bad.  WAR rarely goes negative and this is very very negative.   Let’s see what this data model thinks.  Below is a long form record output showing batting average, OBP, plate appearances, RBIs, and runs.  We’ll need PA to calculate number of games used to calculate Win%.

Chris Davis 2018 WAA

Rank WAA BA OBP PA RBI R Name_TeamID Pos
-023- -3.44 0.168 0.243 522 49 40 Chris_Davis_BAL 1B-DH

Looks like both models are in agreement.  This model does not show Win% for MLB players because it’s a rate and can be deceptive.  For groups of players like lineups and relief staffs it provides context to the sum of WAAs.  The sum of WAAs however is used for tiering in simulation, not the rate.

That said let’s calculate Chris’ Win% according to the formula.

Win% = 0.5 * ( WAA ) / games + 0.5
where games = PA / 38.4

The number 38.4 PA per game is a baseball constant used for batters much like 9 innings exactly per game is used for pitchers.  Plugging in Chris’ numbers we get:

Chris Davis Win% for 2018 = 0.5 * -3.44 / 13.6 games + 0.5 = 0.373
where games = 522 / 38.4 = 13.6

A typical worst team in MLB will lose around 100 or more games.  That Win% is:

Typical bad MLB team Win% = 62 wins / 162 games = 0.383

As you can see from the two calculated Win%, Chris Davis played as well as a typical worst team in baseball.  Actually in 2018 BAL only won 47 games but that’s not typical.  The above demonstrates how dreadfully awful AL and NL pitching numbers are.

Clarification 3/5/2019:  Comparing Chris’ 0.373 Win% with  pitchers’ ~ 0.220 Win%  shows pitchers are far worse than one of the worst non pitching hitter in baseball.  A 0.373 Win% is around 60 wins in a 162 game season.  A 0.220 Win% is around 36.

Since the dreadful pitchers hitting in NL parks must be compared to dreadful hitters hitting in the 9th spot in the lineup for AL parks, what is the Win% between the two leagues.  The table below shows Win% for all 9 lineup positions using a dataset of all games from 2015 to 2018.  The AL Win% are for AL home games where DH is used, NL for when DH is not used in NL parks.

WAA can be calculated for any set of events.  The Win% average for both NL Win% and AL Win% comes to exactly 0.500 adhering to the principle for every win there is a loss.  Since WAA represents W-L that must always be true.

Pos NL Win% AL Win%
1 0.445 0.453
2 0.500 0.506
3 0.609 0.612
4 0.638 0.645
5 0.595 0.539
6 0.502 0.496
7 0.459 0.446
8 0.412 0.422
9 0.309 0.353

The number of runs hit in AL parks is 2.2% higher than NL parks with no DH.  Lineup position 9 shows how much dreadful hitting pitchers drag down the average.  At 0.309 it is above the ~0.220 Win% shown for AL and NL pitchers above.  That’s because pinch hitters take over for 1/3 of a game, possibly more since the 9th spot in the lineup gets the least number of PAs.

Lineup position 5 is the only other outlier between the DH and no DH.  Do not know why but without it the number of runs hit in DH parks would be much higher than 2.2% more than no DH parks.  These numbers could slightly move around if more years are added to this dataset.

Clarification 3/5/2019:  The 5th position in non DH parks (NL) has a far higher Win% than the 5th position in DH parks.  I do not know why or can come up with a theory as to why this would be.  If it’s a bug in a script making this table an update will be added here.

What does the above tell us?   To use Joe Maddon language; Pitchers suck at hitting.  Maybe having DH in NL is a good thing.  Not having pitchers hit often will greatly simplify this data model.  Right now every NL starting pitcher has both a BAT and PITCH record, with their BAT record filtered out but they do get counted for all the books to balanced in this model.

That is probably all for DH.  I might have changed my mind on this matter.  Perhaps more new guys when I get around to it.  Until then ….

The DH argument Part 1

This will be a multi part series that explores various aspects of this DH issue.  The first question that needs to be answered is which league has better hitting pitchers.  Now that AL and NL play each other AL pitchers must bat when they play in NL parks.  My initial conjecture was NL pitchers would be better because they get more practice at the plate.  Let’s examine this.

Since this data model produces a value metric that is what we will use for this determination.  The raw WAA value system used to rank individual players cannot be used because AL pitchers have more than an order of magnitude less plate appearances per year than NL pitchers.  Since all but a few pitchers are below average hitters that would skew the numbers in favor of AL.

This is where the rate, WinPct is needed.  This model uses WinPct to place minor league player stats into context because those players typically move from league to league.  WinPct provides context to the WAA weighting value.  WinPct is not shown for MLB players because it is deceptive at that level.

Why can WinPct be deceptive?  For example,  a typical 26 mile marathon can be finished by the best marathon runner in a little over 2 hours making their average rate of speed to be around 13 mph.  A good runner 3 hours or a 9 mph rate; average runner 4 hours, 6+ mph rate and so on and so on.

A top runner of a mile can do it in 4 minutes or 15 mph.  If you just look at rates, the mile runner runs faster than the top marathon runner.  Since 15 mph is higher than 13 mph does that make the mile runner a better runner?  Is a golfer who shoots 3 under par for 9 holes ( -0.333 shots/hole ) better than the golfer who shoots 3 under par for 18 holes ( -0.166  shots/hole )?

The answer is no.  They could be better but you can’t tell by the rate.  MLB ranks players and give awards based upon batting average because it is/was a sideshow for baseball to garner interest for the sport. If your favorite team wasn’t doing well then you could root for your favorite player instead.  Now with fantasy leagues and actual gambling sites like Draft Kings that reward certain stats over others this concept has become even more extreme.

That’s all fine and well but batting average or WHIP does not represent value anymore than average running speed represents a runner’s ability or value as a runner.  A high batting average and low ERA often does translate into value that can be ranked but the raw number itself cannot.

This model does not show rate for MLB nor does it ever rank on rates, unlike most  of Sabermetrics.  That said we must use the rate for dissimilar groups of players like  AL and NL pitchers and sometimes it’s useful to provide context for lineups, relief squads, and starting pitchers.  Tiering which has been discussed throughout however uses raw WAA weighting.

What does all of this have to do with DH?

Nothing other to explain why in these next few exercises we will be using rates instead of raw value.  First let’s explain how WinPct is calculated again.  By definition:

WAA = wins – losses

Not too complicated.  It’s easy to calculate for teams and this model calculates it for players.  Players with positive WAA provide more wins to their teams than losses, vice versa for negative valued players.   The following must also be true:

Sum Team(WAA) = 0

Add all wins – losses for all teams in any league  and it adds to 0.  IOW, for every team that  wins, a team must lose.  Not too complicated!  The following is also true according this this data model.

Sum Player(WAA) = 0

If you add WAA of every player who played in a season it adds to exactly 0.

Sum Player_Team(WAA) = Team(WAA)

The above states that the sum of all players who played for a team while they played on that team is equal to their real win/loss record.  The Cubs had a record of 95-68 last season which is a WAA=+27.  WAA for all players tagged CHN in 2018 will add to that number.

Therefore, Player(WAA) has the same properties as Team(WAA) where a winPct can be calculated as follows.

Win% =  0.5*WAA/(number of games played) + 0.5

For the Cubs last season that was

Win% = 0.5 * 27 / 163 + 0.5 = 0.583

To calculate a player Win% the number of games played is not the actual games they play in.  Time in baseball is measured by plate appearance for hitters, innings pitched for pitchers.  Baseball has always used 9 innings to represent a game when calculating ERA.  An average game in baseball is not exactly 9 innings but it’s a close enough approximation, easy to remember and easy to calculate before there were calculators.

This model uses the constant 38.4 plate appearances to represent a game for hitters.  Javier Baez had 645 PA last season which translates into 645/38.4 = 16.8 games.  His WAA for his almost MVP season was 7.29 thus,

Javier Baez Win% = 0.5 * 7.29 / 16.8 games  + 0.5 = 0.717

and for context:

Christian Yelich Win% = 0.5 * 8.,44 / 17 games + 0.5 = 0.749

The above is merely an illustration to how this is calculated.  The WAA value ( 8.44 for Yelich, 7.29 for Baez )  is all that matters for ranking purposes.  This model also gives Yelich MVP even though Baez led until the final week  of the  2018 season.

Would you get to the point of all this?

OK.  We meandered a bit with some background as to how all this is calculated showing it’s not very complicated.   The next set of tables will walk through the variables used to make Win%.  First let’s look at plate appearance numbers for AL and NL pitchers throughout the years.

AL and NL Pitching Plate Appearances

2008 637 4998
2009 642 4994
2010 638 5152
2011 621 5023
2012 605 4908
2013 345 4836
2014 332 4893
2015 333 4643
2016 361 4674
2017 329 4648
2018 311 4526

Plate appearances translates into baseball time.  The above table clearly shows what we already know — that NL pitchers bat far more often than AL pitchers — because NL does not have DH.  The number of plate appearances for both AL and NL  pitchers declined from a peak in 2010 until last season.  Not sure why but it is what it is.  Let’s look at total pitcher hitting WAA for each league.

 AL and NL Pitching BAT WAA

2008 -10.12 -73.75
2009 -9.03 -72.58
2010 -11.38 -68.54
2011 -8.95 -65.79
2012 -8.95 -66.49
2013 -5.23 -62.45
2014 -5.21 -66.13
2015 -5.08 -66.91
2016 -6.32 -61.76
2017 -4.72 -66.86
2018 -4.54 -67.20

This table does not tell you much other than pitchers bring losses to their teams from their poor hitting.  We saw in the previous table that plate appearances have gone down since 2010 yet WAA remains kind of constant.

With 15 teams in NL, pitchers contribute and average around -4 in the win/loss column per team due to hitting.   For AL it’s much less and the above shows AL pitchers have become much better hitters over the years.  Can’t really tell what’s going on without doing the Win% calculation.

AL and NL Pitching BAT Win%

YEAR AL Win% NL Win%
2008 0.195 0.217
2009 0.230 0.221
2010 0.157 0.245
2011 0.223 0.249
2012 0.216 0.240
2013 0.209 0.252
2014 0.199 0.241
2015 0.207 0.223
2016 0.164 0.246
2017 0.224 0.224
2018 0.220 0.215

It must be stressed that these only include hitting stats that have nothing to do with their pitching.  The last couple of years AL and NL pitchers are more or less equal in hitting ability but very very poor.  As shown above, MVP quality hitting is above 0.700.  A textbook completely average hitter would have a WAA = 0 translating to a Win% of exactly 0.500.

The above clearly shows just how bad pitchers in general are at hitting which is one of the reasons for DH.  In order to put the above in context we must compare the above numbers to the worst hitters in each lineup.

Since AL teams have DH they normally do not make pitchers hit.  In order to put the above in context we’ll look at the 9th hitter in each lineup last year and if I get motivated, the last ten years.  The bottom of a lineup is where managers put hitters they want to have the least amount of plate appearances.   What kind of Win% do these players put up?  We’ll see.  Until then ….

Lineup Relief Table Part 2

We recalculated the lineup-relief tables using innings pitched instead of games.  This is a more accurate measure.  The table below is reformatted to show the lineup-relief combo pair,  innings pitched per game and the average runs per inning scored by  lineup, also given up by relief.

Lineup-Relief IP/Game Avg Runs
1-1 2.77 0.481
1-2 2.79 0.493
1-3 2.84 0.500
1-4 2.73 0.522
1-5 2.91 0.540
2-1 2.83 0.438
2-2 2.75 0.476
2-3 2.81 0.468
2-4 2.90 0.501
2-5 2.88 0.502
3-1 2.72 0.416
3-2 2.75 0.440
3-3 2.73 0.454
3-4 2.76 0.477
3-5 2.83 0.495
4-1 2.77 0.415
4-2 2.72 0.426
4-3 2.78 0.438
4-4 2.72 0.466
4-5 2.78 0.458
5-1 2.77 0.388
5-2 2.65 0.413
5-3 2.63 0.407
5-4 2.61 0.421
5-5 2.69 0.467

Not sure the innings pitched/game column means anything for each lineup-relief pair.  The average runs show a low of 0.388 for the worst lineup against the best relief to 0,540 for the best lineup against the worst relief (highlighted in green above).  This should be expected and the range is rather significant and should provide for interesting results in simulation.

Below is the table above condensed making it easier to see the trend.

Lineup-Relief IP/Game Avg Runs
1-5 2.91 0.540
2-4 2.90 0.501
3-3 2.73 0.454
4-2 2.72 0.426
5-1 2.77 0.388

Average runs scored goes down with worse lineups facing better relief squads as we would expect.  The data looks correct so far.  It’s possible that the best lineup against the worst relief has highest IP/Game because the best lineup will  knock out starters faster than worse lineups making relief pitchers pitch more innings regardless of value.

Since we’re here let’s do this for lineup-starters as well.  Same table format as above.

Lineup-Starter IP/Game Avg Runs
1-1 6.81 0.471
1-2 6.38 0.533
1-3 5.99 0.567
1-4 5.84 0.575
1-5 5.87 0.602
2-1 6.74 0.466
2-2 6.44 0.484
2-3 6.00 0.540
2-4 5.85 0.555
2-5 5.90 0.571
3-1 6.85 0.426
3-2 6.52 0.466
3-3 6.09 0.510
3-4 5.93 0.534
3-5 5.95 0.542
4-1 6.86 0.419
4-2 6.49 0.450
4-3 6.13 0.484
4-4 5.92 0.521
4-5 5.95 0.521
5-1 6.94 0.400
5-2 6.70 0.410
5-3 6.18 0.469
5-4 6.07 0.470
5-5 6.02 0.502

The difference between the two extremes in lineup-starter combos is around 0.2 runs per inning.  For lineup-relief combos that difference is around 0.15 runs per inning.  The innings pitched per game column shows how higher tier pitchers pitch more innings which should  be expected.  The high is 6.94 for the 5-1 lineup-starter pair and drops to a low of 5.87 for the 1-5 pair.

Below is a condensed version of the above table.

Lineup-Starter IP/Game Avg Runs
1-5 5.87 0.602
2-4 5.85 0.555
3-3 6.09 0.510
4-2 6.49 0.450
5-1 6.94 0.400

The trend of average runs follows what we expect with the best linups facing the worst starters to score the most runs which decreases as starter value increases and lineup value decreases.  We will use the inning numbers for simulation.

That is all for now.  The next step is running simulations.