Dave Caban published this article in Week 8 of the 2019 season. It’s being republished to provide a refresher or overview of the RotoViz Weekly Game Level Similarity Projection process.
Long-time readers are undoubtedly familiar with RotoViz’s Game Level Similarity Projection (GLSP) process but for those of you that are new to the site, this post will walk you through the process and give some guidance on how best to use the GLSP numbers. First, I’ll answer some high-level questions that you might have, then we’ll get into deeper specifics.
GLSP – Common Questions
What Are GLSP?
Game Level Similarity Projections estimate a range of outcomes for the fantasy points that a player will score in a given week. They are built by reviewing historical games in which players that similar players[1]In this case, players who scored similar numbers of points and accumulated that production in similar ways. to the player being projected faced defenses similar to the one the player in question will face.
In simpler terms, GLSP can help us estimate how Deshaun Watson might fare against the Raiders in Week 8. To build this estimate our GLSP app looks at his production from recent games and finds quarterbacks that previously scored fantasy points in a similar way. The app then finds games where these matching quarterbacks played defenses that allowed passers to produce statistics similar to the 2019 Oakland Raiders.
By reviewing the results of these games, the tool can provide a data-driven estimate of Watson’s likely outcomes.
Why Use GLSP?
As you likely inferred, one of the compelling aspects of GLSP is that they allow us to better grasp what a player’s floor or ceiling in a given week looks like. Owners in season-long leagues, with large leads after the Thursday night game, might be seeking safety. With this in mind, they can review the low-end projections of their flex options and go with the player that carries the least “risk.”
Alternatively, an owner may suspect that they’ll need a monster game from one of their players to win their matchup. This owner may look solely at top-end projections as they’re less concerned about poor performances. Having this range of outcomes, that is grounded in historical results, gives one a lot more to consider when setting their lineups than a projection set that includes just a single data point.
The other challenge with the single-data-point approach is that this number is likely an average and probably lacks some important context. If we sit down and develop projections for all fantasy-relevant players, odds are high that we’ll more or less end up projecting the overwhelming majority of players with stat lines or point totals very close to their seasonal average.
What we’d rather do is consider how each player will perform against the particular opponent he is facing that week. To do this, we would likely look at games in which the player in question previously faced his weekly opponent or we would think of similar players and search for instances where they matched up against that defense. If we’re going to do this anyway, why not really go for it?
GLSP Caveats
Like any forecasting method, GLSP is not perfect. There are a couple of limitations within the process and important things to keep in mind when you use the results.
- GLSP considers a player’s average stat line in isolation and is agnostic of team opportunity percentages, depth chart considerations, and all other factors. Let’s look at that example again from Week 8 of last year. If DeAndre Hopkins were to be sidelined, the app would not know that when projecting Watson. Thinking of it in 2020 terms, if Will Fuller misses a week with a hamstring injury, his vacated workload does not get assigned to other players such as Randall Cobb or Brandin Cooks. While this can be considered a drawback, there is a range of outcomes that can be considered. If there’s a compelling reason to believe Kenny Stills will see a significant increase in workload, his 75th percentile projection can be used as a reasonable estimate for his average outcome. This removes the subjective aspect of allocating vacated targets.
- While the app does use recent games to gather its range of outcomes, it can be slow to react to major shifts in volume. This ties in with the above caveat and is many times applicable for younger players that are able to transition a breakout performance into a sustained and large workload. The same can be said for older players that get surpassed on the depth chart by younger players.
- The app can’t account for lingering injuries or other health concerns that may limit a player’s production and suppress his workload below typical levels.
THE GLSP PROCESS IN MORE DETAIL
A ton of calculations are made in the GLSP process but overall it’s actually pretty simple. Let’s take it a chunk at a time:
STEP 1 – FINDING MATCHES FOR PLAYER IN QUESTION
- On a positional basis, determine the statistics that are most heavily correlated with fantasy scoring as well as the statistics that are most likely to carry from week to week.
- Weight the correlated statistics in a way that prioritizes the most prominent drivers of fantasy points and are likely to carry from week to week.
The below process is repeated using two weeks, four weeks, and six weeks for the average stat lines. At the beginning of the season, games from the previous year will be included for veterans, as necessary. Week 1 projections are not created for rookies as there are no NFL data from which they can be based on. However, beginning in Week 2 and extending forward, available NFL games will be used to generate GLSP.
- Create an average stat line from the “x” most recent games played for the player in question.
- Review the last “x” games and remove/replace any in which the player’s volume (passing attempts, rushing attempts, or targets, depending upon position) are significantly lower than average.
- For example, a game in which a quarterback who generally throws more than 20 passes per game records only eight will be removed and replaced with an older game in which the threshold was met.
- Only games within the last 20 regular season weeks are considered.
- Review the last “x” games and remove/replace any in which the player’s volume (passing attempts, rushing attempts, or targets, depending upon position) are significantly lower than average.
- Compare the difference between the average stat line generated via the ranges above for the player in question with the end-of-season stat line created by every player from the same position throughout the past five seasons.
- Use weightings to determine an aggregate difference and then rank these differences.
STEP 2 – FINDING MATCHES FOR OPPOSING DEFENSE
- Using the statistics identified in Step 1, compare the average stat line of the defense being opposed, from its eight most recent games, against the season-ending stat lines of every defense in the last five seasons.
- Use weightings to determine an aggregate difference and then rank these differences.
STEP 3 – COMBINE STEPS 1 AND STEP 2
- Having identified players similar to the player in question and defenses similar to the one being faced, search for games in which players similar to the one in question opposed defenses similar to the one being faced.
STEP 4 – REVIEW PLAYER PERFORMANCE IN MATCHING GAMES
- Compile the 50 best matching games and review the results for those in which the matching player did not meet the required opportunity thresholds.
- Remove such players from the analysis.
- Review and compile the fantasy points produced by the matching players in the matching games and gather a range of outcomes.
STEP 5 – COMBINE RESULTS of ‘X’ Weeks
- In the final step of the GLSP process, the results of the three separate game ranges are combined and averaged to create a final range of outcomes and average stat line.
- This process is repeated for PPR, half PPR, and standard scoring.
- We elected to average the results of the three separate game ranges for the following reasons:
- This prevents outliers or anomalies from impacting the results.
- For example, if we only use Watson’s stat line from the last four games it’s possible that he could be matched with a number of players that for whatever reason significantly underperformed in their matching games. Naturally, this would create a pessimistic projection for a player of Watson’s caliber. However, it’s possible that if we modify the range and look back five games, we see a different set of results with a “more typical” distribution of points for a player like Watson. A similar result is seen when looking back three, six, and seven games. This confirms that the results of the four-game run are not typical.
- Based on a lot of testing, the above is very rare but nonetheless it’s prudent to mitigate such occurrences as much as possible.
- This methodology places more emphasis on recent games, which allows the ranges of outcomes created to “react quicker” than they otherwise would while still considering a larger sample of games.
- This prevents outliers or anomalies from impacting the results.
CONSIDERING RESULTS
The best way to use GLSP results is to consider them in the context of each individual player. They are useful for quickly gauging player prospects and getting a sense of weekly rankings but are most powerful when used to consider an individual player or compare a handful. For example, If Patrick Mahomes is sidelined and you believe it negatively affects Travis Kelce, consider his 25th to 50th percentile point totals when choosing to start him. Alternatively, if you think Chad Henne will lock onto him, use him as a security blanket, and target him in high-leverage situations his 50th to 75th percentile totals should be considered.
You might ask how helpful this is — why can’t they just give me an answer? If only it were that simple. Forecasting players is a challenging game and the abundance of factors that can influence a player’s fantasy totals creates a tremendous amount of variance. Recognizing that this variance exists and having a better sense of its variability goes a long way toward making more informed decisions. Also, GLSP does not have to be your final answer. It can help to confirm or question your original position.
GLSP APP DEFINITIONS
In order to understand what we’re looking at, let’s again review Watson’s Week 8 projection from last year to clear up any questions you might have. The average stat line presented is not Watson’s 2019 average stat line. Rather, it is representative of the average statistics produced in the matching games. This means that on average, players like Watson throw for 261 yards when facing defenses like Oakland’s.
The GLSP tells us that in the matching games Watson’s comparable players averaged 22.2 fantasy points. If we focus on the point totals produced in the matching games, the 25th percentile point total was 14.7 points, the 50th was 21.4, and the 75th was 29.2. You could also think about it like this — if we took the 50 fantasy point totals from the matching games, list them from highest to lowest, and then find the midpoint (the point in the data where 50% of the point totals fall below that point, and 50% fall above it) that would be the 50th percentile.
The thresholds detail the percentage of matching games in which the comparable players scored less than five, 10, 15, 20, and 25 fantasy points. The “greater than 25” column displays the percentage of comparable players that scored more than 25 points. So, 34% of Watson’s comparable players scored more than 25 fantasy points when playing against defenses similar to the Raiders.
The graph visually buckets these percentages. Naturally, we want the area that the bars occupy to be as far to the right as possible.
This is a strong projection but shouldn’t come as a surprise. Watson had scored more than 25 points in four of seven games and the Raiders were notably forgiving to opposing passers allowing an average of more than 28 fantasy points in the last five weeks.
Footnotes[+]Footnotes[−]
↑1 | In this case, players who scored similar numbers of points and accumulated that production in similar ways. |
---|