Skip to main content

NFL — additional Python functions — Dataset loaders: combine–nfl_espn

load_combine​

load_combine(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Combine information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL combine data available.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
draft_yeardoubleYear that player was drafted
draft_teamcharacterTeam that drafted player
draft_rounddoubleRound that player was drafted in
draft_ovrdoubleOverall draft pick selection. This can be a little bit patchy, since MFL does not report this number.
pfr_idcharacterPro-Football-Reference ID for player
cfb_idcharacterSports Reference (CFB) ID for player
player_namecharacterFull name of player
poscharacterPosition as tracked by FP
schoolcharacterCollege of player
htcharacterHeight of player (feet and inches)
wtdoubleWeight of player (lbs)
fortydoublePlayer's 40 yard dash time at combine (seconds)
benchdoubleReps benched by player at combine
verticaldoublePlayer's vertical jump at combine (inches)
broad_jumpdoublePlayer's broad jump at combine (inches)
conedoublePlayer's 3 cone drill time at combine (seconds)
shuttledoublePlayer's shuttle run time at combine (seconds)

Example

from sportsdataverse.nfl import load_nfl_combine
combine = load_nfl_combine()
combine.shape

# Filter by draft year and position

import polars as pl
qbs_2024 = (
load_nfl_combine()
.filter((pl.col("season") == 2024) & (pl.col("pos") == "QB"))
)

load_contracts​

load_contracts(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Historical contracts information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing historical contracts available.

col_nametypedescription
playercharacterPlayer name
positioncharacterPrimary position as reported by NFL.com
teamcharacterNFL team. Uses official abbreviations as per NFL.com
is_activelogicalActive contract
year_signedintegerYear the contract was signed
yearsintegerContract length
valuedoubleTotal contract value
apydoubleAverage money per contract year
guaranteeddoubleTotal guaranteed money
apy_cap_pctdoubleAverage money per contract year as percentage of the team's salary cap at signing
inflated_valuedoubleTotal contract value inflated to account for the rise of the salary cap
inflated_apydoubleAverage money per contract year inflated to account for the rise of the salary cap
inflated_guaranteeddoubleTotal guaranteed money inflated to account for the rise of the salary cap
player_pagecharacterPlayer's OverTheCap url
otc_idintegerOver the Cap ID for player
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
date_of_birthcharacterPlayer date of birth (if published).
heightcharacterOfficial height, in inches
weightcharacterOfficial weight, in pounds
collegecharacterOfficial college (usually the last one attended)
draft_yearintegerYear that player was drafted
draft_roundintegerRound that player was drafted in
draft_overallintegerOverall draft selection number.
draft_teamcharacterTeam that drafted player
colsdoublePlaceholder column retained in the contracts loader output schema; contains no meaningful data in this context.
season_historydoubleList of structs, one per league year covered by the contract (year as a string, team, base_salary, prorated_bonus, option_bonus, roster_bonus, guaranteed_salary, cap_number, cap_percent, cash_paid, workout_bonus, per_game_roster_bonus, other_bonus), money in millions of dollars and a final 'Total' row per nflreadr.
contract_historyintegerList of structs, one per contract in the player's OverTheCap contract history (team, contract_type, status, year_signed, yrs, total, apy, guarantees, amount_earned, percent_earned, effective_apy), with money fields in millions of dollars.

Example

from sportsdataverse.nfl import load_nfl_contracts
contracts = load_nfl_contracts()
contracts.shape

# Pandas round-trip with sort by APY

contracts_pd = load_nfl_contracts(return_as_pandas=True)
contracts_pd.sort_values("apy", ascending=False).head()

load_depth_charts​

load_depth_charts(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Depth Chart data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2001 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing depth chart data available for the requested seasons.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
club_codecharacterThree-letter team abbreviation identifying the NFL club on the depth chart row.
weekintegerSeason week.
game_typecharacterThe most recent game type of that season that a player appeared on the roster.
depth_teamcharacterNumeric depth rank indicating whether the player is listed as the starter (1), backup (2), or further reserve on the depth chart.
last_namecharacterLast name of player
first_namecharacterFirst name of player
football_namecharacterCommon player name (i.e. in most cases common_first_name last_name)
formationcharacterOffensive or defensive formation context in which the depth chart position applies (e.g., 'Shotgun', 'Nickel').
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
jersey_numbercharacterJersey number. Often useful for joins by name/team/jersey.
positioncharacterPrimary position as reported by NFL.com
elias_idcharacterElias Sports Bureau identifier for the player, used by the NFL for official statistical tracking.
depth_positioncharacterPositional grouping label used to place the player on the team's official depth chart (e.g., 'QB', 'WR1', 'ILB').
full_namecharacterFull name as per NFL.com

Example

from sportsdataverse.nfl import load_nfl_depth_charts
depth = load_nfl_depth_charts(seasons=[2024])

# Multi-season range

depth = load_nfl_depth_charts(seasons=range(2020, 2025))

load_draft_picks​

load_draft_picks(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Draft picks information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL Draft picks data available.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
roundintegerDraft round
pickintegerDraft overall pick
teamcharacterNFL team. Uses official abbreviations as per NFL.com
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
pfr_player_idcharacterID from Pro Football Reference
cfb_player_idcharacterID from College Football Reference
pfr_player_namecharacterPlayer's name as recorded by PFR
hoflogicalWhether player has been selected to the Pro Football Hall of Fame
positioncharacterPrimary position as reported by NFL.com
categorycharacterBroader category of player positions
sidecharacterO for offense, D for defense, S for special teams
collegecharacterOfficial college (usually the last one attended)
ageintegerAge as of last pipeline build, rounded to one decimal. Pipeline is built on a weekly basis.
tointegerFinal season played in NFL
allprointegerNumber of AP First Team All-Pro selections as recorded by PFR
probowlsintegerNumber of Pro Bowls
seasons_startedintegerNumber of seasons recorded as primary starter for position
w_avintegerWeighted Approximate Value
car_avlogicalCareer Approximate Value
dr_avintegerDraft Approximate Value
gamesintegerGames played in career
pass_completionsintegerNumber of successful completions for a given game
pass_attemptsintegerCareer pass attempts
pass_yardsintegerNumber of yards gained on pass plays
pass_tdsintegerCareer pass touchdowns thrown
pass_intsintegerCareer pass interceptions thrown
rush_attsintegerCareer rushing attempts
rush_yardsintegerThe number of rushing yards gained
rush_tdsintegerCareer rushing touchdowns
receptionsintegerThe number of pass receptions. Lateral receptions officially don't count as reception.
rec_yardsintegerCareer receiving yards
rec_tdsintegerCareer receiving touchdowns
def_solo_tacklesintegerCareer solo tackles
def_intsintegerCareer interceptions
def_sacksdoubleNumber of sacks form this player

Example

from sportsdataverse.nfl import load_nfl_draft_picks
picks = load_nfl_draft_picks()
picks.shape

# Filter to a single year and round

import polars as pl
r1_2024 = (
load_nfl_draft_picks()
.filter((pl.col("season") == 2024) & (pl.col("round") == 1))
)

load_espn_qbr​

load_espn_qbr(seasons: 'List[int]', summary_type: 'str' = 'season', return_as_pandas: 'bool' = False, *, source: 'str' = 'nflverse') -> 'pl.DataFrame'

Load ESPN Total QBR (Quarterback Rating) data going back to 2006.

Mirrors nflreadpy / nflreadr load_espn_qbr -- the lone nflreadpy dataset that previously had no sdv-py loader. ESPN publishes Total QBR only from 2006 onward, so 2006 is the earliest available season (unlike the 1999 floor on play-by-play). nflverse republishes ESPN's QBR through the espn_data release as two combined files (one per summary_type), each covering all seasons; this loader reads the requested file once and post-filters by season (the same access pattern as load_nfl_schedule).

Parameters

ParameterTypeDefaultDescription
seasonslistSeasons to return. 2006 is the earliest available season.
summary_typestr'season'Aggregation level. "season" (default) returns one row per quarterback-season; "week" returns one row per quarterback-game. Any other value raises ValueError.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.
sourcestr'nflverse'Which QBR release to read. "nflverse" (the default, also accepts None) returns the nflverse espn_data release. "sportsdataverse" / "sdv" returns the SDV-native nfl_espn_qbr release (built by nfl-data from ESPN's QBR web endpoint -- the same source nflverse's espnscrapeR uses). Any other value raises ValueError.

Returns

Polars dataframe containing ESPN Total QBR for the requested seasons, summarized per summary_type.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
season_typecharacterREG or POST indicating if the timeframe belongs to regular or post season.
game_weekcharacterSeason week
team_abbcharacterAbbreviation of Team of Player
player_idcharacterPlayer ID (aka GSIS ID) as defined by nflreadr::load_rosters
name_shortcharacterShort name of player (First Initial, Last Name)
rankdoubleQBR Rank in specified timeframe
qbr_totaldoubleAdjusted Total QBR, which adjusts quarterback play on 0-100 scale adjusted for strength of opposing defenses played.
pts_addeddoubleNumber of points contributed by a quarterback above the average level QB
qb_playsdoubleTotal dropbacks for the quarterback (excludes handoffs)
epa_totaldoubleTotal Expected Points Added by quarterback, calculated by ESPN Win Probability Model
passdoubleBinary indicator if the play was a pass play (sacks and scrambles included).
rundoubleExpected Points Added on run plays
exp_sackdoubleExpected EPA Added on Sacks
penaltydoubleBinary indicator for whether or not a penalty occurred.
qbr_rawdoubleRaw total QBR, does not adjust for strength of opposing defenses played.
sackdoubleBinary indicator for if the play ended in a sack.
name_firstcharacterFirst Name of Quarterback
name_lastcharacterLast Name of Quarterback
name_displaycharacterFull Name of Quarterback
headshot_hrefcharacterLink to ESPN Headshot of Player
teamcharacterNFL team. Uses official abbreviations as per NFL.com
qualifiedlogicalTrue/False indicator of whether or not player meets minimum play requirement

Example

from sportsdataverse.nfl import load_nfl_espn_qbr
qbr = load_nfl_espn_qbr(seasons=[2024])
qbr.shape

# Week-level QBR

qbr_week = load_nfl_espn_qbr(seasons=[2024], summary_type="week")

# Multi-season range

qbr = load_nfl_espn_qbr(seasons=range(2020, 2025))

# Pandas round-trip

qbr_pd = load_nfl_espn_qbr(seasons=[2024], return_as_pandas=True)
qbr_pd[["season", "team_abb", "qbr_total"]].head()

load_ff_opportunity​

load_ff_opportunity(seasons: 'List[int]', stat_type: 'str' = 'weekly', model_version: 'str' = 'latest', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL fantasy football opportunity data from ffverse/ffopportunity

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2006 is the earliest available season.
stat_typestr'weekly'One of "weekly", "pbp_pass", "pbp_rush". Defaults to "weekly".
model_versionstr'latest'One of "latest", "v1.0.0". Defaults to "latest".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football opportunity data for the requested seasons.

col_nametypedescription
seasoncharacter4 digit number indicating to which season(s) the specified timeframe belongs to.
posteamcharacterString abbreviation for the team with possession.
weekdoubleSeason week.
game_idcharacterTen digit identifier for NFL game.
player_idcharacterPlayer ID (aka GSIS ID) as defined by nflreadr::load_rosters
full_namecharacterFull name as per NFL.com
positioncharacterPrimary position as reported by NFL.com
pass_attemptdoubleBinary indicator for if the play was a pass attempt (includes sacks).
rec_attemptdoubleTotal number of targets for a given game
rush_attemptdoubleBinary indicator for if the play was a run.
pass_air_yardsdoubleTotal air yards thrown for a given game
rec_air_yardsdoubleTotal air yards on receiving attempts for a given game
pass_completionsdoubleNumber of successful completions for a given game
receptionsdoubleThe number of pass receptions. Lateral receptions officially don't count as reception.
pass_completions_expdoubleExpected number of pass_completions in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
receptions_expdoubleExpected number of receptions in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_yards_gaineddoubleTotal passing yards gained for a given game
rec_yards_gaineddoubleTotal receiving yards gained for a given game
rush_yards_gaineddoubleTotal rushing yards gained for a given game
pass_yards_gained_expdoubleExpected number of pass_yards_gained in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_yards_gained_expdoubleExpected number of rec_yards_gained in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rush_yards_gained_expdoubleExpected number of rush_yards_gained in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_touchdowndoubleBinary indicator for if the play resulted in a passing TD.
rec_touchdowndoubleTotal receiving touchdowns
rush_touchdowndoubleBinary indicator for if the play resulted in a rushing TD.
pass_touchdown_expdoubleExpected number of pass_touchdown in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_touchdown_expdoubleExpected number of rec_touchdown in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rush_touchdown_expdoubleExpected number of rush_touchdown in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_two_point_convdoubleNumber of successful passing two point conversions
rec_two_point_convdoubleNumber of successful receiving two point conversions
rush_two_point_convdoubleNumber of successful rushing two point conversions
pass_two_point_conv_expdoubleExpected number of pass_two_point_conv in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_two_point_conv_expdoubleExpected number of rec_two_point_conv in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rush_two_point_conv_expdoubleExpected number of rush_two_point_conv in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_first_downdoubleNumber of passing first downs
rec_first_downdoubleNumber of receiving first downs
rush_first_downdoubleNumber of rushing first downs
pass_first_down_expdoubleExpected number of pass_first_down in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_first_down_expdoubleExpected number of rec_first_down in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rush_first_down_expdoubleExpected number of rush_first_down in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_interceptiondoubleNumber of interceptions thrown
rec_interceptiondoubleNumber of interceptions on targets
pass_interception_expdoubleExpected number of pass_interception in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_interception_expdoubleExpected number of rec_interception in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_fumble_lostdoubleNumber of fumbles on receiving attempts
rush_fumble_lostdoubleNumber of fumbles on rushing attempts
pass_fantasy_points_expdoubleExpected number of pass_fantasy_points in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rec_fantasy_points_expdoubleExpected number of rec_fantasy_points in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
rush_fantasy_points_expdoubleExpected number of rush_fantasy_points in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_fantasy_pointsdoubleTotal fantasy points from passing, assuming 0.04 points per pass yard, 4 points per pass TD, -2 points per interception
rec_fantasy_pointsdoubleTotal fantasy points from receiving, assuming PPR scoring
rush_fantasy_pointsdoubleTotal fantasy points from rushing, assuming PPR scoring
total_yards_gaineddoubleTotal scrimmage yards (sum of pass, rush, and receiving yards)
total_yards_gained_expdoubleExpected number of total_yards_gained in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
total_touchdowndoubleTotal touchdowns (sum of pass, rush, and receiving touchdowns)
total_touchdown_expdoubleExpected number of total_touchdown in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
total_first_downdoubleTotal first downs (sum of pass, rush, and receiving first downs)
total_first_down_expdoubleExpected number of total_first_down in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
total_fantasy_pointsdoubleTotal fantasy points (sum of pass, rush, and receiving fantasy points)
total_fantasy_points_expdoubleExpected number of total_fantasy_points in this game (weekly) or on this play (pbp_rush/pbp_pass) given situation
pass_completions_diffdoubleDifference between actual and expected number of pass_completions - often interpreted as efficiency for a given play/game
receptions_diffdoubleDifference between actual and expected number of receptions - often interpreted as efficiency for a given play/game
pass_yards_gained_diffdoubleDifference between actual and expected number of pass_yards_gained - often interpreted as efficiency for a given play/game
rec_yards_gained_diffdoubleDifference between actual and expected number of rec_yards_gained - often interpreted as efficiency for a given play/game
rush_yards_gained_diffdoubleDifference between actual and expected number of rush_yards_gained - often interpreted as efficiency for a given play/game
pass_touchdown_diffdoubleDifference between actual and expected number of pass_touchdown - often interpreted as efficiency for a given play/game
rec_touchdown_diffdoubleDifference between actual and expected number of rec_touchdown - often interpreted as efficiency for a given play/game
rush_touchdown_diffdoubleDifference between actual and expected number of rush_touchdown - often interpreted as efficiency for a given play/game
pass_two_point_conv_diffdoubleDifference between actual and expected number of pass_two_point_conv - often interpreted as efficiency for a given play/game
rec_two_point_conv_diffdoubleDifference between actual and expected number of rec_two_point_conv - often interpreted as efficiency for a given play/game
rush_two_point_conv_diffdoubleDifference between actual and expected number of rush_two_point_conv - often interpreted as efficiency for a given play/game
pass_first_down_diffdoubleDifference between actual and expected number of pass_first_down - often interpreted as efficiency for a given play/game
rec_first_down_diffdoubleDifference between actual and expected number of rec_first_down - often interpreted as efficiency for a given play/game
rush_first_down_diffdoubleDifference between actual and expected number of rush_first_down - often interpreted as efficiency for a given play/game
pass_interception_diffdoubleDifference between actual and expected number of pass_interception - often interpreted as efficiency for a given play/game
rec_interception_diffdoubleDifference between actual and expected number of rec_interception - often interpreted as efficiency for a given play/game
pass_fantasy_points_diffdoubleDifference between actual and expected number of pass_fantasy_points - often interpreted as efficiency for a given play/game
rec_fantasy_points_diffdoubleDifference between actual and expected number of rec_fantasy_points - often interpreted as efficiency for a given play/game
rush_fantasy_points_diffdoubleDifference between actual and expected number of rush_fantasy_points - often interpreted as efficiency for a given play/game
total_yards_gained_diffdoubleDifference between actual and expected number of total_yards_gained - often interpreted as efficiency for a given play/game
total_touchdown_diffdoubleDifference between actual and expected number of total_touchdown - often interpreted as efficiency for a given play/game
total_first_down_diffdoubleDifference between actual and expected number of total_first_down - often interpreted as efficiency for a given play/game
total_fantasy_points_diffdoubleDifference between actual and expected number of total_fantasy_points - often interpreted as efficiency for a given play/game
pass_attempt_teamdoubleTeam-level total pass_attempt for a game, summed across all plays/players for that team.
rec_attempt_teamdoubleTeam-level total rec_attempt for a game, summed across all plays/players for that team.
rush_attempt_teamdoubleTeam-level total rush_attempt for a game, summed across all plays/players for that team.
pass_air_yards_teamdoubleTeam-level total pass_air_yards for a game, summed across all plays/players for that team.
rec_air_yards_teamdoubleTeam-level total rec_air_yards for a game, summed across all plays/players for that team.
pass_completions_teamdoubleTeam-level total pass_completions for a game, summed across all plays/players for that team.
receptions_teamdoubleTeam-level total receptions for a game, summed across all plays/players for that team.
pass_completions_exp_teamdoubleTeam-level total expected pass_completions_exp for a game, summed across all plays & players for that team.
receptions_exp_teamdoubleTeam-level total expected receptions_exp for a game, summed across all plays & players for that team.
pass_yards_gained_teamdoubleTeam-level total pass_yards_gained for a game, summed across all plays/players for that team.
rec_yards_gained_teamdoubleTeam-level total rec_yards_gained for a game, summed across all plays/players for that team.
rush_yards_gained_teamdoubleTeam-level total rush_yards_gained for a game, summed across all plays/players for that team.
pass_yards_gained_exp_teamdoubleTeam-level total expected pass_yards_gained_exp for a game, summed across all plays & players for that team.
rec_yards_gained_exp_teamdoubleTeam-level total expected rec_yards_gained_exp for a game, summed across all plays & players for that team.
rush_yards_gained_exp_teamdoubleTeam-level total expected rush_yards_gained_exp for a game, summed across all plays & players for that team.
pass_touchdown_teamdoubleTeam-level total pass_touchdown for a game, summed across all plays/players for that team.
rec_touchdown_teamdoubleTeam-level total rec_touchdown for a game, summed across all plays/players for that team.
rush_touchdown_teamdoubleTeam-level total rush_touchdown for a game, summed across all plays/players for that team.
pass_touchdown_exp_teamdoubleTeam-level total expected pass_touchdown_exp for a game, summed across all plays & players for that team.
rec_touchdown_exp_teamdoubleTeam-level total expected rec_touchdown_exp for a game, summed across all plays & players for that team.
rush_touchdown_exp_teamdoubleTeam-level total expected rush_touchdown_exp for a game, summed across all plays & players for that team.
pass_two_point_conv_teamdoubleTeam-level total pass_two_point_conv for a game, summed across all plays/players for that team.
rec_two_point_conv_teamdoubleTeam-level total rec_two_point_conv for a game, summed across all plays/players for that team.
rush_two_point_conv_teamdoubleTeam-level total rush_two_point_conv for a game, summed across all plays/players for that team.
pass_two_point_conv_exp_teamdoubleTeam-level total expected pass_two_point_conv_exp for a game, summed across all plays & players for that team.
rec_two_point_conv_exp_teamdoubleTeam-level total expected rec_two_point_conv_exp for a game, summed across all plays & players for that team.
rush_two_point_conv_exp_teamdoubleTeam-level total expected rush_two_point_conv_exp for a game, summed across all plays & players for that team.
pass_first_down_teamdoubleTeam-level total pass_first_down for a game, summed across all plays/players for that team.
rec_first_down_teamdoubleTeam-level total rec_first_down for a game, summed across all plays/players for that team.
rush_first_down_teamdoubleTeam-level total rush_first_down for a game, summed across all plays/players for that team.
pass_first_down_exp_teamdoubleTeam-level total expected pass_first_down_exp for a game, summed across all plays & players for that team.
rec_first_down_exp_teamdoubleTeam-level total expected rec_first_down_exp for a game, summed across all plays & players for that team.
rush_first_down_exp_teamdoubleTeam-level total expected rush_first_down_exp for a game, summed across all plays & players for that team.
pass_interception_teamdoubleTeam-level total pass_interception for a game, summed across all plays/players for that team.
rec_interception_teamdoubleTeam-level total rec_interception for a game, summed across all plays/players for that team.
pass_interception_exp_teamdoubleTeam-level total expected pass_interception_exp for a game, summed across all plays & players for that team.
rec_interception_exp_teamdoubleTeam-level total expected rec_interception_exp for a game, summed across all plays & players for that team.
rec_fumble_lost_teamdoubleTeam-level total rec_fumble_lost for a game, summed across all plays/players for that team.
rush_fumble_lost_teamdoubleTeam-level total rush_fumble_lost for a game, summed across all plays/players for that team.
pass_fantasy_points_exp_teamdoubleTeam-level total expected pass_fantasy_points_exp for a game, summed across all plays & players for that team.
rec_fantasy_points_exp_teamdoubleTeam-level total expected rec_fantasy_points_exp for a game, summed across all plays & players for that team.
rush_fantasy_points_exp_teamdoubleTeam-level total expected rush_fantasy_points_exp for a game, summed across all plays & players for that team.
pass_fantasy_points_teamdoubleTeam-level total pass_fantasy_points for a game, summed across all plays/players for that team.
rec_fantasy_points_teamdoubleTeam-level total rec_fantasy_points for a game, summed across all plays/players for that team.
rush_fantasy_points_teamdoubleTeam-level total rush_fantasy_points for a game, summed across all plays/players for that team.
pass_completions_diff_teamdoubleTeam-level difference between actual and expected number of pass_completions_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
receptions_diff_teamdoubleTeam-level difference between actual and expected number of receptions_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
pass_yards_gained_diff_teamdoubleTeam-level difference between actual and expected number of pass_yards_gained_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rec_yards_gained_diff_teamdoubleTeam-level difference between actual and expected number of rec_yards_gained_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rush_yards_gained_diff_teamdoubleTeam-level difference between actual and expected number of rush_yards_gained_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
pass_touchdown_diff_teamdoubleTeam-level difference between actual and expected number of pass_touchdown_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rec_touchdown_diff_teamdoubleTeam-level difference between actual and expected number of rec_touchdown_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rush_touchdown_diff_teamdoubleTeam-level difference between actual and expected number of rush_touchdown_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
pass_two_point_conv_diff_teamdoubleTeam-level difference between actual and expected number of pass_two_point_conv_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rec_two_point_conv_diff_teamdoubleTeam-level difference between actual and expected number of rec_two_point_conv_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rush_two_point_conv_diff_teamdoubleTeam-level difference between actual and expected number of rush_two_point_conv_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
pass_first_down_diff_teamdoubleTeam-level difference between actual and expected number of pass_first_down_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rec_first_down_diff_teamdoubleTeam-level difference between actual and expected number of rec_first_down_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rush_first_down_diff_teamdoubleTeam-level difference between actual and expected number of rush_first_down_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
pass_interception_diff_teamdoubleTeam-level difference between actual and expected number of pass_interception_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rec_interception_diff_teamdoubleTeam-level difference between actual and expected number of rec_interception_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
pass_fantasy_points_diff_teamdoubleTeam-level difference between actual and expected number of pass_fantasy_points_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rec_fantasy_points_diff_teamdoubleTeam-level difference between actual and expected number of rec_fantasy_points_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
rush_fantasy_points_diff_teamdoubleTeam-level difference between actual and expected number of rush_fantasy_points_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
total_yards_gained_teamdoubleTeam-level total total_yards_gained for a game, summed across all plays/players for that team.
total_yards_gained_exp_teamdoubleTeam-level total expected total_yards_gained_exp for a game, summed across all plays & players for that team.
total_yards_gained_diff_teamdoubleTeam-level difference between actual and expected number of total_yards_gained_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
total_touchdown_teamdoubleTeam-level total total_touchdown for a game, summed across all plays/players for that team.
total_touchdown_exp_teamdoubleTeam-level total expected total_touchdown_exp for a game, summed across all plays & players for that team.
total_touchdown_diff_teamdoubleTeam-level difference between actual and expected number of total_touchdown_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
total_first_down_teamdoubleTeam-level total total_first_down for a game, summed across all plays/players for that team.
total_first_down_exp_teamdoubleTeam-level total expected total_first_down_exp for a game, summed across all plays & players for that team.
total_first_down_diff_teamdoubleTeam-level difference between actual and expected number of total_first_down_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.
total_fantasy_points_teamdoubleTeam-level total total_fantasy_points for a game, summed across all plays/players for that team.
total_fantasy_points_exp_teamdoubleTeam-level total expected total_fantasy_points_exp for a game, summed across all plays & players for that team.
total_fantasy_points_diff_teamdoubleTeam-level difference between actual and expected number of total_fantasy_points_diff for a game, summed across all plays/players for that team. Often interpreted as team-level efficiency.

Example

from sportsdataverse.nfl import load_nfl_ff_opportunity
weekly = load_nfl_ff_opportunity(seasons=[2024])

# Pass play-by-play opportunity stats

pbp_pass = load_nfl_ff_opportunity(seasons=[2024], stat_type="pbp_pass")

# Rush play-by-play opportunity stats with pinned model version

pbp_rush = load_nfl_ff_opportunity(
seasons=[2024], stat_type="pbp_rush", model_version="v1.0.0"
)

load_ff_playerids​

load_ff_playerids(return_as_pandas=False) -> 'pl.DataFrame'

Load fantasy football player IDs from DynastyProcess.com

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football player ID mappings across platforms.

col_nametypedescription
mfl_idcharacterMyFantasyLeague.com ID - this is the primary key for this table and is unique and complete. Usually an integer of 5 digits.
sportradar_idcharacterSportRadar ID - often also called sportsdata_id by other services. A UUID.
fantasypros_idcharacterFantasyPros.com ID - usually an integer of 5 digits.
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
pff_idcharacterPro Football Focus ID - usually an integer with between 3 and 6 digits.
sleeper_idcharacterSleeper ID - usually an integer with ~4 digits.
nfl_idcharacterNFL ID of player (this is used in Big Data Bowl Data)
espn_idcharacterESPN ID - usual format is an integer with ~5 digits
yahoo_idcharacterYahoo ID - usual format is an integer with ~5 digits
fleaflicker_idcharacterFleaflicker ID - usual format is an integer with ~4 digits. Fleaflicker API also has sportradar and that's generally preferred.
cbs_idcharacterCBS ID - usual format is an integer with ~ 7 digits.
pfr_idcharacterPro-Football-Reference ID for player
cfbref_idcharacterCollege Football Reference ID - usual format is firstname-lastname-integer
rotowire_idcharacterRotowire ID - usual format is an integer with ~four digits. Not to be confused with rotowire_id.
rotoworld_idcharacterRotoworld ID - usual format is an integer with ~four digits. Not to be confused with rotowire_id.
ktc_idcharacterKeepTradeCut ID - usual format is an integer with ~four digits.
stats_idcharacterStats ID - usual format is five digit integer
stats_global_idcharacterStats Global ID - usual format is a six digit integer
fantasy_data_idcharacterFantasyData ID - usual format five digit integer
swish_idcharacterPlayer ID for Swish Analytics
namecharacterName, as reported by MFL but reordered into FirstName LastName instead of Last, First
merge_namecharacterName but formatted for name joins via ffscrapr::dp_cleannames() - coerced to lowercase, stripped of punctuation and suffixes, and common substitutions performed.
positioncharacterPrimary position as reported by NFL.com
teamcharacterNFL team. Uses official abbreviations as per NFL.com
birthdatecharacterBirthdate
agedoubleAge as of last pipeline build, rounded to one decimal. Pipeline is built on a weekly basis.
draft_yearintegerYear that player was drafted
draft_roundintegerRound that player was drafted in
draft_pickintegerDraft pick within round, i.e. 32nd pick of second round.
draft_ovrintegerOverall draft pick selection. This can be a little bit patchy, since MFL does not report this number.
twitter_usernamecharacterOfficial twitter handle, if known
heightintegerOfficial height, in inches
weightintegerOfficial weight, in pounds
collegecharacterOfficial college (usually the last one attended)
db_seasonintegerYear of database build. Previous years may also be available via dynastyprocess.

Example

from sportsdataverse.nfl import load_nfl_ff_playerids
ids = load_nfl_ff_playerids()
ids.shape

# Filter to active QBs

import polars as pl
qbs = (
load_nfl_ff_playerids()
.filter((pl.col("position") == "QB") & (pl.col("status") == "ACT"))
)

load_ff_rankings​

load_ff_rankings(type: 'str' = 'draft', kind: 'str' = None, return_as_pandas=False) -> 'pl.DataFrame'

Load fantasy football rankings and projections

Parameters

ParameterTypeDefaultDescription
typestr'draft'Type of rankings to load. One of "draft" (current draft rankings), "week" (weekly rankings), or "all" (full historical rankings). Defaults to "draft". Kept for nflreadpy parity since its parameter is also called type; the forward-going preferred name is kind.
kindstrNonePreferred parameter name. Same semantics and allowed values as type. If both are supplied, kind wins. If neither is supplied, defaults to "draft" via type.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football rankings data.

col_nametypedescription
fp_pagecharacterThe relative url that the data was scraped from (add the prefix https://www.fantasypros.com/ to visit the page)
page_typecharacterTwo word identifier separated by a dash identifying the type of fantasy ranking (best = bestball; dynasty; redraft) and what position it applies to
ecr_typecharacterA two letter identifier combining the ranking type (b = bestball; d = dynasty; r = redraft) and position type (o = overall; p = positional; sf = superflex; rk = rookie)
playercharacterPlayer name
idcharacterID of the player in the 'name' column.
poscharacterPosition as tracked by FP
teamcharacterNFL team. Uses official abbreviations as per NFL.com
ecrdoubleAverage (mean) expert ranking for this player
sddoubleStandard deviation of expert rankings for this player
bestintegerThe highest ranking given for this player by any one expert
worstintegerThe lowest ranking given for this player by any one expert
sportsdata_idcharacterID - also known as sportradar_id (they are equivalent!)
player_filenamecharacterbase URL for this player on fantasypros.com
yahoo_idcharacterYahoo ID - usual format is an integer with ~5 digits
cbs_idcharacterCBS ID - usual format is an integer with ~ 7 digits.
player_owned_avgdoubleThe average percentage this player is rostered across ESPN and Yahoo
player_owned_espncharacterThe percentage that this player is rostered in ESPN leagues
player_owned_yahoocharacterThe percentage that this player is rostered in Yahoo leagues
player_image_urlcharacterAn image of the player
player_square_image_urlcharacterAn square image of the player
rank_deltaintegerChange in ranks over a recent period
byeintegerNFL bye week
mergenamecharacterPlayer name after being cleaned by dp_cleannames - generally strips punctuation and suffixes as well as performing common name substitutions.
scrape_datecharacterDate this dataframe was last updated
tmcharacterTeam ID as used on MyFantasyLeague.com

Example

from sportsdataverse.nfl import load_nfl_ff_rankings
draft = load_nfl_ff_rankings(kind="draft")

# Weekly rankings

weekly = load_nfl_ff_rankings(kind="week")

# Full historical rankings (parquet)

history = load_nfl_ff_rankings(kind="all")

# nflreadpy-parity ``type=`` parameter (still supported)

draft = load_nfl_ff_rankings(type="draft")

load_ftn_charting​

load_ftn_charting(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL FTN charting data going back to 2022

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2022 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing FTN charting data available for the requested seasons.

col_nametypedescription
ftn_game_idintegerFTN game ID
nflverse_game_idcharacternflverse identifier for games. Format is season, week, away_team, home_team
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
weekintegerSeason week.
ftn_play_idintegerFTN play ID
nflverse_play_idintegerPlay ID used by nflverse, corresponds to GSIS play ID
starting_hashcharacterhash the ball was place(L = left, M = middle, R = right)
qb_locationcharacterpre-snap position of quarterback(U = under center, S = shotgun, P = pistol)
n_offense_backfieldintegernumber of players in the backfield at the snap
n_defense_boxintegerNumber of defenders positioned in the box at the snap, as charted by FTN Data.
is_no_huddlelogicalno huddle
is_motionlogicalmotion occurred on the play before or at the time of the snap
is_play_actionlogicalplay-action pass
is_screen_passlogicalscreen pass
is_rpologicalplay is considered run-pass option
is_trick_playlogicaltrick play
is_qb_out_of_pocketlogicalquarterback moved out of pocket
is_interception_worthylogicalinterception worthy pass
is_throw_awaylogicalquarterback thrown away
read_throwncharacterread the ball was thrown
is_catchable_balllogicalcatchable ball(defined by throws that are generally on target that are not defended away)
is_contested_balllogicalcontested ball(defined by whether or not the receiver is facing physical contact at the time of the catch)
is_created_receptionlogicalcreated reception(defined by a reception that only occurs due to an exceptional play by the receiver)
is_droplogicalreceiver drop
is_qb_sneaklogicalquarterback sneak
n_blitzersintegernumber of blitzers
n_pass_rushersintegernumber of pass rushers
is_qb_fault_sacklogicalsack that is the fault of the quarterback
date_pulledcharacterDate the data was retrieved from the FTN Data API by nflverse jobs

Example

from sportsdataverse.nfl import load_nfl_ftn_charting
charting = load_nfl_ftn_charting(seasons=[2024])

# Multi-season range

charting = load_nfl_ftn_charting(seasons=range(2022, 2025))

# Filter to plays with motion

import polars as pl
motion_plays = (
load_nfl_ftn_charting(seasons=[2024])
.filter(pl.col("is_motion") == 1)
)

load_injuries​

load_injuries(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL injuries data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2009 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing injuries data available for the requested seasons.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
game_typecharacterThe most recent game type of that season that a player appeared on the roster.
teamcharacterNFL team. Uses official abbreviations as per NFL.com
weekintegerSeason week.
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
positioncharacterPrimary position as reported by NFL.com
full_namecharacterFull name as per NFL.com
first_namecharacterFirst name of player
last_namecharacterLast name of player
report_primary_injurycharacterPrimary injury listed on official injury report
report_secondary_injurycharacterSecondary injury listed on official injury report
report_statuscharacterPlayer's status for game on official injury report
practice_primary_injurycharacterPrimary injury listed on practice injury report
practice_secondary_injurycharacterSecondary injury listed on practice injury report
practice_statuscharacterPlayer's participation in practice
date_modifiedcharacterDate and time that injury information was updated

Example

from sportsdataverse.nfl import load_nfl_injuries
injuries = load_nfl_injuries(seasons=[2024])

# Multi-season range with team filter

import polars as pl
sf_injuries = (
load_nfl_injuries(seasons=range(2020, 2025))
.filter(pl.col("team") == "SF")
)

load_nextgen_stats​

load_nextgen_stats(seasons: 'List[int]', stat_type: 'str' = 'passing', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Load NFL NextGen Stats data going back to 2016.

Unified loader that consolidates the per-stat-type NextGen Stats accessors. Mirrors the API surface of nflreadpy's load_nextgen_stats so downstream code can swap engines without changing call sites.

Parameters

ParameterTypeDefaultDescription
seasonslist[int]Seasons to filter to. The upstream parquet covers a single combined file per stat type — seasons is applied as a post-filter on the season column.
stat_typestr'passing'One of "passing", "rushing", "receiving". Defaults to "passing".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NextGen Stats data for the requested stat_type and seasons.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
season_typecharacterREG or POST indicating if the timeframe belongs to regular or post season.
weekintegerSeason week.
player_display_namecharacterFull name of the player
player_positioncharacterPosition of the player accordinng to NGS
team_abbrcharacterOfficial team abbreveation
avg_time_to_throwdoubleAverage time elapsed from the time of snap to throw on every pass attempt for a passer (sacks excluded).
avg_completed_air_yardsdoubleAverage air yards on completed passes
avg_intended_air_yardsdoubleAverage air yards on all attempted passes
avg_air_yards_differentialdoubleAir Yards Differential is calculated by subtracting the passer's average Intended Air Yards from his average Completed Air Yards. This stat indicates if he is on average attempting deep passes than he on average completes.
aggressivenessdoubleAggressiveness tracks the amount of passing attempts a quarterback makes that are into tight coverage, where there is a defender within 1 yard or less of the receiver at the time of completion or incompletion. AGG is shown as a % of attempts into tight windows over all passing attempts.
max_completed_air_distancedoubleAir Distance is the amount of yards the ball has traveled on a pass, from the point of release to the point of reception (as the crow flies). Unlike Air Yards, Air Distance measures the actual distance the passer throws the ball.
avg_air_yards_to_sticksdoubleAir Yards to the Sticks shows the amount of Air Yards ahead or behind the first down marker on all attempts for a passer. The metric indicates if the passer is attempting his passes past the 1st down marker, or if he is relying on his skill position players to make yards after catch.
attemptsintegerThe number of pass attempts as defined by the NFL.
pass_yardsintegerNumber of yards gained on pass plays
pass_touchdownsintegerNumber of touchdowns scored on pass plays
interceptionsintegerThe number of interceptions thrown.
passer_ratingdoubleOverall NFL passer rating
completionsintegerThe number of completed passes.
completion_percentagedoublePercentage of completed passes
expected_completion_percentagedoubleUsing a passer's Completion Probability on every play, determine what a passer's completion percentage is expected to be.
completion_percentage_above_expectationdoubleA passer's actual completion percentage compared to their Expected Completion Percentage.
avg_air_distancedoubleA receiver's average depth of target
max_air_distancedoubleA receiver's maximum depth of target
player_gsis_idcharacterUnique identifier of the player
player_first_namecharacterPlayer's first name
player_last_namecharacterPlayer's last name
player_jersey_numberintegerPlayer's jersey number
player_short_namecharacterShort version of player's name

Example

from sportsdataverse.nfl import load_nfl_nextgen_stats
ngs_pass = load_nfl_nextgen_stats(seasons=[2024], stat_type="passing")

# Rushing NextGen stats

ngs_rush = load_nfl_nextgen_stats(seasons=[2024], stat_type="rushing")

# Receiving NextGen stats with a follow-up filter

import polars as pl
ngs_rec = (
load_nfl_nextgen_stats(seasons=[2024], stat_type="receiving")
.filter(pl.col("week") > 0)
)

# Pandas round-trip

ngs_pd = load_nfl_nextgen_stats(
seasons=[2024], stat_type="passing", return_as_pandas=True
)

load_nfl_combine​

load_nfl_combine(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Combine information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL combine data available.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
draft_yeardoubleYear that player was drafted
draft_teamcharacterTeam that drafted player
draft_rounddoubleRound that player was drafted in
draft_ovrdoubleOverall draft pick selection. This can be a little bit patchy, since MFL does not report this number.
pfr_idcharacterPro-Football-Reference ID for player
cfb_idcharacterSports Reference (CFB) ID for player
player_namecharacterFull name of player
poscharacterPosition as tracked by FP
schoolcharacterCollege of player
htcharacterHeight of player (feet and inches)
wtdoubleWeight of player (lbs)
fortydoublePlayer's 40 yard dash time at combine (seconds)
benchdoubleReps benched by player at combine
verticaldoublePlayer's vertical jump at combine (inches)
broad_jumpdoublePlayer's broad jump at combine (inches)
conedoublePlayer's 3 cone drill time at combine (seconds)
shuttledoublePlayer's shuttle run time at combine (seconds)

Example

from sportsdataverse.nfl import load_nfl_combine
combine = load_nfl_combine()
combine.shape

# Filter by draft year and position

import polars as pl
qbs_2024 = (
load_nfl_combine()
.filter((pl.col("season") == 2024) & (pl.col("pos") == "QB"))
)

load_nfl_contracts​

load_nfl_contracts(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Historical contracts information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing historical contracts available.

col_nametypedescription
playercharacterPlayer name
positioncharacterPrimary position as reported by NFL.com
teamcharacterNFL team. Uses official abbreviations as per NFL.com
is_activelogicalActive contract
year_signedintegerYear the contract was signed
yearsintegerContract length
valuedoubleTotal contract value
apydoubleAverage money per contract year
guaranteeddoubleTotal guaranteed money
apy_cap_pctdoubleAverage money per contract year as percentage of the team's salary cap at signing
inflated_valuedoubleTotal contract value inflated to account for the rise of the salary cap
inflated_apydoubleAverage money per contract year inflated to account for the rise of the salary cap
inflated_guaranteeddoubleTotal guaranteed money inflated to account for the rise of the salary cap
player_pagecharacterPlayer's OverTheCap url
otc_idintegerOver the Cap ID for player
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
date_of_birthcharacterPlayer date of birth (if published).
heightcharacterOfficial height, in inches
weightcharacterOfficial weight, in pounds
collegecharacterOfficial college (usually the last one attended)
draft_yearintegerYear that player was drafted
draft_roundintegerRound that player was drafted in
draft_overallintegerOverall draft selection number.
draft_teamcharacterTeam that drafted player
colsdoubleNumber of contract columns returned in the contracts dataset (metadata artifact from the loader).
season_historydoubleList of structs, one per league year covered by the contract (year as a string, team, base_salary, prorated_bonus, option_bonus, roster_bonus, guaranteed_salary, cap_number, cap_percent, cash_paid, workout_bonus, per_game_roster_bonus, other_bonus), money in millions of dollars and a final 'Total' row per nflreadr.
contract_historyintegerList of structs, one per contract in the player's OverTheCap contract history (team, contract_type, status, year_signed, yrs, total, apy, guarantees, amount_earned, percent_earned, effective_apy), with money fields in millions of dollars.

Example

from sportsdataverse.nfl import load_nfl_contracts
contracts = load_nfl_contracts()
contracts.shape

# Pandas round-trip with sort by APY

contracts_pd = load_nfl_contracts(return_as_pandas=True)
contracts_pd.sort_values("apy", ascending=False).head()

load_nfl_draft_picks​

load_nfl_draft_picks(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Draft picks information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL Draft picks data available.

col_nametypedescription
seasoninteger4 digit number indicating to which season(s) the specified timeframe belongs to.
roundintegerDraft round
pickintegerDraft overall pick
teamcharacterNFL team. Uses official abbreviations as per NFL.com
gsis_idcharacterGame Stats and Info Service ID: the primary ID for play-by-play data.
pfr_player_idcharacterID from Pro Football Reference
cfb_player_idcharacterID from College Football Reference
pfr_player_namecharacterPlayer's name as recorded by PFR
hoflogicalWhether player has been selected to the Pro Football Hall of Fame
positioncharacterPrimary position as reported by NFL.com
categorycharacterBroader category of player positions
sidecharacterO for offense, D for defense, S for special teams
collegecharacterOfficial college (usually the last one attended)
ageintegerAge as of last pipeline build, rounded to one decimal. Pipeline is built on a weekly basis.
tointegerFinal season played in NFL
allprointegerNumber of AP First Team All-Pro selections as recorded by PFR
probowlsintegerNumber of Pro Bowls
seasons_startedintegerNumber of seasons recorded as primary starter for position
w_avintegerWeighted Approximate Value
car_avlogicalCareer Approximate Value
dr_avintegerDraft Approximate Value
gamesintegerGames played in career
pass_completionsintegerNumber of successful completions for a given game
pass_attemptsintegerCareer pass attempts
pass_yardsintegerNumber of yards gained on pass plays
pass_tdsintegerCareer pass touchdowns thrown
pass_intsintegerCareer pass interceptions thrown
rush_attsintegerCareer rushing attempts
rush_yardsintegerThe number of rushing yards gained
rush_tdsintegerCareer rushing touchdowns
receptionsintegerThe number of pass receptions. Lateral receptions officially don't count as reception.
rec_yardsintegerCareer receiving yards
rec_tdsintegerCareer receiving touchdowns
def_solo_tacklesintegerCareer solo tackles
def_intsintegerCareer interceptions
def_sacksdoubleNumber of sacks form this player

Example

from sportsdataverse.nfl import load_nfl_draft_picks
picks = load_nfl_draft_picks()
picks.shape

# Filter to a single year and round

import polars as pl
r1_2024 = (
load_nfl_draft_picks()
.filter((pl.col("season") == 2024) & (pl.col("round") == 1))
)

load_nfl_espn_qbr​

load_nfl_espn_qbr(seasons: 'List[int]', summary_type: 'str' = 'season', return_as_pandas: 'bool' = False, *, source: 'str' = 'nflverse') -> 'pl.DataFrame'

Load ESPN Total QBR (Quarterback Rating) data going back to 2006.

Mirrors nflreadpy / nflreadr load_espn_qbr -- the lone nflreadpy dataset that previously had no sdv-py loader. ESPN publishes Total QBR only from 2006 onward, so 2006 is the earliest available season (unlike the 1999 floor on play-by-play). nflverse republishes ESPN's QBR through the espn_data release as two combined files (one per summary_type), each covering all seasons; this loader reads the requested file once and post-filters by season (the same access pattern as load_nfl_schedule).

Parameters

ParameterTypeDefaultDescription
seasonslistSeasons to return. 2006 is the earliest available season.
summary_typestr'season'Aggregation level. "season" (default) returns one row per quarterback-season; "week" returns one row per quarterback-game. Any other value raises ValueError.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.
sourcestr'nflverse'Which QBR release to read. "nflverse" (the default, also accepts None) returns the nflverse espn_data release. "sportsdataverse" / "sdv" returns the SDV-native nfl_espn_qbr release (built by nfl-data from ESPN's QBR web endpoint -- the same source nflverse's espnscrapeR uses). Any other value raises ValueError.

Returns

Polars dataframe containing ESPN Total QBR for the requested seasons, summarized per summary_type.

col_nametypedescription
seasonintegerNFL season (year) the Total QBR record covers.
season_typecharacterSeason segment for the record -- regular season or postseason.
game_weekcharacterWeek scope of the QBR aggregation; for season-level rows this is the season-summary tag.
team_abbcharacterTeam abbreviation for the quarterback's team during the period.
player_idcharacterESPN athlete identifier for the quarterback.
name_shortcharacterAbbreviated display name of the quarterback (e.g. 'P. Mahomes').
rankdoubleQuarterback's rank by Total QBR among qualified passers for the period.
qbr_totaldoubleESPN Total QBR on a 0-100 scale -- the headline opponent-adjusted quarterback rating.
pts_addeddoublePoints the quarterback added versus a league-average passer (ESPN QBR points-added component).
qb_playsdoubleCount of qualifying quarterback action plays used to compute QBR.
epa_totaldoubleTotal expected points added across the quarterback's plays (ESPN QBR EPA component).
passdoubleQBR points contribution from pass plays.
rundoubleQBR points contribution from designed runs and scrambles.
exp_sackdoubleQBR points contribution adjustment from expected sacks.
penaltydoubleQBR points contribution from penalties attributed to the quarterback.
qbr_rawdoubleRaw (non-opponent-adjusted) QBR for the period.
sackdoubleQBR points contribution from sacks taken.
name_firstcharacterQuarterback's first name.
name_lastcharacterQuarterback's last name.
name_displaycharacterQuarterback's full display name.
headshot_hrefcharacterURL of the quarterback's ESPN headshot image.
teamcharacterFull team name for the quarterback's team during the period.
qualifiedlogicalWhether the quarterback met ESPN's minimum action-play threshold to qualify for ranking.

Example

from sportsdataverse.nfl import load_nfl_espn_qbr
qbr = load_nfl_espn_qbr(seasons=[2024])
qbr.shape

# Week-level QBR

qbr_week = load_nfl_espn_qbr(seasons=[2024], summary_type="week")

# Multi-season range

qbr = load_nfl_espn_qbr(seasons=range(2020, 2025))

# Pandas round-trip

qbr_pd = load_nfl_espn_qbr(seasons=[2024], return_as_pandas=True)
qbr_pd[["season", "team_abb", "qbr_total"]].head()