Clive S. — Cloud Infrastructure Engineer

Sports Forecasting Dashboard: Win Probabilities + Market Edge

Context:

Most ML projects stop at a notebook. This project is a production style forecasting pipeline that generates win probabilities and computes market edge by comparing model probability to odds implied probability. The v1 focus is NBA and European soccer with pre match odds.

Problem & Constraints:

If you want this to behave like a real product, you cannot do per user API calls to an odds provider. You will hit rate limits and build something expensive and fragile. The pipeline must be repeatable, cached, and operationally visible.

This is scoped as analytics only. No wager placement. The goal is a subscription analytics experience with OAuth and Stripe gating.

Solution & Architecture:

The system ingests data on a schedule, stores snapshots in Postgres, and serves the dashboard from cached data. A FastAPI service runs inference and produces a dataset that the front end can consume.

Compute hosts the pipeline and jobs. The public facing React site is hosted on DreamHost. Compute pushes a static payload to the web host so the site can remain simple and fast.

The odds provider for v1 is The Odds API. The system stores raw odds plus normalized decimal odds and implied probability so calculations are reproducible.

Proof & Outcome:

This is currently in scoping with prior build progress that was reset when the VMs were rebuilt. The proof targets are clear. Scheduled ingestion populates the database. A training run produces a model artifact and calibration metrics. The pipeline generates a daily dataset that the public React site renders. OAuth and Stripe gating restrict access to subscribers.

The outcome is a real end to end ML product pattern rather than a one off model.

Next Steps:

Rebuild the compute environment cleanly and re implement the ingestion pipeline with caching. Define the dashboard schema and publish mechanism to DreamHost. Implement OAuth and Stripe gating. Add monitoring and alerting for ingestion failures and stale odds. Document the formulas and validation so the system is explainable and auditable.