Skip to contents

The Expected Points Model

How expected points and EPA work in college football, how the cfbfastR model is built, where the idea came from, and how to reproduce it from the published cfb_model_artifacts bundle.

Expected Points in College Football: How the Model Works (Part I)

What expected points (EP) means in college football, the seven next-score outcomes the cfbfastR model predicts, and how to reproduce its field-position curve from the published model bundle.

How the Expected Points Model Is Built (Part II)

Why expected points is a multiclass problem, why linear and binary logistic regression fail at it, and how the cfbfastR EP model went from 96 hand-built regression variables to eight gradient-boosted features.

A History of Expected Points Models in Football (Part III)

How expected points models evolved in football: Virgil Carter’s 1970 paper, The Hidden Game of Football, Brian Burke’s LOESS models, the Carnegie Mellon nflscrapR work, and the line that runs to the cfbfastR model shipping today.

What Is EPA in College Football? Expected Points Added Explained (Part IV)

EPA (expected points added) is the change in expected points across a single play. How it is calculated, what a good EPA per play looks like, the sign conventions that trip people up, and how to compute it yourself with cfbfastR.

Win Probability in College Football: wp, WPA and vegas_wp (Part V)

How the cfbfastR win probability model works, why it takes expected points as an input, what WPA measures that EPA cannot, and how the spread-aware vegas_wp differs from the naive wp.

CPOE, xpass, Field Goals and Fourth Downs: The Derived Models (Part VI)

The six models cfbfastR builds on top of expected points and win probability: completion probability and CPOE, expected pass rate, field goals, two-point conversions, fourth-down decisions and QBR — with their real outputs and their limits.

Cookbooks & Guides

End-to-end recipes and reference guides.

Making Animated Win Probability Charts with cfbfastR

Step-by-step walk-through of the process of adapting Lee Sharpe’s win probability charts to college football using data from CollegeFootballData.com collected using the cfbfastR package for R.

CFB Data Betting Lines Examples

Get betting lines information for games using cfbd_betting_lines()

CFB Data Games Examples

Provides access to game-level team (cfbd_game_team_stats()) and player (cfbd_game_player_stats()) standard box scores, as well as team-level advanced box scores (cfbd_game_box_advanced()). Also useful for looking up game information (cfbd_game_info()), broadcast details (cfbd_game_media()), and team records/results information (cfbd_game_records()).

CFB Data Plays Examples

Using the CFB Data Plays Endpoint to pull down the 2020 season by week using cfbd_plays()

CFB Data Recruiting Examples

Accessing 247Sports composite recruiting data through the CFBD API using cfbd_recruiting_player() for Player Rankings, cfbd_recruiting_team() for Team Rankings and cfbd_recruiting_position() for Position Group metrics

CFB Data Stats Examples

Settling 2019 LSU and 2013 Florida State offense debates using Team and Player Stats from the CFBD API

CFB Data Teams Examples

Get team rosters (cfbd_team_rosters()), talent (cfbd_team_talent()) and team matchup history (cfbd_team_matchup_history()) and records (cfbd_team_matchup_records()) from the CFBD API

ESPN College Football Cookbook

A recipe-driven tour of the espn_cfb_*() family in cfbfastR – teams, games, play-by-play, modeled EPA/WPA, and ratings.

Creating Fourth Down Tendency Plots Using cfbfastR

A rundown of the Big XII returning coaches fourth down tendencies

Introduction to cfbfastR

Getting started with using cfbfastR and college football analytics.

Intro to Visualizing Recruiting Geography

Mapping where the blue-chip talent actually comes from, joining cfbd_recruiting_player() to state geometry to see which parts of the country each program recruits.

Visualizing Team Talent from Player Recruiting Rankings

A quick way to visually approximate how much talent each school recruited using cfbfastR and ggplot2.

Rolling EPA Graph

IT’S GRAPHIN’ TIME
^To be said in an extremely Power Rangers voice^