I’m an SGP guy. Standings gain points are what I first learned. The approach has been good to me. And it seems I’ve been fairly successful using the approach. But SGP has a weakness. It’s a big weakness that prevents a lot of fantasy baseball players from using the approach.
Where Can I Get Reliable SGP Data?
Where can I find historical SGP data??? This is one of the most common questions I get about the use of standings gain points. If you’re starting a new league, don’t have access to league history, or switched website providers, you’re screwed. You can’t really start using SGP. And let’s not even mention those of you that play in AL or NL-only leagues (I still don’t have an answer for that, sorry).
In this post I’ll share with you where and how you can get great quantities of actual league standings in competitive mixed leagues (again, sorry mono-leaguers, I would love to help you one day but I haven’t found out how yet).
Where Can You Find Standings Information for Competitive Leagues?
I haven’t proven the theory yet, but I’m pretty certain you could write some kind of web scraping program to pull down the standings information for public Yahoo! and ESPN leagues. But who knows what the level of competition is in those? You would have to find a way to weed out the non-competitive leagues and teams to prevent those that draft and then never change their lineup the entire season from distorting the standings information.
Enter the National Fantasy Baseball Championship (NFBC)
The National Fantasy Baseball Championship (NFBC) is the industry leader in premium fantasy baseball leagues. Meaning leagues that people pay an entry fee to join in an effort to win prize money.
The fact that people are paying money to enter these leagues and that prize money is at stake is the best mechanism we could hope for to ensure competitiveness. The standings information will not be tainted by schleps that draft a team and abandon in after the first week of the season.
Not only that, but the NFBC also publishes final league standings by category and makes them available to anyone! This is an SGP jackpot.
Different Types of Leagues
The NFBC has several different competitions. The two most likely to be of value to us are the “Online” and “Draft Champions” leagues. These leagues have the most entrants, so we can reduce concerns over small sample sizes. Here’s a summary of the two league types and links to the standings information for them:
|NFBC League Type||Standings Links||Description of League|
BA, R, HR, RBI, SB
ERA, WHIP, W, K, SV
|Draft Champions||Overall Standings
BA, R, HR, RBI, SB
ERA, WHIP, W, K, SV
So the big differences to note are that the “Online” leagues have 12 teams and a 30 round draft. The “Draft Champions” leagues have 15 teams and have 50-round drafts because they don’t have free agency during the season. We’ll a look at this in future posts to see if it seems to affect things.
Now That We Have This Information, What Do We Do Next?
There were 125 leagues and 1,500 teams in the 2015 Online NFBC leagues and 192 leagues and 2,880 teams in the 2015 Draft Champions leagues.
That’s a lot of data. Is there a practical way to take all of that data and use it to calculate SGP factors? Of course!
You’re Boring Me and I Don’t Want to Do This Myself
NOTE: I’m about to go through instructions how to calculate the NFBC SGP numbers yourself, but if you just want my completed analysis, you can download them here:
- 2015 NFBC Draft Championship SGP Data
- 2015 NFBC Online Championship SGP Data
- 2014 NFBC Draft Championship SGP Data
- 2014 NFBC Online Championship SGP Data
- 2013 NFBC Draft Championship SGP Data
- 2013 NFBC Online Championship SGP Data
I may not update this information every year into the future… So remember, the instructions below will remain so you can do this yourself!
Excel Functions Used in this Post
We’ll be using the SLOPE, IF, and AVERAGEIFS formulas to calculate SGP for the NFBC leagues.
The short description is that the SLOPE function finds the line of best fit through a given set of data points. With our rotisserie standings data, the SLOPE formula essentially calculates the actual SGP factor or denominator. I’d highly suggest reading the three part series. Or at least Part I!
The IF function checks to see if a condition is met. If the condition is met, the function returns one response. If the condition is not met, the function returns another response. One important fact to realize is that the responses you specify in the IF formula can be formulas. So if the condition you specify is met, you can have the cell use formula A. And if the condition you specify is not met, you can have the cell use formula B.
The function requires three inputs:
- Logical_Test – This is typically a formula to be evaluated. An example might be “is cell C2 greater than cell D2”.
- Value_If_True – This is the value to be shown or the formula to be evaluated if the Logical_Test is passed,.
- Value_If_False – This is the value to be shown or the formula to be evaluated if the Logical_Test is failed.
The AVERAGEIFS formula will calculate the mean of groups of cells that meet a set of conditions. You can specify multiple groups of cells and multiple conditions that must be met. The function requires three inputs (but can use more…):
- Average_Range – These are the cells to be included in the calculation of the average
- Criteria_Range1 – This is the first set of cells you want to be evaluated for the condition
- Criteria1 – This is the condition that must be met for the item in the Average_Range to be included in the calculation of the average
- If you have more conditions to be evaluated, you can continue to add pairs of Criteria_Range2 and Criteria2, Criteria_Rang3 and Criteria3, etc.
This is a little vague until I tell you more about how we will design this spreadsheet to work.
Our goal will be to design a spreadsheet containing a separate tab for each rotisserie scoring category.
And one tab that will analyze each scoring category and calculate the average needed to finish in each place for that category. For example, this table will show what the average batting average was for each of the 15 places in an NFBC Draft Champions league.
Each cell under the roto categories will contain an AVERAGEIFS formula. For example, the table tells us that first place in the Batting Average category had an average of 0.277. The formula in this cell is set up to look on the “BA” tab for the batting average of each team (the Average_Range), then look in the “Place in League” column (the Criteria_Range1) for any rows with a “1” in them (the Criteria).
That 0.277 calculation is the average of all (and only) first place teams.