Polling schedule
| Source | What it captures | Cadence |
|---|---|---|
| Odds API — league poll | Latest lines for all props in a league | Every 30 min |
| Odds API — closing-line poll | Per-event close snapshot for tracked bets / Discord picks | Every 10 min during 0–20 min tipoff window |
| ESPN — player stats | Game logs for completed games | Daily (10:00 UTC) |
| ESPN — injuries | Player injury status changes | Daily (10:00 UTC) |
| CLV settlement | Compute closing line value on settled bets | Hourly |
Freshness indicators
The dashboard shows a last-updated badge at the page header, displaying the relative time since the most recent snapshot in the visible dataset:- Under 5 min — green, considered live
- 5–30 min — neutral, expected for a 30-min polling cycle
- Over 30 min — yellow, may indicate the cron skipped a beat
- Over 60 min — red, treat as stale
Snapshot types
Every captured row has asnapshot_timestamp and a snapshot type:
- Opening — earliest captured value for a prop, marked
is_opening_line=true - Scheduled — regular 30-min polling cycle
- Closing — captured during the tipoff window for tracked events
Bets-driven closing-line capture
The closing-line cron is bets-driven — it only fetches close snapshots for events where:- A user has a pending bet with an
odds_idreferencing the event, OR - A parlay leg references the event, OR
- The Discord bot has scheduled a pick for the event
ODDS_API_DAILY_BUDGET_CREDITS, default 400) hard-stops the cron if projected spend exceeds the cap.
What “real-time” would require
True sub-second live odds require a different data tier — typically $5,000+/month. Line Gap is built around what affordable polling can deliver well, which is pre-game intelligence: line movement charts, sharp signal detection, cross-book comparison, CLV. Live in-game betting is explicitly not supported.Coming soon
Per-user webhooks for tracked bets
Tracked as enhancementTrigger a closing-line snapshot the moment any user tracks a new bet, rather than waiting for the next 10-minute scan. Would tighten close coverage for last-minute bets.