explaingit

haris-sujethan/live-sportsbook-arbitrage

15PythonAudience · developerComplexity · 3/5Setup · moderate

TLDR

A research dataset and live browser overlay that finds sports betting arbitrage opportunities across Ontario sportsbooks, with a Python analysis of 6.5 million historical odds rows identifying tennis as the most volatile sport.

Mindmap

mindmap
  root((live-sportsbook-arbitrage))
    What It Does
      Arbitrage detection
      Guaranteed profit betting
    Research Component
      6.5M odds rows
      6 sports analyzed
      7 Ontario bookmakers
    Key Finding
      Tennis most volatile
      Live odds 3.8x pre-game
    Live Tool
      Browser overlay
      Real-time alerts
      Stake calculator
    Tech Stack
      Python
      Browser extension
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Use the browser overlay to get real-time arbitrage alerts and exact stake amounts across two Ontario sportsbooks during a live tennis match.

USE CASE 2

Analyze 6.5 million historical odds rows from 7 Ontario bookmakers to find which sport and book pairings produce the most opportunities.

USE CASE 3

Extend the data collection layer to add new sportsbooks or sports beyond the six in the existing dataset.

USE CASE 4

Use the stake calculator output to place both sides of an arbitrage bet before the slower book reprices.

Tech stack

Python

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires open sportsbook browser tabs for live odds reading, historical data collection used a paid third-party odds API.

No license specified in the repository.

In plain English

This repository is a two-part project focused on arbitrage in live sports betting, built and tested against Ontario sportsbooks. Arbitrage in this context means placing bets on both sides of the same outcome across two different bookmakers when their combined implied probabilities add up to less than 100%, locking in a small guaranteed profit regardless of the result. The first part is a research project. The author collected 6.5 million rows of historical odds data across 6 sports (soccer, basketball, tennis, baseball, ice hockey, and MMA) from 7 Ontario sportsbooks over a 3-month period using a historical odds API. The analysis looked at which sports, which book pairs, and which timing windows (before a match vs during it) produced the most arbitrage opportunities. The main finding was that tennis has by far the most volatile odds of any sport in the dataset, with line moves averaging about 26 odds points per change compared to roughly 8 for basketball. The research also found that live in-game movement is about 3.8 times larger per event than pre-game movement. Tennis played live was the clearest target. The second part is the practical tool: a browser overlay, described as a Chrome extension or overlay, that reads live odds directly from open sportsbook tabs. When a discrepancy appears between two books in real time, the tool tells the user exactly how much to bet on each side and where, so the window can be acted on before the slower book reprices. The project is focused on Ontario, Canada, where specific sportsbooks operate legally. The code is written in Python for the data collection and analysis side. The tool itself reads from browser tabs rather than APIs, which means it works on current live odds without needing a paid data feed during actual play.

Copy-paste prompts

Prompt 1
I want to use the live-sportsbook-arbitrage overlay during a live tennis match. How do I set it up, which sportsbook tabs do I need open, and how does it read the odds?
Prompt 2
Walk me through the data collection script in live-sportsbook-arbitrage. How were the 6.5 million historical odds rows gathered and what format are they stored in?
Prompt 3
I want to adapt the arbitrage scanner for sportsbooks outside Ontario. What parts of the code are Ontario-specific and need to change?
Prompt 4
Summarize the key statistics from live-sportsbook-arbitrage: why does tennis show the most arbitrage opportunities and how does live odds movement compare to pre-game?
Open on GitHub → Explain another repo

← haris-sujethan on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.