Analyzing The 2008 Milwaukee Brewers Lineups
Also in handy dandy PDF form!
Even before Ned Yost’s oust as Brewers skipper in the middle of a pressure-packed pennant race last September, many people in the Brewers community criticized him for a number of things. One main point of concern for Brewer fans was the lineup. For much of Yost’s tenure in Milwaukee, different lineups were coming in and out of Miller Park even more often than injuries to Ben Sheets (Table 1).
Year | Lineups Used | #Games For Most Common |
2003 | 82 | 14 |
2004 | 80 | 9 |
2005 | 68 | 24 |
2006 | 75 | 18 |
2007 | 82 | 10 |
2008 | 54 | 45 |
Table 1: Lineups used by Ned Yost’s Milwaukee Brewers by season.
Much of this is overblown, though, as many teams use a similar amount (or higher) of lineups over the course of a season. Platoons, injuries, hot streaks, and simply resting players contribute to such high lineup totals. In fact, 2008, in which Yost was fired, was Yost’s “best” year for lineup consistency.
The main problem that many people have is the claim that Yost’s lineups tend not to be optimal. Yost insists on “not moving people in a lineup,” which will result in, for example, Kapler batting 3rd or Gwynn batting 2nd. Still, this tends to be a relatively minor issue, seeing as having that lineup for one or two or maybe even 5 games over the course of a season will only have a 1 or 2 run impact. No, the real problem was the fact that many people thought that Yost’s everyday lineup just isn’t the best one that the Brewers could put out there. That was what Dale Sveum thought, and as such the lineup that he used for the last two weeks of the season was vastly different.
Using some data from The Book, I performed some analysis on these two lineups. In The Book Tango, Lichtman, and Dolphin find the linear weights above average for each slot in the batting order (Table 2). For more on Linear Weights, check out this link: http://www.tangotiger.net/wiki/index.php?title=Linear_Weights
Batting Slot | 1B | 2B | 3B | HR | NIBB | HBP | K | OUT |
1 | 0.515 | 0.806 | 1.121 | 1.421 | 0.385 | 0.411 | -0.329 | -0.328 |
2 | 0.515 | 0.799 | 1.100 | 1.450 | 0.366 | 0.396 | -0.322 | -0.324 |
3 | 0.493 | 0.779 | 1.064 | 1.453 | 0.335 | 0.369 | -0.317 | -0.315 |
4 | 0.517 | 0.822 | 1.117 | 1.472 | 0.345 | 0.377 | -0.332 | -0.327 |
5 | 0.513 | 0.809 | 1.106 | 1.438 | 0.348 | 0.381 | -0.324 | -0.323 |
6 | 0.482 | 0.763 | 1.050 | 1.376 | 0.336 | 0.368 | -0.306 | -0.306 |
7 | 0.464 | 0.738 | 1.014 | 1.336 | 0.323 | 0.353 | -0.296 | -0.296 |
8 | 0.451 | 0.714 | 0.980 | 1.293 | 0.312 | 0.340 | -0.287 | -0.286 |
9 | 0.436 | 0.689 | 0.948 | 1.249 | 0.302 | 0.329 | -0.278 | -0.277 |
Table 2: Linear weights above average by batting order and event, 1999-2002 seasons.
Source: The Book, Table 52.
With this data, we can figure out the number of runs that each player was worth in each lineup spot over the course of the season. First, let’s examine Ned Yost’s lineup (Table 3). To simplify things a little bit, this table assumes that the pitcher receives 65% of the at-bats in the 9 slot, while a league average pinch hitter receives the other 35%.
Name | 1B | 2B | 3B | HR | NIBB | HBP | K | OUT | lRUNS | PA | lRUNS/PA | lPA/G | lRUNS/G | lRuns/162 |
Weeks | 68 | 22 | 7 | 14 | 66 | 14 | 115 | 249 | -7.85 | 560 | 0.1060 | 4.80 | 0.5087 | 82.41 |
Hardy | 102 | 31 | 4 | 24 | 49 | 1 | 98 | 310 | 2.83 | 629 | 0.1245 | 4.68 | 0.5827 | 94.39 |
Braun | 91 | 39 | 7 | 37 | 38 | 6 | 129 | 308 | 13.48 | 663 | 0.1403 | 4.56 | 0.6399 | 103.67 |
Fielder | 96 | 30 | 2 | 34 | 65 | 12 | 134 | 292 | 13.55 | 694 | 0.1395 | 4.46 | 0.6223 | 100.81 |
Hart | 93 | 45 | 6 | 20 | 25 | 5 | 109 | 339 | -14.7 | 657 | 0.0976 | 4.34 | 0.4237 | 68.64 |
Cameron | 56 | 25 | 2 | 25 | 53 | 6 | 142 | 194 | -0.23 | 508 | 0.1195 | 4.23 | 0.5057 | 81.92 |
Hall | 53 | 22 | 1 | 15 | 35 | 3 | 124 | 189 | -18.4 | 448 | 0.0789 | 4.10 | 0.3236 | 52.42 |
Kendall | 93 | 30 | 2 | 2 | 43 | 13 | 45 | 344 | -25.55 | 587 | 0.0765 | 3.98 | 0.3043 | 49.3 |
Pitcher | 27 | 11 | 1 | 1 | 8 | 0 | 86 | 149 | -41.22 | 308 | -0.0138 | 2.51 | -0.0347 | -5.62 |
PH | - | - | - | - | - | - | - | - | 0 | - | 0.1200 | 1.35 | 0.1621 | 26.26 |
Total Runs/162 | 654.21 |
Table 3: Analysis of Ned Yost’s 2008 lineup.
Note: lRuns = Runs based on lineup spot.
Another note: lRuns/PA = (lRuns)/(PA) + .12, because these are linear weights above average. The .12 is the factor that brings it up to absolute runs.
Final note: lPA/G from The Book.
Final note: Pitching numbers are a composite of Brewer SP hitting totals from 2008.
Clearly, we have a problem. According to our numbers, this lineup would only score 654 runs over the course of a season. The 2008 Brewers actually scored 750 runs. So what’s the problem?
Looking back at Table 2, we see that this data is for the 1999-2002 seasons. The average runs/game over these seasons were, respectively, 5.00, 5.00, 4.70, and 4.45, for an average of 4.79 runs/game over this period. 2008, on the other hand, had an average of 4.54 runs/game (Source: Baseball-Reference.com). So if we thrust a team with the same statistics as the 2008 Brewers into the 1999-2002 era (the steroid era), we would see a well below average scoring team. However, we know that the Brewers scored an above average amount of runs in 2008. Let’s take a look at wRAA, which is Runs Above Average based on wOBA for this lineup (Table 4).
Name | PA | wRAA | lPA | lPAwRAA |
Weeks | 560 | 2.7 | 777.6 | 3.75 |
Hardy | 629 | 13.7 | 758.16 | 16.51 |
Braun | 663 | 27 | 735.48 | 29.95 |
Fielder | 694 | 24 | 722.52 | 24.99 |
Hart | 657 | -0.7 | 703.08 | -0.75 |
Cameron | 508 | 10.3 | 685.26 | 13.89 |
Hall | 448 | -11.8 | 664.2 | -17.49 |
Kendall | 587 | -17 | 644.76 | -18.67 |
Pitcher | 308 | -26.59 | 406.46 | -35.08 |
PH | 218 | 0 | 218.86 | 0 |
TOTAL | 21.62 | 17.09 |
Table 4: wRAA, both for the 2008 season and scaled for the plate appearances for this analysis.
So, from Table 4, we see the Ned Yost’s lineup would score 17.09 runs more than the average NL lineup. From Baseball-Reference.com, we have that NL clubs scored 4.54 runs/game. Over 162 games, this comes out to a total of 735.48 runs. So that means that this lineup, over 162 games, would be expected to score 752.57 runs. This is more like it. Now we have to alter Table 2 so that it is appropriate for the run environment we are analyzing.
I struggled with this part of the analysis for a long time, but thanks to the community over at www.beyondtheboxscore.com and Tom Tango, I was able to continue. Per Tango, in order to adjust for run environment, the only values that need to be adjusted are the out values. The adjustment necessary is NewValue = OrignalValue + (Runs/Outs).
In our case, we are 752.57 - 654.21 = 98.36 runs away from our expected run value. Also, looking at Table 2, we can find that there are 4208.6 outs made by this lineup over 162 games. So we need to adjust the K value and the Out value in Table 2 by adding 98.36/4208.6 = .0234. Here’s our new table (Table 5). This is a bit of a crude adjustment (optimally, we’d find new linear weight values for each slot and event, but this does the job for our purposes).
Batting Order | 1B | 2B | 3B | HR | NIBB | HBP | K | OUT |
1 | 0.515 | 0.806 | 1.121 | 1.421 | 0.385 | 0.411 | -0.299 | -0.305 |
2 | 0.515 | 0.799 | 1.100 | 1.450 | 0.366 | 0.396 | -0.292 | -0.301 |
3 | 0.493 | 0.779 | 1.064 | 1.453 | 0.335 | 0.369 | -0.287 | -0.292 |
4 | 0.517 | 0.822 | 1.117 | 1.472 | 0.345 | 0.377 | -0.302 | -0.304 |
5 | 0.513 | 0.809 | 1.106 | 1.438 | 0.348 | 0.381 | -0.294 | -0.300 |
6 | 0.482 | 0.763 | 1.050 | 1.376 | 0.336 | 0.368 | -0.276 | -0.283 |
7 | 0.464 | 0.738 | 1.014 | 1.336 | 0.323 | 0.353 | -0.266 | -0.273 |
8 | 0.451 | 0.714 | 0.980 | 1.293 | 0.312 | 0.340 | -0.257 | -0.263 |
9 | 0.436 | 0.689 | 0.948 | 1.249 | 0.302 | 0.329 | -0.248 | -0.254 |
Table 5: Linear weights above average adjusted for run environment.
And now, with this new table, we can form a correct analysis of Yost’s lineup (Table 6).
Name | 1B | 2B | 3B | HR | NIBB | HBP | K | OUT | lRUNS | PA | lRUNS/PA | lRUNS/G | lRuns/162 |
Weeks | 68 | 22 | 7 | 14 | 66 | 14 | 115 | 249 | 0.49 | 560 | 0.1209 | 0.5802 | 94 |
Hardy | 102 | 31 | 4 | 24 | 49 | 1 | 98 | 310 | 12.16 | 629 | 0.1393 | 0.6521 | 105.64 |
Braun | 91 | 39 | 7 | 37 | 38 | 6 | 129 | 308 | 23.49 | 663 | 0.1554 | 0.7088 | 114.82 |
Fielder | 96 | 30 | 2 | 34 | 65 | 12 | 134 | 292 | 23.32 | 694 | 0.1536 | 0.6850 | 110.98 |
Hart | 93 | 45 | 6 | 20 | 25 | 5 | 109 | 339 | -4.45 | 657 | 0.1132 | 0.4914 | 79.61 |
Cameron | 56 | 25 | 2 | 25 | 53 | 6 | 142 | 194 | 7.49 | 508 | 0.1348 | 0.5700 | 92.34 |
Hall | 53 | 22 | 1 | 15 | 35 | 3 | 124 | 189 | -11.21 | 448 | 0.0950 | 0.3894 | 63.08 |
Kendall | 93 | 30 | 2 | 2 | 43 | 13 | 45 | 344 | -16.69 | 587 | 0.0916 | 0.3644 | 59.04 |
Pitcher | 27 | 11 | 1 | 1 | 8 | 0 | 86 | 149 | -35.82 | 308 | 0.0037 | 0.0093 | 1.5 |
PH | 0 | 2 | 0.1200 | 0.1621 | 26.26 | ||||||||
Total/162 G | 747.27 |
Table 6: Analysis of Ned Yost’s lineup using our adjusted linear weights.
Here, we’re within 1% of our expected value for runs/162. The adjustment appears to be working. Now, let’s take a look at Sveum’s most common lineup (Table 7). Later, we will take a look at Ray Durham’s impact on the lineup, so for now we will look at only the players who were around for the majority of Yost’s time.
Name | 1B | 2B | 3B | HR | NIBB | HBP | K | OUT | lRUNS | PA | lRuns/PA | lRuns/G | lRuns/162 |
Cameron | 56 | 25 | 2 | 25 | 53 | 6 | 142 | 194 | 7 | 508 | 0.1338 | 0.6422 | 104.03 |
Hall | 53 | 22 | 1 | 15 | 35 | 3 | 124 | 189 | -12.25 | 448 | 0.0927 | 0.4336 | 70.25 |
Braun | 91 | 39 | 7 | 37 | 38 | 6 | 129 | 308 | 23.49 | 663 | 0.1554 | 0.7088 | 114.82 |
Fielder | 96 | 30 | 2 | 34 | 65 | 12 | 134 | 292 | 23.32 | 694 | 0.1536 | 0.6850 | 110.98 |
Hardy | 102 | 31 | 4 | 24 | 49 | 1 | 98 | 310 | 11.22 | 629 | 0.1378 | 0.5982 | 96.91 |
Hart | 93 | 45 | 6 | 20 | 25 | 5 | 109 | 339 | -3.62 | 657 | 0.1145 | 0.4843 | 78.45 |
Weeks | 68 | 22 | 7 | 14 | 66 | 14 | 115 | 249 | 0.45 | 560 | 0.1208 | 0.4953 | 80.24 |
Kendall | 93 | 30 | 2 | 2 | 43 | 13 | 45 | 344 | -16.69 | 587 | 0.0916 | 0.3644 | 59.04 |
Pitcher | 27 | 11 | 1 | 1 | 8 | 0 | 86 | 149 | -35.82 | 308 | 0.0037 | 0.0093 | 1.5 |
PH | - | - | - | - | - | - | - | - | 0 | - | 0.1200 | 0.1621 | 26.26 |
Total/162 G | 742.486 |
Table 7: Analysis of Dale Sveum’s lineup (without Ray Durham) using our adjusted linear weights.
Well, maybe Sveum didn’t know what was best for the Brewers. His lineup, over 162 games, is projected to score 5 runs fewer, or win ½ fewer games. Let’s take a look at the slot by slot by slot difference for these two lineups (Table 8)
Slot | Yost Runs/162 | Sveum Runs/162 | Difference |
1 | 94 | 104.03 | -10.04 |
2 | 105.64 | 70.25 | 35.39 |
3 | 114.82 | 114.82 | 0 |
4 | 110.98 | 110.98 | 0 |
5 | 79.61 | 96.91 | -17.31 |
6 | 92.34 | 78.45 | 13.89 |
7 | 63.08 | 80.24 | -17.15 |
8 | 59.04 | 59.04 | 0 |
9 | 27.76 | 27.76 | 0 |
Yost -Sveum TOTAL | 4.78 |
Table 8: Difference in Runs/162 games for Yost and Sveum’s lineups by lineup slot.
Sveum made no changes to the 3, 4, 8 or 9 spots in the order. Therefore, we see no difference between the two lineups in those slots. However, there are differences between the 1, 2, 5, 6, and 7 slots. One number should really jump out at you. Sveum’s lineup has a projected 35 runs less production out of the #2 spot in the order. This spot was planned to be a platoon between Hall and Durham, but a late injury to Durham negated this possibility. The conclusion that we can draw from this finding is that outside of the decision to bat Hall in the 2nd slot of the order, Sveum’s lineup actually was a bit better than Yost’s. However, this decision was so egregious that, over the course of the season, it would end up costing the Brewers ½ a win.
This, of course, begs the question of what the optimal lineup is. I will present more data on this in a later post.
December 18th, 2008 at 5:40 am
Jack…… is there any possible way you could dumb it down a bit… i realize im just a drunk idiot but ballpark me your showing me more statistics than an anti smoking ad… i realize u probably made it as simple as you can.. but we arent all the same major as you some of us are trying to be P.E. teachers CMON!
December 18th, 2008 at 5:40 am
Using words like “finding” and “the” just plain ridiculous
December 18th, 2008 at 10:05 am
This was AWESOME. Thank you, Jack.
December 18th, 2008 at 10:59 am
Thanks Jack. I am following what you are saying.
I have a cat named jack. He’s fat and orange. I wanted to name my second-born JACK, but the wife wouldn’t let me use the name again. I told her I would get rid of the cat.
December 18th, 2008 at 11:22 am
Do you think… NO!!!… well, I mean, the Jack whose posts you read could be the very cat you gave away. Unlikely, yes. But possible? No.
December 18th, 2008 at 11:23 am
Kade…you have five other dumb guys on this site. That’s the point of Jack. He makes one awesome post using numbers and calculations that we all wish we could. He makes us all feel stupid. Then, one of us posts and that brings everyone back down to Earth. Get it?
December 18th, 2008 at 1:26 pm
haha got it joe
December 18th, 2008 at 3:02 pm
Please, if something doesn’t add up to you, ask a question. There’s always a possibility that I missed something as well and I’m always looking to improve these analyses.
December 18th, 2008 at 4:51 pm
I’m not sure what you mean by ‘line-up.’ Just batting position or player variation? As far as I’m concerned, Yost’s problem was that he didn’t ‘line-up’ his best players on any given day. Instead, we got all that right-hand/left hand platoon stuff and Bill Hall.
His problem was that he didn’t play Kapler enough, Branyon enough, and that spunky second baseman/utility player who was always on the ball and clutch hitting, - what’s ‘is name? - instead of Weeks.
He didn’t play his best players.
December 18th, 2008 at 5:16 pm
Jay, when I say “line-up” in this post, I’m referring to merely changes in batting position. I totally agree with your point that he didn’t always use his players correctly - and I’ll be getting to that in a future post. This is only part 1.