NFL · NBA · MLB · NHL · EPL · 1990 to today

The Closing Line

Scroll down to take the snap

AI-generated video, not a real player (Wan 2.2) Skip intro
NFL · NBA · MLB · NHL · EPL · 1990 to today

The Closing Line: can a simple model beat Vegas?

Loading the summary numbers…

Methodology

Where the data comes from and how every number is computed

What one row is

The core data set is a panel with one row per team per game: every game appears twice, once from each team's side, with the date, season, sport, team, opponent, home/away/neutral, points (or runs or goals) for and against, the result, and, where a betting market existed, the line, the total, the moneyline or 1X2 odds and the outcome against them. The time column is the date and season; the group columns are sport and team. There is one file per sport (data/nfl.csv, data/nba.csv, data/mlb.csv, data/nhl.csv, data/epl.csv) with the same 24 columns. Player data lives in separate files: per-game rows for recent seasons (data/<sport>_players.csv) and season totals for the full span (data/<sport>_player_seasons.csv).

Data sources

Rows dropped and why

How every rate, ratio and average is computed

The report and the dashboard use exactly the same definitions:

Honest limits