Locked by default on every page load to prevent an accidental edit — click "Locked" to unlock and change it. Saved automatically as you type once unlocked.
Slates
▸
Upload Slate CSV
No slate loaded
Name:
Accepts either final_projections_{site}_{slate_id}.csv (to build lineups) or an already-built lineup_*.csv (to view). The name field is pre-filled with the real --slate-id from the filename — leave it as-is unless you have a reason to change it, since this exact value is what "Build Lineups" sends to the real solver. Persists across reloads and syncs to cloud.
Build a Lineup
▸
# Lineups
Max Exposure %
Uniqueness
Stack Mode
Randomization %
Minimum Salary
Lineups must spend at least this much (cap is $50,000 on DK, $60,000 on FD -- the slider adjusts automatically when you switch sites).
Minimum Projection
Excludes any player projected below this many points from the pool entirely, before the solver runs (0 = no floor). Locked players are always exempt.
Minimum Total Ownership
Requires the lineup's summed ownership to be at least this much (0 = no floor; same units as "Total Own" on a built lineup, e.g. 130). Set very high to see a "super chalk" build for comparison against the true optimal.
Team Exposure Caps (optional -- max players from a specific team, applies to every generated lineup)
E.g. cap KC at 2 players. Click an added cap to remove it. If a locked player already exceeds a cap, the build will fail with a clear reason.
Game Exposure Caps (optional -- max combined players from both teams in a game)
E.g. cap KC vs DEN at 4 combined players. Independent from (and additive with) a Game Stack's minimum -- a contradictory combination will fail to build.
FLEX Eligible Positions
Settings Presets
Each lineup in the batch draws its own randomized projection around the real value -- adds variety across a multi-lineup build.
Stack Size
Partner Positions
WR/TE correlate with their own QB's passing stats -- RB production is mostly independent (rushing, not passing), so it's left out of the default. Add RB here if you specifically want it as an option.
Stack Team(s) (optional -- pick 1 or more, or leave blank to auto-select)
Stack Game(s) (optional -- pick 1 or more, or leave blank to auto-select)
Min Players From Game
Mini Stack Type
Player Pool
Using estimated_ownership_pct from the slate, if present
Salary
–
Projection
–
Value
–
Own %
–
Runs the actual optimizer.py via GitHub Actions (typically 20-90s) and supports every control above.