Skip to contents

Loads season-level ESPN-derived college football play-by-play – one row per play with the full EPA/WPA model columns and participant ids, covering 2004 to present. Published to the espn_cfb_pbp release tag on the sportsdataverse-data repo.

Delineation from the sibling pbp loaders: load_cfb_pbp() is the classic cfbfastR EPA/WPA pbp (FBS, 2014+, unchanged); load_espn_cfb_pbp() is this ESPN-derived build with deeper history; load_ncaa_mfb_pbp() is the stats.ncaa.org parse covering FCS and lower divisions (2013+).

Usage

load_espn_cfb_pbp(
  seasons = most_recent_cfb_season(),
  ...,
  dbConnection = NULL,
  tablename = NULL
)

Arguments

seasons

A vector of 4-digit years associated with given college football seasons. Published coverage runs 2004 through the most recent season. Pass seasons = TRUE for every published season. (Min: 2004)

...

Additional arguments passed to an underlying function that writes the season data into a database.

dbConnection

A DBIConnection object, as returned by DBI::dbConnect()

tablename

The name of the data table within the database

Value

Returns a cfbfastR_data tibble.

col_nametypesdescription
seasoninteger
game_idinteger
game_play_numberinteger
pos_teaminteger
def_pos_teaminteger
pos_team_scoreinteger
def_pos_team_scoreinteger
halfinteger
periodinteger
downinteger
distanceinteger
EPAdouble
wpadouble
wp_beforedouble
wp_afterdouble
def_wp_beforedouble
def_wp_afterdouble
penalty_detailcharacter
yds_penaltycharacter
penalty_1st_convlogical
def_EPAdouble
rz_playlogical
scoring_opplogical
middle_8logical
stuffed_runlogical
change_of_pos_teamlogical
downs_turnoverlogical
pos_score_diff_startinteger
pos_score_ptsinteger
home_wp_beforedouble
away_wp_beforedouble
home_wp_afterdouble
away_wp_afterdouble
end_of_halflogical
lead_pos_teamintegerValue of pos_team on the next play, used for sequence-aware derivations.
lead_play_typecharacterValue of play_type on the next play, used for sequence-aware derivations.
lag_pos_teamintegerValue of pos_team on the previous play, used for sequence-aware derivations.
orig_play_typecharacter
offense_score_playlogical
defense_score_playlogical
pos_score_diffinteger
change_of_posslogical
rusher_player_namecharacter
yds_rushedinteger
passer_player_namecharacter
receiver_player_namecharacter
yds_receivinginteger
yds_sackedinteger
sack_playerscharacter
sack_player_namecharacter
sack_player_name2character
pass_breakup_player_namecharacter
interception_player_namecharacter
yds_int_returninteger
fumble_player_namecharacter
fumble_forced_player_namecharacter
fumble_recovered_player_namecharacter
yds_fumble_returninteger
punter_player_namecharacter
yds_puntedinteger
yds_punt_returninteger
yds_punt_gainedinteger
punt_block_player_namecharacter
punt_block_return_player_namecharacter
fg_kicker_player_namecharacter
yds_fginteger
fg_block_player_namecharacter
fg_return_player_namecharacter
kickoff_player_namecharacter
yds_kickoffinteger
yds_kickoff_returninteger
rushlogical
rush_tdlogical
passlogical
pass_tdlogical
completionlogical
pass_attemptlogical
targetlogical
sack_veclogical
sacklogical
intlogical
int_tdlogical
turnover_veclogical
kickoff_playlogical
scoring_playlogical
td_playlogical
touchdownlogical
safetylogical
fumble_veclogical
kickoff_tblogical
kickoff_onsidelogical
kickoff_ooblogical
kickoff_fair_catchlogical
kickoff_downedlogical
kickoff_safetylogical
kick_playlogical
puntlogical
punt_playlogical
punt_tblogical
punt_ooblogical
punt_fair_catchlogical
punt_downedlogical
punt_safetylogical
punt_blockedlogical
penalty_safetylogical
fg_madelogical
fg_make_probdouble
penalty_flaglogical
penalty_declinedlogical
penalty_no_playlogical
penalty_offsetlogical
penalty_textcharacter
lead_wp_before2doubleValue of wp_before 2 plays ahead, used for sequence-aware derivations.
lead_wp_beforedoubleValue of wp_before on the next play, used for sequence-aware derivations.
lead_pos_team2integerValue of pos_team 2 plays ahead, used for sequence-aware derivations.
lag_change_of_pos_teamlogicalValue of change_of_pos_team on the previous play, used for sequence-aware derivations.
lag_pos_score_diffintegerValue of pos_score_diff on the previous play, used for sequence-aware derivations.
idinteger
sequenceNumberinteger
textcharacter
awayScoreinteger
homeScoreinteger
scoringPlaylogicalESPN flag marking the play as a scoring play.
prioritylogical
modifiedcharacter
wallclockcharacter
teamParticipantscharacter
isPenaltylogical
statYardageintegerYardage ESPN credits to the play for statistical purposes.
isTurnoverlogical
type.idcharacterESPN's numeric identifier for the play type.
type.textcharacterESPN's text label for the play type.
type.abbreviationcharacterESPN's abbreviation for the play type.
period.numberintegerPeriod (quarter) number in which the play occurred.
clock.displayValuecharacterGame clock at the play, as the displayed mm:ss string.
start.downintegerESPN's down value for the play state at the start of the play.
start.distanceintegerESPN's distance value for the play state at the start of the play.
start.yardLineintegerESPN's yardLine value for the play state at the start of the play.
start.yardsToEndzoneintegerESPN's yardsToEndzone value for the play state at the start of the play.
start.team.idintegerESPN's team.id value for the play state at the start of the play.
end.downintegerESPN's down value for the play state at the end of the play.
end.distanceintegerESPN's distance value for the play state at the end of the play.
end.yardLineintegerESPN's yardLine value for the play state at the end of the play.
end.yardsToEndzoneintegerESPN's yardsToEndzone value for the play state at the end of the play.
end.downDistanceTextcharacterESPN's downDistanceText value for the play state at the end of the play.
end.shortDownDistanceTextcharacterESPN's shortDownDistanceText value for the play state at the end of the play.
end.possessionTextcharacterESPN's possessionText value for the play state at the end of the play.
end.team.idintegerESPN's team.id value for the play state at the end of the play.
start.downDistanceTextcharacterESPN's downDistanceText value for the play state at the start of the play.
start.shortDownDistanceTextcharacterESPN's shortDownDistanceText value for the play state at the start of the play.
start.possessionTextcharacterESPN's possessionText value for the play state at the start of the play.
scoringType.namecharacterESPN's name for the scoring type (e.g. touchdown, field goal).
scoringType.displayNamecharacterESPN's display label for the scoring type.
scoringType.abbreviationcharacterESPN's abbreviation for the scoring type.
pointAfterAttempt.iddouble
pointAfterAttempt.textcharacter
pointAfterAttempt.abbreviationcharacter
pointAfterAttempt.valuedouble
drive.idcharacterESPN's id field for the drive containing this play.
drive.displayResultcharacterESPN's displayResult field for the drive containing this play.
drive.isScorelogicalESPN's isScore field for the drive containing this play.
drive.team.shortDisplayNamecharacterESPN's team.shortDisplayName field for the drive containing this play.
drive.team.displayNamecharacterESPN's team.displayName field for the drive containing this play.
drive.team.namecharacterESPN's team.name field for the drive containing this play.
drive.team.abbreviationcharacterESPN's team.abbreviation field for the drive containing this play.
drive.yardsintegerESPN's yards field for the drive containing this play.
drive.offensivePlaysintegerESPN's offensivePlays field for the drive containing this play.
drive.resultcharacterESPN's result field for the drive containing this play.
drive.descriptioncharacterESPN's description field for the drive containing this play.
drive.shortDisplayResultcharacterESPN's shortDisplayResult field for the drive containing this play.
drive.timeElapsed.displayValuecharacterESPN's timeElapsed.displayValue field for the drive containing this play.
drive.start.period.numberintegerESPN's start.period.number field for the drive containing this play.
drive.start.period.typecharacterESPN's start.period.type field for the drive containing this play.
drive.start.yardLineintegerESPN's start.yardLine field for the drive containing this play.
drive.start.clock.displayValuecharacterESPN's start.clock.displayValue field for the drive containing this play.
drive.start.textcharacterESPN's start.text field for the drive containing this play.
drive.end.period.numberintegerESPN's end.period.number field for the drive containing this play.
drive.end.period.typecharacterESPN's end.period.type field for the drive containing this play.
drive.end.yardLineintegerESPN's end.yardLine field for the drive containing this play.
drive.end.clock.displayValuecharacterESPN's end.clock.displayValue field for the drive containing this play.
seasonTypeintegerESPN season type for the game (2 = regular season, 3 = postseason).
weekinteger
status_type_completedlogical
homeTeamIdintegerESPN's home-team Id for the game, stamped on every play.
awayTeamIdintegerESPN's away-team Id for the game, stamped on every play.
homeTeamNamecharacterESPN's home-team Name for the game, stamped on every play.
awayTeamNamecharacterESPN's away-team Name for the game, stamped on every play.
homeTeamMascotcharacterESPN's home-team Mascot for the game, stamped on every play.
awayTeamMascotcharacterESPN's away-team Mascot for the game, stamped on every play.
homeTeamAbbrevcharacterESPN's home-team Abbrev for the game, stamped on every play.
awayTeamAbbrevcharacterESPN's away-team Abbrev for the game, stamped on every play.
homeTeamNameAltcharacterESPN's home-team NameAlt for the game, stamped on every play.
awayTeamNameAltcharacterESPN's away-team NameAlt for the game, stamped on every play.
gameSpreaddoublePoint spread used as an input to the win-probability model.
homeFavoritelogicalTrue when the home team was favoured by the spread.
gameSpreadAvailablelogicalTrue when a spread was available for the game.
overUnderdoubleOver/under total used as a model input.
homeTeamSpreaddoubleESPN's home-team Spread for the game, stamped on every play.
clock.minutesintegerMinutes remaining on the game clock at the play.
clock.secondsintegerSeconds component of the game clock at the play.
lag_halfintegerValue of half on the previous play, used for sequence-aware derivations.
lead_halfintegerValue of half on the next play, used for sequence-aware derivations.
start.TimeSecsRemintegerESPN's TimeSecsRem value for the play state at the start of the play.
start.adj_TimeSecsRemintegerESPN's adj_TimeSecsRem value for the play state at the start of the play.
lead_textcharacterValue of text on the next play, used for sequence-aware derivations.
lead_start_teamcharacterValue of start_team on the next play, used for sequence-aware derivations.
lead_start_yardsToEndzoneintegerValue of start_yardsToEndzone on the next play, used for sequence-aware derivations.
lead_start_downintegerValue of start_down on the next play, used for sequence-aware derivations.
lead_start_distanceintegerValue of start_distance on the next play, used for sequence-aware derivations.
lead_scoringPlaylogicalValue of scoringPlay on the next play, used for sequence-aware derivations.
text_dupelogicalTrue when the play description duplicates the previous row's text.
end_state_missinglogical
start.pos_team.idintegerESPN's pos_team.id value for the play state at the start of the play.
start.def_pos_team.idintegerESPN's def_pos_team.id value for the play state at the start of the play.
end.def_pos_team.idintegerESPN's def_pos_team.id value for the play state at the end of the play.
end.pos_team.idintegerESPN's pos_team.id value for the play state at the end of the play.
start.pos_team.namecharacterESPN's pos_team.name value for the play state at the start of the play.
start.def_pos_team.namecharacterESPN's def_pos_team.name value for the play state at the start of the play.
end.pos_team.namecharacterESPN's pos_team.name value for the play state at the end of the play.
end.def_pos_team.namecharacterESPN's def_pos_team.name value for the play state at the end of the play.
start.is_homelogicalESPN's is_home value for the play state at the start of the play.
end.is_homelogicalESPN's is_home value for the play state at the end of the play.
homeTimeoutCalledlogicalTrue when the home team called a timeout on the play.
awayTimeoutCalledlogicalTrue when the away team called a timeout on the play.
end.homeTeamTimeoutsintegerESPN's homeTeamTimeouts value for the play state at the end of the play.
end.awayTeamTimeoutsintegerESPN's awayTeamTimeouts value for the play state at the end of the play.
start.homeTeamTimeoutsintegerESPN's homeTeamTimeouts value for the play state at the start of the play.
start.awayTeamTimeoutsintegerESPN's awayTeamTimeouts value for the play state at the start of the play.
end.TimeSecsRemintegerESPN's TimeSecsRem value for the play state at the end of the play.
end.adj_TimeSecsRemintegerESPN's adj_TimeSecsRem value for the play state at the end of the play.
start.posTeamTimeoutsintegerESPN's posTeamTimeouts value for the play state at the start of the play.
start.defPosTeamTimeoutsintegerESPN's defPosTeamTimeouts value for the play state at the start of the play.
end.posTeamTimeoutsintegerESPN's posTeamTimeouts value for the play state at the end of the play.
end.defPosTeamTimeoutsintegerESPN's defPosTeamTimeouts value for the play state at the end of the play.
firstHalfKickoffTeamIdintegerESPN id of the team that received the opening kickoff.
start.yardintegerESPN's yard value for the play state at the start of the play.
end.yardintegerESPN's yard value for the play state at the end of the play.
lag_scoringPlaylogicalValue of scoringPlay on the previous play, used for sequence-aware derivations.
down_1logicalTrue when it is 1st down at the start of the play.
down_2logicalTrue when it is 2nd down at the start of the play.
down_3logicalTrue when it is 3rd down at the start of the play.
down_4logicalTrue when it is 4th down at the start of the play.
down_1_endlogicalTrue when it is 1st down at the end of the play.
down_2_endlogicalTrue when it is 2nd down at the end of the play.
down_3_endlogicalTrue when it is 3rd down at the end of the play.
down_4_endlogicalTrue when it is 4th down at the end of the play.
td_checklogicalInternal flag used while reconciling whether the play produced a touchdown.
forced_fumblelogicalTrue when the defense forced a fumble on the play.
is_homelogical
lag_HA_score_diffintegerValue of HA_score_diff on the previous play, used for sequence-aware derivations.
HA_score_diffintegerHome score minus away score for the play.
net_HA_score_ptsintegerNet points the play added to the home-minus-away score margin.
H_score_diffintegerHome team's score minus the away team's, from the home perspective.
A_score_diffintegerAway team's score minus the home team's, from the away perspective.
lag_homeScoreintegerValue of homeScore on the previous play, used for sequence-aware derivations.
lag_awayScoreintegerValue of awayScore on the previous play, used for sequence-aware derivations.
start.homeScoreintegerESPN's homeScore value for the play state at the start of the play.
start.awayScoreintegerESPN's awayScore value for the play state at the start of the play.
end.homeScoreintegerESPN's homeScore value for the play state at the end of the play.
end.awayScoreintegerESPN's awayScore value for the play state at the end of the play.
start.pos_team_scoreintegerESPN's pos_team_score value for the play state at the start of the play.
start.def_pos_team_scoreintegerESPN's def_pos_team_score value for the play state at the start of the play.
start.pos_score_diffintegerESPN's pos_score_diff value for the play state at the start of the play.
end.pos_team_scoreintegerESPN's pos_team_score value for the play state at the end of the play.
end.def_pos_team_scoreintegerESPN's def_pos_team_score value for the play state at the end of the play.
end.pos_score_diffintegerESPN's pos_score_diff value for the play state at the end of the play.
start.pos_team_receives_2H_kickofflogicalESPN's pos_team_receives_2H_kickoff value for the play state at the start of the play.
end.pos_team_receives_2H_kickofflogicalESPN's pos_team_receives_2H_kickoff value for the play state at the end of the play.
penalty_in_textlogicalTrue when the play description mentions a penalty.
pass_breakuplogicalTrue when a defender broke up the pass.
pass_depthcharacter
pass_directioncharacter
rush_directioncharacter
qb_hurrylogical
fg_attemptlogicalTrue when the play was a field-goal attempt.
pos_unitcharacter
def_pos_unitcharacter
splogical
playlogical
cleaned_textcharacter
kneel_downlogical
scrimmage_playlogicalTrue when the play is a play from scrimmage rather than a special-teams or administrative row.
pos_score_diff_endintegerScore differential from the possessing team's perspective at the end of the play.
fumble_lostlogical
fumble_recoveredlogicalTrue when a fumble on the play was recovered.
field_goal_resultcharacter
extra_point_resultcharacter
two_point_conv_resultcharacter
air_yardsToEndzoneinteger
air_yardsinteger
yards_after_catchinteger
kicking_teaminteger
return_teaminteger
fumble_or_mufflogical
recovery_teaminteger
recovery_team_2integer
fumbling_teaminteger
int_turnoverlogical
pos_fumble_lostlogical
def_fumble_lostlogical
is_pos_team_turnoverlogical
is_def_pos_team_turnoverlogical
is_turnoverlogical
turnover_teaminteger
is_st_turnoverlogical
is_blocked_punt_turnoverlogical
is_blocked_fg_turnoverlogical
sack_teaminteger
interception_teaminteger
pass_breakup_teaminteger
forced_fumble_teaminteger
fumble_recovery_teaminteger
punt_return_teaminteger
kick_return_teaminteger
fg_teaminteger
punt_teaminteger
penalized_teaminteger
penalty_yards_signedinteger
new_downintegerDown after the play, including any penalty enforcement.
new_distanceintegerDistance to go after the play, including any penalty enforcement.
under_2logical
goal_to_gological
stopped_runlogicalTrue when the rush was stopped at or behind the line of scrimmage.
opportunity_runlogicalTrue when a rush reached 4 yards – the carries on which the blocking did its job. Matches cfbfastR's espn_cfb_15 definition. Assets published before the 2026-08 fix carry the inverted (4 yards or fewer) flag.
highlight_runlogicalTrue when the rush gained 8 or more yards.
adj_rush_yardageintegerRushing yards capped at 8, the input to the line-yards decomposition.
line_yardsdoubleYards credited to the offensive line on a rush, using the standard sliding scale: 1.2x the capped yardage on a loss, all of it through 3 yards, half of each yard from 4 to 8, and a 5.5-yard ceiling beyond that.
second_level_yardsdoubleRushing yards earned from 4 to 8, split evenly between line and carrier under the line-yards decomposition.
open_field_yardsintegerRushing yards gained beyond 8, credited to the ball carrier rather than the line.
highlight_yardsdoubleSecond-level plus open-field yards – the yardage credited to the carrier.
opp_highlight_yardsdoubleHighlight yards earned on opportunity runs, isolating carrier production on carries where the blocking succeeded. Assets published before the 2026-08 fix are identically 0 here, because the inverted opportunity_run gate could never co-occur with non-zero highlight yards.
short_rush_successlogicalTrue when a short-yardage rush gained the yardage needed.
short_rush_attemptlogicalTrue when the play is a rush in a short-yardage situation.
power_rush_successlogicalTrue when a power rushing attempt gained the yardage needed.
power_rush_attemptlogicalTrue when the play is a short-yardage power rushing attempt.
early_downlogicalTrue when the play is a scrimmage play on first or second down.
late_downlogicalTrue when the play is a scrimmage play on third or fourth down.
early_down_passlogicalTrue when the play is a pass on an early down.
early_down_rushlogicalTrue when the play is a rush on an early down.
late_down_passlogicalTrue when the play is a pass on a late down.
late_down_rushlogicalTrue when the play is a rush on a late down.
standard_downlogicalTrue when the offense is on schedule for the series – first down, second down needing fewer than 8, or third/fourth down needing fewer than 5.
passing_downlogicalTrue when the offense is behind schedule for the series – second down needing 8 or more, or third/fourth down needing 5 or more.
TFLlogicalTrue when the play was a tackle for loss.
TFL_passlogicalTrue when the play was a tackle for loss on a pass play (a sack).
TFL_rushlogicalTrue when the play was a tackle for loss on a rush play.
havoclogicalTrue when the defense disrupted the play: a pass breakup, tackle for loss, interception or forced fumble.
start.pos_team_spreaddoubleESPN's pos_team_spread value for the play state at the start of the play.
start.elapsed_sharedoubleESPN's elapsed_share value for the play state at the start of the play.
start.spread_timedoubleESPN's spread_time value for the play state at the start of the play.
end.pos_team_spreaddoubleESPN's pos_team_spread value for the play state at the end of the play.
end.elapsed_sharedoubleESPN's elapsed_share value for the play state at the end of the play.
end.spread_timedoubleESPN's spread_time value for the play state at the end of the play.
penalty_assessed_on_kickofflogical
start.yardsToEndzone.touchbackintegerESPN's yardsToEndzone.touchback value for the play state at the start of the play.
EP_start_touchbackdoubleExpected points the offense would have had from a touchback on this play.
EP_startdoubleExpected points for the offense at the start of the play.
EP_enddoubleExpected points for the offense at the end of the play.
lag_EP_enddoubleValue of EP_end on the previous play, used for sequence-aware derivations.
EP_betweendoubleChange in expected points across the play, before penalty adjustment.
EPA_scrimmagedoubleEPA credited to the play on plays from scrimmage.
EPA_rushdoubleEPA credited to the play on rush plays.
EPA_passdoubleEPA credited to the play on pass plays.
EPA_explosivelogicalTrue when the play was explosive.
EPA_non_explosivedoubleEPA credited to the play on non-explosive plays.
EPA_explosive_passlogicalTrue when the pass play was explosive.
EPA_explosive_rushlogicalTrue when the rush play was explosive.
first_down_createdlogicalTrue when the play produced a first down for the offense.
EPA_successlogicalTrue when the play was successful by EPA.
EPA_success_early_downlogicalTrue when the play on an early down was successful by EPA.
EPA_success_early_down_passlogicalTrue when the pass play on an early down was successful by EPA.
EPA_success_early_down_rushlogicalTrue when the rush play on an early down was successful by EPA.
EPA_success_late_downlogicalTrue when the play on a late down was successful by EPA.
EPA_success_late_down_passlogicalTrue when the pass play on a late down was successful by EPA.
EPA_success_late_down_rushlogicalTrue when the rush play on a late down was successful by EPA.
EPA_success_standard_downlogicalTrue when the play on a standard down was successful by EPA.
EPA_success_passing_downlogicalTrue when the play on a passing down was successful by EPA.
EPA_success_passlogicalTrue when the pass play was successful by EPA.
EPA_success_rushlogicalTrue when the rush play was successful by EPA.
EPA_success_EPAdoubleEPA on successful plays.
EPA_success_standard_down_EPAdoubleEPA on successful plays on a standard down.
EPA_success_passing_down_EPAdoubleEPA on successful plays on a passing down.
EPA_success_pass_EPAdoubleEPA on successful pass plays.
EPA_success_rush_EPAdoubleEPA on successful rush plays.
EPA_middle_8_successlogicalTrue when the play in the middle eight was successful by EPA.
EPA_middle_8_success_passlogicalTrue when the pass play in the middle eight was successful by EPA.
EPA_middle_8_success_rushlogicalTrue when the rush play in the middle eight was successful by EPA.
EPA_penaltydoubleEPA credited to the play attributable to penalties.
EPA_spdoubleEPA credited to the play on special-teams plays.
EPA_fgdoubleEPA credited to the play on field-goal attempts.
EPA_puntdoubleEPA credited to the play on punt plays.
EPA_kickoffdoubleEPA credited to the play on kickoff plays.
start.ExpScoreDiff_touchbackdoubleESPN's ExpScoreDiff_touchback value for the play state at the start of the play.
start.ExpScoreDiffdoubleESPN's ExpScoreDiff value for the play state at the start of the play.
start.ExpScoreDiff_Time_Ratio_touchbackdoubleESPN's ExpScoreDiff_Time_Ratio_touchback value for the play state at the start of the play.
start.ExpScoreDiff_Time_RatiodoubleESPN's ExpScoreDiff_Time_Ratio value for the play state at the start of the play.
end.ExpScoreDiffdoubleESPN's ExpScoreDiff value for the play state at the end of the play.
end.ExpScoreDiff_Time_RatiodoubleESPN's ExpScoreDiff_Time_Ratio value for the play state at the end of the play.
wp_touchbackdoubleWin probability the offense would have had starting from a touchback.
wp_before_naivedouble
wp_touchback_naivedouble
wp_after_naivedouble
def_wp_before_naivedouble
home_wp_before_naivedouble
away_wp_before_naivedouble
lead_wp_before_naivedouble
lead_wp_before2_naivedouble
def_wp_after_naivedouble
home_wp_after_naivedouble
away_wp_after_naivedouble
wpa_naivedouble
cpdouble
cpoedouble
erainteger
xpassdouble
pass_oedouble
drive_startdoubleYard line at which the drive began.
drive_stoppedlogicalTrue when the play ended the drive.
drive_play_indexintegerSequence number of the play within its drive.
drive_offense_playsintegerOffensive plays run on the drive.
prog_drive_EPAdoubleCumulative EPA accrued by the drive up to and including this play.
prog_drive_WPAdoubleCumulative win-probability added by the drive up to and including this play.
drive_offense_yardsintegerOffensive yards gained on the drive.
drive_total_yardsintegerTotal yards gained on the drive.
qbr_epadoubleEPA variant used as an input to the QBR calculation.
weightdouble
non_fumble_sacklogicalTrue when the play was a sack that did not produce a fumble.
sack_epadoubleEPA credited to the play when it is a sack.
pass_epadoubleEPA credited to the play when it is a pass.
rush_epadoubleEPA credited to the play when it is a rush.
pen_epadoubleEPA attributable to a penalty on the play.
sack_weightdoubleWeighting applied to the sack component of the play.
pass_weightdoubleWeighting applied to the pass component of the play.
rush_weightdoubleWeighting applied to the rush component of the play.
pen_weightdoubleWeighting applied to the penalty component of the play.
action_playlogicalTrue when the play advanced the game state – excludes timeouts, end-of-period markers and other non-action rows.
athlete_namecharacter
rusher_player_idinteger
passer_player_idinteger
receiver_player_idinteger
fumble_player_idinteger
sack_player_idinteger
sack_player_id2integer
interception_player_idinteger
pass_breakup_player_idinteger
fumble_forced_player_idinteger
fumble_recovered_player_idinteger
fg_kicker_player_idinteger
punter_player_idinteger
kickoff_player_idinteger
kickoff_return_player_idinteger
punt_return_player_idinteger
fg_block_player_idinteger
punt_block_player_idinteger
fg_return_player_idinteger
punt_block_return_player_idcharacter
go_wpdouble
first_down_probdouble
wp_succeeddouble
wp_faildouble
make_fg_wpdouble
miss_fg_wpdouble
fg_wpdouble
punt_wpdouble
go_boostdouble
go_wp_diffdouble
fg_wp_diffdouble
punt_wp_diffdouble
fourth_down_recommendationcharacter
two_pt_wpdouble
xp_wpdouble
prob_2ptdouble
two_pt_recommendationcharacter
two_pt_wp_diffdouble

Author

Saiem Gilani

Examples

# \donttest{
  try(load_espn_cfb_pbp(2004))
#> ── ESPN college football play-by-play from the SportsDataverse data repo ───────
#>  Data updated: 2026-08-27 04:22:50 UTC
#> # A tibble: 83,210 × 469
#>    season   game_id game_play_number pos_team_id pos_team        def_pos_team_id
#>     <int>     <int>            <int>       <int> <chr>                     <int>
#>  1   2004 242410259                1         259 Virginia Tech …              30
#>  2   2004 242410259                2         259 Virginia Tech …              30
#>  3   2004 242410259                3         259 Virginia Tech …              30
#>  4   2004 242410259                4         259 Virginia Tech …              30
#>  5   2004 242410259                5         259 Virginia Tech …              30
#>  6   2004 242410259                6         259 Virginia Tech …              30
#>  7   2004 242410259                7         259 Virginia Tech …              30
#>  8   2004 242410259                8         259 Virginia Tech …              30
#>  9   2004 242410259                9         259 Virginia Tech …              30
#> 10   2004 242410259               10          30 USC Trojans                 259
#> # ℹ 83,200 more rows
#> # ℹ 463 more variables: def_pos_team <chr>, pos_team_score <int>,
#> #   def_pos_team_score <int>, half <int>, period <int>, down <int>,
#> #   distance <int>, EPA <dbl>, wpa <dbl>, wp_before <dbl>, wp_after <dbl>,
#> #   def_wp_before <dbl>, def_wp_after <dbl>, penalty_detail <chr>,
#> #   yds_penalty <chr>, penalty_1st_conv <lgl>, def_EPA <dbl>, rz_play <lgl>,
#> #   scoring_opp <lgl>, middle_8 <lgl>, stuffed_run <lgl>, …
# }