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.pwhl — dataset loaders

21 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
loadPhfPbpphf_pbp2016+
loadPhfPlayerBoxscoresphf_player_boxscores2016+
loadPhfSchedulesphf_schedules2016+
loadPhfTeamBoxscoresphf_team_boxscores2016+
loadPwhlGameInfopwhl_game_info2024+
loadPwhlGameRosterspwhl_game_rosters2024+
loadPwhlShiftspwhl_shifts2024+
loadPwhlGoalieBoxscorespwhl_goalie_boxscores2024+
loadPwhlOfficialspwhl_officials2024+
loadPwhlPbppwhl_pbp2024+
loadPwhlXgPbppwhl_xg_pbp2024+
loadPwhlPenaltySummarypwhl_penalty_summary2024+
loadPwhlPlayerBoxscorespwhl_player_boxscores2024+
loadPwhlRosterspwhl_rosters2024+
loadPwhlSchedulespwhl_schedules2024+
loadPwhlScoringSummarypwhl_scoring_summary2024+
loadPwhlShootoutpwhl_shootout2026+
loadPwhlShotsByPeriodpwhl_shots_by_period2024+
loadPwhlSkaterBoxscorespwhl_skater_boxscores2024+
loadPwhlTeamBoxscorespwhl_team_boxscores2024+
loadPwhlThreeStarspwhl_three_stars2024+

loadPhfPbp​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2016)
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.pwhl.loadPhfPbp({ seasons: 2023, columns: ['game_id', 'period_id', 'play_type', 'play_description'] });
// snake_case alias (py/R parity): sdv.pwhl.load_phf_pbp(...)

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

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

col_nametypedescription
play_typestring
teamstringTeam name.
timestringGame clock at infraction (MM:SS).
play_descriptionstringFree-text description of the play as published by the league.
period_idstringPeriod identifier.
game_idstringUnique game identifier.
game_datestringGame date.
home_teamstringHome team name.
home_locationstringHome team city.
home_nicknamestringNickname of the home team.
home_abbreviationstringHome team abbreviation.
home_score_totalnumberHome team's cumulative score after the play.
away_teamstringAway team name.
away_locationstringAway team city.
away_nicknamestringNickname of the away team.
away_abbreviationstringAway team abbreviation.
away_score_totalnumberAway team's cumulative score after the play.
away_goaliestringName of the away goalie on the ice.
away_goalie_jerseystringJersey number of the away goaltender on the ice.
goalie_changestringTrue when the play records a goaltender change.
penaltynumber
on_ice_situationstringStrength situation on the ice for the play (e.g. even strength, power play).
scorestringFinal score string.
minute_startnumberMinute mark of the period when the event started.
second_startnumberSecond mark of the period when the event started.
clockstringGame clock time remaining (MM:SS).
leaderstringTeam leading the game at this point in the play sequence.
away_goalsstringAway goals in the period.
home_goalsstringHome goals in the period.
sec_from_startnumberSeconds elapsed since the start of the game.
power_play_secondsnumberElapsed seconds of the power play at this play.
time_elapsedstring
time_remainingstring
player_name_1stringName of the player in slot 1 of the play's participant list.
player_jersey_1stringJersey number of the player in slot 1 of the play's participant list.
home_skatersnumberNumber of home skaters on the ice.
away_skatersnumberNumber of away skaters on the ice.
home_goaliestringName of the home goalie on the ice.
home_goalie_jerseystringJersey number of the home goaltender on the ice.
player_name_2stringName of the player in slot 2 of the play's participant list.
player_jersey_2stringJersey number of the player in slot 2 of the play's participant list.
shot_resultstring
goalie_involvedstringName of the goaltender involved in the play.
penalty_typestring
penalty_levelstringSeverity classification of the penalty (e.g. minor, major).
penalty_lengthstringPenalty length in minutes.
start_power_playnumberTrue on the play where a power play begins.
end_power_playnumberTrue on the play where a power play ends.
player_name_3stringName of the player in slot 3 of the play's participant list.
player_jersey_3stringJersey number of the player in slot 3 of the play's participant list.
scoring_team_abbrevstringAbbreviation of the team credited with the goal.
scoring_team_on_icestringSkaters the scoring team had on the ice for the goal.
offensive_player_name_1stringName of the attacking team's skater in on-ice slot 1 for the play.
offensive_player_name_2stringName of the attacking team's skater in on-ice slot 2 for the play.
offensive_player_name_3stringName of the attacking team's skater in on-ice slot 3 for the play.
offensive_player_name_4stringName of the attacking team's skater in on-ice slot 4 for the play.
offensive_player_name_5stringName of the attacking team's skater in on-ice slot 5 for the play.
defending_team_abbrevstringAbbreviation of the team defending on the play.
offensive_player_jersey_1stringJersey number of the attacking team's skater in on-ice slot 1 for the play.
offensive_player_jersey_2stringJersey number of the attacking team's skater in on-ice slot 2 for the play.
offensive_player_jersey_3stringJersey number of the attacking team's skater in on-ice slot 3 for the play.
offensive_player_jersey_4stringJersey number of the attacking team's skater in on-ice slot 4 for the play.
offensive_player_jersey_5stringJersey number of the attacking team's skater in on-ice slot 5 for the play.
defending_team_on_icestringSkaters the defending team had on the ice for the play.
defensive_player_name_1stringName of the defending team's skater in on-ice slot 1 for the play.
defensive_player_name_2stringName of the defending team's skater in on-ice slot 2 for the play.
defensive_player_name_3stringName of the defending team's skater in on-ice slot 3 for the play.
defensive_player_name_4stringName of the defending team's skater in on-ice slot 4 for the play.
defensive_player_name_5stringName of the defending team's skater in on-ice slot 5 for the play.
defensive_player_jersey_1stringJersey number of the defending team's skater in on-ice slot 1 for the play.
defensive_player_jersey_2stringJersey number of the defending team's skater in on-ice slot 2 for the play.
defensive_player_jersey_3stringJersey number of the defending team's skater in on-ice slot 3 for the play.
defensive_player_jersey_4stringJersey number of the defending team's skater in on-ice slot 4 for the play.
defensive_player_jersey_5stringJersey number of the defending team's skater in on-ice slot 5 for the play.
defensive_player_name_6stringName of the defending team's skater in on-ice slot 6 for the play.
defensive_player_jersey_6stringJersey number of the defending team's skater in on-ice slot 6 for the play.
offensive_player_name_6stringName of the attacking team's skater in on-ice slot 6 for the play.
offensive_player_jersey_6stringJersey number of the attacking team's skater in on-ice slot 6 for the play.
seasonnumberSeason year (echoed from arg).

loadPhfPlayerBoxscores​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2016)
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.pwhl.loadPhfPlayerBoxscores({ seasons: 2023 });
// snake_case alias (py/R parity): sdv.pwhl.load_phf_player_boxscores(...)

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

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

col_nametypedescription
player_jerseynumberPlayer's jersey number.
player_namestringPlayer name.
positionstringPlayer position.
goalsnumberGoals scored.
assistsnumberAssists.
pointsnumberTotal points (goals + assists).
penalty_minutesnumberPenalty minutes.
plus_minusnumberPlus/minus rating.
shots_on_goalnumberShots on goal.
blocksnumber
giveawaysnumberGiveaways.
takeawaysnumberTakeaways.
faceoffs_won_loststringFaceoffs won and lost, as the league's combined won-lost string.
faceoffs_win_pctnumberShare of the player's faceoffs won.
powerplay_goalsnumberGoals the player scored on the power play.
shorthanded_goalsnumberShorthanded goals.
shotsnumberShots on goal.
shots_blockednumberShots the player blocked.
faceoffs_wonnumberFaceoffs won in the season.
faceoffs_lostnumberFaceoffs lost in the season.
teamstringTeam name.
skaters_hrefstringRelative link to the league's skater table for this game.
player_idstringUnique player identifier.
game_idstringUnique game identifier.
minutes_playedstringMinutes played.
shots_againstnumberShots faced.
goals_againstnumberGoals against.
savesnumberSaves made.
save_percentnumberShare of shots faced that the goaltender saved.
goalies_hrefstringRelative link to the league's goaltender table for this game.
seasonnumberSeason year (echoed from arg).

loadPhfSchedules​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2016)
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.pwhl.loadPhfSchedules({ seasons: 2023 });
// snake_case alias (py/R parity): sdv.pwhl.load_phf_schedules(...)

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

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

col_nametypedescription
typestringCompetitor type (e.g. "team").
idstringUnique player identifier.
league_idstringLeague identifier of the team.
season_idstringSeason identifier.
tournament_idbooleanESPN tournament id parsed from the $ref URL.
game_idstringUnique game identifier.
numbernumberWeek number as returned by the API.
datetimeDateScheduled start of the game as a timestamp.
datetime_tzDateScheduled start of the game including its time-zone offset.
time_zonestringTime zone in which the game is played.
time_zone_abbrstringAbbreviated form of the game's time zone.
updated_atDateTimestamp at which the league last updated the game record.
created_atDateTimestamp at which the league created the game record.
home_team_idstringHome team identifier.
home_teamstringHome team name.
home_team_shortstringShort display name of the home team.
home_team_logo_url_fullstringURL of the home team's logo at the full rendition.
home_team_logo_url_smallstringURL of the home team's logo at the small rendition.
home_team_logo_url_mediumstringURL of the home team's logo at the medium rendition.
home_team_logo_url_largestringURL of the home team's logo at the large rendition.
home_team_logo_url_50stringURL of the home team's logo at the 50px rendition.
home_team_logo_url_100stringURL of the home team's logo at the 100px rendition.
home_team_logo_url_200stringURL of the home team's logo at the 200px rendition.
away_team_idstringAway team identifier.
away_teamstringAway team name.
away_team_shortstringShort display name of the away team.
away_team_logo_url_fullstringURL of the away team's logo at the full rendition.
away_team_logo_url_smallstringURL of the away team's logo at the small rendition.
away_team_logo_url_mediumstringURL of the away team's logo at the medium rendition.
away_team_logo_url_largestringURL of the away team's logo at the large rendition.
away_team_logo_url_50stringURL of the away team's logo at the 50px rendition.
away_team_logo_url_100stringURL of the away team's logo at the 100px rendition.
away_team_logo_url_200stringURL of the away team's logo at the 200px rendition.
home_division_idstringLeague identifier for the home team's division.
home_divisionstringHome team division.
away_division_idstringLeague identifier for the away team's division.
away_divisionstring
home_scorenumberHome team final score.
away_scorenumberAway team final score.
home_shotsnumberHome team shots in the period.
away_shotsnumberAway team shots in the period.
home_penalty_minutesnumberPenalty minutes assessed to the home team.
away_penalty_minutesnumberPenalty minutes assessed to the away team.
home_roster_countnumberNumber of players dressed for the home team.
away_roster_countnumberNumber of players dressed for the away team.
facility_idstringLeague identifier for the hosting facility.
facilitystringName of the facility hosting the game.
facility_addressstringStreet address of the hosting facility.
rink_idbooleanLeague identifier for the rink.
rinkbooleanName of the rink within the facility.
game_typestringGame type the row belongs to.
notesstringNotes flag for the pick.
statusstringStatus string (e.g. captain markers).
overtimeboolean
shootoutbooleanWhether shootout data is available.
allow_playersbooleanLeague flag for whether player-level detail is published for the game.
tickets_urlstringLink to purchase tickets for the game.
watch_live_urlstringLink to the live broadcast of the game.
external_urlbooleanLeague-published external link for the game.
has_play_by_playbooleanTrue when a play-by-play feed exists for the game.
highlight_colorbooleanDisplay colour the league uses for the game in its schedule UI.
attendancenumberGame attendance.
date_groupDateLeague grouping key for the game's date, used to bucket a slate.
winnerstringWhether this competitor won the game.
seasonnumberSeason year (echoed from arg).
PBPbooleanWhether play-by-play data is available.
team_boxbooleanWhether team box score data is available.
player_boxbooleanWhether player box score data is available.

loadPhfTeamBoxscores​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2016)
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.pwhl.loadPhfTeamBoxscores({ seasons: 2023 });
// snake_case alias (py/R parity): sdv.pwhl.load_phf_team_boxscores(...)

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

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

col_nametypedescription
teamstringTeam name.
game_idstringUnique game identifier.
winnerbooleanWhether this competitor won the game.
total_scoringnumberGoals the team scored in the game.
successful_power_playnumberNumber of power plays on which the team scored.
power_play_opportunitiesnumberPower play opportunities.
power_play_percentnumberShare of the team's power plays that produced a goal.
penalty_minutesnumberPenalty minutes.
faceoff_percentnumberFaceoff win percentage.
blocked_opponent_shotsnumberOpponent shots the team blocked.
takeawaysnumberTakeaways.
giveawaysnumberGiveaways.
period_1_shotsnumberShots the team took in period 1.
period_2_shotsnumberShots the team took in period 2.
period_3_shotsnumberShots the team took in period 3.
overtime_shotsnumberShots the team took in overtime.
shootout_made_shotsnumberShootout shots the team took that scored.
shootout_missed_shotsnumberShootout shots the team took that did not score.
total_shotsnumberShots the team took in the game.
period_1_scoringnumberGoals the team scored in period 1.
period_2_scoringnumberGoals the team scored in period 2.
period_3_scoringnumberGoals the team scored in period 3.
overtime_scoringnumberGoals the team scored in overtime.
shootout_made_scoringnumberShootout attempts the team converted.
shootout_missed_scoringnumberShootout attempts the team failed to convert.
seasonnumberSeason year (echoed from arg).

loadPwhlGameInfo​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlGameInfo({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_game_info(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
game_numberstringGame number within the schedule.
game_datestringGame date.
game_date_isostringISO-8601 game start datetime.
start_timestringShift start time (MM:SS countdown clock).
end_timestringShift end time (MM:SS countdown clock).
game_durationstringGame length (H:MM).
game_venuestringVenue where the game was played.
attendancenumber | bigintGame attendance.
game_statusstringGame status text.
game_season_idstringHockeyTech season identifier.
startednumber | bigintFlag for whether the game has started.
finalnumber | bigintFlag for whether the game is final.
home_team_idstringHome team identifier.
home_teamstringHome team name.
home_team_abbrstringHome team abbreviation.
home_scorenumber | bigintHome team final score.
away_team_idstringAway team identifier.
away_teamstringAway team name.
away_team_abbrstringAway team abbreviation.
away_scorenumber | bigintAway team final score.
has_shootoutnumber | bigintFlag for whether the game went to shootout.
game_report_urlstringURL to the game report.
boxscore_urlstringURL to the boxscore.

loadPwhlGameRosters​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlGameRosters({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_game_rosters(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
team_idstringUnique team identifier.
teamstringTeam name.
team_abbrstringTeam abbreviation.
team_sidestringHome or away indicator.
player_typestringPlayer type (skater or goalie).
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
jersey_numbernumber | bigintJersey number.
positionstringPlayer position.
birth_datestringPlayer birth date.
startingnumber | bigintWhether the player started the game.
statusstringStatus string (e.g. captain markers).

loadPwhlShifts​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlShifts({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_shifts(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
jersey_numberstringJersey number.
homenumber | bigintWhether the player's team was home.
periodnumber | bigintPeriod number.
start_timestringShift start time (MM:SS countdown clock).
end_timestringShift end time (MM:SS countdown clock).
lengthstringLength of the streak in games.
start_snumber | bigintShift start in countdown seconds.
end_snumber | bigintShift end in countdown seconds.
goal_on_shiftnumber | bigint1 if a goal occurred during this shift, else 0.
penalty_on_shiftnumber | bigint1 if a penalty occurred during this shift, else 0.

loadPwhlGoalieBoxscores​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlGoalieBoxscores({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_goalie_boxscores(...)

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

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

col_nametypedescription
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
positionstringPlayer position.
team_idstringUnique team identifier.
game_idstringUnique game identifier.
leaguestringLeague code.
toistringTime on ice.
time_on_icenumberTime on ice in seconds.
savesnumber | bigintSaves made.
goals_againstnumber | bigintGoals against.
shots_againstnumber | bigintShots faced.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
penalty_minutesnumber | bigintPenalty minutes.
faceoff_attemptsnumber | bigintFaceoff attempts.
faceoff_winsnumber | bigintFaceoff wins.
faceoff_lossesnumber | bigintFaceoff losses.
faceoff_pctunknownFaceoff win percentage.
startingnumber | bigintWhether the player started the game.

loadPwhlOfficials​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlOfficials({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_officials(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
rolestringGrouped official role (Referee/Linesperson).
first_namestringPlayer first name.
last_namestringPlayer last name.
jersey_numbernumber | bigintJersey number.
official_rolestringOfficial's specific role.

loadPwhlPbp​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlPbp({ seasons: 2024, columns: ['game_id', 'period_of_game', 'event', 'event_type', 'strength_state'] });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_pbp(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
eventstringEvent description label.
team_idstringUnique team identifier.
period_of_gamestringPeriod in which the event occurred.
time_of_periodstringElapsed time within the period (MM:SS).
x_coordnumberTransformed x-coordinate of the event (feet scale).
y_coordnumberTransformed y-coordinate of the event (feet scale).
player_idstringUnique player identifier.
player_name_firststringPrimary player first name.
player_name_laststringPrimary player last name.
player_positionstringPrimary player position.
goalbooleanFlag for whether the event was a goal.
goalie_idstringGoalie identifier on the play.
goalie_firststringGoalie first name.
goalie_laststringGoalie last name.
home_winstringWhether the home player won the faceoff.
player_team_idstringUnique team identifier of the primary player.
event_typestringStandardized event type code.
shot_qualitystringShot quality descriptor.
empty_netstringWhether the net was empty.
game_winnerstringWhether the goal was the game-winning goal.
penalty_shotstringWhether the goal came on a penalty shot.
insurancestringWhether the goal was an insurance goal.
short_handedstringWhether the event occurred while short-handed.
power_playstringWhether the event occurred on a power play.
player_two_idstringSecond player's unique identifier.
player_two_name_firststringSecond player first name.
player_two_name_laststringSecond player last name.
player_two_positionstringSecond player position.
player_three_idstringThird player's unique identifier.
player_three_name_firststringThird player first name.
player_three_name_laststringThird player last name.
player_three_positionstringThird player position.
plus_player_one_idstringOn-ice plus player one unique identifier.
plus_player_one_firststringOn-ice plus player one first name.
plus_player_one_laststringOn-ice plus player one last name.
plus_player_one_positionstringOn-ice plus player one position.
plus_player_two_idstringOn-ice plus player two unique identifier.
plus_player_two_firststringOn-ice plus player two first name.
plus_player_two_laststringOn-ice plus player two last name.
plus_player_two_positionstringOn-ice plus player two position.
plus_player_three_idstringOn-ice plus player three unique identifier.
plus_player_three_firststringOn-ice plus player three first name.
plus_player_three_laststringOn-ice plus player three last name.
plus_player_three_positionstringOn-ice plus player three position.
plus_player_four_idstringOn-ice plus player four unique identifier.
plus_player_four_firststringOn-ice plus player four first name.
plus_player_four_laststringOn-ice plus player four last name.
plus_player_four_positionstringOn-ice plus player four position.
plus_player_five_idstringOn-ice plus player five unique identifier.
plus_player_five_firststringOn-ice plus player five first name.
plus_player_five_laststringOn-ice plus player five last name.
plus_player_five_positionstringOn-ice plus player five position.
minus_player_one_idstringOn-ice minus player one unique identifier.
minus_player_one_firststringOn-ice minus player one first name.
minus_player_one_laststringOn-ice minus player one last name.
minus_player_one_positionstringOn-ice minus player one position.
minus_player_two_idstringOn-ice minus player two unique identifier.
minus_player_two_firststringOn-ice minus player two first name.
minus_player_two_laststringOn-ice minus player two last name.
minus_player_two_positionstringOn-ice minus player two position.
minus_player_three_idstringOn-ice minus player three unique identifier.
minus_player_three_firststringOn-ice minus player three first name.
minus_player_three_laststringOn-ice minus player three last name.
minus_player_three_positionstringOn-ice minus player three position.
minus_player_four_idstringOn-ice minus player four unique identifier.
minus_player_four_firststringOn-ice minus player four first name.
minus_player_four_laststringOn-ice minus player four last name.
minus_player_four_positionstringOn-ice minus player four position.
minus_player_five_idstringOn-ice minus player five unique identifier.
minus_player_five_firststringOn-ice minus player five first name.
minus_player_five_laststringOn-ice minus player five last name.
minus_player_five_positionstringOn-ice minus player five position.
penalty_lengthstringPenalty length in minutes.
game_datestringGame date.
game_seasonnumber | bigintSeason (concluding year, YYYY).
game_season_idstringHockeyTech season identifier.
home_teamstringHome team name.
home_team_idstringHome team identifier.
away_teamstringAway team name.
away_team_idstringAway team identifier.
x_coord_originalnumber | bigintOriginal raw x-coordinate from the feed.
y_coord_originalnumber | bigintOriginal raw y-coordinate from the feed.
x_coord_neutralnumber | bigintNeutral-zone-centered x-coordinate.
y_coord_neutralnumber | bigintNeutral-zone-centered y-coordinate.
x_coord_fixednumberFixed-orientation x-coordinate.
y_coord_fixednumberFixed-orientation y-coordinate.
x_coord_rightnumberRight-orientation x-coordinate.
y_coord_rightnumberRight-orientation y-coordinate.
x_coord_verticalnumberVertical-orientation x-coordinate.
y_coord_verticalnumberVertical-orientation y-coordinate.
minute_startnumber | bigintMinute mark of the period when the event started.
second_startnumber | bigintSecond mark of the period when the event started.
clockstringGame clock time remaining (MM:SS).
sec_from_startnumber | bigintSeconds elapsed since the start of the game.
shot_distancenumberDistance of the shot from the net.
shot_anglenumberAngle of the shot relative to the net.
scoring_chancebooleanTRUE when event is a shot-type within 25 ft of the net.
on_ice_homestringComma-joined sorted player_ids on ice for the home team.
on_ice_awaystringComma-joined sorted player_ids on ice for the away team.
skaters_homenumber | bigintNumber of home skaters on the ice for the event, derived from HockeyTech shift data.
skaters_awaynumber | bigintNumber of away skaters on the ice for the event, derived from HockeyTech shift data.
strength_statestringSkater-strength state formatted home-first as skaters_home v skaters_away (5v4 = home has the extra skater), derived from shift data.
strength_state_validbooleanTrue when both shift-derived skater counts are between 3 and 6 inclusive; false when a count falls outside that range; null when a count is unavailable.

loadPwhlXgPbp​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlXgPbp({ seasons: 2025, columns: ['game_id', 'period_of_game', 'sec_from_start', 'event_type'] });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_xg_pbp(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
game_seasonnumberSeason (concluding year, YYYY).
game_datestringGame date.
team_idstringUnique team identifier.
player_idstringUnique player identifier.
goalie_idstringGoalie identifier on the play.
period_of_gamestringPeriod in which the event occurred.
sec_from_startnumberSeconds elapsed since the start of the game.
clockstringGame clock time remaining (MM:SS).
x_coordnumberTransformed x-coordinate of the event (feet scale).
y_coordnumberTransformed y-coordinate of the event (feet scale).
shot_distancenumberDistance of the shot from the net.
shot_anglenumberAngle of the shot relative to the net.
event_typestringStandardized event type code.
shot_qualitystringShot quality descriptor.
power_playnumberWhether the event occurred on a power play.
short_handedstringWhether the event occurred while short-handed.
empty_netstringWhether the net was empty.
penalty_shotstringWhether the goal came on a penalty shot.
goalbooleanFlag for whether the event was a goal.
xgnumberExpected goals value for the shot event.

loadPwhlPenaltySummary​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlPenaltySummary({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_penalty_summary(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
period_idstringPeriod identifier.
periodstringPeriod number.
timestringGame clock at infraction (MM:SS).
team_idstringUnique team identifier.
teamstringTeam name.
team_abbrstringTeam abbreviation.
game_penalty_idstringPenalty identifier within the game.
minutesnumber | bigintPenalty length in minutes.
descriptionstringFull text description of the event.
rule_numberstringRulebook rule number.
is_power_playnumber | bigintPower-play flag.
is_benchnumber | bigintBench-minor flag.
taken_by_idstringIdentifier of the player who took the penalty.
taken_by_firststringOffender first name.
taken_by_laststringOffender last name.
taken_by_positionstringOffender position.
served_by_idstringIdentifier of the player serving the penalty.
served_by_firststringFirst name of the player serving.
served_by_laststringLast name of the player serving.

loadPwhlPlayerBoxscores​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlPlayerBoxscores({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_player_boxscores(...)

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

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

col_nametypedescription
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
positionstringPlayer position.
team_idstringUnique team identifier.
game_idstringUnique game identifier.
leaguestringLeague code.
toistringTime on ice.
time_on_icenumberTime on ice in seconds.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
shotsnumber | bigintShots on goal.
hitsnumber | bigintHits.
blocked_shotsnumber | bigintBlocked shots.
penalty_minutesnumber | bigintPenalty minutes.
plus_minusnumber | bigintPlus/minus rating.
faceoff_attemptsnumber | bigintFaceoff attempts.
faceoff_winsnumber | bigintFaceoff wins.
faceoff_lossesnumber | bigintFaceoff losses.
faceoff_pctnumberFaceoff win percentage.
startingnumber | bigintWhether the player started the game.
player_typestringPlayer type (skater or goalie).
savesnumber | bigintSaves made.
goals_againstnumber | bigintGoals against.
shots_againstnumber | bigintShots faced.

loadPwhlRosters​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlRosters({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_rosters(...)

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

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

col_nametypedescription
team_idstringUnique team identifier.
teamstringTeam name.
team_abbrstringTeam abbreviation.
team_sidestringHome or away indicator.
player_typestringPlayer type (skater or goalie).
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
jersey_numbernumberJersey number.
positionstringPlayer position.
birth_datestringPlayer birth date.
seasonnumberSeason year (echoed from arg).

loadPwhlSchedules​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlSchedules({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_schedules(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
seasonnumberSeason year (echoed from arg).
game_datestringGame date.
game_statusstringGame status text.
home_teamstringHome team name.
home_team_idstringHome team identifier.
away_teamstringAway team name.
away_team_idstringAway team identifier.
home_scorestringHome team final score.
away_scorestringAway team final score.
winnerstringWhether this competitor won the game.
venuestringVenue where the game was played.
venue_urlstringURL for the venue.
game_typestringGame type the row belongs to.
game_jsonbooleanWhether processed game JSON is available.
game_json_urlstringURL to the processed game JSON.
PBPbooleanWhether play-by-play 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.
team_boxbooleanWhether team box score data is available.
game_infobooleanCONSTANT true: marks that the source game record carried a game-info block.
game_rostersbooleanWhether game rosters data is available.
scoring_summarybooleanWhether scoring summary data is available.
penalty_summarybooleanWhether penalty summary data is available.
three_starsbooleanCONSTANT true: marks that the source game record carried a three-stars block.
officialsbooleanWhether officials data is available.
shots_by_periodbooleanWhether shots-by-period data is available.
shootoutbooleanWhether shootout data is available.

loadPwhlScoringSummary​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlScoringSummary({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_scoring_summary(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
period_idstringPeriod identifier.
periodstringPeriod number.
timestringGame clock at infraction (MM:SS).
team_idstringUnique team identifier.
teamstringTeam name.
team_abbrstringTeam abbreviation.
game_goal_idstringGoal identifier within the game.
scorer_goal_numbernumber | bigintScorer's season goal number.
scorer_idstringIdentifier of the goal scorer.
scorer_firststringScorer first name.
scorer_laststringScorer last name.
scorer_positionstringScorer position.
assist_1_idstringPrimary assist player identifier.
assist_1_firststringPrimary assist first name.
assist_1_laststringPrimary assist last name.
assist_2_idstringSecondary assist player identifier.
assist_2_firststringSecondary assist first name.
assist_2_laststringSecondary assist last name.
is_power_playnumber | bigintPower-play flag.
is_short_handednumber | bigintShort-handed flag.
is_empty_netnumber | bigintEmpty-net flag.
is_penalty_shotnumber | bigintPenalty-shot flag.
is_insurancenumber | bigintInsurance-goal flag.
is_game_winningnumber | bigintGame-winning-goal flag.
x_locationunknownGoal x-coordinate on the ice.
y_locationunknownGoal y-coordinate on the ice.

loadPwhlShootout​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2026)
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.pwhl.loadPwhlShootout({ seasons: 2026 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_shootout(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
roundnumber | bigintShootout round number.
team_sidestringHome or away indicator.
shooter_idstringShooter player identifier.
shooter_firststringShooter first name.
shooter_laststringShooter last name.
goalie_idstringGoalie identifier on the play.
goalie_firststringGoalie first name.
goalie_laststringGoalie last name.
is_goalnumber | bigintWhether the attempt scored (1/0).

loadPwhlShotsByPeriod​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlShotsByPeriod({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_shots_by_period(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
period_idstringPeriod identifier.
periodstringPeriod number.
home_goalsnumber | bigintHome goals in the period.
home_shotsnumber | bigintHome team shots in the period.
away_goalsnumber | bigintAway goals in the period.
away_shotsnumber | bigintAway team shots in the period.

loadPwhlSkaterBoxscores​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlSkaterBoxscores({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_skater_boxscores(...)

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

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

col_nametypedescription
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
positionstringPlayer position.
team_idstringUnique team identifier.
game_idstringUnique game identifier.
leaguestringLeague code.
toistringTime on ice.
time_on_icenumberTime on ice in seconds.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
shotsnumber | bigintShots on goal.
hitsnumber | bigintHits.
blocked_shotsnumber | bigintBlocked shots.
penalty_minutesnumber | bigintPenalty minutes.
plus_minusnumber | bigintPlus/minus rating.
faceoff_attemptsnumber | bigintFaceoff attempts.
faceoff_winsnumber | bigintFaceoff wins.
faceoff_lossesnumber | bigintFaceoff losses.
faceoff_pctnumberFaceoff win percentage.
startingnumber | bigintWhether the player started the game.

loadPwhlTeamBoxscores​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlTeamBoxscores({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_team_boxscores(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
team_idstringUnique team identifier.
teamstringTeam name.
team_abbrstringTeam abbreviation.
team_sidestringHome or away indicator.
shotsnumber | bigintShots on goal.
goalsnumber | bigintGoals scored.
hitsnumber | bigintHits.
pp_goalsnumber | bigintPower-play goals.
pp_opportunitiesnumber | bigintPower-play opportunities.
goal_countnumber | bigintTotal goals recorded.
assist_countnumber | bigintTotal assists recorded.
penalty_minutesnumber | bigintPenalty minutes.
infraction_countnumber | bigintNumber of infractions.
faceoff_attemptsnumber | bigintFaceoff attempts.
faceoff_winsnumber | bigintFaceoff wins.
faceoff_win_pctnumberFaceoff win percentage.
season_winsnumber | bigintSeason wins entering/after the game.
season_lossesnumber | bigintSeason losses entering/after the game.
season_ot_winsnumber | bigintSeason overtime wins.
season_ot_lossesnumber | bigintSeason overtime losses.
season_so_lossesnumber | bigintSeason shootout losses.
season_recordstringSeason record after this game.

loadPwhlThreeStars​

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

optiontyperequireddescription
seasonsnumber | number[]yesseason(s) to load (>= 2024)
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.pwhl.loadPwhlThreeStars({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.pwhl.load_pwhl_three_stars(...)

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

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

col_nametypedescription
game_idstringUnique game identifier.
starnumber | bigintStar ranking (1, 2, or 3).
team_idstringUnique team identifier.
teamstringTeam name.
team_abbrstringTeam abbreviation.
player_idstringUnique player identifier.
first_namestringPlayer first name.
last_namestringPlayer last name.
jersey_numbernumber | bigintJersey number.
positionstringPlayer position.
is_goalienumber | bigintGoalie flag.
is_homenumber | bigintHome-team flag.
goalsnumber | bigintGoals scored.
assistsnumber | bigintAssists.
pointsnumber | bigintTotal points (goals + assists).
shotsnumber | bigintShots on goal.
savesnumber | bigintSaves made.
shots_againstnumber | bigintShots faced.
goals_againstnumber | bigintGoals against.
time_on_icestringTime on ice in seconds.

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