OddsVaultPhase 7

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

football first

Mock rows
0

by policy

Odds tables
hypertable

Phase 2

Settlement
versioned

Phase 3

Go API

/svc

Checking…
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.

  1. Phase 0 — FoundationDone
  2. Phase 1A — Football fixtures & resultsDone
  3. Phase 1B — Live scoresActive
  4. Phase 2 — Odds capturePartial
  5. Phase 3 — Football settlementPlanned
  6. Phase 4 — Sports visual UIPlanned

Non-negotiable rules

The dataset is the product. Convenience never outranks historical truth.

01

No mock application data

Games, odds, results and bets enter the database only from a real provider or collector.

02

Missing stays missing

Unavailable values are NULL or an explicit state such as needs_data — never a fabricated zero.

03

Snapshots are immutable

1.92 → 1.88 → 1.81 → 1.76 keeps every observation. The newest price never overwrites history.