Odds-Comparison Web App

A python web app to fetch, compare and export sportsbook odds

Posted by CM-WebDev on November 10, 2025

Project Overview

This is a web app that fetches tomorrow’s NBA head-to-head odds, compares prices between target bookmakers, highlights the best side, flags potential arbitrage, and lets you download a CSV. The emphasis: legal data access, minimal code, and production-minded structure.

Core Technologies

  • Python 3 with requests for API calls
  • Streamlit for a one-click UI
  • python-dotenv for secure config via .env
  • CSV export for analysis

Technical Execution & Problem Solving

  • Compliance-first: used a licensed odds API instead of scraping sportsbooks (which often violates T&Cs).
  • Time-zone correctness: normalized commence times to Australia/Sydney and filtered for “tomorrow”.
  • Price logic: computed best home/away prices and a simple arbitrage check (1/home + 1/away < 1).
  • Resilience: added clear UI messages for missing data, API limits, or unavailable books.

Key Features

  • One button to fetch: Fetch → Filter → Normalize → Compare → Export.
  • Bookmaker allow-list (easy to extend).
  • CSV with stable headers for downstream work.
  • Lightweight code with type hints and small, testable helpers.

Demonstrated Skill Set

  • API integration and quota awareness
  • Secrets management via environment variables
  • Data shaping & presentation for decision-making
  • Professional judgement: legality, maintainability, and scope control

Why It Matters

Many “scraper” projects are brittle or non-compliant. This build shows a production-minded, minimal, and legal approach that’s easy to extend (more sports/markets, historical logging, dashboards) without rewriting the core.

You can find the project here: oddschecker.cm-web.dev