A Basic Model of 2014 Free Agent Pricing

Back in November, Ken Rosenthal reported that the asking price for Ervin Santana was “more than $100 million on a five year deal…” It’s mid-March, Santana is still unsigned, and over the weekend, he left the Proformance agency and is now looking to sign a one year deal for essentially the value of the qualifying offer. Instead of $100+ million over five years, he’s going to get $13 or $14 million for one year, and then try again next winter.

It didn’t have to be this way, of course. In that same early off-season report, Rosenthal listed Ricky Nolasco‘s asking price at $80 million over five years; he signed for $50 million over four instead. It’s not that unusual for agents to throw out a high early valuation in an attempt to give themselves room to make concessions while still landing a high value contract. The problem for Santana isn’t so much that his initial ask was absurd — it was, of course — but that it didn’t adjust downwards quickly enough as the market told him that it was absurd. With a more aggressive response to what the market was saying about his value, Santana likely could have landed a deal in that $40 to $50 million range earlier in the off-season, before teams spent their money on other alternatives.

But because someone in Santana’s camp believed they could land a deal closer to their original price, the market moved on without him. His story is an example of how harmful it can be to have an unrealistic baseline heading into free agency. And unfortunately for Santana, the market simply doesn’t care about W/L record and ERA the way it used to. Anyone developing a free agent pricing model based on outdated statistics is going to be in for a rude awakening when the offers actually come rolling in, because teams are better at forecasting future value for aging free agents than they were even five years ago.

Last week, I looked at free agent pricing from a $/WAR perspective, and the reality is that the size of a free agent’s contract actually tracks his projected WAR pretty close in most cases. While WAR is an imperfect model with imperfect inputs — and teams are using more sophisticated formulas with better data than we have publicly, certainly — forecast WAR is actually a surprisingly good proxy for how much a player will get on the open market. As evidence, here’s a graph of the total contract price plotted against the total contract WAR forecast for the 47 +1 to +5 WAR free agents — relievers excluded — who have already signed.


The correlation between contract price and forecast WAR over the life of the deal is .95. There are some guys who are a bit away from the line, both on the positive and negative side, but overall, WAR models free agent pricing (for regular position players and starting pitchers) pretty well, even with its flaws and limitations. The fact that teams are using more advanced tools doesn’t change the fact that our version of WAR tracks with those decisions in most cases, and free agent pricing can be understood for a large number of players by simply knowing his forecast WAR.

However, I think it’s fair to say that the regression equation listed in the chart above won’t pass the simplicity test for most people. Besides the scariness that accompanies the inclusion of letters in a calculation, the x value requires the length of the deal to be known ahead of time in order for the formula to work, which doesn’t help us so much when players are still negotiating their deals and the term is not yet set.

So, I thought it would be interesting to see if I could create a basic model that would allow us to understand free agent pricing using only projected 2014 WAR. That way, the variable driving the model could be easily obtained here on FanGraphs, and we could avoid all the messiness of dealing with aging curves for players signing long term deals. Can we create a model that gives us a reasonable free agent price for players using just their next season WAR forecast?

I think the answer is yes. Just like WAR is imperfect, a model with one variable is also not going to work perfectly, and so I also had to throw out players who were going to be older than 35 next year, since there are high quality older players — Hiroki Kuroda, for instance — signing deals that simply don’t look anything like what similarly valuable younger players are getting. And like with the $/WAR model, we’re only going to focus on position players and starting pitchers with at least +1 WAR forecast, since those are the contracts that we actually care about. This model is designed to work for regular players in their late-20s or early-30s, essentially.

With those caveats, here is what I came up with:

Take a player’s 2014 WAR forecast — I used a 50/50 hybrid of ZIPS and Steamer, but this should work just fine with either one by themselves — and multiply it by five; that’s his expected annual average value. A +5 WAR player will get around $25 million per year. A +3 WAR player will get around $15 million per year. A +1 WAR player will get around $5 million per year. This is basically the scale of per season salaries that we see in MLB right now.

Now, for the slightly trickier part; the length of the deal. This is really where we’ve seen inflation in MLB over the last few years, and this is where we can’t just apply one standard calculation to all players. Better players get longer deals, and the multiplier for a +5 WAR player isn’t the same as the multiplier for a +1 WAR player. But, we can bucket players to get just a few different multipliers and come up with some pretty solid results. Because I’m trying to build as simple a model as possible, I used just three buckets:

+3 WAR and up: 2014 WAR * 2.0
+2 to +2.9 WAR: 2014 WAR * 1.5
+1 to +1.9 WAR: 2014 WAR * 1.1

For high end players, the length of their deal is roughly double their forecast WAR, rounded to the nearest year. For solid above average contributors, they get 50% more years than their forecast WAR. For below average but still useful role players, they get 10% more years than their forecast WAR. This worked out pretty well for most players, but I noticed that the lengths for catchers was just consistently too high. Catchers just don’t get the same kind of long term security as other players, even if they’re really good, so I knocked above average catchers down to a multiple of 1.3.

Yes, all of this is entirely subjective. It’s a toy, essentially, much more like Game Score than Linear Weights. But in my world, there’s room for fun little toys that help us explain somewhat complicated calculations in an easier way, and while this still requires some math, it’s easy enough to calculate without any assistance. And, most importantly, it works pretty well.

For the 39 free agents who fit the criteria – +1 WAR minimum forecast, maximum age of 35, no relievers — here is what the model spit out for free agent prices.

Player 2014 WAR ProjYears ProjAmount ProjAAV ActYears ActAmount ActAAV Difference
Robinson Cano 4.9 10 $245 $25 10 $240 $24 $5
Masahiro Tanaka 4.3 9 $194 $22 7 $175 $25 $19
Jacoby Ellsbury 4.0 8 $160 $20 7 $153 $22 $7
Brian McCann 3.5 5 $88 $18 5 $85 $17 $3
Shin-Soo Choo 3.3 7 $116 $17 7 $130 $19 -$15
Ubaldo Jimenez 2.8 4 $55 $14 4 $50 $13 $5
Carlos Ruiz 2.7 3 $40 $13 3 $26 $9 $14
Ricky Nolasco 2.6 4 $52 $13 4 $49 $12 $3
Hunter Pence 2.4 4 $48 $12 5 $90 $18 -$42
Matt Garza 2.3 4 $46 $12 4 $50 $13 -$4
Juan Uribe 2.2 3 $33 $11 2 $15 $8 $18
Jhonny Peralta 2.2 3 $32 $11 4 $53 $13 -$21
Mike Napoli 2.1 3 $32 $11 2 $32 $16 -$1
Dan Haren 2.1 3 $32 $11 1 $10 $10 $22
Tim Lincecum 2.0 3 $29 $10 2 $35 $18 -$6
Omar Infante 2.0 3 $29 $10 4 $30 $8 -$1
Scott Kazmir 2.0 3 $29 $10 2 $22 $11 $7
Curtis Granderson 1.8 2 $18 $9 4 $60 $15 -$42
Phil Hughes 1.7 2 $17 $8 3 $24 $8 -$8
David Murphy 1.7 2 $17 $8 2 $12 $6 $5
Scott Feldman 1.6 2 $16 $8 3 $30 $10 -$14
Jarrod Saltalamacchia 1.6 2 $16 $8 3 $21 $7 -$5
Dioner Navarro 1.5 2 $15 $8 2 $8 $4 $7
Jason Vargas 1.5 2 $15 $7 4 $32 $8 -$18
Marlon Byrd 1.4 2 $14 $7 2 $16 $8 -$2
Mike Pelfrey 1.4 2 $14 $7 2 $11 $6 $3
Kurt Suzuki 1.4 2 $14 $7 1 $3 $3 $11
Nelson Cruz 1.3 1 $7 $7 1 $8 $8 -$2
Kelly Johnson 1.3 1 $6 $6 1 $3 $3 $3
Geovany Soto 1.2 1 $6 $6 1 $3 $3 $3
James Loney 1.2 1 $6 $6 3 $21 $7 -$15
Chris Young 1.2 1 $6 $6 1 $7 $7 -$1
Justin Morneau 1.2 1 $6 $6 2 $13 $6 -$7
Rafael Furcal 1.2 1 $6 $6 1 $3 $3 $3
Corey Hart 1.1 1 $6 $6 1 $6 $6 -$1
Josh Johnson 1.1 1 $5 $5 1 $8 $8 -$3
Jason Hammel 1.1 1 $5 $5 1 $6 $6 -$1
David DeJesus 1.0 1 $5 $5 2 $11 $5 -$6
J.P. Arencibia 1.0 1 $5 $5 1 $2 $2 $3

This model basically nails the Cano contract, and comes very close on Ellsbury and McCann. It gets the years right for Choo, but underestimated the price by $2 million per year. It overshoots on Tanaka by two years and $3.5 million per year, but keep in mind, the fourth year opt-out he obtained has significant value, and that’s not factored in here. With the opt-out, his contract is worth more than a straight 7/$175M without the opt-out, and is probably close to this projection. For the high-end players, the calculation works very well, I think.

It’s a bit more of a range with the mid-tier guys. Nolasco, Jimenez, and Garza were projected almost perfectly, but then there’s Hunter Pence at nearly half of what the Giants gave him, and Juan Uribe getting double his contract value from the Dodgers. Curtis Granderson is the largest outlier of all, getting projected for $18 million in total over two years, when he actually got $60 million over four years.

But Granderson and Pence are really the two big outliers here, where the market clearly thinks the forecasts are too low. Every other player was within $20 million of their projection, and 70% of the players were within $10 million. For a toy with just one input variable, that’s not so bad.

But let’s get back to Ervin Santana, the inspiration for this post and the model itself. If his camp would have used something like this to set their baseline expectations, they would have seen him as a +2.3 WAR pitcher. Multiply that by five, and their projected AAV would have been $11.5 million, and the solid average multiplier of 1.5 years would have told him to expect a 3.4 years, which rounds down to a three year deal. This model would have suggested Santana should expect to sign for 3/$35M. According to Ken Rosenthal’s report from this morning, the best offer he has on the table right now is for $30-$33 million over three years. I’d call that a win for the model.

As Granderson and Pence show, this isn’t a perfect valuation tool, and the market doesn’t always agree with WAR. We had to kick out old players, bench players, and relief pitchers in order to make it work, and if we were striving to be as accurate as possible, we’d make a bunch of extra adjustments for things like age, whether or not the player received the qualifying offer, and we’d probably re-weight the WAR forecast to lean more heavily on the most recent season.

But there’s value in simplicity, and this model can be explained in English. Everyone’s annual salary is roughly $5 million per win in forecast WAR, and the contract length is 200% of forecast WAR for star players, 150% of forecast WAR for solid contributors, and 110% of forecast WAR for role players. For the 39 players in the sample, the model projected 111 years and $1.48 billion in contract values; they actually signed for 116 years and $1.55 billion. Not perfect, but pretty decent.

Had Santana’s representatives used something like this as a baseline, perhaps he’d have already gotten a contract similar to what Garza, Jimenez, and Nolasco signed for. A misunderstanding of what the market values has left him considering one year offers, but this could have been avoided by creating a realistic baseline using even a simple calculation like the one above. For any agent or player heading into free agency, a calculation like this should be the bare minimum they do to prepare for what the market will pay them. Expecting $100 million when the market thinks you’re worth $35 million simply isn’t a very good way to go.

Print This Post

Dave is a co-founder of USSMariner.com and contributes to the Wall Street Journal.

34 Responses to “A Basic Model of 2014 Free Agent Pricing”

You can follow any responses to this entry through the RSS 2.0 feed.
  1. tz says:

    Nice little rule of thumb, kind of like a Zillow for FA contracts.

    But even with Zillow, some folks would still list their home for $500K when comparables are going for half that amount. And then, not re-adjust quickly.

    Vote -1 Vote +1

  2. JayT says:

    Great article. Have you tried running the numbers for past years? I’d be curious to see how it holds up over a larger sample.

    Vote -1 Vote +1

    • Dave Cameron says:

      It’s in the plan, but the problem is we don’t have a big archive of past projections. Even archived forecasts from prior years aren’t entirely an apples-to-apples comparison because the projection models can change, using better inputs and refining their calculations. Ideally, we’d want to take the current ZIPS/Steamer algorithms and apply them to past years to create forecasts for those years, but that’s not quite as simple as it sounds.

      Also, the multipliers would obviously change each year, so we couldn’t just take the numbers for 2014 and put them on 2006, for instance. We’d have to come up with models that work for each year based on MLB’s revenues and the free agent prices in those years.

      Vote -1 Vote +1

      • Baltar says:

        I’d much rather see you use this model for next year before the FA’s start signing, perhaps with an estimate of inflation thrown in.

        Vote -1 Vote +1

        • Max says:

          I would like to see this too. Get some sort of quick look at next year’s free agents.

          Vote -1 Vote +1

        • isasson says:

          Great stuff Dave. Would love to see this much more complex and accurate one day with a list of what FA are really worth

          Vote -1 Vote +1

      • A good idea says:

        “Ideally, we’d want to take the current ZIPS/Steamer algorithms and apply them to past years to create forecasts for those years, but that’s not quite as simple as it sounds.”

        I’m surprised that wasn’t done when developing the current algorithims. Seems like a good method to check their validity.

        Vote -1 Vote +1

  3. maqman says:

    Good thinking Dave, I’d trust this before any agent.

    Vote -1 Vote +1

  4. Tim says:

    So Mike Trout should get twenty years and a billion dollars?

    +20 Vote -1 Vote +1

    • Eminor3rd says:

      Pretty much.8.6 WAR average, so $43m AAV for 17 years.

      17/$731m sounds about right, lol

      +22 Vote -1 Vote +1

      • Jon says:

        Not even sure it’s a LOL. You have to adjust for the fact you’re buying out discount years (WAR*6M-1M for 2014, 1.2*WAR*6M for 2015-17), which we’ll call $110M. That gets you to 17/$620M. Now let’s be nice to Dave’s model that threw out the old guys and assume only 15 years. Keep the AAV at 43 and you’re at 15/$530M. We’ve heard numbers like that talked about, and if it were insurable, it may not be unrealistic. I think we’d all have preferred that to 15 years of Pujols and Hamilton combined at $375M. Especially with hindsight (yuck!).

        Vote -1 Vote +1

  5. Scott Lindholm says:

    Fascinating work, Dave. Could you answer a quick question for me? I reference the $5M per fWAR point often and am often told it’s closer to $6-7M, which I believe refers to free agent contracts.

    Could you clarify this for me and set me straight? I would greatly appreciate it.

    Vote -1 Vote +1

    • Dave Cameron says:

      The price per win isn’t static; it changes from year to year based on league revenues and spending. It was around $5 million per win last winter; it’s closer to $6 million this winter.

      The $5 million per win I reference in this post is strictly talking about AAV. The inflation that pushes it up to $6 million per win is coming in the years, as on a long term contract, a player will decline in value but his salary is almost always steady or increasing.

      Vote -1 Vote +1

    • ankle explosion hr celebration says:

      The $6-7M figure comes (I think) from work by Lewie Pollis, in which he estimates the price per win looking backwards, i.e. directly calculating for each contract the money paid out and how many wins the player produced. Dave’s method is using projected, not actual, WAR.

      You could think of the 6-7M price as what GMs are actually paying per win, and the 5-6M price as what projection systems think they are paying per win. There are strengths and weaknesses for each method.


      Vote -1 Vote +1

  6. Greg says:

    How would Homer Bailey’s contract look in this model?

    Vote -1 Vote +1

    • Dave Cameron says:

      Part of the beauty of this model is that you can run the calculations yourself, for any player, since it’s just a couple of different data points.

      ZIPS/Steamer has Bailey as a +2.5 WAR pitcher. Multiply that by 5 for AAV, and you get $12.5M in expected AAV. For the years, the +2 to +3 WAR multiplier is 1.5, so you get 3.75 years, which rounds up to 4. So, the model would expect 4/$50M.

      Now, keep in mind, this is a FA price model, not an extension price model. But really, players should be signing for less than their expected FA prices if they aren’t free agents, so in this case, it simply makes Bailey’s deal look like even more of an overpay. Or, perhaps stated more accurately, the model points out the huge perception difference between what ZIPS/Steamer see Bailey as and what the Reds see him as. At 5/$95M, the Reds valued him as a +3.5ish WAR pitcher.

      Vote -1 Vote +1

  7. VinceClortho says:

    LOLGiants. Also this toy kind of hates the Rays, which is maybe a little surprising.

    Vote -1 Vote +1

    • chaz says:

      In the Giants defense, his projected WAR of 2.2 is quite low. His average over the last 3 years is 3.7 and for his career is 3.5. I am not sure why the projection is so low…for some reason ZIPs thinks all his power is going to disappear this year (his ISO is projected to be lowest of his career, by far.) He has been a very consistent player so this is pretty questionable assessment IMO.

      Vote -1 Vote +1

  8. Eric R says:

    “+3 WAR and up: 2014 WAR * 2.0
    +2 to +2.9 WAR: 2014 WAR * 1.5
    +1 to +1.9 WAR: 2014 WAR * 1.1″

    2.5xWAR-2 will give you a pretty decent estimate of that :)

    “As Granderson and Pence show, this isn’t a perfect valuation tool, and the market doesn’t always agree with WAR. ”

    What about reverse engineering the ‘market’ projected WAR using the formula? 2.9 WAR would be as close to a 4/$60M projection as you could get. The years ‘table’ doesn’t do a 5 year projection at all, and the proposed formula only does 5 year deals in ranges of $52-$60M, so can’t quite do the same for Pence.

    Vote -1 Vote +1

    • Dave Cameron says:

      (2.5xWAR)-2 gives you some pretty crappy results at the top end. It goes 7/122 for McCann instead of 5/88, 6/99 for Choo instead of 7/115, 5/69 for Jimenez, 5/65 for Nolasco, etc…

      It gets you similar answers for a lot of players, but misses pretty widely on some of the more notable contracts, so a tiered breakdown is probably better.

      Vote -1 Vote +1

      • Eric R says:

        Your table has McCann at 3.5 WAR;

        “+3 WAR and up: 2014 WAR * 2.0″

        Am I misunderstanding the tiers? Should the tiered data say 7 years as well?

        Vote -1 Vote +1

        • Dave Cameron says:

          “This worked out pretty well for most players, but I noticed that the lengths for catchers was just consistently too high. Catchers just don’t get the same kind of long term security as other players, even if they’re really good, so I knocked above average catchers down to a multiple of 1.3.”

          Vote -1 Vote +1

        • Eric R says:

          I missed that– granted that said, I only claimed the formula closely matched the tiers :)

          For the 39 players listed, the tiers got 17 right and the formula 16. +/- 1 years were 33 and 32 respectively.

          While you found some examples where the formula gave too many or too few years, to end up with a similar number of exact and close numbers, there are presumably a couple where the formula did better?

          Vote -1 Vote +1

        • Eric R says:

          One other thing– what I did was look for a best fit to the tiers, not a best fit to reality.

          For that I get 2xWAR-0.9; that gets 17 exact matches and 36 +/- 1 year [with the 1.3 factor for catchers].

          My last post I didn’t use the catcher adjustment, so the tiers come up with 19 and 33 respectively, so still in the same neighborhood.

          Vote -1 Vote +1

        • Dave Cameron says:

          Players that the 2.5x-2 model was better:

          Granderson: 3/27 instead of 2/18
          Suzuki: 1/7 instead of 2/14

          That’s it. Everyone else, it was either the same forecast or one further from actual.

          A 2x-0.9 formula basically just chops a year off the contracts for the top end guys. so instead of getting really close on Cano, Ellsbury, McCann, etc…, it misses when it doesn’t need to. If you wanted to do 2x-0.9 for all the guys below +3 WAR, then you’d get closer on Granderson and Loney, but you’d overshoot on Cruz, Johnson, and Uribe. I don’t see it as a real improvement, and it’s not as simple.

          Vote -1 Vote +1

  9. Nick says:

    This is great if you know the value of the market after the fact. It would be interesting to see what this model was in 2013 in relation to Santana. That would be what his camp was working with.

    Vote -1 Vote +1

    • Dave Cameron says:

      Yes, we’re clearly cheating a bit by building this model to fit the data we already have. However, while inflation will make the numbers a bit different each year, the 2014 market isn’t so vastly different from the 2013 market that they couldn’t have built something like this before the winter began.

      Vote -1 Vote +1

  10. Ruben Amaro Jr. says:

    Basic model? My analysis nerds tell me that you need COBOL for big jobs like this.

    Vote -1 Vote +1

  11. Tomas says:

    Jose Abreu comes out for 6 years and 93 mil.

    Considering how big of a hole the Sox had at first base, that’s looks like a really good signing!

    Vote -1 Vote +1

  12. rb says:

    I’m just disappointed that I will now be seeing a lot fewer references to Bean Stringfellow.

    Vote -1 Vote +1

  13. pft says:

    ” Multiply that by five, and their projected AAV would have been $11.5 million,”

    Why would he multiply by 5 when the market seems to be paying 6? Also, players may not agree with the regressions. Especially those who have had an injury or an off year in the past 3 years these projections may be too conservative. Factor in an expected 5% increase in salaries per season and I think a 5/80 salary seemed attainable at the start of the offseason.

    It seems the market has corrected for some reason, especially for non-elite starting pitchers as the offseason progressed (specifically after the owner/GM meetings). The reasons for this and the amount of the correction would be an interesting topic to explore

    Vote -1 Vote +1

  14. Nick says:

    I think the issue with Granderson is that Steamer really dislikes him and seems to be weighing last season particularly heavy, even though he was hurt and only played 61 games. ZiPS projects him for +2.2 WAR but that is in just 474 PA. On a per 600 PA basis, that rates up to +2.8 WAR. Using that number, Granderson comes in at 4/56, only $4M less than what he got.

    Of course, it might not be fair to just use ZiPS and throw Steamer aside because it doesn’t spit out a number you don’t like, but I’m inclined to believe a healthy Granderson is closer to a +2 to +3 win player than +1.5 win player, which makes the contract look more understandable.

    Vote -1 Vote +1

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current ye@r *