revolutionary tools.  groundbreaking articles.  proven results.

The Correlation Matrix that Answers Every Question You’ve Ever Had About DFS Stacking

Got a little overdramatic with the title of this article but I wanted to really go for it. Truth be told, you might still have questions after reading this post. In fact, you might have more questions… anyhoo…

One of the things that’s common to hear in DFS related discussion is that when constructing GPP lineups you actually want your players to be correlated so that if your QB goes off, you can also take advantage of the QB’s receivers having good games as well. Then you’ll also hear people say that they might stack a defense and a kicker, or a kicker and a RB. I’m always interested to hear various theories about ways to build a lineup, but I also like to test things. So I decided to create a correlation matrix for each position to see how correlated the positions are to each other. This is the heatmap that I produced using this information. Try not to give yourself a seizure when you look at it.


The first thing you need to know when looking at the matrix is that “x” and “y” signify teams. So x.RB1 is one team’s top RB, and y.RB1 is the opposing team in that game’s top RB. You can see that team x’s kicker has a very negative correlation with team y’s DST. WR1, WR2 and so on are determined by their finish in fantasy points for their team based on the full season.

Some takeaways:

  1. QBs enjoy the highest correlation with their WR2. That makes sense I suppose, or at least I can shoehorn a narrative into that data point. The correlation is only barely higher than a QB has with WR1, but it is higher. When a QB does really well, or poorly, the WR2’s production is the one that is affected the most.
  2. RB1 enjoys slightly negative correlations with all of the WR and TEs from the same team. It’s only slightly negative, but this is why people don’t usually stack RB with WR.
  3. K is just as correlated with QB as WR1 is. I’ve heard people say that you want at most two to three players from the same team to win a GPP, so I don’t know if K is included there, but it does look like K is decently correlated with QB at least.
  4. If you’re trying to take down a GPP you probably don’t want your K to be facing your DST (y.DST vs x.K). The two are negatively correlated. When your DST has a good game it’s likely your K will suffer. That’s probably common sense and a correlation matrix might not be needed to make that point.
  5. You can see that x.RB1 has a negative correlation with y.RB1. There might only be room in most matchups for one RB to go off. That also makes sense. While one RB is on the field grinding clock and trying to put the game away, the other is on the sidelines and even when his team gets back on the field they’re likely to be throwing.
  6. You can see that while a QB1 has a mildly negative correlation with the opposing team’s WR1, it has a positive correlation with the opposing team’s WR2. The correlations are still small but I found the direction of that correlation interesting.
  7. Of the same position pairs (like x.QB1 and y.QB1) only WR3 has a positive correlation with the other team’s WR3. So if one passing game gets going enough to get the 3rd WR involved, the odds are slightly greater that the other team’s WR3 will also get going.

Here’s a table version of the matrix that’s sorted by absolute correlation. Because this is based on position pairs, the table is full of duplicate entries, which I apologize for.

Var1 Var2 Correlation
y.K x.DST -0.5
y.DST x.K -0.5
x.K y.DST -0.5
x.DST y.K -0.5
y.QB1 x.DST -0.46
y.DST x.QB1 -0.46
x.QB1 y.DST -0.46
x.DST y.QB1 -0.46
y.K x.K -0.41
x.K y.K -0.41
x.WR2 x.QB1 0.39
x.QB1 x.WR2 0.39
y.WR2 y.QB1 0.39
y.QB1 y.WR2 0.39
x.K x.DST 0.35
x.DST x.K 0.35
x.QB1 x.K 0.35
x.K x.QB1 0.35
x.WR3 x.QB1 0.35
x.QB1 x.WR3 0.35
y.K y.DST 0.35
y.DST y.K 0.35
y.QB1 y.K 0.35
y.K y.QB1 0.35
y.WR3 y.QB1 0.35
y.QB1 y.WR3 0.35
x.WR1 x.QB1 0.34
x.QB1 x.WR1 0.34
y.WR1 y.QB1 0.34
y.QB1 y.WR1 0.34
y.DST x.DST -0.33
x.DST y.DST -0.33
y.RB1 x.RB1 -0.31
x.RB1 y.RB1 -0.31
y.RB2 x.DST -0.23
y.DST x.RB2 -0.23
x.RB2 y.DST -0.23
x.DST y.RB2 -0.23
x.RB2 x.K 0.21
x.RB2 x.QB1 0.21
x.K x.RB2 0.21
x.QB1 x.RB2 0.21
y.RB2 y.K 0.21
y.RB2 y.QB1 0.21
y.K y.RB2 0.21
y.QB1 y.RB2 0.21
y.WR1 x.DST -0.19
x.RB1 x.K 0.19
x.K x.RB1 0.19
y.DST x.WR1 -0.19
x.WR1 y.DST -0.19
y.RB1 y.K 0.19
y.K y.RB1 0.19
x.DST y.WR1 -0.19
y.WR3 x.DST -0.18
x.WR1 x.K 0.18
x.K x.WR1 0.18
y.DST x.WR3 -0.18
x.WR3 y.DST -0.18
y.WR1 y.K 0.18
y.K y.WR1 0.18
x.DST y.WR3 -0.18
y.WR2 x.DST -0.16
y.RB1 x.K -0.16
x.TE1 x.QB1 0.16
y.K x.RB1 -0.16
x.QB1 x.TE1 0.16
y.DST x.WR2 -0.16
x.WR2 y.DST -0.16
x.RB1 y.K -0.16
y.TE1 y.QB1 0.16
x.K y.RB1 -0.16
y.QB1 y.TE1 0.16
x.DST y.WR2 -0.16
y.QB1 x.K -0.15
y.K x.QB1 -0.15
x.QB1 y.K -0.15
x.K y.QB1 -0.15
x.WR3 x.RB1 -0.14
x.RB1 x.WR3 -0.14
y.WR3 y.RB1 -0.14
y.RB1 y.WR3 -0.14
x.WR2 x.WR1 0.13
x.WR1 x.WR2 0.13
y.WR2 y.WR1 0.13
y.WR1 y.WR2 0.13
y.TE1 x.QB1 -0.12
x.TE1 x.RB1 -0.12
x.RB1 x.TE1 -0.12
x.WR2 x.TE1 -0.12
x.WR3 x.TE1 -0.12
y.QB1 x.TE1 -0.12
x.TE1 x.WR2 -0.12
x.TE1 x.WR3 -0.12
y.WR3 x.WR3 0.12
x.TE1 y.QB1 -0.12
y.TE1 y.RB1 -0.12
x.QB1 y.TE1 -0.12
y.RB1 y.TE1 -0.12
y.WR2 y.TE1 -0.12
y.WR3 y.TE1 -0.12
y.TE1 y.WR2 -0.12
x.WR3 y.WR3 0.12
y.TE1 y.WR3 -0.12
y.WR1 x.QB1 -0.11
y.WR2 x.TE1 0.11
y.QB1 x.WR1 -0.11
y.TE1 x.WR2 0.11
x.WR1 y.QB1 -0.11
x.WR2 y.TE1 0.11
x.QB1 y.WR1 -0.11
x.TE1 y.WR2 0.11
y.RB1 x.DST -0.1
x.WR3 x.K 0.1
y.WR3 x.QB1 0.1
y.DST x.RB1 -0.1
y.TE1 x.TE1 -0.1
x.K x.WR3 0.1
y.QB1 x.WR3 0.1
x.RB1 y.DST -0.1
y.WR3 y.K 0.1
x.WR3 y.QB1 0.1
x.DST y.RB1 -0.1
x.TE1 y.TE1 -0.1
x.QB1 y.WR3 0.1
y.K y.WR3 0.1
x.QB1 x.DST 0.09
x.RB2 x.DST 0.09
x.WR1 x.DST 0.09
x.DST x.QB1 0.09
x.RB1 x.QB1 0.09
y.WR2 x.QB1 0.09
x.QB1 x.RB1 0.09
x.DST x.RB2 0.09
y.WR1 x.TE1 -0.09
x.DST x.WR1 0.09
y.TE1 x.WR1 -0.09
y.QB1 x.WR2 0.09
y.WR3 x.WR2 0.09
y.WR2 x.WR3 0.09
y.QB1 y.DST 0.09
y.RB2 y.DST 0.09
y.WR1 y.DST 0.09
x.WR2 y.QB1 0.09
y.DST y.QB1 0.09
y.RB1 y.QB1 0.09
y.QB1 y.RB1 0.09
y.DST y.RB2 0.09
x.WR1 y.TE1 -0.09
x.TE1 y.WR1 -0.09
y.DST y.WR1 0.09
x.QB1 y.WR2 0.09
x.WR3 y.WR2 0.09
x.WR2 y.WR3 0.09
x.TE1 x.DST 0.08
y.RB2 x.K -0.08
y.WR2 x.K -0.08
x.TE1 x.RB2 -0.08
x.WR1 x.RB2 0.08
x.WR2 x.RB2 -0.08
x.WR3 x.RB2 0.08
y.K x.RB2 -0.08
y.WR2 x.RB2 -0.08
x.DST x.TE1 0.08
x.RB2 x.TE1 -0.08
x.WR1 x.TE1 -0.08
y.WR3 x.TE1 -0.08
x.RB2 x.WR1 0.08
x.TE1 x.WR1 -0.08
y.WR2 x.WR1 -0.08
x.RB2 x.WR2 -0.08
y.K x.WR2 -0.08
y.RB2 x.WR2 -0.08
y.WR1 x.WR2 -0.08
x.RB2 x.WR3 0.08
y.TE1 x.WR3 -0.08
y.TE1 y.DST 0.08
x.RB2 y.K -0.08
x.WR2 y.K -0.08
x.K y.RB2 -0.08
x.WR2 y.RB2 -0.08
y.TE1 y.RB2 -0.08
y.WR1 y.RB2 0.08
y.WR2 y.RB2 -0.08
y.WR3 y.RB2 0.08
x.WR3 y.TE1 -0.08
y.DST y.TE1 0.08
y.RB2 y.TE1 -0.08
y.WR1 y.TE1 -0.08
x.WR2 y.WR1 -0.08
y.RB2 y.WR1 0.08
y.TE1 y.WR1 -0.08
x.K y.WR2 -0.08
x.RB2 y.WR2 -0.08
x.WR1 y.WR2 -0.08
y.RB2 y.WR2 -0.08
x.TE1 y.WR3 -0.08
y.RB2 y.WR3 0.08
x.WR1 x.RB1 -0.07
x.RB1 x.WR1 -0.07
y.WR1 y.RB1 -0.07
y.RB1 y.WR1 -0.07
y.TE1 x.DST -0.06
x.WR2 x.K 0.06
y.TE1 x.RB1 0.06
y.DST x.TE1 -0.06
y.RB1 x.TE1 0.06
x.K x.WR2 0.06
y.WR2 x.WR2 -0.06
x.TE1 y.DST -0.06
y.WR2 y.K 0.06
x.TE1 y.RB1 0.06
x.DST y.TE1 -0.06
x.RB1 y.TE1 0.06
x.WR2 y.WR2 -0.06
y.K y.WR2 0.06
y.RB2 x.QB1 -0.05
x.WR2 x.RB1 -0.05
y.WR3 x.RB1 0.05
y.QB1 x.RB2 -0.05
y.WR1 x.RB2 -0.05
y.RB2 x.WR1 -0.05
x.RB1 x.WR2 -0.05
y.RB1 x.WR3 0.05
x.RB2 y.QB1 -0.05
x.WR3 y.RB1 0.05
y.WR2 y.RB1 -0.05
x.QB1 y.RB2 -0.05
x.WR1 y.RB2 -0.05
x.RB2 y.WR1 -0.05
y.RB1 y.WR2 -0.05
x.RB1 y.WR3 0.05
x.WR2 x.DST -0.04
y.RB2 x.RB1 0.04
y.RB1 x.RB2 0.04
y.WR3 x.RB2 0.04
x.DST x.WR2 -0.04
y.RB2 x.WR3 0.04
y.WR2 y.DST -0.04
x.RB2 y.RB1 0.04
x.RB1 y.RB2 0.04
x.WR3 y.RB2 0.04
y.DST y.WR2 -0.04
x.RB2 y.WR3 0.04
y.WR2 x.RB1 0.03
y.RB2 x.RB2 0.03
y.TE1 x.RB2 -0.03
y.RB2 x.TE1 -0.03
y.WR1 x.WR1 -0.03
y.RB1 x.WR2 0.03
x.WR2 y.RB1 0.03
x.RB2 y.RB2 0.03
x.TE1 y.RB2 -0.03
x.RB2 y.TE1 -0.03
x.WR1 y.WR1 -0.03
x.RB1 y.WR2 0.03
x.RB1 x.DST 0.02
x.TE1 x.K 0.02
y.WR3 x.K 0.02
x.DST x.RB1 0.02
x.RB2 x.RB1 -0.02
x.RB1 x.RB2 -0.02
x.K x.TE1 0.02
x.WR3 x.WR1 -0.02
x.WR1 x.WR3 -0.02
y.K x.WR3 0.02
y.RB1 y.DST 0.02
x.WR3 y.K 0.02
y.TE1 y.K 0.02
y.DST y.RB1 0.02
y.RB2 y.RB1 -0.02
y.RB1 y.RB2 -0.02
y.K y.TE1 0.02
y.WR3 y.WR1 -0.02
x.K y.WR3 0.02
y.WR1 y.WR3 -0.02
y.TE1 x.K -0.01
y.WR1 x.K -0.01
y.K x.TE1 -0.01
y.K x.WR1 -0.01
y.WR3 x.WR1 -0.01
x.WR3 x.WR2 -0.01
x.WR2 x.WR3 -0.01
y.WR1 x.WR3 -0.01
x.TE1 y.K -0.01
x.WR1 y.K -0.01
x.K y.TE1 -0.01
x.K y.WR1 -0.01
x.WR3 y.WR1 -0.01
y.WR3 y.WR2 -0.01
x.WR1 y.WR3 -0.01
y.WR2 y.WR3 -0.01
x.WR3 x.DST 0
y.QB1 x.QB1 0
y.RB1 x.QB1 0
y.QB1 x.RB1 0
y.WR1 x.RB1 0
y.RB1 x.WR1 0
x.DST x.WR3 0
y.WR3 y.DST 0
x.QB1 y.QB1 0
x.RB1 y.QB1 0
x.QB1 y.RB1 0
x.WR1 y.RB1 0
x.RB1 y.WR1 0
y.DST y.WR3 0

recent and related...

in case you missed it...

The Week 3 Do Not Cut List: The O.J. Howard Edition

Here we are again, another week of information, and if you are reading this, likely a week with much disappointment. Fantasy Football can be a cruel beast and is not for the faint of heart. Remember that this is a long season, and even if you are 0-2 there is

Read More

Wide Receiver Target Report: Week 2

Week 1 saw a whopping 21 wide receivers command at least ten targets in the NFL. Week 2 saw this number drop to 16. Let’s take a look at the players who received the lions share of their teams’ targets in the past week of NFL action. Double-Digit Targets Week

Read More

NFL Week 2 RB Market Share Report

Welcome to the Week 2 edition of the RB Market Share Report. In this column, I report usage statistics and advanced metrics for all NFL running backs. I will also summarize RB workload statistics for all 32 NFL teams and highlight key trends as applicable. I will publish updates to

Read More

2019 Week 3 Tight End Streamers: Welcome to the Wasteland

It didn’t take long, but Week 3 marks the first visit to the tight end wasteland of the 2019 season. The options are not great, especially given Darren Waller’s ascension to “every week starter” status following his TE8 finish in Week 2. For the second week in a row, Waller

Read More

Sign-up today for our free Premium Email subscription!

© 2019 RotoViz. All rights Reserved.