Skip to contents

Extract college football (D-I) play by play Data - for plays

Usage

cfbd_pbp_data(
  year,
  season_type = "regular",
  week = 1,
  team = NULL,
  play_type = NULL,
  epa_wpa = FALSE,
  engine = NULL,
  ...,
  defense = NULL,
  offense_conference = NULL,
  defense_conference = NULL,
  conference = NULL,
  division = NULL,
  offense = NULL
)

Arguments

year

Select year, (example: 2018)
Minimum value accepted: 2001

season_type

(String default regular): Season type - regular, postseason, both, allstar, spring_regular, spring_postseason

week

Select week, this is optional (also numeric)

team

Select team name (example: Texas, Texas A&M, Clemson)

play_type

Select play type (example: see the cfbd_play_type_df)

epa_wpa

Logical parameter (TRUE/FALSE) to return the Expected Points Added/Win Probability Added variables

engine

(Character optional): which play-by-play engine to run. One of "v2", "legacy" or "auto"; NULL (default) resolves from getOption("cfbfastR.pbp_engine"), which itself defaults to "v2" as of this release. On "v2" this delegates to cfbd_pbp_data_v2(), which adds penalty enforcement resolution, ESPN-resolved player names, the *_player_id columns and team attribution. "legacy" reproduces the pre-2.3.0 frame unchanged.

...

Additional arguments passed to cfbd_pbp_data_v2() when the call delegates – notably output, the "default" / "lean" / "full" modeled column-set selector. Ignored on the legacy path.

defense

(String optional): Defensive team filter.

offense_conference

(String optional): Offensive team conference filter.

defense_conference

(String optional): Defensive team conference filter.

conference

(String optional): Conference filter (either side of the ball).

division

(String optional): Division/classification filter – fbs, fcs, ii, ii/iii, iii.

offense

(String optional): Offensive team filter.

Value

A cfbfastR_data data frame of plays, or NULL when CFBD returns no plays. With epa_wpa = TRUE and the default output = "default" it has the 368 columns in the first table (364 when the four betting columns provider, spread, formatted_spread and over_under are not joined: before 2013, or if the betting-lines request fails); games with fewer than 20 plays are skipped. output = "lean" drops the 12 WPA scratchpad columns lead_wp_before2 through lead_pos_team2; output = "full" also keeps the 91 pipeline columns in the second table, interleaved with the first. With epa_wpa = FALSE (the argument default) no modeling runs and only 60 columns of the first table are returned: these 54 in CFBD order (yards_to_goal, down, distance, yards_gained and drive_start_yards_to_goal stay integer and drive_scoring is logical): game_id, drive_id, id_play, drive_number, play_number, offense_play, offense_conference, offense_score, defense_play, defense_conference, defense_score, home, away, period, clock_minutes, clock_seconds, offense_timeouts, defense_timeouts, yard_line, yards_to_goal, down, distance, yards_gained, scoring, play_type, play_text, ppa, wallclock, provider, spread, formatted_spread, over_under, orig_drive_number, drive_scoring, drive_start_period, drive_start_yards_to_goal, drive_end_period, drive_end_yards_to_goal, drive_yards, drive_result, drive_is_home_offense, drive_start_offense_score, drive_start_defense_score, drive_end_offense_score, drive_end_defense_score, drive_time_minutes_start, drive_time_seconds_start, drive_time_minutes_end, drive_time_seconds_end, drive_time_minutes_elapsed, drive_time_seconds_elapsed, drive_pts, season, wk, then the six team-identity columns home_team_id, away_team_id, home_team_abbreviation, away_team_abbreviation, offense_play_id and defense_play_id. As on the modeled path, provider, spread, formatted_spread and over_under are absent when betting lines are not joined. engine = "legacy" returns the older pre-v2 frame, which these tables do not describe. Team and player ids come from CFBD /games, /teams and the season /roster. The /teams and /roster lookups are cached per season until the next UTC midnight (the cfbfastR.cache_duration window), so a season sweep requests each once; espn_cfb_clear_cache() refetches them, and options(cfbfastR.cache = "off") set before loading the package disables it.

Default columns - one row per play (epa_wpa = TRUE, output = "default"):

col_nametypedescription
seasondoubleFour-digit season year (e.g. 2024).
wkdoubleSeason week number (1-15 regular season, 1 for bowl/postseason week).
id_playcharacterUnique CFBD play identifier (concatenates game_id and play index).
game_idintegerCFBD-internal game identifier.
game_play_numberdoubleSequential play number within the game (excludes timeouts/end markers).
half_play_numberdoubleSequential play number within the current half.
drive_play_numberdoubleSequential play number within the current drive.
pos_teamcharacterTeam name in possession at the start of the play (offense, kickoff-aware).
def_pos_teamcharacterTeam name on defense at the start of the play.
pos_team_scoreintegerScore for the team in possession after the play (includes points scored on it).
def_pos_team_scoreintegerScore for the defensive team after the play.
halffactorHalf indicator (1 or 2).
periodintegerQuarter number (1-4, 5+ for overtime).
clock_minutesintegerMinutes remaining on the period clock at the start of the play.
clock_secondsintegerSeconds remaining on the period clock at the start of the play.
play_typecharacterCFBD play type label (e.g. "Rush", "Pass Reception", "Field Goal Good").
play_textcharacterFree-text description of the play from CFBD.
downdoubleDown number at the start of the play (1-4).
distancedoubleYards to gain for a first down at the start of the play; on goal-to-go downs the yards to the goal line (a 0 the feed sends on a down ESPN labels Goal, or that CFBD sends at the 10 or closer, is replaced; an ESPN "& 0 at" down takes the previous snap's end state).
yards_to_goaldoubleYards from the offense to the opponent's end zone at the start of the play.
yards_gaineddoubleYards gained (or lost) by the offense on the play.
EPAdoubleExpected Points Added on the play (cfbfastR EPA model output).
ep_beforedoubleExpected points value before the play (cfbfastR EPA model).
ep_afterdoubleExpected points value after the play (cfbfastR EPA model).
wpadoubleWin Probability Added on the play (cfbfastR WP model output).
wp_beforedoubleWin probability for the possession team before the play (0-1).
wp_afterdoubleWin probability for the possession team after the play (0-1).
def_wp_beforedoubleWin probability for the defensive team before the play (0-1).
def_wp_afterdoubleWin probability for the defensive team after the play (0-1).
penalty_detailcharacterParsed penalty description extracted from play text.
yds_penaltydoubleYardage assessed on the penalty.
penalty_1st_convlogicalTRUE when the penalty resulted in a first down conversion.
penalty_countintegerNumber of penalties on the play (count of "penalty" in the play text); 0 when none.
penalty_declined_countintegerNumber of declined penalties on the play (count of "declined" in the play text).
penalty_all_declinedlogicalTRUE only when the play has at least one penalty and every one was declined, so the play stood.
penalty_enforcementcharacterHow the penalty was enforced: no_play, declined, offsetting, negating_foul, play_stands or unknown; NA on plays without a penalty.
penalty_negated_playlogicalTRUE when a penalty wiped out the play (no_play, offsetting, negating_foul), FALSE when the play stood or had no penalty; NA when enforcement is unknown.
rusher_player_idcharacterESPN athlete id of rusher_player_name. NA when the name does not match a player on either team's CFBD season roster.
passer_player_idcharacterESPN athlete id of passer_player_name. NA when the name does not match a player on either team's CFBD season roster.
receiver_player_idcharacterESPN athlete id of receiver_player_name. NA when the name does not match a player on either team's CFBD season roster.
fumble_player_idcharacterESPN athlete id of fumble_player_name. NA when the name does not match a player on either team's CFBD season roster.
sack_player_idcharacterESPN athlete id of sack_player_name. NA when the name does not match a player on either team's CFBD season roster.
sack_player_id2characterESPN athlete id of sack_player_name2. NA when the name does not match a player on either team's CFBD season roster.
interception_player_idcharacterESPN athlete id of interception_player_name. NA when the name does not match a player on either team's CFBD season roster.
pass_breakup_player_idcharacterESPN athlete id of pass_breakup_player_name. NA when the name does not match a player on either team's CFBD season roster.
fumble_forced_player_idcharacterESPN athlete id of fumble_forced_player_name. NA when the name does not match a player on either team's CFBD season roster.
fumble_recovered_player_idcharacterESPN athlete id of fumble_recovered_player_name. NA when the name does not match a player on either team's CFBD season roster.
fg_kicker_player_idcharacterESPN athlete id of fg_kicker_player_name. NA when the name does not match a player on either team's CFBD season roster.
punter_player_idcharacterESPN athlete id of punter_player_name. NA when the name does not match a player on either team's CFBD season roster.
kickoff_player_idcharacterESPN athlete id of kickoff_player_name. NA when the name does not match a player on either team's CFBD season roster.
kickoff_return_player_idcharacterESPN athlete id of kickoff_return_player_name. NA when the name does not match a player on either team's CFBD season roster.
punt_return_player_idcharacterESPN athlete id of punt_return_player_name. NA when the name does not match a player on either team's CFBD season roster.
fg_block_player_idcharacterESPN athlete id of fg_block_player_name. NA when the name does not match a player on either team's CFBD season roster.
punt_block_player_idcharacterESPN athlete id of punt_block_player_name. NA when the name does not match a player on either team's CFBD season roster.
fg_return_player_idcharacterESPN athlete id of fg_return_player_name. NA when the name does not match a player on either team's CFBD season roster.
punt_block_return_player_idcharacterESPN athlete id of punt_block_return_player_name. NA when the name does not match a player on either team's CFBD season roster.
pos_team_idcharacterESPN team id of pos_team.
def_pos_team_idcharacterESPN team id of def_pos_team.
kicking_teamcharacterTeam id of the kicking team on kickoffs, punts and field goals; NA on other plays.
return_teamcharacterTeam id of the receiving team on kickoffs, punts and field goals; NA on other plays.
punt_return_teamcharacterTeam id of the punt-returning team (copy of return_team).
kick_return_teamcharacterTeam id of the kick-returning team (copy of return_team).
fg_teamcharacterTeam id of the field-goal kicking team (copy of kicking_team).
punt_teamcharacterTeam id of the punting team (copy of kicking_team).
sack_teamcharacterTeam id credited with a sack (the defense, def_pos_team_id).
interception_teamcharacterTeam id credited with an interception (the defense, def_pos_team_id).
pass_breakup_teamcharacterTeam id credited with a pass breakup (the defense, def_pos_team_id).
forced_fumble_teamcharacterTeam id credited with a forced fumble (the defense, def_pos_team_id).
fumble_recovery_teamcharacterTeam id that recovered a fumble or muff: the first recovered by team in the text, else inferred from the turnover.
fumble_or_mufflogicalTRUE when the play has a fumble (fumble_vec) or the play text mentions a muff.
fumbling_teamcharacterTeam id that fumbled or muffed; NA when fumble_or_muff is FALSE.
recovery_teamcharacterTeam id from the first recovered by clause in the play text.
recovery_team_2characterTeam id from a second recovered by clause (the ball changed hands twice).
int_turnoverlogicalTRUE when the play is an interception (from int).
pos_fumble_lostlogicalTRUE when the team in possession lost a fumble.
def_fumble_lostlogicalTRUE when the defense recovered and then lost a fumble on the same play.
is_pos_team_turnoverlogicalTRUE when the team in possession gave the ball away (int_turnover or pos_fumble_lost).
is_def_pos_team_turnoverlogicalTRUE when the defense gave the ball back on the same play (def_fumble_lost).
is_turnoverlogicalTRUE when either side gave the ball away (interceptions and lost fumbles; blocked kicks excluded).
turnover_teamcharacterTeam id that gave the ball away; NA when is_turnover is FALSE.
is_st_turnoverlogicalTRUE when a lost fumble happened on a special-teams play.
is_blocked_punt_turnoverlogicalTRUE on a blocked punt returned for a touchdown or that changed possession; not counted in is_turnover.
is_blocked_fg_turnoverlogicalTRUE on a blocked field goal returned for a touchdown or that changed possession; not counted in is_turnover.
penalized_teamcharacterTeam id charged with the penalty; NA on plays without a penalty.
penalty_team_idcharacterCopy of penalized_team.
penalty_yards_signedintegerPenalty yardage parsed from yds_penalty as an integer, 0 when none. The magnitude is reliable; the sign is not a dependable direction.
air_yardsToEndzoneintegerCatch point in yards from the end zone, parsed from caught at or thrown to in the play text. NA when the play text names no catch spot, which is most plays.
air_yardsintegerAir yards: yards_to_goal minus air_yardsToEndzone; NA whenever air_yardsToEndzone is NA.
yards_after_catchintegerYards after the catch on completions: yards_gained minus air_yards; NA on other plays or when air_yards is NA.
pass_depthcharacterPass depth stated in the text of a pass play (short or deep); NA when not stated or not a pass.
pass_directioncharacterPass direction stated in the text of a pass play (left, middle or right); NA when not stated or not a pass.
rush_directioncharacterRun direction stated in the text of a rushing play (left, middle or right); NA when not stated or not a rush.
qb_hurrylogicalTRUE when the play text says the passer was hurried ("hurried by").
new_seriesdoubleBinary flag for the start of a new series of downs.
firstD_by_kickoffdoubleBinary flag for a new first down arising from a kickoff.
firstD_by_possdoubleBinary flag for a new first down via change of possession.
firstD_by_penaltydoubleBinary flag for a new first down via penalty.
firstD_by_yardsdoubleBinary flag for a new first down via yards gained.
def_EPAdoubleEPA for the defensive team on the play (sign-flipped offense EPA).
home_EPAdoubleEPA for the home team on the play.
away_EPAdoubleEPA for the away team on the play.
home_EPA_rushdoubleRushing EPA for the home team on the play.
away_EPA_rushdoubleRushing EPA for the away team on the play.
home_EPA_passdoublePassing EPA for the home team on the play.
away_EPA_passdoublePassing EPA for the away team on the play.
total_home_EPAdoubleCumulative total EPA for the home team through the play.
total_away_EPAdoubleCumulative total EPA for the away team through the play.
total_home_EPA_rushdoubleCumulative rushing EPA for the home team through the play.
total_away_EPA_rushdoubleCumulative rushing EPA for the away team through the play.
total_home_EPA_passdoubleCumulative passing EPA for the home team through the play.
total_away_EPA_passdoubleCumulative passing EPA for the away team through the play.
net_home_EPAdoubleNet EPA differential (home minus away) through the play.
net_away_EPAdoubleNet EPA differential (away minus home) through the play.
net_home_EPA_rushdoubleNet rushing EPA differential for the home team through the play.
net_away_EPA_rushdoubleNet rushing EPA differential for the away team through the play.
net_home_EPA_passdoubleNet passing EPA differential for the home team through the play.
net_away_EPA_passdoubleNet passing EPA differential for the away team through the play.
successdoubleBinary success-rate flag using the 50/70/100 percent down-state thresholds.
epa_successdoubleBinary flag for plays with positive EPA (EPA > 0).
rz_playdoubleBinary flag for a red-zone play (yards_to_goal <= 20).
scoring_oppdoubleBinary flag for a scoring opportunity (yards_to_goal <= 40).
middle_8logicalTRUE for plays in the middle-8 window (final 4 min of 1H, first 4 min of 2H).
stuffed_rundoubleBinary flag for a stuffed run (zero or negative yards gained).
change_of_pos_teamdoubleBinary flag for change of possession-team on the play.
downs_turnoverdoubleBinary flag for a turnover on downs.
turnoverdoubleBinary flag for any turnover on the play.
pos_score_diff_startdoubleScore differential for the possession team at the start of the play.
pos_score_ptsdoublePoints scored on the play attributed to the possession team.
log_ydstogodoubleNatural log of distance-to-go (model feature).
ExpScoreDiffdoubleExpected score differential at the start of the play (EPA-adjusted).
ExpScoreDiff_Time_RatiodoubleExpScoreDiff divided by (adj_TimeSecsRem + 1) (WP model input).
half_clock_minutesdoubleMinutes remaining in the half (15 + clock_minutes when in Q1/Q3).
TimeSecsRemdoubleSeconds remaining in the half at the start of the play.
adj_TimeSecsRemdoubleSeconds remaining in regulation: TimeSecsRem plus 1800 in the first half (WP model input).
Goal_To_GologicalTRUE when the offense is in a goal-to-go situation.
Under_twologicalTRUE when under two minutes remain in the half.
homecharacterHome team name.
awaycharacterAway team name.
home_wp_beforedoubleHome team win probability before the play (0-1).
away_wp_beforedoubleAway team win probability before the play (0-1).
home_wp_afterdoubleHome team win probability after the play (0-1).
away_wp_afterdoubleAway team win probability after the play (0-1).
end_of_halfdoubleBinary flag for the last play of a half.
pos_team_receives_2H_kickoffdoubleBinary flag indicating possession team receives the second-half kickoff.
orig_play_typecharacterOriginal CFBD play type label before cfbfastR cleaning.
Under_threelogicalTRUE when under three minutes remain in the half.
down_endfactorDown number at the end of the play (post-play state).
distance_enddoubleDistance-to-go at the end of the play (post-play state).
log_ydstogo_enddoubleNatural log of post-play distance-to-go (model feature).
yards_to_goal_enddoubleYards to opponent end zone at the end of the play.
TimeSecsRem_enddoubleSeconds remaining in the half at the end of the play.
Goal_To_Go_endlogicalTRUE when the post-play state is goal-to-go.
Under_two_endlogicalTRUE when the post-play state is under two minutes.
offense_score_playdoubleBinary flag for an offensive scoring play.
defense_score_playdoubleBinary flag for a defensive scoring play.
ppadoubleCFBD's own Predicted Points Added for the play (the ppa field of the CFBD plays payload).
yard_lineintegerYard line where the play started (raw CFBD yardline field).
scoringlogicalTRUE when the play resulted in a score (CFBD scoring flag).
pos_team_timeouts_rem_beforedoublePossession team timeouts remaining before the play.
def_pos_team_timeouts_rem_beforedoubleDefensive team timeouts remaining before the play.
pos_team_timeoutsintegerPossession team timeouts remaining after the play.
def_pos_team_timeoutsintegerDefensive team timeouts remaining after the play.
pos_score_diffintegerScore differential from the possession team's perspective after the play; pos_score_diff_start is the pre-play value.
pos_score_diff_start_enddoubleScore differential for the post-play EP state: pos_score_diff, negated when possession changed on the play.
offense_playcharacterOffensive team name as labeled by CFBD on the play.
defense_playcharacterDefensive team name as labeled by CFBD on the play.
offense_receives_2H_kickoffdoubleBinary flag indicating offense receives the second-half kickoff.
change_of_possdoubleBinary flag for change of possession on the play (CFBD offense field).
score_ptsdoublePoints scored on the play.
score_diff_startdoubleScore differential at the start of the play.
score_diffintegerScore differential (offense_score - defense_score) after the play; score_diff_start is the pre-play value.
offense_scoreintegerOffense team score after the play (includes points scored on it).
defense_scoreintegerDefense team score after the play.
offense_conferencecharacterConference name of the offensive team.
defense_conferencecharacterConference name of the defensive team.
off_timeout_calleddoubleBinary flag for an offensive timeout called during the play.
def_timeout_calleddoubleBinary flag for a defensive timeout called during the play.
offense_timeoutsintegerOffense timeouts remaining after the play (CFBD field).
defense_timeoutsintegerDefense timeouts remaining after the play (CFBD field).
off_timeouts_rem_beforedoubleOffense timeouts remaining before the play.
def_timeouts_rem_beforedoubleDefense timeouts remaining before the play.
rusher_player_namecharacterName of the rusher on a rushing play.
yds_rusheddoubleRushing yards gained on the play.
passer_player_namecharacterName of the passer on a passing play.
receiver_player_namecharacterName of the receiver on a passing play.
yds_receivingdoubleReceiving yards gained on the play.
yds_sackeddoubleYards lost on the sack.
sack_playerscharacterCombined names of all sack participants.
sack_player_namecharacterPrimary sack player name.
sack_player_name2characterSecondary sack player name (when split between two defenders).
pass_breakup_player_namecharacterName of the defender credited with the pass breakup.
interception_player_namecharacterName of the defender credited with the interception.
yds_int_returndoubleYards gained on an interception return.
fumble_player_namecharacterName of the player who fumbled.
fumble_forced_player_namecharacterName of the player who forced the fumble.
fumble_recovered_player_namecharacterName of the player who recovered the fumble.
yds_fumble_returndoubleYards gained on a fumble return.
punter_player_namecharacterName of the punter.
yds_punteddoubleYards the ball traveled on the punt.
punt_returner_player_namecharacterName of the punt returner.
yds_punt_returndoubleYards gained on the punt return.
yds_punt_gaineddoubleThe play's yards_gained on punt plays; NA otherwise.
punt_block_player_namecharacterName of the player credited with blocking the punt.
punt_block_return_player_namecharacterName of the player returning a blocked punt.
fg_kicker_player_namecharacterName of the field goal kicker.
yds_fgdoubleDistance of the field goal attempt in yards; NA on other plays.
fg_block_player_namecharacterName of the player credited with blocking the field goal.
fg_return_player_namecharacterName of the player returning the blocked/missed field goal.
kickoff_player_namecharacterName of the kickoff specialist.
yds_kickoffdoubleYards the ball traveled on the kickoff.
kickoff_returner_player_namecharacterName of the kickoff returner.
yds_kickoff_returndoubleYards gained on the kickoff return.
new_iddoubleNumeric play index within the game (id_play with game_id stripped).
orig_drive_numberintegerOriginal CFBD drive number for the play.
drive_numberintegercfbfastR-cleaned drive number for the play.
drive_result_detailedcharacterDetailed drive result label (e.g. "Punt", "Passing Touchdown", "Downs Turnover").
new_drive_ptsdoublePoints scored on the drive (signed for offense/defense).
drive_iddoubleCFBD drive identifier.
drive_resultcharacterCFBD drive result label.
drive_start_yards_to_goaldoubleYards to goal at the start of the drive.
drive_end_yards_to_goalintegerYards to goal at the end of the drive.
drive_yardsintegerNet yards gained on the drive.
drive_scoringdoubleBinary flag for a scoring drive.
drive_ptsdoublePoints scored on the drive (CFBD/cfbfastR reconciled value).
drive_start_periodintegerPeriod (quarter) at the start of the drive.
drive_end_periodintegerPeriod (quarter) at the end of the drive.
drive_time_minutes_startintegerMinutes on the clock at the start of the drive.
drive_time_seconds_startintegerSeconds on the clock at the start of the drive.
drive_time_minutes_endintegerMinutes on the clock at the end of the drive.
drive_time_seconds_endintegerSeconds on the clock at the end of the drive.
drive_time_minutes_elapsedintegerMinutes elapsed during the drive.
drive_time_seconds_elapsedintegerSeconds elapsed during the drive.
drive_numbersdoubleBinary flag marking the first play of a new drive.
number_of_drivesdoubleCumulative count of drives in the game.
pts_scoreddoublePoints scored on the play, signed by play_type rule.
drive_numdoubleGame-scoped drive sequence number.
id_drivecharacterComposite drive identifier (game_id concatenated with drive_num).
rushdoubleBinary flag for a rushing play.
rush_tddoubleBinary flag for a rushing touchdown.
passdoubleBinary flag for a passing play (includes sacks).
pass_tddoubleBinary flag for a passing touchdown.
completiondoubleBinary flag for a completed pass.
pass_attemptdoubleBinary flag for a pass attempt.
targetdoubleBinary flag for a targeted receiver on the play.
sackdoubleBinary flag for a sack; unlike sack_vec, excludes sack and fumble-return touchdowns.
intdoubleBinary flag for an interception.
int_tddoubleBinary flag for an interception returned for a touchdown.
turnover_vecdoubleBinary flag for any play classified as a turnover.
kickoff_playdoubleBinary flag for a kickoff play.
receives_2H_kickoffdoubleBinary flag for the team receiving the second-half kickoff.
scoring_playdoubleBinary flag for any scoring play.
td_playdoubleBinary flag for a touchdown play.
touchdowndoubleBinary flag: 1 when play_type contains Touchdown (td_play reads play_text instead).
safetydoubleBinary flag for a safety.
fumble_vecdoubleBinary flag for a play involving a fumble.
kickoff_tbdoubleBinary flag for a kickoff touchback.
kickoff_onsidedoubleBinary flag for an onside kickoff attempt.
kickoff_oobdoubleBinary flag for a kickoff out of bounds.
kickoff_fair_catchdoubleBinary flag for a kickoff fair catch.
kickoff_downeddoubleBinary flag for a kickoff downed in the field of play.
kickoff_safetydoubleBinary flag for a kickoff safety.
puntdoubleBinary flag for a punt play.
punt_playdoubleBinary flag for any punt-related play (includes blocks/returns).
punt_tbdoubleBinary flag for a punt touchback.
punt_oobdoubleBinary flag for a punt out of bounds.
punt_fair_catchdoubleBinary flag for a punt fair catch.
punt_downeddoubleBinary flag for a punt downed in the field of play.
punt_safetydoubleBinary flag for a punt safety.
punt_blockeddoubleBinary flag for a blocked punt.
penalty_safetydoubleBinary flag for a safety scored on a penalty.
fg_indsdoubleBinary flag for a field goal attempt.
fg_madelogicalTRUE when the field goal attempt was successful.
fg_make_probdoublePredicted probability of making the field goal (cfbfastR FG model, 0-1); NA on plays that are not field goal attempts.
No_Score_beforedoublePre-play predicted probability of no score before end of half (cfbfastR EP model, 0-1).
FG_beforedoublePre-play predicted probability of a posteam field goal next (0-1).
Opp_FG_beforedoublePre-play predicted probability of a defteam field goal next (0-1).
Opp_Safety_beforedoublePre-play predicted probability of a defteam safety next (0-1).
Opp_TD_beforedoublePre-play predicted probability of a defteam touchdown next (0-1).
Safety_beforedoublePre-play predicted probability of a posteam safety next (0-1).
TD_beforedoublePre-play predicted probability of a posteam touchdown next (0-1).
No_Score_afterdoublePost-play predicted probability of no score before end of half (0-1).
FG_afterdoublePost-play predicted probability of a posteam field goal next (0-1).
Opp_FG_afterdoublePost-play predicted probability of a defteam field goal next (0-1).
Opp_Safety_afterdoublePost-play predicted probability of a defteam safety next (0-1).
Opp_TD_afterdoublePost-play predicted probability of a defteam touchdown next (0-1).
Safety_afterdoublePost-play predicted probability of a posteam safety next (0-1).
TD_afterdoublePost-play predicted probability of a posteam touchdown next (0-1).
penalty_flaglogicalTRUE when a penalty was flagged on the play.
penalty_declinedlogicalTRUE when the penalty was declined.
penalty_no_playlogicalTRUE when the penalty nullified the play (no play counted).
penalty_offsetlogicalTRUE when offsetting penalties were called.
penalty_textlogicalTRUE when penalty information is detectable in the play text.
penalty_play_textcharacterPenalty-related substring extracted from the play text.
lead_wp_before2doubleWin probability two plays ahead (lead 2 of wp_before).
wpa_half_enddoubleWPA contribution from the end-of-half adjustment.
wpa_basedoubleBase WPA component used to assemble the final wpa value.
wpa_base_nxtdoubleWPA base component looking ahead one play.
wpa_changedoubleWPA change-of-possession component for the current play.
wpa_change_nxtdoubleWPA change-of-possession component for the next play.
wpa_base_inddoubleIndicator selecting the wpa_base path for the current play.
wpa_base_nxt_inddoubleIndicator selecting the wpa_base_nxt path for the next play.
wpa_change_inddoubleIndicator selecting the wpa_change path for the current play.
wpa_change_nxt_inddoubleIndicator selecting the wpa_change_nxt path for the next play.
lead_wp_beforedoubleWin probability on the next play (lead of wp_before).
lead_pos_team2characterPossession team two plays ahead (lead 2 of pos_team).
rowintegerRow index within the game half (sequencing helper).
drive_event_numberdoubleSequential event number within the current drive.
first_by_penaltydoubleBinary flag for a first down earned by penalty on the play.
first_by_yardsdoubleBinary flag for a first down earned by yards on the play.
play_after_turnoverdoubleBinary flag indicating the play immediately following a turnover.
play_numberintegerCFBD-supplied play number within the drive (1-indexed); game_play_number is the game-level sequence.
wallclockcharacterISO 8601 wall-clock timestamp from CFBD for the play.
providercharacterSportsbook provider used for spread/over_under joined onto the play. Present only when year >= 2013.
spreaddoublePre-game point spread from the selected provider (negative when the home team is favored). Present only when year >= 2013; NA when no line was found.
formatted_spreadcharacterHuman-readable formatted spread string from the betting provider. Present only when year >= 2013.
over_underdoublePre-game over/under total from the selected provider. Present only when year >= 2013.
drive_is_home_offenselogicalTRUE when the home team is on offense for the drive.
drive_start_offense_scoreintegerOffense score at the start of the drive.
drive_start_defense_scoreintegerDefense score at the start of the drive.
drive_end_offense_scoreintegerOffense score at the end of the drive.
drive_end_defense_scoreintegerDefense score at the end of the drive.
home_team_idcharacterHome team id (CFBD /games homeId; CFBD team ids are ESPN team ids); NA when the game is not in CFBD /games.
away_team_idcharacterAway team id (CFBD /games awayId); NA when the game is not in CFBD /games.
home_team_abbreviationcharacterHome team abbreviation from CFBD /teams; NA when the team is not in /teams.
away_team_abbreviationcharacterAway team abbreviation from CFBD /teams; NA when the team is not in /teams.
offense_play_idcharacterTeam id of the offense on the play; NA when offense_play names neither team in the game.
defense_play_idcharacterTeam id of the defense on the play; NA when defense_play names neither team in the game.
cleaned_textcharacterplay_text with the leading clock stamp, the first pass depth and direction words, and No Huddle/Shotgun tags removed.
playdoubleBinary flag indicating the row is a counted play (excludes end markers/timeouts/penalties).
eventdoubleBinary flag indicating the row is a counted game event (excludes end markers).
game_event_numberdoubleSequential event number within the game.
game_row_numberintegerRow index within the game grouping.
half_playdoubleBinary flag indicating a counted play within the half.
half_eventdoubleBinary flag indicating a counted event within the half.
half_event_numberdoubleSequential event number within the half.
half_row_numberintegerRow index within the half grouping.
pos_unitcharacterUnit of the team in possession: Offense, Punt Offense, Kickoff Return or Field Goal Offense.
def_pos_unitcharacterUnit of the defending team: Defense, Punt Return, Kickoff Defense or Field Goal Defense.
drive_playdoubleBinary flag indicating a counted play within the drive.
drive_eventdoubleBinary flag indicating a counted event within the drive.
punt_return_player_namecharacterName of the punt returner (same as punt_returner_player_name).
kickoff_return_player_namecharacterName of the kickoff returner (same as kickoff_returner_player_name).
vegas_wpdoubleSpread-aware win probability for the team in possession before the play (proportion 0-1); NA when the game has no pre-game spread (always before 2013).
vegas_wpadoubleChange in vegas_wp over the play, with the same possession-change handling as wpa; NA on the final rows of a game.
vegas_wp_afterdoubleSpread-aware win probability after the play (vegas_wp plus vegas_wpa).
cpdoubleModeled completion probability of the pass (proportion 0-1, cfbfastR CP model); NA on non-pass plays.
cpoedoubleCompletion percentage over expected, in percentage points: 100 * (completion - cp); NA on non-pass plays.
xpassdoubleModeled probability that the play is a pass given down, distance, field position, score, time and era (proportion 0-1); NA on non-scrimmage plays.
pass_oedoublePass over expected, in percentage points: 100 * (pass - xpass); NA on non-scrimmage plays.
prob_2ptdoubleModeled probability of converting a two-point try (proportion 0-1). Set only on offensive-touchdown rows of games with a pre-game line; NA elsewhere.
two_pt_wpdoubleWin probability for the scoring team if it goes for two, weighting the make and miss outcomes by prob_2pt; offensive-touchdown rows only.
xp_wpdoubleWin probability for the scoring team if it kicks the extra point; offensive-touchdown rows only.
two_pt_wp_diffdoubletwo_pt_wp minus xp_wp; positive favors going for two.
two_pt_recommendationcharactergo_for_2 when two_pt_wp exceeds xp_wp, otherwise kick_xp; NA off offensive-touchdown rows. Use two_pt_wp_diff to apply a threshold.
go_wpdoubleWin probability for the team in possession if it goes for it on fourth down (proportion 0-1). The fourth-down columns are set only on fourth downs in periods 1-4 with more than 30 seconds left in the game; NA elsewhere.
first_down_probdoubleModeled probability that going for it on fourth down converts (first down or score).
wp_succeeddoubleWin probability if the fourth-down attempt converts; NA when that outcome has no probability.
wp_faildoubleWin probability if the fourth-down attempt fails; NA when that outcome has no probability.
fourth_down_fg_make_probdoubleProbability of making a field goal from the current spot, set to 0 beyond 42 yards to goal and scaled by 0.9 from 35 to 42 (not the same as fg_make_prob).
make_fg_wpdoubleWin probability for the kicking team if the fourth-down field goal is made.
miss_fg_wpdoubleWin probability for the kicking team if the fourth-down field goal is missed.
fg_wpdoubleExpected win probability of attempting the field goal: make_fg_wp and miss_fg_wp weighted by fourth_down_fg_make_prob.
punt_wpdoubleExpected win probability of punting; NA when yards_to_goal is under 31, where the bundled punt distribution has no data.
go_boostdoubleWin probability gained by going for it over the better of the field goal and the punt, in percentage points.
go_wp_diffdoublego_wp minus the win probability of the recommended option (0 when going for it is recommended).
fg_wp_diffdoublefg_wp minus the win probability of the recommended option (0 when the field goal is recommended).
punt_wp_diffdoublepunt_wp minus the win probability of the recommended option (0 when the punt is recommended).
fourth_down_recommendationcharacterFourth-down option with the highest win probability: go, field_goal or punt; NA off fourth-down rows.

Columns added by output = "full" - one row per play; lag/lead pipeline intermediates, redundant alternates and drive-result aliases, each defined below:

col_nametypedescription
lead_pos_teamcharacterPossession team on the next play (lead value).
lead_play_typecharacterPlay type on the next play (lead value).
lag_pos_teamcharacterPossession team on the previous play (lag value).
lag_play_typecharacterPlay type on the previous play (lag value).
drive_result_detailed_flagcharacterPre-fill copy of drive_result_detailed used during drive reconciliation.
drive_result2characterShort-form drive result label (e.g. "TD", "PUNT", "DOWNS").
lag_drive_result_detailedcharacterDrive result detailed on the previous play (lag value).
lead_drive_result_detailedcharacterDrive result detailed on the next play (lead value).
lag_new_drive_ptsdoubleDrive points on the previous play (lag value).
sack_vecdoubleBinary flag for a sack play.
turnover_vec_lagdoubleLag of turnover_vec (previous-play turnover flag).
turnover_indicatordoubleComposite turnover indicator including failed 4th downs.
missing_yard_flaglogicalTRUE when post-play yardage had to be imputed.
kick_playdoubleBinary flag for a play whose text mentions a kick (kickoffs, extra points, field goals).
lag_play_type2characterPlay type two plays prior (lag 2 of play_type).
lag_play_type3characterPlay type three plays prior (lag 3 of play_type).
lag_play_textcharacterPlay text from the previous play (lag value).
lag_play_text2characterPlay text from two plays prior (lag 2 value).
lead_play_textcharacterPlay text from the next play (lead value).
lag_first_by_penaltydoubleFirst-down-by-penalty flag from the previous play (lag value).
lag_first_by_penalty2doubleFirst-down-by-penalty flag from two plays prior (lag 2 value).
lag_first_by_yardsdoubleFirst-down-by-yards flag from the previous play (lag value).
lag_first_by_yards2doubleFirst-down-by-yards flag from two plays prior (lag 2 value).
lag_change_of_possdoublechange_of_poss from the previous play (lag value).
lag_change_of_pos_teamdoublechange_of_pos_team from the previous play (lag value).
lag_change_of_pos_team2doublechange_of_pos_team from two plays prior (lag 2 value).
lag_kickoff_playdoublekickoff_play flag from the previous play (lag value).
lag_puntdoublepunt flag from the previous play (lag value).
lag_punt2doublepunt flag from two plays prior (lag 2 value).
lag_scoring_playdoublescoring_play flag from the previous play (lag value).
lag_turnover_vecdoubleturnover_vec flag from the previous play (lag value).
lag_downs_turnoverdoubledowns_turnover flag from the previous play (lag value).
lag_defense_score_playdoubledefense_score_play flag from the previous play (lag value).
lag_score_diffdoublescore_diff from the previous play (lag value).
lag_offense_playcharacteroffense_play from the previous play (lag value).
lead_offense_playcharacteroffense_play from the next play (lead value).
lead_offense_play2characteroffense_play from two plays ahead (lead 2 value).
lag_pos_score_diffdoublepos_score_diff from the previous play (lag value).
lag_off_timeoutsdoubleoffense_timeouts from the previous play (lag value).
lag_def_timeoutsdoubledefense_timeouts from the previous play (lag value).
lag_TimeSecsRem2doubleTimeSecsRem from two plays prior (lag 2 value).
lag_TimeSecsRemdoubleTimeSecsRem from the previous play (lag value).
lead_TimeSecsRemdoubleTimeSecsRem from the next play (lead value).
lead_TimeSecsRem2doubleTimeSecsRem from two plays ahead (lead 2 value).
lag_yards_to_goal2integeryards_to_goal from two plays prior (lag 2 value).
lag_yards_to_goalintegeryards_to_goal from the previous play (lag value).
lead_yards_to_goaldoubleyards_to_goal from the next play (lead value).
lead_yards_to_goal2integeryards_to_goal from two plays ahead (lead 2 value).
lag_down2integerDown number two plays prior (lag 2 value).
lag_downintegerDown number from the previous play (lag value).
lead_downdoubleDown number on the next play (lead value).
lead_down2doubleDown number two plays ahead (lead 2 value).
lead_distancedoubleDistance to go on the next play (lead value).
lead_distance2integerDistance to go two plays ahead (lead 2 value).
lead_play_type2characterPlay type two plays ahead (lead 2 value).
lead_play_type3characterPlay type three plays ahead (lead 3 value).
lag_ep_before3doubleep_before from three plays prior (lag 3 value).
lag_ep_before2doubleep_before from two plays prior (lag 2 value).
lag_ep_beforedoubleep_before from the previous play (lag value).
lead_ep_beforedoubleep_before on the next play (lead value).
lead_ep_before2doubleep_before two plays ahead (lead 2 value).
lag_ep_afterdoubleep_after from the previous play (lag value).
lag_ep_after2doubleep_after from two plays prior (lag 2 value).
lag_ep_after3doubleep_after from three plays prior (lag 3 value).
lead_ep_afterdoubleep_after on the next play (lead value).
lead_ep_after2doubleep_after two plays ahead (lead 2 value).
lag_distance3integerdistance three plays prior (lag 3 value).
lag_distance2integerdistance two plays prior (lag 2 value).
lag_distanceintegerdistance from the previous play (lag value).
lag_yards_gained3integeryards_gained three plays prior (lag 3 value).
lag_yards_gained2integeryards_gained two plays prior (lag 2 value).
lag_yards_gainedintegeryards_gained from the previous play (lag value).
lead_yards_gainedintegeryards_gained on the next play (lead value).
lead_yards_gained2integeryards_gained two plays ahead (lead 2 value).
lag_play_text3characterPlay text from three plays prior (lag 3 value).
lead_play_text2characterPlay text from two plays ahead (lead 2 value).
lead_play_text3characterPlay text from three plays ahead (lead 3 value).
lag_change_of_poss2doublechange_of_poss from two plays prior (lag 2 value).
lag_change_of_poss3doublechange_of_poss from three plays prior (lag 3 value).
lag_change_of_pos_team3doublechange_of_pos_team from three plays prior (lag 3 value).
lag_kickoff_play2doublekickoff_play flag from two plays prior (lag 2 value).
lag_kickoff_play3doublekickoff_play flag from three plays prior (lag 3 value).
lag_punt3doublepunt flag from three plays prior (lag 3 value).
lag_scoring_play2doublescoring_play flag from two plays prior (lag 2 value).
lag_scoring_play3doublescoring_play flag from three plays prior (lag 3 value).
lag_turnover_vec2doubleturnover_vec flag from two plays prior (lag 2 value).
lag_turnover_vec3doubleturnover_vec flag from three plays prior (lag 3 value).
lag_downs_turnover2doubledowns_turnover flag from two plays prior (lag 2 value).
lag_downs_turnover3doubledowns_turnover flag from three plays prior (lag 3 value).
lag_first_by_penalty3doublefirst_by_penalty flag from three plays prior (lag 3 value).
lag_first_by_yards3doublefirst_by_yards flag from three plays prior (lag 3 value).

Details

 # Get play by play data for 2025 regular season week 1
 cfbd_pbp_data(year = 2025, week = 1, season_type = 'regular', epa_wpa = TRUE)