26 open-source packages · R · Python · Node.js · 8 leagues in the warehouse · 120M+ rows of play-by-play · EPA · win probability · ratings models · free and open since 2021

College football team EPA

College football team EPA

Rank every FBS offense by expected points added per play from a full season of play-by-play.

Expected points added per play is the backbone of modern college football analysis. load_cfb_pbp() pulls a full season of processed play-by-play from the sportsdataverse-data releases — no scraping, no API key — so ranking every offense takes one pipe.

team_epa.R

# install.packages("cfbfastR")
library(cfbfastR)
library(dplyr)
 
pbp <- load_cfb_pbp(seasons = 2024)
 
pbp |>
  filter(!is.na(EPA), rush == 1 | pass == 1) |>
  group_by(pos_team) |>
  summarise(
    plays    = n(),
    epa_play = mean(EPA),
    success  = mean(success, na.rm = TRUE),
    .groups  = "drop"
  ) |>
  arrange(desc(epa_play)) |>
  head(10)

Columns worth knowing on the way out: EPA, success, pos_team, down, distance. Pass a vector of seasons (seasons = 2014:2024) to load a decade at once.

Full docs: cfbfastR.sportsdataverse.org