clock menu more-arrow no yes

Filed under:

Valuing Player Options: Part Two

New, comments

A deeper dive into the value of opt-outs

St Louis Cardinals Photo Day Photo by Mike Ehrmann/Getty Images

As you might have heard, this offseason is going to be a historic one for top-of-the-market free agents. Manny Machado and Bryce Harper are hitting the free agency market at preposterously young ages, and both of them are likely to secure contracts larger than any previously offered in baseball. It won’t just be the money, though. Machado and Harper are both going to get opt-outs in their contracts. Opt-outs, also known as player options, are all the rage in elite free agent contracts these days. As teams have shied away from exceeding the luxury tax thresholds, they have turned increasingly to player options as a way to give free agents something valuable without increasing their tax bill. The Cardinals will very likely include options on the contracts they offer to Harper and Machado this season, assuming they make a bid for both superstars.

It’s clear that player options have worth for players. If you had an option for a 5 year, 60 million dollar contract or the same contract plus the ability to opt out after three years, the second contract would be the clear choice. How much is it worth, though? Would you rather have 5/70 or 5/60 with an option? What about 6/80 or 5/60 with an option? Knowing how to value these contracts will be a key part of this offseason’s contract negotiations. In this two part series, I’m going to advance a framework for valuing player options. Part 1 focused on a theoretical model for the extra money a player would need to receive in lieu of an option. Part 2, below, elaborates on problems with the theoretical model.

So, last week I advanced a basic model for pricing player opt-outs in contracts. This week I’m going to run through some of the practical considerations that present problems in my theoretical model, and then present an alternate method that increases the flexibility of our inputs. As before, when I think of a contract, I’m going to consider all years after the opt-out as optional, then put a numerical value on what a player would pay to have the option between the contractual years and re-entering free agency.

One of the first questions I had was the cost of a win above replacement. For my initial model, I assumed teams would always pay $8 million per WAR. That’s a pretty simplistic assumption, obviously, and we can probably do better. Finding data on what a win costs on the open market is surprisingly difficult, though. There’s the Fangraphs method here that values wins at a steep $10.5 million. Here’s an old Dave Cameron article with a history of dollar values. The 2017 free agent market made wins look a little cheaper, a bit above $8 million. What’s a fellow to do? Well, first things first. Win cost definitely doesn’t look constant over time. It’s been creeping up. How much? Eh, this is very much an endpoints question. Depending on where you start and end the evolution of cost per win, it looks like wins are about $250,000 more dear each year on average. There’s a decent amount of variability around that, however- something like $250,000 +/- $800,000 per year to put a specific number on it. So, great. Now we have a new randomly varying function for the cost of a win in the future. How does this new variable fit into my elegant use of Black-Scholes from the previous entry? Well, it doesn’t, but we’ll cover that at the end of this article.

While we now have an elegant function for the cost of a win, that’s worth nothing if we can’t figure out how much players tend to vary year over year. In my previous article, I took the standard deviation of year-over-year WAR changes for qualifying hitters. That approach is rife with problems though. For one thing, WAR isn’t all that reflective of true talent in one-year samples. Defense, BABIP, injury luck- tons of components of WAR are noisy. There are two possible solutions to this. One would be to build in some kind of auto-correlation that nudges players back towards a mean. That sounds both inelegant and overly involved to me, however. Instead, with the help of noted winged horse Andy Schrag and illustrious former editor Craig Edwards, I managed to track down a few years’ history of ZiPS projections from Dan Szymborski. With these in hand, I can take a look at how estimates of players’ true talent change year-over-year. As I expected, the YoY standard deviation in ZiPS estimates is lower than that of calculated WAR. It comes in around 1.4 wins per year for players with 2.5 or more wins, lower than the 1.9 win standard deviation in realized WAR. Conveniently, it also seems to scale pretty well; I did a quick check on two-year standard deviation on one pair, and it was indeed higher by a factor of the square root of two, as you’d expect with no autocorrelation. There’s one additional attractive part about using ZiPS projections. If you assume that teams assign contracts based on projections, what a player did in his last year isn’t really relevant to the contract they would offer him if he became a free agent. Instead, their projections for the next year would be more relevant, so that’s what we’ll use here. Are team projection systems the same as ZiPS? Well, probably not, but it’s an excellent public estimate.

What about player aging? Well, first things first. Age doesn’t appear to affect year-over-year player volatility. This is really convenient, because handling aging would be painfully difficult if volatility depended on age. I’d want more data to be fully certain, but the standard deviation of projection changes of the over-30 crowd in my sample wasn’t meaningfully different from that of the whole population. Now that we can apply the same volatility to every age of player, all we have to do is lower projected wins by .5 for each season a player is over 30, per research here.

Just like that, we’ve folded in aging. We have, however, made our model more or less unworkable as a simple formula. There’s a solution that works, though. Inspired by commenter so_cal_cards_fan and his former career as a financial computer programmer, I decided to take a quick detour to Monte Carlo. The Monte Carlo Method is basically sampling a random process an incredibly high amount of times to arrive at average answers. Basically, all we have to do is make win projections change a random amount based on a normal curve every year, make the cost of a win do the same, and calculate how much an option is worth to the player in that specific state of the world. Then, we repeat the process ten million times, et voila.

Of course, repeating something ten million times is pretty painful to do by hand, so I’ve used Python to automate it for me. This is necessarily a little less accessible- more people can use Excel than run a Python script, but that’s the price we pay for using Monte Carlo to solve it. The code I wrote to run this is available here. There are a few lazy parts in it, as you’d expect from code written by a sloppy, self-taught coder in his spare time. I estimated the average WAR per year as the midpoint between the WAR on the opt-out date and the WAR in the last year of the contract, which is a little sloppy- probably want some kind of integral there at some point in the future. Additionally, there’s still no time value of money, which I still think is reasonable given how we talk about contracts.

The point is, though, this code lets you put in a player’s age, skill level, and opt-out details, and then it tells you what the player option is worth. Let’s go through the example of Jason Heyward to give a quick explanation of the model variables:






First, we’ve got the player’s initial WAR projection, 4.7 WAR for 2016 in Heyward’s case. The opt-out is in three years, so that gives us our ExpiryYears. Heyward was 26 when he signed the contract- bam, that’s Age0. Now we come to the contract terms. Heyward’s deal paid him $78 million from 2016 to 2018. This offseason, he has the choice to opt out. If he doesn’t (he won’t), the contract is a further 5 years at approximately $24 million per year. There we have it- OptionValue and TenorYears. That’s all we need to calculate Heyward’s value with and without a player option. The output of the program looks like this:

What does this mean? Well, it’s crazy to think about now, but in 2016, Heyward could have expected to make about $155 million over the five years from 2019-2023 if he became a free agent this offseason. That’s what ‘No option earnings’ are in the above output. By signing a player option, Heyward cut off the bad part of the distribution- there aren’t any worlds where he makes less than $120 million over those five years. Changing that much of the distribution is enough to bump up his average earnings from 2018-2023 from $155 million to $180 million- a value of $25.7 million.

Consider this hypothetical. In 2016, let’s say the Cubs offered Heyward a choice between the contract I described above and a three year, $103.7 million contract. It’s pretty straightforward to run through the math- if he took the current contract, he figured to make $78 million in the first three years plus the $180.3 million ‘Option earnings’ on average over the subsequent five years, for a total of $258.3 million in earnings. If he took the 3-year contract, he’d expect to make $103.7 million for three years, plus ‘No option earnings’ of $154.7 million the next five years, for a total of $258.3 million in earnings. The two contracts end up being equivalent. So, there you go. Want to know what the Cubs would have had to offer Heyward in a straight three-year contract with no gimmicks to make him indifferent? About $104 million. Sometimes math is neat.

Conveniently enough, Bryce Harper and Jason Heyward look very similar from this stylized model (good news- everyone looks very similar in this stylized model!), so we can value up Harper more or less for free. They both hit free agency at 26. ZiPS projections aren’t out for 2019 yet, but Harper was projected for 4.7 WAR this year, exactly identical to Heyward’s 2016 projection. If you plug in some of the longer contracts I’ve seen bandied about (10 years, $300 million with an opt out after three years), you can get a realistic estimate of what that might look like as a three year deal, and it’s not pretty. The value of that three-year opt out is $68.6 million, a pretty intimidating sum. That’s the equivalent of a three-year, $158.6 million deal in terms of expected cost to the Cardinals. So look- I’m a big Harper fan, but I’m not sure I want to throw a bunch of player options in the contract to get the job done. I think I’d rather the Cardinals just pay him with money, instead of some fancy contract shenanigans.

There’s still one more question that needs to be answered here. I feel pretty confident about this model for a single opt-out. What about two opt-outs? Well, that’s significantly more complicated, but I have at least a few rules of thumb. First of all, every successive option is worth progressively less. The reason for this is pretty intuitive: at the time of a player’s first opt-out, there’s a 100% chance the contract is still in effect. At each successive opt-out, however, there’s a chance the contract has already been torn up. As such, the value continues going down. Additionally, a player is less likely to exercise a given player option for each additional option they have remaining. Think of it this way. In a contract with a single opt-out, an economically rational player would be willing to go back to free agency for a million dollars more than their existing contract. It’s basically free money. When there are future chances to opt out, however, it’s more worthwhile to wait and see if your value changes. You’re only sacrificing the million dollars, and the upside is potentially huge. Those are the two key points of contracts with multiple opt-outs. If you want to read more but also get really angry at me for sending you to a paper on valuing multiple-expiry options, here’s a lovely introduction to Bermudan options.

Thanks to Andy Schrag and Craig Edwards for their help finding Dan Szymborski’s archived ZiPS projections online. Thanks to Dan Szymborski for providing an incredible resource for public analysts absolutely free of charge. If you’d like me to run any theoretical option costs, please let me know in the comments, as I know it’s inconvenient or difficult for some people to run the code (on mobile, for example).