Case study · Flagship Product

Odds on Deck

Sports-odds research platform

Founder & Full-Stack Developer2024 — Present
At a glance/ summary
Problem
Odds move constantly and differ between books, and most tools either lock data behind expensive APIs or never verify whether a pick actually won. I wanted a fast, honest research surface that stays cheap to run and holds itself accountable to real results.
My role
Founder & Full-Stack Developer
Outcome
A live platform that surfaces scored props each day with a transparent, verifiable track record, running at a fraction of the naive API cost.

Overview

Odds on Deck compares betting lines from more than ten sportsbooks across MLB, NFL, and NHL, converts them into vig-free market probabilities, and tracks how flagged props resolve against official results — so research is based on measured outcomes rather than marketing claims.

Role & ownership

Sole founder and developer. I own the data model, ingestion, caching strategy, API budget, front-end, and deployment.

Constraints

  • High-volume odds data under strict third-party API cost limits
  • Games and lines change in real time, so data freshness matters
  • Single-maintainer project — everything has to stay simple enough to run alone

Technical approach

A unified data model normalizes MLB, NFL, and NHL odds into one shape. A game-time-aware cache batches requests and only refetches when lines are likely to have moved, and scheduled jobs pull official results to grade tracked props automatically.

Key decisions

  • Batched fetches plus a game-time-aware prop cache cut third-party API costs by roughly 90%
  • One normalized schema across three leagues instead of per-league special cases
  • Automated result validation against official box scores so tracked props grade themselves
  • Vig removed from book lines to show a fair-market probability, not a marketing number
  • Kept the stack JavaScript-first (Next.js / React) for fast solo iteration

Results

  • Approximately 90% reduction in third-party API usage costs through batched requests and game-time-aware caching
  • Unified MLB / NFL / NHL coverage from 10+ sportsbooks
  • Automated, auditable result validation

Selected screens

Odds on Deck homepage on a dark UI showing today's game-slate counts by league, a top-props list with prices and win probabilities, and a transparent record with tracked count and hit rate. (opens the full screenshot in a new tab)
Homepage — today's slate, top props, and the transparent tracked record.
Odds on Deck Today's Slate page listing a full MLB schedule with live and final game states and scores. (opens the full screenshot in a new tab)
Today's Slate — full schedule with live and final game states.
Odds on Deck Editor's Picks page with pick-strategy filters (Safe, Balanced, Value, All), a curated shortlist of props with quality scores and win probabilities, and moneyline comparisons. (opens the full screenshot in a new tab)
Editor's Picks — a curated shortlist with quality score and win-probability filters.
Odds on Deck parlay comparison view showing a long list of games with combined lines and implied probabilities compared across sportsbooks. (opens the full screenshot in a new tab)
Parlay comparison — combined lines and implied probability across books.

Stack

Next.jsReactJavaScriptSupabase / PostgreSQLPrismaTailwindREST APIsCron jobs