- Python 3.9+
uvinstalled- ESPN league access details:
league_idteam_idswid+espn_s2for private leagues
uv syncThis starts the interactive menu session:
uv run fantasy-decision-maker --league-id <LEAGUE_ID> --team-id <TEAM_ID> --year <YEAR>For a first non-interactive success path, generate a report:
uv run fantasy-decision-maker --league-id <LEAGUE_ID> --team-id <TEAM_ID> --year <YEAR> --report-only- Copy a template:
cp config.template.json config.json-
Edit
config.jsonwith league/team/year and optional cookies. -
Run with config:
uv run fantasy-decision-maker --config config.json- Optional report-only mode:
uv run fantasy-decision-maker --config config.json --report-onlyBuild local context for last 3 seasons + current season:
uv run fantasy-decision-maker --config config.json --build-context --context-lookback-seasons 3Force full refresh:
uv run fantasy-decision-maker --config config.json --build-context --context-full-refreshRun historical backtest using local context first:
uv run fantasy-decision-maker --config config.json --historical-backtest --use-contextUse the endpoint probe runner to score candidate sources for weather/market/odds/injury domains:
uv run gateway-probe --config config.gateway_probe.template.json --output-dir reports/gateway_probeSee docs/gateway/README.md for schemas, endpoint catalog, game-location mapping, and go-live checklist.
For private leagues, pass cookies either in config.json or via CLI flags:
uv run fantasy-decision-maker \
--league-id <LEAGUE_ID> \
--team-id <TEAM_ID> \
--swid "{YOUR-SWID}" \
--espn-s2 "YOUR-ESPN-S2"- Copy and edit the template with real league/team/year values:
cp config.ab.template.json config.ab.json- Run A/B evaluation from config:
uv run fantasy-decision-maker --ab-config config.ab.json --ab-evalFree-source shortcut (no standalone gateway service):
cp config.ab.free.template.json config.ab.free.json
# edit league/team/year (+ optional private-league cookies)
uv run fantasy-decision-maker --ab-config config.ab.free.json --ab-evalLeakage guard (recommended for historical-style evaluations):
- Set either:
alpha_provider.kwargs.runtime.as_of_utc(exact timestamp), oralpha_provider.kwargs.runtime.as_of_date(YYYY-MM-DD, interpreted as00:00:00+00:00UTC).
- Do not set both fields at once; provider initialization raises an error if both are present.
- Feed snapshots are persisted to
data/feed_snapshotsand used for backward as-of selection. - Fresh deployments need warm-up history in
data/feed_snapshotsbefore olderas_ofcutoffs can resolve rich snapshots. - Per-feed publication lag and max staleness gates are configurable in runtime maps.
Optional provider override:
uv run fantasy-decision-maker \
--ab-config config.ab.json \
--ab-eval \
--ab-provider-class alpha_sim_framework.providers:CompositeSignalProviderIf you need a quick map of League, Team, Player, and related upstream objects from espn_api, see:
- Team not found:
- Re-check
team_idagainst the team URL in your ESPN league.
- Re-check
- Authentication failures (401/403):
- Refresh
swid/espn_s2cookie values.
- Refresh
- First run is slower:
- Initial model/cache setup takes longer; subsequent runs are faster.
- Missing required arguments:
- Provide either
--configor the required CLI fields (--league-id,--team-id).
- Provide either