JD
CASE

Get the data

Every number on this site is released as data: plays, teams, players and games, updated each week of the season.

Where

The release lives on GitHub: github.com/davisj2007/nfl_case_data . Every season from 2006 to the present has its own folder, in gzipped CSV and in Parquet — the same contents. Completed seasons are scored with the current model; the current season is updated weekly.

What is in it

file one row per
case_plays play: CASE, its two parts, win probability, leverage
team_game, team_season team and game, or team and season, with EPA, yards and points
team_ledger_season, team_ledger_game team: produced, allowed and net
team_ledger_by_unit team and unit: passing, rushing, special teams, penalty, clock
player_season, player_game player view (passing, rushing, receiving)
game_summary game: excitement, tension, lowest win probability, lead changes
game_timeline play, in each game's path
implied_wins team and second of game time

Every column is documented in DICTIONARY.md , generated from the data itself.

Load it

In R:

      library(readr)
plays <- read_csv(
  "https://raw.githubusercontent.com/davisj2007/nfl_case_data/main/data/2026/case_plays_2026.csv.gz")
    

In Python:

      import pandas as pd
plays = pd.read_csv(
    "https://raw.githubusercontent.com/davisj2007/nfl_case_data/main/data/2026/case_plays_2026.csv.gz")
    

Before you publish

Read CAVEATS.md first. Three matter most:

License and credit

Released under Creative Commons Attribution 4.0 : share and adapt it, including commercially, with credit. CASE is built on play-by-play data from nflverse , also CC BY 4.0 — please credit both.

Cite as: Davis, J. ( 2026 ). CASE: Context Aware Scoring Expectation . Jake Davis Analytics. case.jakedavisanalytics.com