NFLOptimizer
DraftKings & FanDuel
Slates
▸
Upload Slate CSV
No slate loaded
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
Minimum Projection?
Minimum Total Ownership?
Participation Floors?
Lambda (variance penalty)
Dart Exposure Cap?
Classic Construction Rules (soft)
DST $2.8-3.1k bonus
DST $3.6k+ penalty
Zero-punt penalty
3+ punt penalty
FLEX=RB bonus
FLEX=WR penalty
Skill Player vs. Opposing DST
Team Exposure Caps (optional -- max players from a specific team, applies to every generated lineup)
Game Exposure Caps (optional -- max combined players from both teams in a game)
FLEX Eligible Positions
Settings Presets
Runs the actual optimizer.py via GitHub Actions (typically 20-90s) and supports every control above.
Exposure Summary
▸
Player/DST exposure across every lineup in your last build. Confirm your chalk lands near Max Exposure %, your dart-tier plays land near Dart Exposure Cap % (if set), and nothing is over- or under-exposed relative to what you intended. Updates automatically after each "Build Lineups" run.