I’ve stated that I believe the key to making the Price Guide the best possible tool for fantasy player valuation is to be transparent with how it works. By disclosing exactly what is going on, I hope that the community will be able to point out any flaws I have overlooked and provide insight into ways to improve.
With that in mind, I’m going to take a few posts to explain the methodology the Price Guide is using. A good deal of it is drawn from discussions elsewhere, but there are some unique aspects as well. (I also realize this is probably not terribly interesting stuff, so I figure that it is good to discuss it now while I’m basically just talking to myself.)
All of the systems for valuing players are based on finding the worth of the fantasy stats in relation to each other. All else being equal, is a player who hits 30 HR worth more than a player who steals 30 bases? How do those two relate to a player with 30 saves?
Comparing those players is not as simple as saying 30 = 30. Saves are more scarce than homeruns, and fantasy teams typically end up with far fewer saves than homeruns. Because they are more rare, each save is more valuable than each homerun. What we need to find out is exactly how much more valuable each save is.
To do this, we need to be able to put these various categories onto a single scale. This is actually a common problem in statistics, and the way it is solved is with standard scores. Standard scores will work perfectly for fantasy as well.
To compute the standard scores for each player’s stats, we want to subtract the stats of the average player and divide by the standard deviation for the pool of drafted players. That might sound complicated, but it is easy to do if you have a spreadsheet (and even easier with the Price Guide).
As an example, let’s generate values for a shallow, mixed league that uses the default Yahoo settings. In this league, there are 12 teams that each draft 9 hitters, meaning that a total of 108 hitters will be drafted for starting lineups.
Using the Marcel projections, then, the average stats for those 108 players will be:*
Some Extra Work for Rate Stats
However, we need to do some extra work to find the standard scores for BA. If a player has 2 AB all year and gets 1 hit, they’ll have .500 BA. A player who has 600 AB and manages 200 hits will have a lower batting average (.333), but this player makes a greater positive contribution to a fantasy team’s BA than the first.
What we need to do is convert BA from a rate stat to a counting stat. To do that, we ask, “How many more hits would this player get than the average player, given the same number of AB?” We know that the average player will bat .284, so the formula for each player is:
xH = H – (AB * .284)
Consider the player above with 1 hit and 2 AB. The average player, given 2 AB will get 0.568 hits (2 * .284). Our sample player got 1 hit, or 0.432 above average (1 – 0.568). The formula explains how this works out:
xH = 1 – (2 * .284) = 0.432
For the other player, the formula yields:
xH = 200 – (600 * .284) = 29.6
That fits with what we expect–a player who bats .333 throughout the season is much more valuable than a player who hits .500 in a vary small sample.
Having computed xH for each player, we will use the average of xH instead of the average BA (.284). Our new averages are:
The standard deviations for each category:
Computing Standard Scores
With the averages and standard deviations in hand, it is now possible to compute standard scores. Let’s use David Wright as an example, whom Marcel projects for 96 R, 101 RBI, 26 HR, 19 SB, 169 H, and 549 AB.
xH = 169 – (549 * .284) = 13.1
mH = (13.1 + 7.6E-15) / 8.0 = 1.6
mR = (96 – 76.8) / 11.6 = 1.7
mRBI = (101 – 75.7) / 14.4 = 1.8
mHR = (26 – 19.5) / 6.6 = 1.0
mSB = (19 – 10.5) / 9.9 = 0.9
Total = 1.6 + 1.7 + 1.8 + 1.0 + 0.9 = 7.0
Without any context, it’s not clear if those are good values or not. But if you do the same process for all the players, you’ll find that Wright has a very high value in all five categories. In fact, he ends up being the highest valued player in this league. You can see the full results that the Price Guide gives for this league:
Also notice that, if you plug in the stats of the theoretically average player, his value in each category will be 0. So any player with a positive value for a category is above average in that category; any player with a negative value is below average.
We now have a preliminary value for each player, but our work’s not done yet. Before we can generate dollar values, these values need to be adjusted to take into account the replacement level at each position. That will be the subject of Part II.
*You may have noticed that I left out one crucial step here: How did we figure out who the best 108 players were before we generated values? The Price Guide handles this by going through the entire valuation process multiple times until it arrives at the optimal draft pool. This iterative approach is a topic I’ll tackle later on in this series.