Methodology

How the tournament gets simulated

Every number SimSlate shows you is downstream of five modeling decisions. Here is each one, what the conventional shortcut would be, and why we don't take it.

01 · Marginal distributions

No player is normal

A wide receiver's fantasy outcomes are not symmetric. Most weeks cluster below the mean; a few weeks — a long touchdown, a broken coverage — land far above it. Modeling that with a bell curve overstates the floor and amputates the ceiling, which is exactly the part of the distribution a GPP pays for.

SimSlate fits each player a right-skewed shifted lognormal, solved so the fitted curve simultaneously matches the player's mean, standard deviation, and ceiling and reproduces their boom and bust probabilities. Tails are capped at realistic NFL maxima, so no simulation hands a tight end 70 points.

Projections tell you the median. GPPs pay the tail. A projection is one point on this curve; the prize pool lives in the region a bell curve can't see.

CEILING GAMES FITTED SHIFTED LOGNORMAL NORMAL (WRONG)
Fig 1 — a symmetric curve concedes the region GPPs are decided in.
02 · Threshold calibration

Boom and bust are learned, not decreed

Most sites define a "boom" with a folk rule — commonly 5× salary value. Run that rule against actual projection data and it collapses: at DraftKings salary scales, 5× value is a threshold many positions essentially can't reach, so the "boom rate" it produces is noise dressed up as a stat.

SimSlate calibrates boom and bust thresholds from the slate data itself, position by position, so that the stated probabilities are statements the distribution can actually satisfy. The fitted marginal is then required to reproduce those probabilities — the thresholds constrain the fit rather than decorating it.

The 5× myth: a fixed multiplier ignores that value thresholds scale differently for a $3,000 punt and an $8,500 stud. Calibrated thresholds make boom% mean the same thing at every salary.

03 · Joint behavior

A Gaussian copula ties the slate together

Stacking works because outcomes are correlated: a quarterback's spike usually arrives with his receiver's. But you can't just bolt correlations onto skewed marginals — naive approaches either distort the marginals or produce a matrix that isn't mathematically valid.

SimSlate samples from a Gaussian copula: correlations are imposed in a latent normal space, kept positive semi-definite so every draw is coherent, then mapped through each player's own fitted distribution. Every player keeps their exact skewed marginal, and the slate moves together the way football actually moves:

  • Same-team stacks — QB with his pass catchers.
  • Bring-backs — opposing offenses in a shootout, via the slate's matchup map.
  • Defenses against opposing offenses — negative, as it should be.
04 · The field

Ownership is the target, not a suggestion

A contest sim is only as honest as the field it simulates against. SimSlate treats projected ownership as the target and never normalizes it — a correct NFL slate already sums to roughly nine roster spots' worth of ownership, and rescaling it "to 100%" would silently distort every player's exposure.

Fidelity is enforced, not just encouraged. Every player has a hard exposure cap of projection plus a small tolerance (within about 2 points absolute and 15% relative, whichever binds); sub-1% players stay sub-1%. The generator fills scarce positions like DST and TE first so salary pressure lands on deep player pools, the way it does in real contests. After calibration, effectively zero players sit outside their band.

05 · Prize sharing

Winning isn't worth much if 400 people win with you

Chalk's hidden cost is duplication. SimSlate assigns every field lineup an expected duplicate count derived from its joint ownership — concentrated, popular builds get multiplicities well above one. In the simulated contest, a duplicated lineup occupies a band of ranks and splits the prizes across that band, so a chalk lineup that binks first place earns the diluted average, not the headline number.

Two accounting rules keep this honest. A unique lineup's multiplicity is floored at 1.0 — being contrarian never fabricates extra equity, it only avoids sharing. And the payout curve is repriced to the effective number of entries, so the entry-weighted average ROI of the whole field equals exactly the rake. No value is invented; it's only redistributed away from duplicated builds.

CHALK · m = 4.0 → SPLITS RANKS 1–4 UNIQUE · m = 1.0 → KEEPS RANK 1 ÷4 ×1
Fig 2 — duplication multiplicity turns first place into an average over a rank band.
06 · Validation

Invariants the engine must pass, every run

A simulator that can silently drift is worse than no simulator. SimSlate's engine is held to invariants that are checked, not assumed:

  • Conservation: entry-weighted mean ROI across the field equals the negative of the rake. If the sim leaks or invents money, it fails.
  • Leverage: within each projected-score decile, ownership correlates negatively with simulated ROI. Top-heavy payouts must reward the lower-owned route.
  • Ownership fidelity: generated exposure within tolerance of projection for every player — a hard band, not an average.
  • Marginal integrity: fitted distributions reproduce each player's mean, spread, ceiling, and boom/bust probabilities; tails respect NFL maxima.
  • Reproducibility: a pinned seed yields bit-identical results across the app and the compute tier — the engine adds zero hidden randomness.

Why this matters for you: when a lineup shows +18% ROI, that number survives a closed system of checks. It isn't a vibe with a decimal point.

See it on a real slate

The methodology, running.

Generate the field, run 50,000 sims, and inspect every claim above in the output.