For many stuck at home during this health crisis, we have suddenly been given the responsibility of “home schooling” our children. For some I know this has been quite a challenge, especially those with more than one child. Fortunately for me I only have one, a first grade girl that enjoys math and reading. Also fortunately for me, I work from home 99 percent of the time, so I’m used to the environment and routine. As for having a kid constantly looking to play, it just feels like the summer to me. Although it did snow here yesterday.

One of the math worksheets I gave my daughter this morning required her to determine which way the alligator mouth opens to. For those not in tune with first grade math lingo, this is referring to the greater than/less than sign. The alligator mouth opens to the bigger number. I can almost see light bulbs going on in some of your heads. Chomp! Chomp! Anyway, I figured I’d play a little game of greater than with points league players for the supposed 2020 season.

We’ll use the following scoring system as the basis for today’s mathematical exercises.

RUN (+1), RBI (+1), 1B (+1), 2B (+2), 3B (+3), HR (+4), BB (+1), KO (-1), HBP (+1), SB (+2), CS (-1), SF (+1)
WIN (+5), LOSS (-5), IP (+3), K (+1), BB (-1), SAVE (+7), BLOWN SAVE (-3), ER (-1), HIT (-1)

Yasmani Grandal > Gary Sanchez

This one probably has to do a lot with the fact that I expect Grandal to have more plate appearances.

Mitch Garver > Every Catcher

This is based on points per plate appearance.

Anthony Rizzo > Peter Alonso

Don’t sleep on Rizzo just because he has become boring.

Josh Bell > Matt Olson

I’m not as sold on this one, but the spreadsheet seems to think so.

Mike Moustakas = Gleyber Torres

The key take away here is you can get Moustakas several round later in your draft. Let someone else take Torres.

Bo Bichette = Fernando Tatis

In points leagues that subtract a point for strikeouts these two are estimated to end with the same number of points. Flip the alligator mouth towards Tatis if your league does not penalize for punch outs.

Michael Brantley > Nelson Cruz > Austin Meadows

Brantley is a top fifteen outfielder. He is likely to outscore Meadows who is being drafted about three rounds earlier.

Mike Trout > Every Other Player

Stop getting fancy. I have seen some drafts where people are selecting Acuña and Yelich ahead of Trout. Stop it. Seriously stop it. Two years ago it was Altuve. Mike Trout is the best player in baseball. Fantasy and reality. He might be the best player ever. If you have the first pick and you don’t pick Trout, you’re a dipshit.

Gerrit Cole > Every Other Pitcher

In fact, according to my rankings he is more valuable than Mike Trout. I’m still not drafting him over Trout. But seriously, from a pitching perspective Cole is head and shoulders over the rest of the pack.

Here are a few pitcher comparisons

Lance Lynn > Chris Paddack
Masahiro Tanaka > Frankie Montas
Marcus Stroman > Dinelson Lamet

1 > ( Noah Syndergaard’s 2020 points + Chris Sale’s 2020 points )

Did I mention that the alligators didn’t eat my spreadsheet. In fact I’ve attached a copy to this post. Sorry it was a little late this year, but I think most of you can understand why. A few comments if you will.

Obviously the season is still very much up in the air. The projections included in the spreadsheet are full season projections. A full season seems extremely unlikely. However, perhaps we can look at it this way. A shortened season will be the same shortened season for all players. So it’s possible every players’ projections will be reduced proportionately. Unlikely when you account for hot/cold starters, prospects that weren’t expected up until later in the season and various other reasons, but you get the point. To potentially account for a shortened season I have added a field named “Corona Sucks Factor” to the “Settings” tab. This field represents a percentage of how shortened the season will be. It is defaulted to zero. This represents a full season. If you select “10”, then this reflects the season being reduced by ten percent. Changing this field will reduce every players’ projected fantasy points by said percentage. Please note that it will not change their actual projections. At the end of the day we really only care about points. I realize that this is far from an exact science, but I thought it was worth adding. Use it how you will.

If you want to adjust projections, please edit the tabs named “Projections – Hitters” and/or “Projections – Pitchers“. These two tabs/worksheets fuel the rest of the spreadsheet. Do not change the projections on any of the other tabs. If you think Matt Olson is going to hit 50 bombs, then go to “Projections – Hitters” and update his “HR” value. This will update every other tab, although you might have to re-sort the tabs.

For the most part the spreadsheet is the same as last year and since I have no desire to repeat what I said last year I am going to cut and paste exactly what I said. It’s not plagiarism if they are my own words.


The spreadsheet contains a tab for hitters, pitchers and one for each individual position. There is also a worksheet (tab) labeled “Rankings”. This is the sheet that displays the actual rankings. The next tab is the “Settings” tab. This is where you tell the spreadsheet about your league. The spreadsheet comes preloaded with the scoring systems of the major fantasy baseball sites. It also provides the ability for you to enter three separate custom scoring systems. This is where you will enter your league’s scoring system, unless you are using one of the predefined.

Under the “Scoring System” label on the “Settings” tab there is a dropdown that allows you to select the active scoring system to be used by the spreadsheet. When you change scoring systems, or make any other change to the “Settings” tab, you will need to click the “Calculate Rankings” button to generate the new rankings and update (re-sort) each sheet. When the spreadsheet detects a change to the “Settings” tab it will let you know and tell you to click the “Calculate Rankings” button when you are done making changes.

The “Settings” tab will also allow you to specify the number of teams in your league, the number of players on each team and the number of players that are started at each position. I need this data in order to figure out the replacement level player at each position in order to generate the position-adjusted rankings.

At the bottom of the “Settings” tab you will see two options that directly affect the ranking results. The first is “Reduce RP Weight“. By default my rankings treat the RP position equal to the rest of the positions. As a result, you will see some RP in the top twenty. While mathematically this might be the case, in reality it usually doesn’t make sense to draft an RP in the first two or three rounds (maybe more). By setting “Reduce RP Weight” to true my algorithm will lower the FVARz scores for relief pitchers, pushing them down a bit in the overall position-adjusted rankings. This feature is enabled by default.

The second is the “Hitters Advantage” option. Here’s what this does. When set to “yes” it will give all hitters a slight boost. It actually accomplishes this by giving all starting pitchers a slight reduction. This does not apply to relief pitchers. You can use “Reduce RP Weight” for that cause. The reason for this feature is because it is a popular strategy to draft strong hitters by focusing on the hitters in the early rounds. Many believe hitters win championships because hitters are more consistent. If you feel this way, or something like it, set “Hitters Advantage” to “yes”. It defaults to “no”.

You’ll also find a tab named “Your Team“. This will begin empty. You’ll find a section for hitters and pitchers. Each section will have headers and rows for totals and averages. These will likely contain zeros and #DIV/0! initially. Don’t worry, this is fine and expected. They will go away once you draft/add players. Do not edit this tab!

Here’s how you add/draft players. On the “Rankings” tab, you will see a column labeled “Drafted” at the far right. Initially it should be filled with the number zero (0). This means that the player has not yet been drafted. As your draft is progressing and players are being selected, you should manually update this column. If a player is drafted by another team, enter the number one (1). If the player is drafted by you, enter the number two (2). This will result in the players being color coded and will also automatically move your players to the “Your Team” tab.

Clicking the “Clear Draft Picks” button will set all values in the “Drafted” column back to zero (0). You cannot undo this action so be careful.

I’ve got more to say about the “Your Team” tab, but first let me quickly mention the “Draft Score” column on the “Rankings” sheet. This value is determined by subtracting a player’s rank from his ADP. For example, if  Ozzie Albies is ranked 24th and his ADP is 64, then he will have a “Draft Score” of 40. That means that if you drafted Albies at his ADP of 64, you’d be getting him 40 picks after where he would be picked if everyone in your league picked based on your league-specific rankings.

This does not mean you should take Albies with the 24th pick, but it serves as a gauge to let you know what kind of value you are getting from a player based on his true (league specific) ranking versus where most people are generally drafting him. In the case of Albies, I’d definitely grab him in the fourth/fifth round and know I am getting value.

Players with a negative “Draft Score” mean that if you draft them at their ADP, you are not getting good value. They will not be on any of my teams. Not unless they slip into a more profitable draft position.

Let’s jump back to the “Your Team” tab. This is where you can see the players you have marked as drafted to your team. That means you entered a “2” (no quotes) in the player’s “Drafted” column on the “Rankings” tab. As players are added the “Totals” and “Averages” rows will populate. Also, each player’s FPTS (fantasy points) column will be highlighted with one of the following colors: Green, Purple, Orange or Red. Here’s what they mean. Green indicates that the current player is estimated to score a decent amount of more points than the average player. The set of players used in this comparison is only players that are above the replacement level player.

Green: A fair amount better than average
Purple: Pretty much about average. Maybe a little over
Orange: Less than average
Red: A fair amount less than average

Keep in mind that these are still experimental indicators. Take them with a grain of salt. Whatever that means.

Modifying Estimations

See earlier section about editing projections.

If there was one bit of advice I could give you it would be this. Notice this is in bold. Do not change anything on any tabs other than “Settings” and “Rankings”. On the “Settings” tab enter your league details. Then click “Calculate Rankings”. Then go to the “Rankings” tab. Here you can indicate which players have been drafted. That’s all you need to do. If you start making changes and end up in some funky state, you should just download a fresh copy and start over.

While you can set multiple (up to three) different custom scoring systems, if you are going to use this on draft day, I suggest you create a copy of the file for each different league. It’s will just be a lot simpler to keep track of each league’s drafted players.

If you find an issue, please let me know. If you realize that a player is missing (entirely possible), let me know.

I plan to do a more in-depth analysis of data contained within this spreadsheet, but in the spirit of getting it to all of you as soon as I could, you’ll have to wait until my next post for that. For now, enjoy. I hope it helps. Wisdom, Power and Courage!


Ok, now everyone can leave me alone for another year. Just kidding. Hope this helps you all.

malamoney === malamoney (can anyone explain the triple equals?)

malamoney’s 2020 Points League Spreadsheet

Follow malamoney on Twitter at @malamoney