Do you ever wonder how the fantasy baseball experts create these rankings they post for the world to see? I mean, their rankings play a pretty large role when deciding ADP in the draft season. They aren't to be taken lightly and could really wreck your draft if you aren't doing your own research.
I promise you that experts in the business are doing their own rating system. Some do theirs based on 'feel', which is perfectly fine. However, if you are like me, you enjoy taking advantage of all the different statistics that are made so easily accessible to the public. Between projection systems and past statistics to even Statcast data now, there is no excuse to just rely solely on the 'expert' opinions.
The best way to capitalize on these accessible statistics is to create your very own fantasy baseball player rater! You know, like something here from Baseball Monster, except you get to decide what stats you want to use. It's not as hard as it sounds and I'm ready to walk you through it!
Creating Your Own Fantasy Baseball Player Rater
Alright, I want to apologize in advance if I am talking every step out here. I am going to assume that everyone's Excel skills are beginner level just in case. This article may be more geared toward the casual fantasy baseball player looking to get ahead in their home leagues, but everyone starts somewhere!
Also don't forget about the free five-minute mock drafts against industry experts and custom analysis for your team with the FantasyPros Draft Wizard.
Step 1: Choosing Statistics
First thing's first - you have to decide which statistics you want to use for your perfect player rater.
The decision lies between using the past season's statistics or a site's prediction model for the upcoming season. The Depth Charts projections from FanGraphs is a solid option, as it is a combination of multiple prediction models from the site. This year, I'm using a new method that incorporates Steamer600, which projects each player's statistics based on 600 AB (or equivalent for starters and relievers), then prorating it to how many at-bats each player would actually get based on their team context.
The main problem with using a past season's statistics is that it doesn't take into account sample sizes.
Example: Tommy Edman had a marvelous second half of the 2019 season. However, that was the only sample size we have to work off of and we know in baseball that isn't nearly enough. The 2019 Depth Charts projections will use his 2018 stats along with his minor league performance to project/compute a 2019 stat-line that is reasonable.
Step 2: Exporting Player Data
As alluded to in Step 1, I will use the Depth Charts projections for 2020 for my player rater template. Follow the link above and check out the scope of the page. Just above the chart of players on the right side of the page, you will find a small text link that says "Export Data".

Credit: FanGraphs
Click on that, which yields a CSV download file. Open it in Excel (or equivalent). You should have a fairly large list!
Step 3: Doctoring the Spreadsheet
Before starting your calculations, prepare your spreadsheet to eliminate all the clutter. It sounds like housekeeping, but this makes player rater finalization much easier. The first thing I like to do is delete all the players I know I won't be drafting. That can be done however you like, but I prefer sorting it by the team and projecting a team's starting lineup and other key players using RosterResource (now embedded into FanGraphs - what a time to be alive!). That way you aren't missing any big names.
Next, handpick the categories you want. Ideally, you would just pick the categories that your league rewards a player for achieving like AVG, HR, R, RBI, and SB. If you want to get fancy, you are welcome to include extra categories like wOBA, OPS, etc. Just be sure to avoid doubling up on statistics or else you could tip your rating system to favor a certain style of player. This is where the difference between points and rotisserie leagues comes into play.
Example: If you include three statistics that express power (ISO, HR, SLG) but only one that shows speed (SB), you could end up with guys like Jonathan Villar off your radar. We don't want that unless we are in a points league rather than a roto league.
Step 4: Calculating z-Scores
Once you have prepared your spreadsheet, you are ready for action! Insert a column to the right of your first category. In my case, as seen in the picture below, I will be assessing the HR column. I will label my new column 'zHR'.
There are two calculations you need to make before finding the z-scores: average and standard deviation. Excel can calculate that for you - find a couple of empty cells and input the following equations:
=AVERAGE(D$2:D$221) [1]
=STDEV.S(D$2:D$221) [2]
The second number in Equations 1 and 2 are determined by how many rows you have in your sheet. As I mentioned before, I had 220 players and a header row, hence the 221. Record that average and standard deviation for the next formula. Using those measurements as constants, I will start in cell D2 and calculate Mike Trout's z-score for home runs:
=(D2-AVERAGE)/STDEV [3]
With a ~17.9 average and ~7.36 standard deviation, I found a z-score of 2.18 for Trout in the HR department. Just how good is that? Let's copy the formula for the rest of the players. The easiest way to do that is to hover your cursor over the bottom right corner of cell D2 (or whatever cell has your formula). You should see the fill-handle '+'. Double-click on that and it will fill the rest of the column with the same formula.
For aesthetic purposes, you can decrease the number of decimal places to the hundredths place. Repeat this step for each of the remaining categories in your sheet.
Note: Equation 3 only works if the desired statistic needs to be greater than the average to be considered 'good'. If you are calculating a z-score for a statistic that is better when lower (i.e. ERA or WHIP), just switch the cell number and average in the parentheses.
Step 5: Computing Overall Ratings
Start a new column at the end titled 'Total' (or whatever the hell you want, it's your player rater) to calculate your overall score. For me, this is column H and I will now add up all of the z-scores:
=SUM(E2,G2,I2,K2,M2) [4]
Using Equation 4, Trout receives a 10.46 rating between these five categories. How good is that compared to the rest of the fantasy-relevant players? Well, use the same fill handle '+' from before and copy the formula to each cell in your overall column to compare.
Finally, just add filters to the top row and select 'Sort Descending' on your player rater column. You will start to see a strong resemblance to the hitter rankings produced by the 'experts'. Of course, it's not a perfect ranking system, but it's definitely a good reference point when deciding between players in a draft.
Now you are ready to create your own fantasy baseball player rater. You will be surprised to see some of the names that seem 'out of place' when you use advanced metrics in your player rater. Which names will be of note for you?
Optional: Utilizing Stats from Multiple Sites
My current player fantasy baseball player rater draws synced data from multiple sites. Two examples of this are batted ball profiles from MLB's Statcast data and average draft position from NFBC. The VLOOKUP, INDEX-MATCH, and OFFSET functions in Excel can be your best friend in that scenario.
I won't go over that in this article though - I have exceeded my word limit! If you have any questions about that or anything I went through in the article, feel free to contact me on Twitter (@therealwody). I would be happy to discuss it!
Check out the rest of our great Fantasy Baseball content as the 2020 season approaches.