Scarcity-aware live draft assistant for a 24-player roster format:
- 17 active:
C, 1B, 2B, 3B, SS, OF x3, DH x2, SP x5, RP x2 - 7 reserve
At each draft decision point, it recommends players using:
- Projected season fantasy points
- Position-specific replacement value at your next pick (Monte Carlo opponent simulation)
- Position drop-off (scarcity) before your next turn
- A feasibility guardrail so remaining active slots can still be completed
Use the project venv interpreter:
.venv/bin/python -m draft_optimizer.cli --teams 12 --draft-slot 7With custom projection CSV:
.venv/bin/python -m draft_optimizer.cli --csv projections.csv --teams 12 --draft-slot 7Use deterministic replacement (no opponent simulation):
.venv/bin/python -m draft_optimizer.cli --disable-mcCSV columns:
- Required:
name,projected_points,positions - Optional:
player_id positionscan be delimited with/,,,|, or;
Example:
player_id,name,projected_points,positions
P0001,Ronald Acuna Jr,510,OF
P0002,Mookie Betts,488,2B/OF
P0003,Spencer Strider,460,SPrecommendorr [n]: show top recommendationsmine <id|name>: record your pickother <id|name>: record another team's pick (off-list names are allowed)run <n>: auto-removenbest available players as opponents' picksstate: show draft status and remaining active-slot needsundo [n]: undo lastnpicks (default1)find <text>: search available playersquit: exit
If an opponent drafts a player not in your loaded pool, enter their name with
other <name>. The draft pick order advances, but no player is removed from your
modeled pool.
torch,numpy, andpandasare optional.- If
torchis installed, sorting in the ranking pipeline uses tensors. - Fake data generation works without external dependencies.
- Monte Carlo controls:
--mc-trials(default220)--mc-temperature(default16.0; lower is greedier opponents)--mc-candidate-pool(default75)--opponent-need-bonusand--opponent-scarcity-weight