Skip to main content
Breaking in 4.0.0
  • Integer id columns are decimal strings — Every id column of integers (id, *_id, game_pk, playerId, …) comes back as exact decimal strings on every surface — parsers, producers, loaders, HockeyTech analytics. Compare and join ids as strings; Number(row.game_id) for a safe number back. (changelog)
  • Typed wrapper params and loader rows; strict mode — TypeScript only. A param the endpoint does not have, a missing required path param or a non-boolean bool param is a type error; parser rows are Record<string, unknown>; loader rows are their generated row types. (changelog)

sdv.nhl — dataset loaders

27 loaders reading the published sportsdataverse-data releases (parquet) — the JS mirror of sportsdataverse-py's load_* functions. Each is a camelCase export plus its snake_case alias and resolves to an array of plain row objects (or { [column]: values[] } with format: "columns").

  • Size: row objects cost ~60-100 bytes per cell on the heap, so before decoding each season a loader adds its rows × columns (from the parquet footer) to a running total and checks it against maxCells — by default heap limit / 100 for rows (≈45M cells on Node's default 4 GB heap) and heap limit / 30 for format: "columns" — and throws a catchable SdvError instead of running out of memory. Play-by-play is the usual case: pass columns, use format: "columns", or raise the heap (node --max-old-space-size=8192).
  • Seasons: seasons takes one season or a list. A season with no published asset (HTTP 404) is skipped with a warning (loaders marked so in their seasons row — sdv-py's hand-written ones — throw NoDataError instead); any other failure raises AssetFetchError (a failed download is never an empty season); a season below the loader's floor raises SeasonNotFoundError before anything is fetched. Multi-season results union the columns, null-filling gaps, and cast a column whose type changed between seasons to the common type (an integer id that became a string → strings, "123" not "123.0"), as sdv-py's diagonal_relaxed concat does.
  • Integers: an id column (id, *_id, *_ids, game_pk, athlete_id_1, id_play, playerId, homeTeamId, start.team.id, …) of integers comes back as exact decimal strings in every row and every season, whatever width the release stores it with (INT32, INT64, or a DOUBLE holding integers: "401628579101849903", "39", never "39.0"), so ids join across seasons and across releases. Code-like id columns (type_id, status_id, …) are strings too. An id column that is not exact integers (a fraction, a DOUBLE past 2^53) is left as read with one warning. Any other INT64 column comes back as number when every value is a safe integer, otherwise as BigInt with one warning (code SDV_INT64) per column per process.
  • Runtime: Node only. Downloads go through the releases transport family (see Transport, auth & errors); each asset is downloaded whole, then decoded.
LoaderReleaseSeasons
loadNhlPbpnhl_pbp_full2010+
loadNhlPlayerBoxscorenhl_player_boxscores2010+
loadNhlSchedulenhl_schedules2010+
loadNhlTeamBoxscorenhl_team_boxscores2010+
loadNhlGameInfonhl_game_info2010+
loadNhlGameRostersnhl_game_rosters2010+
loadNhlGoalieBoxscoresnhl_goalie_boxscores2010+
loadNhlLinescorenhl_linescore2010+
loadNhlOfficialsnhl_officials2010+
loadNhlPbpFullnhl_pbp_full2010+
loadNhlPbpLitenhl_pbp_lite2010+
loadNhlPenaltiesnhl_penalties2010+
loadNhlPlayerBoxscoresnhl_player_boxscores2010+
loadNhlRostersnhl_rosters2010+
loadNhlSchedulesnhl_schedules2010+
loadNhlScoringnhl_scoring2010+
loadNhlScratchesnhl_scratches2010+
loadNhlShiftsnhl_shifts2010+
loadNhlShootoutnhl_shootout2010+
loadNhlShotsByPeriodnhl_shots_by_period2010+
loadNhlSkaterBoxscoresnhl_skater_boxscores2010+
loadNhlTeamBoxscoresnhl_team_boxscores2010+
loadNhlThreeStarsnhl_three_stars2010+
loadNhlGroupsnhl_groupsone asset
loadNhlGroupSeasonsnhl_groupsone asset
loadNhlGroupAliasesnhl_groupsone asset
loadNhlTeamGroupSeasonsnhl_groups1918+

loadNhlPbp​

Release: nhl_pbp_full · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_pbp_full/play_by_play_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlPbp({ seasons: 2024, columns: ['game_id', 'period', 'event_type', 'description', 'strength_state'] });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_pbp(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlPbpRow (exported from the package root).

col_nametypedescription
event_typestringStandardized event type code.
eventstringEvent description label.
secondary_typestringSecondary event type (e.g. shot type).
event_team_abbrstringAbbreviation of the team credited with the event.
event_team_typestringWhether the event team is home or away.
descriptionstringFull text description of the event.
periodnumber | bigintPeriod number.
period_typestringPeriod type (REG/OT/SO).
period_timestringElapsed time in the period (MM:SS).
period_secondsnumber | bigintElapsed seconds in the period.
period_seconds_remainingnumber | bigintSeconds remaining in the period.
period_time_remainingstringTime remaining in the period (MM:SS).
game_secondsnumber | bigintElapsed seconds in the game.
game_seconds_remainingnumber | bigintSeconds remaining in regulation.
home_scorenumber | bigintHome team final score.
away_scorenumber | bigintAway team final score.
event_player_1_namestringName of the primary event player.
event_player_1_typestringRole of the primary event player.
event_player_1_idstringPlayer id of the primary event player.
event_player_2_namestringName of the secondary event player.
event_player_2_typestringRole of the secondary event player.
event_player_2_idstringPlayer id of the secondary event player.
event_player_3_namestringName of the tertiary event player.
event_player_3_typestringRole of the tertiary event player.
event_player_3_idstringPlayer ID of the tertiary event player.
event_goalie_namestringName of the goalie on the event.
event_goalie_idstringPlayer id of the goalie on the event.
penalty_severitystringSeverity of the penalty.
penalty_minutesnumber | bigintPenalty minutes.
strength_statestringStrength state (e.g. 5v5, 5v4).
strength_codestringStrength state code (e.g., all, even, pp, pk).
strengthstringStrength label (Even, Power Play, Shorthanded).
empty_netbooleanWhether the net was empty.
extra_attackerbooleanWhether an extra attacker was on the ice.
xnumber | bigintRaw x-coordinate of the event.
ynumber | bigintRaw y-coordinate of the event.
x_fixednumber | bigintNormalized x coordinate (home shoots right).
y_fixednumber | bigintNormalized y coordinate (home shoots right).
shot_distancenumberDistance of the shot from the net.
shot_anglenumberAngle of the shot relative to the net.
home_skatersnumber | bigintNumber of home skaters on the ice.
away_skatersnumber | bigintNumber of away skaters on the ice.
home_on_1stringName of home skater 1 on the ice.
home_on_2stringName of home skater 2 on the ice.
home_on_3stringName of home skater 3 on the ice.
home_on_4stringName of home skater 4 on the ice.
home_on_5stringName of home skater 5 on the ice.
home_on_6stringName of home skater 6 on the ice.
home_on_7stringName of home skater 7 on the ice.
away_on_1stringName of away skater 1 on the ice.
away_on_2stringName of away skater 2 on the ice.
away_on_3stringName of away skater 3 on the ice.
away_on_4stringName of away skater 4 on the ice.
away_on_5stringName of away skater 5 on the ice.
away_on_6stringName of away skater 6 on the ice.
away_on_7stringName of away skater 7 on the ice.
home_goaliestringName of the home goalie on the ice.
away_goaliestringName of the away goalie on the ice.
num_onnumber | bigintNumber of players coming on (line change).
players_onstringNames of players coming on.
num_offnumber | bigintNumber of players going off (line change).
players_offstringNames of players going off.
game_idstringUnique game identifier.
seasonstringSeason year (echoed from arg).
season_typestringSeason type code (echoed from arg).
home_abbrstringHome team abbreviation.
away_abbrstringAway team abbreviation.
event_idxnumber | bigintSequential event index within the game.
event_idstringESPN event id (echoed from arg).
pptReplayUrlstringURL to the play replay, if available.
away_goalie_innumber | bigintWhether the away goalie is on the ice (1/0).
home_goalie_innumber | bigintWhether the home goalie is on the ice (1/0).
reasonstringReason for the event (e.g. stoppage reason).
secondaryReasonstringSecondary reason for a stoppage.
ids_onstringPlayer ids coming on.
ids_offstringPlayer ids going off.
home_on_1_idstringPlayer id of home skater 1 on the ice.
away_on_1_idstringPlayer id of away skater 1 on the ice.
home_on_2_idstringPlayer id of home skater 2 on the ice.
away_on_2_idstringPlayer id of away skater 2 on the ice.
home_on_3_idstringPlayer id of home skater 3 on the ice.
away_on_3_idstringPlayer id of away skater 3 on the ice.
home_on_4_idstringPlayer id of home skater 4 on the ice.
away_on_4_idstringPlayer id of away skater 4 on the ice.
home_on_5_idstringPlayer id of home skater 5 on the ice.
away_on_5_idstringPlayer id of away skater 5 on the ice.
home_on_6_idstringPlayer id of home skater 6 on the ice.
away_on_6_idstringPlayer id of away skater 6 on the ice.
home_on_7_idstringPlayer id of home skater 7 on the ice.
away_on_7_idstringPlayer id of away skater 7 on the ice.
home_goalie_idstringPlayer ID of the home goalie on the ice.
away_goalie_idstringPlayer ID of the away goalie on the ice.
xgnumberExpected goals value for the shot event.
game_datestringGame date.

loadNhlPlayerBoxscore​

Release: nhl_player_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_player_boxscores/player_box_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlPlayerBoxscore({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_player_boxscore(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlPlayerBoxscoreRow (exported from the package root).

col_nametypedescription
home_awaystringHome or away indicator.
team_idstringUnique team identifier.
team_abbrevstringTeam abbreviation.
player_idstringUnique player identifier.
player_namestringPlayer name.
sweater_numbernumber | bigintJersey number.
positionstringPlayer position.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
plus_minusnumber | bigintPlus/minus rating.
pimnumber | bigintPenalty minutes.
hitsnumber | bigintHits.
power_play_goalsnumber | bigintPower-play goals.
shots_on_goalnumber | bigintShots on goal.
faceoff_winning_pctgnumberFaceoff win percentage.
toistringTime on ice.
blocked_shotsnumber | bigintBlocked shots.
shiftsnumber | bigintCONSTANT false in every published row: the shift-chart block is not carried on this asset. An availability flag, not a shift count.
giveawaysnumber | bigintGiveaways.
takeawaysnumber | bigintTakeaways.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.
even_strength_shots_againststringEven-strength shots against (saves/total).
power_play_shots_againststringPower-play shots against (saves/total).
shorthanded_shots_againststringShorthanded shots against (saves/total).
save_shots_againststringTotal shots against (saves/total).
save_pctgnumberSave percentage.
even_strength_goals_againstnumber | bigintEven-strength goals against.
power_play_goals_againstnumber | bigintPower-play goals against.
shorthanded_goals_againstnumber | bigintShorthanded goals against.
goals_againstnumber | bigintGoals against.
starterbooleanWhether the goalie started the game.
decisionstringGoalie decision (W/L/O).
shots_againstnumber | bigintShots faced.
savesnumber | bigintSaves made.

loadNhlSchedule​

Release: nhl_schedules · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_schedules/nhl_schedule_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlSchedule({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_schedule(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlScheduleRow (exported from the package root).

col_nametypedescription
game_idstringUnique game identifier.
season_fullstringFull season label (e.g. 20212022).
game_typestringGame type the row belongs to.
game_datestringGame date.
game_timestringScheduled start time of the game.
home_team_abbrstringHome team abbreviation.
away_team_abbrstringAway team abbreviation.
home_team_namestringHome team name.
away_team_namestringAway team name.
home_scorenumberHome team final score.
away_scorenumberAway team final score.
game_statestringGame state (e.g., FINAL, LIVE).
venuestringVenue where the game was played.
series_letterstringPlayoff series identifier letter, populated only for postseason games (88 of 1,400 rows in 2024) and null for the regular season.
playoff_roundnumberPlayoff round identifier.
series_game_numbernumber
seasonnumberSeason year (echoed from arg).
game_jsonbooleanWhether processed game JSON is available.
game_json_urlstringURL to the processed game JSON.
PBPbooleanWhether play-by-play data is available.
team_boxbooleanWhether team box score data is available.
player_boxbooleanWhether player box score data is available.
skater_boxbooleanWhether skater box data is available.
goalie_boxbooleanWhether goalie box data is available.
game_infobooleanCONSTANT true: marks that the source game record carried a game-info block.
game_rostersbooleanWhether game rosters data is available.
scoringbooleanCONSTANT true: marks that the source game record carried a scoring-summary block. It is an availability flag, not a count or a scoring event.
penaltiesbooleanCONSTANT true: marks that the source game record carried a penalty-summary block. It is an availability flag, not a penalty count.
scratchesbooleanTrue when the source game record carried a scratches block for the game.
linescorebooleanCONSTANT: true on every published row, so it carries no information as shipped. It marks that a linescore block existed on the source game record.
three_starsbooleanCONSTANT true: marks that the source game record carried a three-stars block.
shiftsbooleanCONSTANT false in every published row: the shift-chart block is not carried on this asset. An availability flag, not a shift count.
officialsbooleanWhether officials data is available.
shots_by_periodbooleanWhether shots-by-period data is available.
shootoutbooleanWhether shootout data is available.

loadNhlTeamBoxscore​

Release: nhl_team_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_team_boxscores/team_box_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlTeamBoxscore({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_team_boxscore(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlTeamBoxscoreRow (exported from the package root).

col_nametypedescription
home_awaystringHome or away indicator.
team_idstringUnique team identifier.
team_abbrevstringTeam abbreviation.
team_namestringTeam name.
goalsnumber | bigintGoals scored.
shots_on_goalnumber | bigintShots on goal.
pimnumber | bigintPenalty minutes.
hitsnumber | bigintHits.
blocked_shotsnumber | bigintBlocked shots.
giveawaysnumber | bigintGiveaways.
takeawaysnumber | bigintTakeaways.
power_play_goalsnumber | bigintPower-play goals.
faceoff_win_pctgnumberFaceoff win percentage.
savesnumber | bigintSaves made.
save_pctgnumberSave percentage.
goals_againstnumber | bigintGoals against.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlGameInfo​

Release: nhl_game_info · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_game_info/game_info_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlGameInfo({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_game_info(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlGameInfoRow (exported from the package root).

col_nametypedescription
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_typestringGame type the row belongs to.
game_datestringGame date.
venuestringVenue where the game was played.
home_team_abbrstringHome team abbreviation.
away_team_abbrstringAway team abbreviation.
home_scorenumber | bigintHome team final score.
away_scorenumber | bigintAway team final score.
game_statestringGame state (e.g., FINAL, LIVE).

loadNhlGameRosters​

Release: nhl_game_rosters · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_game_rosters/game_rosters_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlGameRosters({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_game_rosters(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlGameRostersRow (exported from the package root).

col_nametypedescription
player_idstringUnique player identifier.
full_namestringPlayer full name.
first_namestringPlayer first name.
last_namestringPlayer last name.
team_abbrstringTeam abbreviation.
team_idstringUnique team identifier.
position_codestringPlayer position code.
sweater_numbernumber | bigintJersey number.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.
shoots_catchesstringHandedness (shoots/catches).

loadNhlGoalieBoxscores​

Release: nhl_goalie_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_goalie_boxscores/goalie_box_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlGoalieBoxscores({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_goalie_boxscores(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlGoalieBoxscoresRow (exported from the package root).

col_nametypedescription
home_awaystringHome or away indicator.
team_idstringUnique team identifier.
team_abbrevstringTeam abbreviation.
player_idstringUnique player identifier.
player_namestringPlayer name.
sweater_numbernumber | bigintJersey number.
even_strength_shots_againststringEven-strength shots against (saves/total).
power_play_shots_againststringPower-play shots against (saves/total).
shorthanded_shots_againststringShorthanded shots against (saves/total).
save_shots_againststringTotal shots against (saves/total).
save_pctgnumberSave percentage.
even_strength_goals_againstnumber | bigintEven-strength goals against.
power_play_goals_againstnumber | bigintPower-play goals against.
shorthanded_goals_againstnumber | bigintShorthanded goals against.
pimnumber | bigintPenalty minutes.
goals_againstnumber | bigintGoals against.
toistringTime on ice.
starterbooleanWhether the goalie started the game.
decisionstringGoalie decision (W/L/O).
shots_againstnumber | bigintShots faced.
savesnumber | bigintSaves made.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlLinescore​

Release: nhl_linescore · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_linescore/linescore_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlLinescore({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_linescore(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlLinescoreRow (exported from the package root).

col_nametypedescription
game_idstringUnique game identifier.
home_team_idstringHome team identifier.
home_team_abbrstringHome team abbreviation.
home_goalsnumber | bigintHome goals in the period.
home_shotsnumber | bigintHome team shots in the period.
away_team_idstringAway team identifier.
away_team_abbrstringAway team abbreviation.
away_goalsnumber | bigintAway goals in the period.
away_shotsnumber | bigintAway team shots in the period.
has_shootoutbooleanFlag for whether the game went to shootout.

loadNhlOfficials​

Release: nhl_officials · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_officials/officials_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlOfficials({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_officials(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlOfficialsRow (exported from the package root).

col_nametypedescription
rolestringGrouped official role (Referee/Linesperson).
namestringTeam mascot name.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlPbpFull​

Release: nhl_pbp_full · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_pbp_full/play_by_play_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlPbpFull({ seasons: 2010, columns: ['game_id', 'period', 'event_type', 'description', 'event'] });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_pbp_full(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlPbpFullRow (exported from the package root).

col_nametypedescription
event_typestringStandardized event type code.
eventstringEvent description label.
secondary_typestringSecondary event type (e.g. shot type).
event_team_abbrstringAbbreviation of the team credited with the event.
event_team_typestringWhether the event team is home or away.
descriptionstringFull text description of the event.
periodnumber | bigintPeriod number.
period_typestringPeriod type (REG/OT/SO).
period_timestringElapsed time in the period (MM:SS).
period_secondsnumber | bigintElapsed seconds in the period.
period_seconds_remainingnumber | bigintSeconds remaining in the period.
period_time_remainingstringTime remaining in the period (MM:SS).
game_secondsnumber | bigintElapsed seconds in the game.
game_seconds_remainingnumber | bigintSeconds remaining in regulation.
home_scorenumber | bigintHome team final score.
away_scorenumber | bigintAway team final score.
event_player_1_namestringName of the primary event player.
event_player_1_typestringRole of the primary event player.
event_player_1_idstringPlayer id of the primary event player.
event_player_2_namestringName of the secondary event player.
event_player_2_typestringRole of the secondary event player.
event_player_2_idstringPlayer id of the secondary event player.
event_player_3_namestringName of the tertiary event player.
event_player_3_typestringRole of the tertiary event player.
event_player_3_idstringPlayer ID of the tertiary event player.
event_goalie_namestringName of the goalie on the event.
event_goalie_idstringPlayer id of the goalie on the event.
penalty_severitystringSeverity of the penalty.
penalty_minutesnumber | bigintPenalty minutes.
strength_statestringStrength state (e.g. 5v5, 5v4).
strength_codestringStrength state code (e.g., all, even, pp, pk).
strengthstringStrength label (Even, Power Play, Shorthanded).
empty_netbooleanWhether the net was empty.
extra_attackerbooleanWhether an extra attacker was on the ice.
xnumber | bigintRaw x-coordinate of the event.
ynumber | bigintRaw y-coordinate of the event.
x_fixednumber | bigintNormalized x coordinate (home shoots right).
y_fixednumber | bigintNormalized y coordinate (home shoots right).
shot_distancenumberDistance of the shot from the net.
shot_anglenumberAngle of the shot relative to the net.
home_skatersnumber | bigintNumber of home skaters on the ice.
away_skatersnumber | bigintNumber of away skaters on the ice.
home_on_1stringName of home skater 1 on the ice.
home_on_2stringName of home skater 2 on the ice.
home_on_3stringName of home skater 3 on the ice.
home_on_4stringName of home skater 4 on the ice.
home_on_5stringName of home skater 5 on the ice.
home_on_6stringName of home skater 6 on the ice.
home_on_7stringName of home skater 7 on the ice.
away_on_1stringName of away skater 1 on the ice.
away_on_2stringName of away skater 2 on the ice.
away_on_3stringName of away skater 3 on the ice.
away_on_4stringName of away skater 4 on the ice.
away_on_5stringName of away skater 5 on the ice.
away_on_6stringName of away skater 6 on the ice.
away_on_7stringName of away skater 7 on the ice.
home_goaliestringName of the home goalie on the ice.
away_goaliestringName of the away goalie on the ice.
num_onnumber | bigintNumber of players coming on (line change).
players_onstringNames of players coming on.
num_offnumber | bigintNumber of players going off (line change).
players_offstringNames of players going off.
game_idstringUnique game identifier.
seasonstringSeason year (echoed from arg).
season_typestringSeason type code (echoed from arg).
home_abbrstringHome team abbreviation.
away_abbrstringAway team abbreviation.
event_idxnumber | bigintSequential event index within the game.
event_idstringESPN event id (echoed from arg).
pptReplayUrlstringURL to the play replay, if available.
away_goalie_innumber | bigintWhether the away goalie is on the ice (1/0).
home_goalie_innumber | bigintWhether the home goalie is on the ice (1/0).
reasonstringReason for the event (e.g. stoppage reason).
secondaryReasonstringSecondary reason for a stoppage.
ids_onstringPlayer ids coming on.
ids_offstringPlayer ids going off.
home_on_1_idstringPlayer id of home skater 1 on the ice.
away_on_1_idstringPlayer id of away skater 1 on the ice.
home_on_2_idstringPlayer id of home skater 2 on the ice.
away_on_2_idstringPlayer id of away skater 2 on the ice.
home_on_3_idstringPlayer id of home skater 3 on the ice.
away_on_3_idstringPlayer id of away skater 3 on the ice.
home_on_4_idstringPlayer id of home skater 4 on the ice.
away_on_4_idstringPlayer id of away skater 4 on the ice.
home_on_5_idstringPlayer id of home skater 5 on the ice.
away_on_5_idstringPlayer id of away skater 5 on the ice.
home_on_6_idstringPlayer id of home skater 6 on the ice.
away_on_6_idstringPlayer id of away skater 6 on the ice.
home_on_7_idstringPlayer id of home skater 7 on the ice.
away_on_7_idstringPlayer id of away skater 7 on the ice.
home_goalie_idstringPlayer ID of the home goalie on the ice.
away_goalie_idstringPlayer ID of the away goalie on the ice.
xgnumberExpected goals value for the shot event.
game_datestringGame date.

loadNhlPbpLite​

Release: nhl_pbp_lite · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_pbp_lite/play_by_play_lite_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlPbpLite({ seasons: 2010, columns: ['game_id', 'period', 'event_type', 'description', 'event'] });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_pbp_lite(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlPbpLiteRow (exported from the package root).

col_nametypedescription
event_typestringStandardized event type code.
eventstringEvent description label.
secondary_typestringSecondary event type (e.g. shot type).
event_team_abbrstringAbbreviation of the team credited with the event.
event_team_typestringWhether the event team is home or away.
descriptionstringFull text description of the event.
periodnumberPeriod number.
period_typestringPeriod type (REG/OT/SO).
period_timestringElapsed time in the period (MM:SS).
period_secondsnumberElapsed seconds in the period.
period_seconds_remainingnumberSeconds remaining in the period.
period_time_remainingstringTime remaining in the period (MM:SS).
game_secondsnumberElapsed seconds in the game.
game_seconds_remainingnumberSeconds remaining in regulation.
home_scorenumberHome team final score.
away_scorenumberAway team final score.
event_player_1_namestringName of the primary event player.
event_player_1_typestringRole of the primary event player.
event_player_1_idstringPlayer id of the primary event player.
event_player_2_namestringName of the secondary event player.
event_player_2_typestringRole of the secondary event player.
event_player_2_idstringPlayer id of the secondary event player.
event_player_3_namestringName of the tertiary event player.
event_player_3_typestringRole of the tertiary event player.
event_player_3_idstringPlayer ID of the tertiary event player.
event_goalie_namestringName of the goalie on the event.
event_goalie_idstringPlayer id of the goalie on the event.
penalty_severitystringSeverity of the penalty.
penalty_minutesnumberPenalty minutes.
strength_statestringStrength state (e.g. 5v5, 5v4).
strength_codestringStrength state code (e.g., all, even, pp, pk).
strengthstringStrength label (Even, Power Play, Shorthanded).
empty_netbooleanWhether the net was empty.
extra_attackerbooleanWhether an extra attacker was on the ice.
xnumberRaw x-coordinate of the event.
ynumberRaw y-coordinate of the event.
x_fixednumberNormalized x coordinate (home shoots right).
y_fixednumberNormalized y coordinate (home shoots right).
shot_distancenumberDistance of the shot from the net.
shot_anglenumberAngle of the shot relative to the net.
home_skatersnumberNumber of home skaters on the ice.
away_skatersnumberNumber of away skaters on the ice.
home_on_1stringName of home skater 1 on the ice.
home_on_2stringName of home skater 2 on the ice.
home_on_3stringName of home skater 3 on the ice.
home_on_4stringName of home skater 4 on the ice.
home_on_5stringName of home skater 5 on the ice.
home_on_6stringName of home skater 6 on the ice.
home_on_7stringName of home skater 7 on the ice.
away_on_1stringName of away skater 1 on the ice.
away_on_2stringName of away skater 2 on the ice.
away_on_3stringName of away skater 3 on the ice.
away_on_4stringName of away skater 4 on the ice.
away_on_5stringName of away skater 5 on the ice.
away_on_6stringName of away skater 6 on the ice.
away_on_7stringName of away skater 7 on the ice.
home_goaliestringName of the home goalie on the ice.
away_goaliestringName of the away goalie on the ice.
num_onnumberNumber of players coming on (line change).
players_onstringNames of players coming on.
num_offnumberNumber of players going off (line change).
players_offstringNames of players going off.
game_idstringUnique game identifier.
seasonnumberSeason year (echoed from arg).
season_typestringSeason type code (echoed from arg).
home_abbrstringHome team abbreviation.
away_abbrstringAway team abbreviation.
event_idxnumberSequential event index within the game.
event_idstringESPN event id (echoed from arg).
pptReplayUrlstringURL to the play replay, if available.
away_goalie_innumberWhether the away goalie is on the ice (1/0).
home_goalie_innumberWhether the home goalie is on the ice (1/0).
reasonstringReason for the event (e.g. stoppage reason).
secondaryReasonstringSecondary reason for a stoppage.
ids_onstringPlayer ids coming on.
ids_offstringPlayer ids going off.
home_on_1_idstringPlayer id of home skater 1 on the ice.
away_on_1_idstringPlayer id of away skater 1 on the ice.
home_on_2_idstringPlayer id of home skater 2 on the ice.
away_on_2_idstringPlayer id of away skater 2 on the ice.
home_on_3_idstringPlayer id of home skater 3 on the ice.
away_on_3_idstringPlayer id of away skater 3 on the ice.
home_on_4_idstringPlayer id of home skater 4 on the ice.
away_on_4_idstringPlayer id of away skater 4 on the ice.
home_on_5_idstringPlayer id of home skater 5 on the ice.
away_on_5_idstringPlayer id of away skater 5 on the ice.
home_on_6_idstringPlayer id of home skater 6 on the ice.
away_on_6_idstringPlayer id of away skater 6 on the ice.
home_on_7_idstringPlayer id of home skater 7 on the ice.
away_on_7_idstringPlayer id of away skater 7 on the ice.
home_goalie_idstringPlayer ID of the home goalie on the ice.
away_goalie_idstringPlayer ID of the away goalie on the ice.
xgnumberExpected goals value for the shot event.

loadNhlPenalties​

Release: nhl_penalties · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_penalties/penalties_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlPenalties({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_penalties(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlPenaltiesRow (exported from the package root).

col_nametypedescription
timeInPeriodstringTime within the period the penalty occurred.
typestringCompetitor type (e.g. "team").
durationnumber | bigintPenalty duration in minutes.
committedByPlayer.firstName.defaultstringGiven name of the penalized player as published in the NHL feed's default English locale.
committedByPlayer.firstName.csstringAlternate given name for the penalized player under the NHL feed's Czech key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.firstName.destringAlternate given name for the penalized player under the NHL feed's German key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.firstName.esstringAlternate given name for the penalized player under the NHL feed's Spanish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.firstName.fistringAlternate given name for the penalized player under the NHL feed's Finnish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.firstName.skstringAlternate given name for the penalized player under the NHL feed's Slovak key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.firstName.svstringAlternate given name for the penalized player under the NHL feed's Swedish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.firstName.frstringAlternate given name for the penalized player under the NHL feed's French key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
committedByPlayer.lastName.defaultstringFamily name of the penalized player as published in the NHL feed's default English locale.
committedByPlayer.lastName.csstringAlternate rendering of the family name published under the NHL feed's Czech key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.lastName.destringAlternate rendering of the penalized player's family name under the NHL feed's German key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.lastName.esstringAlternate rendering of the penalized player's family name under the NHL feed's Spanish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.lastName.fistringAlternate rendering of the family name published under the NHL feed's Finnish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.lastName.skstringAlternate rendering of the family name published under the NHL feed's Slovak key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.lastName.svstringAlternate rendering of the family name published under the NHL feed's Swedish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.lastName.frstringAlternate rendering of the family name published under the NHL feed's French key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
committedByPlayer.sweaterNumbernumber | bigintJersey number of the penalized player on the play.
teamAbbrev.defaultstringThree-letter code of the team charged with the penalty, matching the committing player's boxscore team rather than the team that drew it.
drawnBy.firstName.defaultstringGiven name, in the feed's default English locale, of the opposing player credited with drawing the penalty.
drawnBy.firstName.csstringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's Czech key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.firstName.destringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's German key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.firstName.esstringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's Spanish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.firstName.fistringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's Finnish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.firstName.skstringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's Slovak key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.firstName.svstringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's Swedish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.firstName.frstringAlternate given name for the opposing player credited with drawing the penalty under the NHL feed's French key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
drawnBy.lastName.defaultstringFamily name, in the feed's default English locale, of the opposing player credited with drawing the penalty.
drawnBy.lastName.csstringAlternate rendering of the family name published under the NHL feed's Czech key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.lastName.destringAlternate rendering of the opposing player credited with drawing the penalty's family name under the NHL feed's German key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.lastName.esstringAlternate rendering of the opposing player credited with drawing the penalty's family name under the NHL feed's Spanish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.lastName.fistringAlternate rendering of the family name published under the NHL feed's Finnish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.lastName.skstringAlternate rendering of the family name published under the NHL feed's Slovak key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.lastName.svstringAlternate rendering of the family name published under the NHL feed's Swedish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.lastName.frstringAlternate rendering of the family name published under the NHL feed's French key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
drawnBy.sweaterNumbernumber | bigintJersey number of the opposing player credited with drawing the infraction; null whenever no victim is credited, as on all bench and game-misconduct penalties.
descKeystringPenalty description key.
game_idstringUnique game identifier.
period_numbernumber | bigintPeriod number (1-3 regulation, 4+ OT).
period_typestringPeriod type (REG/OT/SO).
servedBy.defaultstringAbbreviated name, in the feed's default English locale, of the player serving the penalty.
servedBy.csstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Czech key, differing from the default by diacritics or by an alternate given-name form.
servedBy.destringAlternate abbreviated name (first initial plus family name) published under the NHL feed's German key, differing from the default by diacritics or by an alternate given-name form.
servedBy.esstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Spanish key, differing from the default by diacritics or by an alternate given-name form.
servedBy.fistringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Finnish key, differing from the default by diacritics or by an alternate given-name form.
servedBy.skstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Slovak key, differing from the default by diacritics or by an alternate given-name form.
servedBy.svstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Swedish key, differing from the default by diacritics or by an alternate given-name form.

loadNhlPlayerBoxscores​

Release: nhl_player_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_player_boxscores/player_box_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlPlayerBoxscores({ seasons: 2010 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_player_boxscores(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlPlayerBoxscoresRow (exported from the package root).

col_nametypedescription
home_awaystringHome or away indicator.
team_idstringUnique team identifier.
team_abbrevstringTeam abbreviation.
player_idstringUnique player identifier.
player_namestringPlayer name.
sweater_numbernumber | bigintJersey number.
positionstringPlayer position.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
plus_minusnumber | bigintPlus/minus rating.
pimnumber | bigintPenalty minutes.
hitsnumber | bigintHits.
power_play_goalsnumber | bigintPower-play goals.
shots_on_goalnumber | bigintShots on goal.
faceoff_winning_pctgnumberFaceoff win percentage.
toistringTime on ice.
blocked_shotsnumber | bigintBlocked shots.
shiftsnumber | bigintCONSTANT false in every published row: the shift-chart block is not carried on this asset. An availability flag, not a shift count.
giveawaysnumber | bigintGiveaways.
takeawaysnumber | bigintTakeaways.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.
even_strength_shots_againststringEven-strength shots against (saves/total).
power_play_shots_againststringPower-play shots against (saves/total).
shorthanded_shots_againststringShorthanded shots against (saves/total).
save_shots_againststringTotal shots against (saves/total).
save_pctgnumberSave percentage.
even_strength_goals_againstnumber | bigintEven-strength goals against.
power_play_goals_againstnumber | bigintPower-play goals against.
shorthanded_goals_againstnumber | bigintShorthanded goals against.
goals_againstnumber | bigintGoals against.
starterbooleanWhether the goalie started the game.
decisionstringGoalie decision (W/L/O).
shots_againstnumber | bigintShots faced.
savesnumber | bigintSaves made.

loadNhlRosters​

Release: nhl_rosters · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_rosters/rosters_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlRosters({ seasons: 2010 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_rosters(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlRostersRow (exported from the package root).

col_nametypedescription
player_idstringUnique player identifier.
full_namestringPlayer full name.
first_namestringPlayer first name.
last_namestringPlayer last name.
team_abbrstringTeam abbreviation.
team_idstringUnique team identifier.
position_codestringPlayer position code.
sweater_numbernumberJersey number.
seasonnumberSeason year (echoed from arg).
game_datestringGame date.

loadNhlSchedules​

Release: nhl_schedules · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_schedules/nhl_schedule_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlSchedules({ seasons: 2010 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_schedules(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlSchedulesRow (exported from the package root).

col_nametypedescription
game_idstringUnique game identifier.
season_fullstringFull season label (e.g. 20212022).
game_typestringGame type the row belongs to.
game_datestringGame date.
game_timestringScheduled start time of the game.
home_team_abbrstringHome team abbreviation.
away_team_abbrstringAway team abbreviation.
home_team_namestringHome team name.
away_team_namestringAway team name.
home_scorenumberHome team final score.
away_scorenumberAway team final score.
game_statestringGame state (e.g., FINAL, LIVE).
venuestringVenue where the game was played.
series_letterstringNHL API letter code identifying the playoff series the game belongs to (null for regular-season games).
playoff_roundnumberPlayoff round identifier.
series_game_numbernumber
seasonnumberSeason year (echoed from arg).
game_jsonbooleanWhether processed game JSON is available.
game_json_urlstringURL to the processed game JSON.
PBPbooleanWhether play-by-play data is available.
team_boxbooleanWhether team box score data is available.
player_boxbooleanWhether player box score data is available.
skater_boxbooleanWhether skater box data is available.
goalie_boxbooleanWhether goalie box data is available.
game_infobooleanWhether game info data is available.
game_rostersbooleanWhether game rosters data is available.
scoringboolean
penaltiesbooleanPenalty count.
scratchesbooleanFlag indicating a scratches payload was captured for this game in the NHL raw store.
linescorebooleanFlag indicating a period-by-period linescore payload was captured for this game in the NHL raw store.
three_starsbooleanWhether three stars data is available.
shiftsbooleanNumber of shifts.
officialsbooleanWhether officials data is available.
shots_by_periodbooleanWhether shots-by-period data is available.
shootoutbooleanWhether shootout data is available.

loadNhlScoring​

Release: nhl_scoring · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_scoring/scoring_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlScoring({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_scoring(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlScoringRow (exported from the package root).

col_nametypedescription
situationCodestringStrength/situation code for the goal.
eventIdstringEvent identifier within the game.
strengthstringStrength label (Even, Power Play, Shorthanded).
playerIdstringPlayer identifier involved in the event.
firstName.defaultstringGiven name of the goal scorer as rendered in the NHL feed's default English locale.
firstName.csstringAlternate given name for the player under the NHL feed's Czech key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.destringAlternate given name for the player under the NHL feed's German key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.esstringAlternate given name for the player under the NHL feed's Spanish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.fistringAlternate given name for the player under the NHL feed's Finnish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.skstringAlternate given name for the player under the NHL feed's Slovak key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.svstringAlternate given name for the player under the NHL feed's Swedish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.frstringAlternate given name for the player under the NHL feed's French key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
lastName.defaultstringFamily name of the goal scorer as rendered in the NHL feed's default English locale.
lastName.csstringAlternate rendering of the family name published under the NHL feed's Czech key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.fistringAlternate rendering of the family name published under the NHL feed's Finnish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.skstringAlternate rendering of the family name published under the NHL feed's Slovak key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.svstringAlternate rendering of the family name published under the NHL feed's Swedish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.destringAlternate rendering of the player's family name under the NHL feed's German key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.esstringAlternate rendering of the player's family name under the NHL feed's Spanish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.frstringAlternate rendering of the family name published under the NHL feed's French key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
name.defaultstringAbbreviated name of the player as published in the NHL feed's default English locale.
name.csstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Czech key, differing from the default by diacritics or by an alternate given-name form.
name.destringAlternate abbreviated name (first initial plus family name) published under the NHL feed's German key, differing from the default by diacritics or by an alternate given-name form.
name.esstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Spanish key, differing from the default by diacritics or by an alternate given-name form.
name.fistringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Finnish key, differing from the default by diacritics or by an alternate given-name form.
name.skstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Slovak key, differing from the default by diacritics or by an alternate given-name form.
name.svstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Swedish key, differing from the default by diacritics or by an alternate given-name form.
name.frstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's French key, differing from the default by diacritics or by an alternate given-name form.
teamAbbrev.defaultstringThree-letter code of the team that scored the goal, resolving to the home club exactly when isHome is true and to the visitor otherwise.
headshotstringURL to the player headshot image.
highlightClipSharingUrlstringShareable URL for the goal highlight clip.
highlightClipnumber | bigintHighlight clip identifier.
discreteClipnumber | bigintDiscrete clip identifier.
goalsToDatenumber | bigintScorer goal total to date in the season.
awayScorenumber | bigintAway team score after the goal.
homeScorenumber | bigintHome team score after the goal.
leadingTeamAbbrev.defaultstringThree-letter code of the team ahead on the scoreboard immediately after this goal, null exactly when the goal tied the game and not always the scoring team.
timeInPeriodstringTime within the period the penalty occurred.
shotTypestringType of shot on the goal.
goalModifierstringGoal modifier (e.g. empty-net, power-play).
assistsstringAssists.
pptReplayUrlstringURL to the play replay, if available.
homeTeamDefendingSidestringSide of the ice the home team is defending.
isHomebooleanWhether the scoring team is the home team.
game_idstringUnique game identifier.
period_numbernumber | bigintPeriod number (1-3 regulation, 4+ OT).
period_typestringPeriod type (REG/OT/SO).
goalInGamenumber | bigintRunning goal count credited to the scorer within this game at the time of the goal.
discreteClipFrnumber | bigintNumeric NHL video identifier of the French-language standalone clip of the goal, always a different asset id from discreteClip.
highlightClipSharingUrlFrstringShareable nhl.com URL for the French-language highlight clip; its trailing numeric segment is the same id carried in highlightClipFr.
highlightClipFrnumber | bigintNHL video id of the French-language highlight clip for the goal. Stored as Float64 even though it is a whole 13-digit identifier, so cast before using it as a key.

loadNhlScratches​

Release: nhl_scratches · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_scratches/scratches_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlScratches({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_scratches(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlScratchesRow (exported from the package root).

col_nametypedescription
idstringUnique player identifier.
firstNamestringScorer first name (localized list).
lastNamestringScorer last name (localized list).
game_idstringUnique game identifier.

loadNhlShifts​

Release: nhl_shifts · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_shifts/shifts_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlShifts({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_shifts(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlShiftsRow (exported from the package root).

col_nametypedescription
event_teamstringTeam associated with the shift change.
periodnumber | bigintPeriod number.
period_timestringElapsed time in the period (MM:SS).
period_secondsnumber | bigintElapsed seconds in the period.
game_secondsnumber | bigintElapsed seconds in the game.
num_onnumber | bigintNumber of players coming on (line change).
players_onstringNames of players coming on.
ids_onstringPlayer ids coming on.
num_offnumber | bigintNumber of players going off (line change).
players_offstringNames of players going off.
ids_offstringPlayer ids going off.
eventstringEvent description label.
event_typestringStandardized event type code.
game_seconds_remainingnumber | bigintSeconds remaining in regulation.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlShootout​

Release: nhl_shootout · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_shootout/shootout_summary_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlShootout({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_shootout(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlShootoutRow (exported from the package root).

col_nametypedescription
homenumber | bigintWhether the player's team was home.
awaynumber | bigintAway team shots in the period.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.
sequencenumber | bigintSequence order of the season row.
playerIdstringPlayer identifier involved in the event.
teamAbbrev.defaultstringThree-letter code of the shooting player's team; null on the per-game summary row that instead carries the home and away shootout goal totals.
firstName.defaultstringGiven name of the shooter in the feed's default English locale; null on the per-game summary row.
firstName.csstringAlternate given name published under the NHL feed's Czech key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.destringAlternate given name published under the NHL feed's German key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.esstringAlternate given name published under the NHL feed's Spanish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.fistringAlternate given name published under the NHL feed's Finnish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.skstringAlternate given name published under the NHL feed's Slovak key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
firstName.svstringAlternate given name published under the NHL feed's Swedish key. Verified against the data it is frequently a different name form rather than a re-spelling (Joshua published as Josh, Aliaksei as Alexei), so it is not a reliable transliteration of the default.
lastName.defaultstringFamily name of the shooter in the feed's default English locale; null on the per-game summary row.
lastName.csstringAlternate rendering of the family name published under the NHL feed's Czech key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.fistringAlternate rendering of the family name published under the NHL feed's Finnish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.skstringAlternate rendering of the family name published under the NHL feed's Slovak key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
lastName.svstringAlternate rendering of the family name published under the NHL feed's Swedish key. It differs from the default in orthography -- usually restoring diacritics the default folds to ASCII, though for some names it strips them instead -- so treat it as an alternate spelling, not a canonical one.
shotTypestringType of shot on the goal.
resultstringAttempt result (goal/save/miss).
headshotstringURL to the player headshot image.
gameWinnerbooleanTrue on the single attempt per shootout credited as the game-deciding goal, false on every other attempt and null on the per-game summary row.
homeScorenumber | bigintHome team score after the goal.
awayScorenumber | bigintAway team score after the goal.
discreteClipnumber | bigintDiscrete clip identifier.
discreteClipFrnumber | bigintNumeric NHL video identifier of the French-language clip of the shootout attempt, distinct from the id in discreteClip.
highlightClipSharingUrlstringShareable URL for the goal highlight clip.
highlightClipSharingUrlFrstringShareable URL of the French-language broadcast highlight clip for the shootout attempt.
highlightClipnumber | bigintHighlight clip identifier.
highlightClipFrnumber | bigintNHL video identifier of the French-language highlight clip for the shootout attempt.

loadNhlShotsByPeriod​

Release: nhl_shots_by_period · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_shots_by_period/shots_by_period_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlShotsByPeriod({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_shots_by_period(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlShotsByPeriodRow (exported from the package root).

col_nametypedescription
periodnumber | bigintPeriod number.
period_typestringPeriod type (REG/OT/SO).
max_regulation_periodsnumber | bigintNumber of regulation periods the game format defines before overtime, constant at 3 for every row in the published seasons.
ot_periodsnumber | bigintOvertime period ordinal taken from the NHL period descriptor, populated only from the second overtime onward so period 5 rows carry 2 and all other rows are null.
awaynumber | bigintAway team shots in the period.
homenumber | bigintWhether the player's team was home.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlSkaterBoxscores​

Release: nhl_skater_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_skater_boxscores/skater_box_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlSkaterBoxscores({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_skater_boxscores(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlSkaterBoxscoresRow (exported from the package root).

col_nametypedescription
home_awaystringHome or away indicator.
team_idstringUnique team identifier.
team_abbrevstringTeam abbreviation.
player_idstringUnique player identifier.
player_namestringPlayer name.
sweater_numbernumber | bigintJersey number.
positionstringPlayer position.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
plus_minusnumber | bigintPlus/minus rating.
pimnumber | bigintPenalty minutes.
hitsnumber | bigintHits.
power_play_goalsnumber | bigintPower-play goals.
shots_on_goalnumber | bigintShots on goal.
faceoff_winning_pctgnumberFaceoff win percentage.
toistringTime on ice.
blocked_shotsnumber | bigintBlocked shots.
shiftsnumber | bigintCONSTANT false in every published row: the shift-chart block is not carried on this asset. An availability flag, not a shift count.
giveawaysnumber | bigintGiveaways.
takeawaysnumber | bigintTakeaways.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlTeamBoxscores​

Release: nhl_team_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_team_boxscores/team_box_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlTeamBoxscores({ seasons: 2010 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_team_boxscores(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlTeamBoxscoresRow (exported from the package root).

col_nametypedescription
home_awaystringHome or away indicator.
team_idstringUnique team identifier.
team_abbrevstringTeam abbreviation.
team_namestringTeam name.
goalsnumber | bigintGoals scored.
shots_on_goalnumber | bigintShots on goal.
pimnumber | bigintPenalty minutes.
hitsnumber | bigintHits.
blocked_shotsnumber | bigintBlocked shots.
giveawaysnumber | bigintGiveaways.
takeawaysnumber | bigintTakeaways.
power_play_goalsnumber | bigintPower-play goals.
faceoff_win_pctgnumberFaceoff win percentage.
savesnumber | bigintSaves made.
save_pctgnumberSave percentage.
goals_againstnumber | bigintGoals against.
game_idstringUnique game identifier.
seasonnumber | bigintSeason year (echoed from arg).
game_datestringGame date.

loadNhlThreeStars​

Release: nhl_three_stars · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_three_stars/three_stars_{season}.parquet

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2010)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlThreeStars({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_three_stars(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlThreeStarsRow (exported from the package root).

col_nametypedescription
starnumber | bigintStar ranking (1, 2, or 3).
playerIdstringPlayer identifier involved in the event.
teamAbbrevstringPenalized team abbreviation (localized list).
headshotstringURL to the player headshot image.
name.defaultstringAbbreviated name of the player as published in the NHL feed's default English locale.
name.csstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Czech key, differing from the default by diacritics or by an alternate given-name form.
name.skstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Slovak key, differing from the default by diacritics or by an alternate given-name form.
name.fistringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Finnish key, differing from the default by diacritics or by an alternate given-name form.
name.svstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Swedish key, differing from the default by diacritics or by an alternate given-name form.
name.destringAlternate abbreviated name (first initial plus family name) published under the NHL feed's German key, differing from the default by diacritics or by an alternate given-name form.
name.esstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's Spanish key, differing from the default by diacritics or by an alternate given-name form.
name.frstringAlternate abbreviated name (first initial plus family name) published under the NHL feed's French key, differing from the default by diacritics or by an alternate given-name form.
sweaterNonumber | bigintJersey number.
positionstringPlayer position.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
goalsAgainstAveragenumberGoals-against average (goalies).
savePctgnumberSave percentage (goalies).
game_idstringUnique game identifier.
winner_idstringPlayer id of the winning goalie.
winner_namestringName of the winning goalie.
loser_idstringPlayer id of the losing goalie.
loser_namestringName of the losing goalie.

loadNhlGroups​

Release: nhl_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_groups/nhl_groups.parquet

Coverage

One season-less file: one row per group lineage (the league, subdivisions, conferences, divisions) with the first and last season it had members. group_id is SDV's own id (e.g. nhl:metropolitan) and names a lineage: a rename that keeps continuity keeps the id, a new body gets a new one, and notes records each call. Seasons are the ENDING year (2025 = the 2024-25 season).

optiontyperequireddescription
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlGroups();
// snake_case alias (py/R parity): sdv.nhl.load_nhl_groups(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlGroupsRow (exported from the package root).

col_nametypedescription
leaguestringLeague code of the table ("nhl"); the prefix of every group_id in it.
group_idstringSDV group id, {league}:{slug}. It names a lineage: renames that keep continuity keep the id, and a new body (a new conference, or a merger the sources treat as new) gets a new one.
levelstringHierarchy level of the group: "league", "subdivision", "conference" or "division".
first_seasonnumberFirst season in which the group had at least one member (ENDING year: 2025 = the 2024-25 season).
last_seasonnumberLast season in which the group had at least one member (ENDING year: 2025 = the 2024-25 season).
notesstringBuilder notes on the group: the lineage decisions behind its group_id and any source caveats.

loadNhlGroupSeasons​

Release: nhl_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_groups/nhl_group_seasons.parquet

Coverage

One season-less file: one row per group per season it existed, with its name, short name, abbreviation and parent group AS OF that season (never today's label applied to the past) and its member count. season is the ENDING year (2025 = the 2024-25 season).

optiontyperequireddescription
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlGroupSeasons();
// snake_case alias (py/R parity): sdv.nhl.load_nhl_group_seasons(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlGroupSeasonsRow (exported from the package root).

col_nametypedescription
leaguestringLeague code of the table ("nhl"); the prefix of every group_id in it.
group_idstringSDV group id, {league}:{slug}. It names a lineage: renames that keep continuity keep the id, and a new body (a new conference, or a merger the sources treat as new) gets a new one.
seasonnumberSeason the row describes (ENDING year: 2025 = the 2024-25 season).
levelstringHierarchy level of the group: "league", "subdivision", "conference" or "division".
namestringFull name of the group as of that season -- the label in use then, not today's name.
short_namestringShort display name of the group as of that season.
abbreviationstringAbbreviation of the group as of that season.
parent_group_idstringgroup_id one level up as of that season (division -> conference -> subdivision -> league); null at the top level or where no higher group applied that season.
n_teamsnumberNumber of member teams in the group that season.

loadNhlGroupAliases​

Release: nhl_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_groups/nhl_group_aliases.parquet

Coverage

One season-less file: every name, abbreviation, slug and source id that a source (espn, nhl) uses for a group, each with the seasons it is valid for (valid_from / valid_to, inclusive; null = unbounded). Match a source's conference or division label here to reach group_id.

optiontyperequireddescription
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlGroupAliases();
// snake_case alias (py/R parity): sdv.nhl.load_nhl_group_aliases(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlGroupAliasesRow (exported from the package root).

col_nametypedescription
leaguestringLeague code of the table ("nhl"); the prefix of every group_id in it.
group_idstringSDV group id, {league}:{slug}. It names a lineage: renames that keep continuity keep the id, and a new body (a new conference, or a merger the sources treat as new) gets a new one.
sourcestringSource that uses this label or id (in this table: espn, nhl); "sdv" marks SDV's own labels.
source_idstringThe source's own id for the group (ESPN group id, NCAA conf_id, CFBD id, MLB division id) when it has one; null otherwise.
name_kindstringKind of label in value: "name", "short_name", "abbreviation", "slug" or "code".
valuestringThe label exactly as the source writes it; match a source's conference or division label against it to reach group_id.
valid_fromnumberFirst season the alias is valid for, inclusive (ENDING year: 2025 = the 2024-25 season); null = unbounded.
valid_tonumberLast season the alias is valid for, inclusive (ENDING year: 2025 = the 2024-25 season); null = unbounded (still in use).

loadNhlTeamGroupSeasons​

Release: nhl_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nhl_groups/nhl_team_group_seasons_{season}.parquet

Coverage

One row per team per season: the SDV subdivision, conference and division group ids the team belonged to that season (null where a level does not apply), the team name as of that season, where the membership came from, and whether a second source agreed (null when only one source covers the season). team_id is a string: the ESPN team id where ESPN covers the team, otherwise the NHL id; team_id_source names the id space. season is the ENDING year (2025 = the 2024-25 season); seasons 1918-2026. No 2005 asset (the 2004-05 lockout).

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 1918)
columnsstring[]noread only these columns
format"rows" | "columns"norow objects (default) or column arrays
maxCellsnumbernosize guard; default scales with the heap, Infinity disables
timeoutMsnumbernodownload timeout in ms (default 300000)
const rows = await sdv.nhl.loadNhlTeamGroupSeasons({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nhl.load_nhl_team_group_seasons(...)

Returns (one row per record; every column optional and nullable):

Row type: LoadNhlTeamGroupSeasonsRow (exported from the package root).

col_nametypedescription
leaguestringLeague code of the table ("nhl"); the prefix of every group_id in it.
seasonnumberSeason of the membership (ENDING year: 2025 = the 2024-25 season).
team_idstringTeam id as a string: the ESPN team id where ESPN covers the team, otherwise the league's own id; team_id_source says which.
team_id_sourcestringId space of team_id (in this table: espn, nhl).
team_namestringTeam name as of that season, not today's.
subdivision_idstringSDV group_id of the team's subdivision that season (e.g. FBS / FCS, Division I); null where the league has no subdivision level.
conference_idstringSDV group_id of the team's conference that season; null where the team had no conference (an independent, or a season played without conferences).
division_idstringSDV group_id of the team's division that season; null where the level does not apply.
sourcestringSource the membership was taken from -- the most reliable per-season source for that era.
sources_agreebooleanWhether a second source agreed on the membership; null when only one source covers the season.
notesstringBuilder notes on the team-season, such as a source disagreement or which of several listed memberships was kept.

Generated by tools/codegen/generate.mjs from tools/codegen/endpoints/releases.yaml (vendored from sdv-py) — see How this library is built.