Reverse Engineering ESPN’s Total Quarterback Rating Formula with Quantile Regression in Julia, R, and Python

Quantile Regression
TBD
Authors
Affiliation

St. Lawrence University

Ivan Ramler

St. Lawrence University

Published

March 16, 2026

Please note that these material have not yet completed the required pedagogical and industry peer-reviews to become a published module on the SCORE Network. However, instructors are still welcome to use these materials if they are so inclined.

Welcome Video

If you are unfamiliar with ESPN’s Total Quarterback Rating (QBR), you can watch this video to learn more:

Introduction

The National Football League (NFL) has 14 official positions: 7 offensive, 5 defensive, and 2 special teams positions. One of the offensive positions is called Quarterback (QB), and their role is to lead their team on the field. ESPN streams NFL games and provides a lot of data on NFL players, including their Total Quarterback Rating (QBR), a 0-100 score measuring a quarterback’s contribution to winning. Higher scores indicate better performance.

In this module, you will learn how to reverse engineer the Total Quarterback Rating using data from the 2025 NFL Regular season. To reverse enginner QBR, we will use Quantile Regression and you will have the choice of learning it in Julia, R, Python, or multiple languages.

TODO: By the end of this tutorial, you will be able to:

TODO: This could be suitable of an out of class activity or one that spans one or more class periods.

Technology Requirement:

This activity is designed to be completed in Julia, R, or Python using Google Colab, RStudio, or VS Code.

No previous experience with Quantile Regression is required, but some experience with regression and familiarity with one of the programming languages is recommended.

Data

The nfl_qbr.csv dataset contains 540 rows, each row representing a game from the 2025 NFL Regular season with 65 unique quarterbacks.

Download Data: nfl_qbr.csv

Variable Descriptions
Variable Description
week Week of the NFL Regular Season
player Full name of the quarterback for this game
qbr ESPN Total Quarterback Rating (0-100) for the quarterback in this game
team NFL team the quarterback played for this game
opponent_team NFL team the quarterback played against this game
completions Number of passes the quarterback completed this game
attempts Number of passes the quarterback attempted this game
passing_yards Total yards gained through the quarterback’s passing in this game
passing_tds Number of touchdown passes thrown by the quarterback in this game
passing_interceptions Number of passes by the quarterback that were intercepted
sacks Number of times the quarterback was tackled behind the line of scrimmage this game
fumbles Number of times the quarterback lost possession of the football
prop_total Proportion of total points scored this game that were scored by the quarterback’s team
result The quarterback’s team score this game subtracted by the opposing team’s score
Data Source The data was all scraped from https://www.espn.com/nfl/ using the R package nflreadr. The uncleaned data included weekly Total QBR, player statistics, and game schedules for the 2025 NFL Regular season. After cleaning, the final dataset includes only quarterbacks and each row represents a game played in the regular season.

Quantile Regression

Quantile Regression is a statistical method that estimates conditional quantiles of the response variable (qbr, in our case).

Getting Started in Julia, R, or Python

Package: QuantReg.jl

Julia code
install.packages("quantreg")
library(quantreg)

Package: statsmodels

Python code

References

Ho T, Carl S (2026). nflreadr: Download ‘nflverse’ Data. R package version 1.5.0.9002, https://nflreadr.nflverse.com.