Duncan Anderson
Back to selected work
Live productFounder, product owner, solo builder

Sports analytics

The Lineup

Models, live markets, subscriptions, and public results in one operating product.

A public multi-sport product that has to earn trust every day, not a one-off model or demo.

Operational proofEvidence view

The Lineup

Current iOS product

Live
The Lineup best bets screen
The Lineup projections screen
The Lineup results screen

Current App Store product screens

What changed

A collection of models and data feeds became a product where a customer can inspect a market, understand the projection context, act on it, and return later to see how it graded.

Before

  1. 01Sports data, model output, and sportsbook prices lived in separate systems.
  2. 02A prediction had no useful product loop without price context and a recorded result.
  3. 03Billing, access, freshness, and settlement were operational work around the model.

After

  1. 01Live prices are normalized and compared against model context.
  2. 02Customers see decisions through focused product surfaces on web and iOS.
  3. 03Results are graded automatically so the product remains accountable.

What I owned

I built and operate the full product: data ingestion, projection models, market comparison, user-facing decisions, billing, automated grading, and the systems that keep it running.

  • 01Projection and market data pipelines
  • 02FastAPI, Next.js, PostgreSQL, and Redis application stack
  • 03Web and iOS product delivery
  • 04Subscriptions, analytics, monitoring, and operational tooling

Where trust was designed in

Model output is not presented as truth without consequence. Prices, timestamps, grading, and result history create an inspectable loop around every decision.

Evidence

  • Public web product
  • Published iOS application
  • Automated grading and public result history

Public proof

Technical detail

PythonFastAPINext.jsPostgreSQLRedisLightGBMStripeRevenueCat

Have a similar operating problem?

Send the current workflow and the point where it keeps breaking. I will tell you whether there is a practical paid first phase.

Discuss your workflow