Football data live
Every price, timestamped.
Every result, verified.
OddsVault captures real bookmaker odds as immutable snapshots, settles supported markets deterministically once events finish, and keeps the whole history queryable — so analysis can only ever move forward.
- Sports modelled
- 5
- Mock rows
- 0
- Odds tables
- hypertable
- Settlement
- versioned
football first
by policy
Phase 2
Phase 3
Go API
/svc
- Build
- —
- Uptime
- —
What exists in this foundation
Everything below boots from this repository; nothing below pretends to have data yet.
Go backend
cmd/One modular module: API plus four worker binaries, structured logs, graceful shutdown.
PostgreSQL + TimescaleDB
migrations/Forward-only migrations with checksums and an advisory lock. Reference catalogue only.
Premier League data
events/380 fixtures imported from OpenFootball, 90 results from football-data.co.uk, matched to one event.
Operations surface
api/Health, readiness and version endpoints; import and quota tables ready for Phase 1.
The build order
One proven pipeline before the next. Football ingestion, then a single collector, then settlement — not twelve half-features.
- Phase 0 — FoundationDone
- Phase 1A — Football fixtures & resultsDone
- Phase 1B — Live scoresActive
- Phase 2 — Odds capturePartial
- Phase 3 — Football settlementPlanned
- Phase 4 — Sports visual UIPlanned
Non-negotiable rules
The dataset is the product. Convenience never outranks historical truth.
No mock application data
Games, odds, results and bets enter the database only from a real provider or collector.
Missing stays missing
Unavailable values are NULL or an explicit state such as needs_data — never a fabricated zero.
Snapshots are immutable
1.92 → 1.88 → 1.81 → 1.76 keeps every observation. The newest price never overwrites history.