top of page
Ryan Kokiko

Make Your Own Player Rankings (2020 Fantasy Baseball)

We put a lot of faith in fantasy analysts to make accurate player rankings to use in drafts. Because the order of players in draft lobbies is based on expert rankings, your league’s draft result will more or less naturally follow that default order. You can trust that most all of the top 100 players in the rankings will be drafted in the top 100-120 picks. Ordering your draft lobby by ADP (Average Draft Position) instead of analyst rankings may give you a better sense of when players go on average, but if everyone else in your league is looking at the default order, they will probably make selections based on that order.


The experts on your fantasy league’s site are paid to analyze baseball and make predictions. They consider everything and spend months fine tuning their rankings. Chances are that if you’re reading this then you do not have that time or energy to invest in fantasy baseball. So why work harder when you can work smarter? Fantasypros aggregates analyst rankings from all the fantasy sites in their “Expert Consensus Rankings”, found here. This alone is a good reference point to use. Your site’s fantasy expert may have an unusual bias or strange projection method. By simply comparing your site’s rankings with the consensus rankings, you can identify players who have the largest differences, positive and negative. This is a 10-minute way to find value picks in your league.


An even better, but more time-consuming, way to gain an edge in fantasy leagues is to develop your own rankings to reference alongside expert rankings. Two data points are always better than one. There are many different ways to project and rank baseball players. The method outlined here requires some basic understanding of Microsoft Excel if you want to do it at home. Alternatively, you can just use the results from method, which are different from any other player rankings and found at the bottom. My process involves calculating a Z-score for each player’s contribution in each stat. A Z-score is the measure of how many standard deviations a data point is from the average. In fantasy baseball context it simply means how much better or worse than average a player is. By calculating Z-scores, you can compare a player’s contribution in one stat to another player’s contribution in a different stat. It essentially answers the question “Is Player A’s SBs worth more than Player B’s AVG?”. If your site has a player rater tool then this method is probably similar to how that calculates each player’s worth.


This article will focus on hitter rankings for Roto or H2H Categories leagues. The first step is finding player projections that you trust. All the major fantasy sites have their own process for stat projections and yes, you guessed it, Fantasypros aggregates those projections here. If two data points are better than one, the most recent consensus projections of 10+ sources are even better.


A standard 12-team league will have 300 players drafted. Between 160 and 190 of them will be hitters (depending on how bench spots are used) so you need to make hitter rankings for 200 to 250 players to make sure you capture everyone relevant on draft day. As of 2/21 the consensus projections have 253 players getting 350 or more ABs. Let’s use that as our sample. Sort the AB column in the projections, copy the stats for every player with 350+ AB, and paste the projections in cell B2 of an Excel sheet. In row A label each column with the corresponding stat from Fantasypros (seen below). You can delete the stat columns that are not relevant to your fantasy league. A standard Roto or H2H Categories league uses R, HR, RBI, SB, AVG, and/or OBP.

Let’s focus on leagues that use R, HR, RBI, SB, and AVG so delete the others. You should have a player column (B) and then five stat columns (C-G). I would suggest freezing the top row which can be done in the “View” tab. Scroll down to the bottom of your projections and select the first empty cell below the R projections (for our sample this is C255). Input the formula “=AVERAGE(C2:C254)” into C255 and “=STDEV.S(C2:C254)” into C256. For smaller or larger samples just change the “254” in the formula to the last row number of player projections. Then drag C255 and C256 through column G to copy those formulas into rows 255 and 256 for columns E-G (seen below). The average projected R for the top 253 players is 70.9 with a standard deviation of 16.8. The average HR is 21.2 with a standard deviation of 8.2. The average RBI is 69.7 with a standard deviation of 17.7. The average SB is 7.6 with a standard deviation of 7.3. The average AVG is 0.262 with a standard deviation of 0.019.

Now input the formula “=STANDARDIZE(C254,C$255,C$256)” in cell H254. This is taking Mike Zunino’s projected R and calculating it’s Z-score using the average and standard deviation we just found. Drag H254 through column L to calculate Mike Zunino’s Z-score for all five stat categories. Then input the formula “=SUM(H254:L254)” in cell M254 to add together all five of his Z-scores. Highlight cells H254 through M254 and drag the formulas all the way up to row 2. Label the six new columns zR, zHR, zRBI, zSB, zAVG, zSUM. You just calculated the total Z-scores for all players projected to get 350+ ABs using the stats R, HR, RBI, SB, AVG (seen below). Whit Merrifield’s projected R are 1.02 standard deviations above average. His projected HR are 0.87 standard deviations below average. His projected RBI are 0.26 standard deviations below average. His projected SB are 2.10 standard deviations above average. His projected AVG is 1.36 standard deviations above average. In total, his five-category contribution projects to be 3.34 standard deviations above average. Enter the formula “=RANK(M2,$M$2:$M$254)” into cell N2 and the formula “=A2-N2” into cell O2. Drag those formulas all the way down to the bottom player row. This is ranking the total Z-scores and then comparing that rank to the number in column A. Now there is nothing in column A yet but we will get to the next. Label column A, N, and O as Rank, zRANK, and zDIFF respectively.

Column A is customizable depending on the fantasy site that you use. You want to input the hitter rankings that you will see on draft day. The rankings are set up differently for each site so I will let you figure out how to do that for your drafts. I will be inputting the Fantasypros consensus hitter rankings we discussed earlier. Copy/paste your hitter rankings into a new sheet in your excel file. If the rank is to the right of the player name then you are good. If the rank is to the left of the player name then copy/paste the rank column so it is somewhere to the right of player name (seen below).

Next, you have to link the two sheets together. Input the formula “=VLOOKUP(B2,Sheet2!$B$1:$K$377,10,FALSE)” into cell A2 on Sheet1. B2 is the first player on the rankings in Sheet1. Sheet2 is the name of Excel sheet with your site’s rankings. $B$1:$K$377 is the array on Sheet2 that has the player names in column B and the rankings in column K. 377 is number of rows in that array. 10 is the column number in the array that has the rankings (B is 1, C is 2, etc.). FALSE tells Excel to look for names that exactly match what you want. Drag that formula all the way down to the bottom player row and all the ranks should populate (seen below). Depending on how your site names players you may need to manipulate the player names so the VLOOKUP formula works. (Hint: Use the formula “=LEFT(B2,FIND("(",B2)-2)” to trim the team and eligible positions from a player name in cell B2).

The zDIFF column now shows the difference between your site’s rankings and the Z-score ranking we calculated. Positive means you should value him more than your site’s rankings. Negative means your site is over valuing him based on what his projected stats are. Now highlight the entire data set (columns A-O, rows 1-254) and put it into a table using the “Insert” tab. Make sure to select “My table has headers”. You can now sort the player rankings by any column you want. Feel free to change the style of the table to whatever you prefer. Below is the complete player rankings (using projections and consensus rank from 2/21).

You can sort the zDIFF column to find the best value players in later rounds. You can use the zSUM column to make tiers. You can search for positions in the PLAYER column filter. You can filter out all the negative value players using the zDIFF column.


So that’s it. You now have unique hitter rankings to use on draft day that give you a better sense of how each player will contribute to your team. Pitcher rankings can be made the same way and you can customize the columns based on which stats your league uses. Best of luck!

106 views0 comments

Recent Posts

See All

Comments


bottom of page