Settings Status
Every BetBot configuration setting, what it does, and how to change it. Secret values are never displayed — only whether they are configured.
Selects whether BetBot uses bundled sample data or live providers. Sample mode never makes a network call and is the safe default for demos.
When enabled, Simple Mode shows model-driven picks promoted from the decision engine instead of the seeded demo card. Off by default for safety so demos stay reproducible.
Preview mode lets you inspect model-driven picks without changing Simple Mode. It reuses the engine's existing decision and moneyline previews and never sends alerts.
Controls whether the daily pipeline is allowed to send the card preview to a Discord webhook / Telegram chat / email. The UI never sends alerts even when this is enabled.
Source of sportsbook odds for the slate. 'sample' reads data/sample_odds.json; 'placeholder' is always empty; 'external' calls The Odds API and falls back to cache or sample data on failure.
Optional API key for the external odds provider. Without this, BetBot stays in sample mode and runs normally. With it, BetBot can call the external odds API (or use its cache).
Provider that supplies team schedules and recent stats. ESPN's public scoreboard requires no API key. Sample uses bundled JSON.
On-disk cache of external odds API responses. Used to avoid burning the rate limit and as a stale-fallback when the API is unreachable. TTL controlled by BETBOT_ODDS_CACHE_TTL_SECONDS.
SQLite database that stores games, odds snapshots, predictions, decisions, and pipeline runs.
Status of the most recent daily pipeline run, including card-pick count, duration, and source log path.
How recently the latest odds batch was collected. External odds go stale after 15 minutes; cached external after 30. Sample data is never stale — it's always labeled Sample.
How recently the daily pipeline finished. Stale after 12 hours; Unknown if it has never been run.
Some sections use sample-tagged-as-fallback data when the external odds API failed and no cache was available. Real decisions never auto-promote fallback rows.
Sample data is the safe default. Games / features and / or odds may be sample data — that's expected for demos and is always clearly labeled.
10 pass / 6 warning / 1 fail across the 12-item readiness checklist. This card never enables real decisions — it's a read-only summary of the Analyst-Mode section.
Lets you preview the switch without changing any setting. Read-only — never writes to the database, never mutates the environment, never sends alerts.
Blocked: BETBOT_ENABLE_REAL_DECISIONS is false.; Model-driven preview card has zero picks.; +2 more (score 76/100, 4 blocker(s), 2 warning(s)).
Preview-only Live Bet Card surfaced near the top of Analyst Mode. Never enables real decisions and never sends alerts.
0 qualified · 0 filtered out by Phase 39 quality controls (edge, confidence, odds source, fallback inputs).
Source of player-prop odds. 'sample' reads the bundled demo file; 'placeholder' returns nothing; 'external' calls The Odds API per-event prop endpoint. Defaults to sample.
Whether live player props are reachable from the configured provider today. Available = props returned; Cached = served from the file cache; Missing Key = no API key; Not Available = provider couldn't return props (often a plan limitation).
On-disk cache for per-event player-prop responses at data/cache/player_props/. TTL controlled by BETBOT_PLAYER_PROPS_CACHE_TTL_SECONDS.
When enabled, qualified live player-prop picks may appear on the Live Bet Card alongside team markets. Default off.
Preview-only player props card built from external prop odds. Sample props never feed this card.
Preview-only Best Price Board across sportsbooks, plus picks that almost passed the Live Bet Card rules. The scanner never places bets, never sends alerts, and never writes the official card.
Whether the Live Market Scanner attempts to fetch live player-prop best prices. Props are only fetched when the Player Props provider is set to 'external' — sample / placeholder always return empty.
Preview-only Best Opportunities Shortlist re-organized from the Live Market Scanner. Best price shops are line-shopping info — never auto-promoted to the official card. No alerts sent.
Preview-only Bet Slip Builder. Aggregates Live Bet Card + Live Player Props picks + Best Opportunities Shortlist Closest-to-Pick rows + Best Price Shop notes into a single review surface. Never connects to a sportsbook account, never places bets, never writes the official card, never sends alerts.
Preview-only export tools for the Live Bet Card, Live Player Props Card, Best Opportunities Shortlist, and Bet Slip Preview. Supports txt / markdown / json. No alerts are sent. No sportsbook connection. Exports are scrubbed for any configured secret value before being returned.
Preview-only Pick Tracker. Captures Live Bet Card / Live Player Props / Bet Slip picks for later manual grading. Price-shop notes are never tracked as bets. Writes are CLI-only — the UI never persists tracking rows.
Source of final scores for auto-grading. 'sample' reads data/sample_results.json; 'placeholder' returns nothing; 'espn' calls the public scoreboard endpoint. Defaults to sample.
On-disk cache for final-scores responses at data/cache/results/. TTL controlled by BETBOT_RESULTS_CACHE_TTL_SECONDS.
Preview-only auto-grader for tracked team-market picks (Moneyline / Spread / Total). Player props remain manual until a player-stat source is wired. The UI never writes grades — writes are CLI-only.
Preview-only ESPN public-scoreboard integration. Used for automatic team-market grading. Never authenticates, never calls a sportsbook account, never sends alerts. On network failure, falls back to the stale results cache when available.
Newest cached ESPN scoreboard response under data/cache/results/. Read-only — used by the auto-grader on cache hit.
Read-only summary of how many tracked team-market picks are still pending vs how many final game_results rows are available for matching. The matcher leaves a pick pending when match confidence is below 0.60 — BetBot never grades a pick it can't safely match.
Preview-only performance dashboard. Pushes and voids are excluded from the win rate; pending picks are never counted. Player props remain manual-only.
Top-of-page command center that ties together Live Bet Card, Best Opportunities Shortlist, Bet Slip Preview, Export, Track, Results & Grading, and Performance. All quick-action buttons are preview / dry-run only — no bets, no alerts, no real-decision toggling, no official_cards writes, no sportsbook integration. Tracking writes stay CLI-only.
Beginner-friendly 8-step walkthrough surfaced near the top of Analyst Mode. Read-only — no IO, no buttons, no state. BetBot does not place bets.
Preview-only release-readiness audit. Verifies API keys, providers, pipeline health, exports, tracking, Simple Mode safety, alerts, no auto-betting code, secrets not leaked, no banned words. Never modifies settings or the database.
Sidebar 'View Detail' selector controls which Analyst-Mode sections render. Beginner = workflow only; Full Analyst = current default; Developer = adds raw / duplicate debug surfaces.
Consolidated daily output that ties the Live Bet Card, Best Opportunities, Bet Slip Preview, tracker summary and performance snapshot into one read-only view. Refresh button + downloads never enable real decisions, never send alerts, never write the official card, and never persist tracking rows.
Latest snapshot from scripts/final_qa_check.py (generated_at: 2026-05-20T23:48:12+00:00). Read-only — the UI never re-runs the sweep.
Freeze checkpoint state. Phase 60 marks the freeze candidate — daily-use ready and demo ready. See docs/FREEZE_MANIFEST.md for the full manifest.
Source of recent_win_pct / point_diff_last_5 / rest_days. 'sample' returns bundled JSON (clearly labeled). 'espn' derives features from the public team schedule (missing fields stay None — we never invent sample values). 'external_placeholder' is the typed slot for a paid feed. 'disabled' returns nothing. **In live-only mode, ESPN is never silently replaced with sample data** — if ESPN has no rows we report Missing instead.
Phase 66 quick-glance label: ESPN / Partial ESPN / Missing / Sample / Disabled. Reflects today's actual probe.
Source of injury / news rows. Phase 65 adds the live ESPN league-news adapter (`espn`) with stale-cache fallback (`Cached ESPN`). Placeholder modes always return empty lists with label `Missing` — BetBot never invents news. Picks downgrade when records are missing.
Phase 65 quick-glance label: ESPN Connected / Cached ESPN / Missing / Disabled / Placeholder. Reflects the live state of the news adapter at app open.
Phase 66 — Real Context Mode is ON when live-only mode is on AND both news + team-stats providers are set to `espn`. Activate with `scripts/activate_real_context_mode.py --write` (it never touches your API key).
Summary of which intelligence layers are weak / missing. Live-only candidates downgrade automatically when these warnings fire (see the Daily Live Report card notes).
Readiness summary for the live-only workflow. Recommended paid options: SportsDataIO, Sportradar, OddsJam / OpticOdds style providers. Recommended free / partial option: ESPN scoreboard where available. The app is **ready** — you don't need to sign up before using BetBot, but live picks will downgrade until the missing sources are wired.
Phase 67 — real team/player stats provider. ESPN fills wins / losses / win_pct / per-game points / point diff when available; missing fields stay None (BetBot never invents stats). Paid placeholders (sportsdataio / sportradar) reserve typed slots.
Phase 68 — real player context (roster, injury status, per-game averages where ESPN supplies them). Missing fields stay None (BetBot never invents player stats). Paid placeholders (sportsdataio / sportradar) reserve typed slots for future real wiring.
Phase 73 — surfaces the current named odds provider (from BETBOT_ODDS_PROVIDER_NAME), its health (OK / Cached Only / Unauthorized / Quota Low / Missing), cache + quota state, and the recovery recommendation. Recommendation: Live odds feed is on cached data. Run a fresh refresh when ready.. Alternate providers: 3 typed slot(s) — Not configured.
Daily Live Report is now the first major section after the status banner in Analyst Mode. Beginner View shows the curated daily output (Daily Live Report → Live Command Center → Live Bet Card → Best Opportunities → Bet Slip → Export → Performance → Help). Older / developer sections live in Full Analyst + Developer tiers.