DFS Correlation Matrix: How to Read the Grid That Shows Which Players Move Together
The correlation matrix is the simulator's output that shows which players' fantasy outcomes move together and which move opposite. Reading it correctly separates stacks that hit their ceiling from stacks that quietly underperform expectations. This piece walks through how to read the grid, which pairs matter, and why the same players in different game scripts produce very different correlation values.
Correlation is what makes DFS stacking work. Without correlation, a QB + WR pair's combined ceiling is just the sum of two independent ceilings. With correlation (which is what actually happens), the pair's realistic ceiling is much higher than the independent sum — but only when the correlation is positive. The correlation matrix is the simulator's tool for showing you exactly which pairs are worth stacking and which pairs are worth avoiding.
Matrix structure
A correlation matrix is a square grid — one row per player, one column per player. The value at row i, column j represents the correlation coefficient between players i and j across the simulator's Monte Carlo iterations.
Structural properties:
- Diagonal cells = 1.0. Every player is perfectly correlated with themselves. Read the diagonal as a sanity check.
- Off-diagonal cells range −1.0 to +1.0.+1.0 = perfect positive correlation (never happens in DFS); −1.0 = perfect negative correlation (also never happens in DFS); 0 = independent outcomes.
- Matrix is symmetric. Correlation of A with B = correlation of B with A. You only need to read the upper or lower triangle; the other half is the mirror.
Positive correlation examples
NFL QB + same-team WR: +0.45 to +0.60
The strongest positive-correlation pair in DFS. A QB's passing yards are literally the WR's receiving yards divided by the target rate. When one goes up, the other goes up. Stacking QB + WR captures this correlated upside — the whole reason NFL stacking works.
MLB consecutive hitters in same lineup: +0.30 to +0.45
Hitters in the middle of a batting order share game- flow scoring. When the team scores 8 runs, the 3-4-5 hitters typically all had good games (drove in each other's runs, benefited from lineup turnover). MLB stacks capture this.
NHL top-line forwards: +0.35 to +0.50
Three forwards on the same top line share ice time, power-play units, and goal-scoring assists. When one scores, another often assists. NHL line stacks capture this correlation cleanly.
Negative correlation examples
MLB pitcher + opposing hitters: −0.35 to −0.50
Pitcher earns points for strikeouts and holding runs. Hitters earn points for reaching base, RBIs, HRs. When the pitcher succeeds, the hitters fail — the two outcomes are directly opposed. Never roster them together.
NFL QB + opposing defense: −0.25 to −0.40
Defense scores for sacks, interceptions, forced fumbles, and points-allowed brackets. QB scores for passing yards, TDs, but loses points for interceptions. QB success = defense failure and vice versa. Skip this pairing.
NBA star + high-owned bench-up on their team: −0.20 to −0.30
In a blowout scenario, the star gets pulled early and the bench player takes his minutes. Their scores are anti-correlated (one goes up, the other goes down). Weak negative correlation — technically allowed to roster together, but you can't win both.
Context-dependent correlation
The critical insight most casual DFS players miss: correlation depends on game context, not just on the two players.
Same QB + WR pair, different game contexts:
- Projected shootout (game total 52+):Correlation +0.60. Both need to score heavily for the total to hit; their outcomes are tightly linked.
- Projected defensive game (game total 41):Correlation +0.35. Some correlation but less because there's less shared upside to correlate on.
- Projected weather game (heavy wind/rain):Correlation +0.40 but SHIFTED — the correlation concentrates on shorter passes, so QB + slot WR or TE correlation is higher than QB + deep WR.
The simulator recomputes correlations based on each slate's specific game contexts. A static per-player correlation table (which some public tools show) misses this dynamic; the simulator's per-slate matrix captures it.
The correlation matrix is not a static player property. It's a per-slate output. Same players + different game contexts = different correlation values.
Using the matrix for stack construction
- Identify candidate stack pairs (QB + WR, MLB 3-4-5, NHL top line, etc.).
- Look up the pair's current-slate correlation. If +0.4+, the stack is worth building. If +0.2 or lower, the stack's "correlation" isn't producing the ceiling boost you might expect.
- Check for negative-correlation pairs on your intended lineup. Any pair below −0.25 is a construction error; swap.
- For portfolio construction, use the matrix to diversify across CORES rather than random combinations. Two cores with different high-correlation pairs diversify better than two cores that happen to share negative correlations.
When to override the matrix
The correlation matrix is model output; sometimes the model misses context. Override situations:
- Player-specific injury news that hits after the sim ran. If the WR you're considering stacking with your QB just got downgraded from probable to questionable, the correlation drops faster than the sim can update.
- Vegas line movement that hasn't been reflected in the sim inputs. A game moving from +7 to +3 in the hour before lock means the projected game script has changed, and correlations shift.
- Weather-report updates that came in after the last sim run. Rain probability climbing from 20% to 65% shifts the QB + WR correlation from deep-WR toward slot-WR or TE.
Related
- Correlation deep dive — the math underlying the matrix
- Stacking strategy — how to translate matrix values into concrete stacks
- How to read simulation output — the matrix is one of the simulator outputs; this piece extends that context
- Monte Carlo simulation in DFS — the underlying mechanism that produces the matrix
- Multi-entry portfolio construction — matrix-driven core diversification