How to Read a DFS Simulation Output: Mean, Floor, Ceiling, and What They Actually Mean
A DFS simulation output looks like a wall of numbers on first pass — floor, mean, ceiling, variance, per-lineup win rate at 3 payout tiers. Most users pick one column (usually mean or ceiling), sort by it, and skip the rest. That's the same mistake as using a single projection instead of a distribution. This piece walks through what each column measures, which decisions each column drives, and the common misreadings that leak edge.
Simulation output is where a DFS tool stops being an optimizer (find the highest-projected lineup that fits the cap) and becomes a decision engine (find the lineup with the highest probability of hitting your payout target). The difference between the two mindsets is the difference between a break-even DFS player and a profitable one.
The five columns per player
A well-instrumented simulator produces at minimum five per-player columns:
- Floor — 10th percentile of simulated outcomes. "The bad-day score." What you land on when things go wrong but don't catastrophically fail.
- Mean — arithmetic average across all iterations. What most public projections report.
- Ceiling — 90th percentile. "The good-day score." Not the theoretical maximum — the score that occurs about 1 in 10 slates.
- Standard deviation (variance) — how wide the distribution spreads. A player with std_dev of 8 has a much wider outcome shape than one with std_dev of 4 at the same mean.
- Ownership projection — expected field ownership percentage. Not a simulation output per se, but co-displayed because leverage decisions require it.
Floor for cash games
Cash games (50/50s, double-ups, head-to-heads) pay a flat multiplier for finishing above the cash line. Every entrant above the line gets the same payout; every entrant below gets nothing. The math incentive is to maximize the probability of clearing the line, not to maximize your finishing position.
Floor is the column that measures "how well do you hold up when things go slightly wrong." A player with a 12- point floor at $6,000 salary produces 2.0 fantasy points per $1k floor. The cash-game threshold is usually 2.5 pts/$1k floor — any player below that gets cut from cash consideration regardless of their mean or ceiling.
See our cash-game strategy piece for the full floor-optimization workflow and why chasing ceiling in cash costs you money.
Ceiling for GPPs — with a caveat
Ceiling matters for GPPs because top-heavy payouts require top-percentile finishes. A 200-entry Millionaire Maker pays out to the top 20%, but 90% of the prize pool goes to the top 1%. To reach top-1%, your lineup needs to score in its own 90th percentile — every player hitting their ceiling simultaneously.
The caveat: player ceilings are correlated. A receiver hitting their 90th-percentile score usually requires their QB to also hit their 90th percentile — the two are joined by target-share and yards-shared correlation. If you sort by naive ceiling and pick the top ceiling at every position independently, you build a lineup whose stated ceiling is the sum of independent 90th percentiles. That number will never actually happen because the underlying stochastic processes don't line up that way.
Independent ceiling summation overstates real lineup ceilings by 15-25%. Correlated Monte Carlo simulation gives you the JOINT distribution, which is the number that actually shows up on the leaderboard.
Per-lineup win rate — the number that matters most
The single most decision-relevant output isn't per- player at all — it's the per-lineup win rate. This is the fraction of simulated slates where your specific lineup would clear a target payout tier.
Concrete example: your simulator reports Lineup A has:
- Cash win rate: 58% (clears cash line)
- Top-20% GPP win rate: 24% (cashes in GPP)
- Top-1% GPP win rate: 0.6% (contends for real money)
A comparison Lineup B might show:
- Cash win rate: 52%
- Top-20% GPP: 22%
- Top-1% GPP: 1.4%
Lineup B is a WORSE cash-game entry (52 vs 58) but a BETTER GPP entry — its top-1% probability is 2.3x higher. The two lineups aren't comparable at the mean- projection level; only the win-rate columns tell you which lineup to put in which contest.
Standard deviation for edge sizing
Standard deviation feeds two decisions: exposure caps and bankroll sizing. A high-std_dev player (variance 8+) is a legitimate GPP piece but needs to be capped at 15-20% exposure — appearing on more than 1 in 5 lineups concentrates your variance too heavily.
Bankroll implications: entering multiple contests around a high-variance lineup requires more bankroll runway than entering the same contests around a low-variance lineup. Rough rule: if your primary lineup's std_dev exceeds 30 total points, you need 2x normal bankroll cushion to survive an expected 3-tail drawdown.
Common misreadings
"My lineup's ceiling is 240"
Interpretation: "we simulated 10,000 slates and this lineup hit 240+ approximately 1,000 times." The lineup's top score in 10,000 sims is much higher — the ceiling column is the 90th percentile, not the maximum. To hit top-1% of a Millionaire Maker (~250-260 points on NFL main slates) you need to be somewhere in the top 5% of YOUR OWN lineup's distribution, not just above the ceiling.
"My cash lineup has a mean of 158, should easily cash"
The cash line moves. On a slate where field scoring runs hot (many chalk plays hitting ceiling), the cash line can exceed a lineup's mean. Cash decisions depend on floor-vs-cash-line probability, not mean-vs-projection. The simulator's cash win-rate column already accounts for the field-adjusted cash line.
"Both players project the same mean, so they're interchangeable"
Not if their variance profiles differ. Player A at 22 mean / 8 std_dev is a floor play; Player B at 22 mean / 4 std_dev is a chalk cash play. They serve different purposes even at identical means. Interchangeable only looks true when you ignore the distribution shape.
Reading the correlation matrix
Beyond per-player columns, the simulator exposes a correlation matrix — how much each player's outcome moves with each other player's. Diagonal cells are variance; off-diagonal cells are correlation coefficients between −1.0 and +1.0.
High-positive-correlation pairs (0.5+) are natural stack candidates: QB-WR from the same team, teammates on the same top NHL line, an MLB lineup's bat combinations. Negative-correlation pairs (−0.3 or worse) are what stack constraints prevent — a pitcher and any hitter facing him, for instance. See our correlation deep dive for the full math.
Workflow: sim → sort → filter → build
- Run the simulation once with your baseline projections and stacking rules disabled.
- For cash construction: sort by floor pts/$1k. Filter to 2.5+ threshold. Take the highest-projected safe player at each roster slot.
- For GPP construction: enable stacking rules, re-run, sort by top-1% win rate at your target contest size. Take the top 10-20 diverse builds.
- Cross-check ownership: if a lineup's per-player ownership sum exceeds 130% (very high field overlap), look for a lower-owned substitute that maintains the top-1% win rate.
- Portfolio-check: apply exposure caps. See exposure caps explained.
Related
- Monte Carlo simulation in DFS — how the columns are computed under the hood
- Correlation deep dive — why joint distributions matter for ceiling accuracy
- Cash game strategy — floor-first construction workflow
- DFS projection quality — how to evaluate whether your simulator inputs are trustworthy
- Exposure caps explained — portfolio-level constraint on the sim output