Skip to contents

Loads season-level NCAA men's football play-by-play parsed from stats.ncaa.org by the sdv-py cfb_ncaa_pbp parser. Covers FCS and lower divisions that ESPN's feed misses; one row per play with drive and participant context. Published to the ncaa_mfb_pbp release tag on the sportsdataverse-data repo.

For the same plays reshaped onto cfbfastR pbp column conventions (for binding with load_cfb_pbp() / load_espn_cfb_pbp() output), use load_ncaa_mfb_pbp_cfbfastr().

Usage

load_ncaa_mfb_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 2013 through the most recent season. Pass seasons = TRUE for every published season. (Min: 2013)

...

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
contest_idcharacter
drive_numberinteger
play_numberinteger
offensecharacter
drive_resultcharacter
drive_scoredlogical
downinteger
distanceinteger
yard_linecharacter
yard_line_sidecharacter
yard_line_numberinteger
play_typecharacter
clockcharacter
yards_gainedinteger
formationcharacter
passercharacter
rushercharacter
receivercharacter
kickercharacter
puntercharacter
returnercharacter
run_directioncharacter
qb_scramblelogical
pass_completelogical
pass_depthcharacter
pass_directioncharacter
tackler_1character
tackler_2character
kick_yardsinteger
return_yardsinteger
punt_yardsinteger
fg_distanceinteger
fg_madelogical
is_first_downlogical
is_touchdownlogical
is_safetylogical
is_fumblelogical
is_turnoverlogical
turnover_typecharacter
out_of_boundslogical
no_playlogical
fair_catchlogical
penalty_flaglogical
penalty_teamcharacter
penalty_typecharacter
penalty_playercharacter
penalty_yardsinteger
end_yard_linecharacter
play_textcharacter
espn_game_idcharacter
seasoninteger

Author

Saiem Gilani

Examples

# \donttest{
  try(load_ncaa_mfb_pbp(2013))
#> ── NCAA men's football play-by-play (stats.ncaa.org) from the SportsDataverse da
#>  Data updated: 2026-08-27 04:23:03 UTC
#> # A tibble: 344,180 × 51
#>    contest_id drive_number play_number offense drive_result drive_scored  down
#>    <chr>             <int>       <int> <chr>   <chr>        <lgl>        <int>
#>  1 688871                1           1 UCF     TD           TRUE             1
#>  2 688871                1           2 UCF     TD           TRUE             1
#>  3 688871                1           3 UCF     TD           TRUE             2
#>  4 688871                1           4 UCF     TD           TRUE             1
#>  5 688871                2           1 Akron   PUNT         FALSE            1
#>  6 688871                2           2 Akron   PUNT         FALSE            1
#>  7 688871                2           3 Akron   PUNT         FALSE            1
#>  8 688871                2           4 Akron   PUNT         FALSE            2
#>  9 688871                2           5 Akron   PUNT         FALSE            3
#> 10 688871                2           6 Akron   PUNT         FALSE            1
#> # ℹ 344,170 more rows
#> # ℹ 44 more variables: distance <int>, yard_line <chr>, yard_line_side <chr>,
#> #   yard_line_number <int>, play_type <chr>, clock <chr>, yards_gained <int>,
#> #   formation <chr>, passer <chr>, rusher <chr>, receiver <chr>, kicker <chr>,
#> #   punter <chr>, returner <chr>, run_direction <chr>, qb_scramble <lgl>,
#> #   pass_complete <lgl>, pass_depth <chr>, pass_direction <chr>,
#> #   tackler_1 <chr>, tackler_2 <chr>, kick_yards <int>, return_yards <int>, …
# }