Skip to contents

Skater box score of a game: scoring, shots, faceoffs, time on ice, hits and blocks.

Usage

vhl_player_box(season, game_id, stage = "regular", return_parsed = TRUE)

Arguments

season

Season END year (2026 = 2025/26; the calendar covers 2010/11 on). With stage it is mapped to the site's tournament id, see vhl_tn().

game_id

Required. Game id (game_id in vhl_schedule; the report's and the broadcast's idgame), e.g. 899223.

stage

Season stage: "regular" (default) or "playoff".

return_parsed

TRUE (default) returns the parsed tibble; FALSE returns the page's parsed record (a named list, plus _request with the season, stage, tn and the ids asked for).

Value

A fastRhockey_data tibble with one row per skater:

col_nametypedescription
game_idintegerGame id (the calendar's game_id; the report's and the broadcast's idgame). The report and broadcast pages do not print it: it comes from the request.
seasonintegerSeason END year (2026 = 2025/26).
stagecharacterSeason stage: regular or playoff.
game_numberintegerOfficial game number (from 'No.984'); checked against the request.
team_sidecharacterSide of the game the row belongs to: home or away.
team_page_idintegerTeam page id (vhlru.ru /en/teams/{team_page_id}/), stable across seasons; for report rows the page id of the row's side.
teamcharacterTeam short name (Latin; the report tables' form).
position_groupcharacterPosition group: defense or forward.
jerseyintegerJersey number (integer).
player_idintegerPlayer id: the {player_id} of /en/players/{player_id}/, stable across seasons and teams; also the photo id on img.khl.ru. Same numeric sequence as khl.ru player ids; whether it equals the same person's khl.ru id is unverified.
playercharacterPlayer name, 'Surname Given' (Latin on /en/ pages).
captaincycharacterCaptaincy marker from the name suffix: C (captain), A (alternate); null otherwise.
games_playedintegerGames played (GP).
goalsintegerGoals (G) the player scored in the row's scope: the game in a box score, the season stage in stats and career rows.
assistsintegerAssists (A) credited to the player in the row's scope: the game in a box score, the season stage in stats and career rows.
pointsintegerPoints, goals + assists (PTS).
plus_minusintegerPlus/minus (+/-).
penalty_minutesintegerPenalty minutes (PIM).
even_strength_goalsintegerEven-strength goals (ESG).
power_play_goalsintegerPower-play goals (PPG).
shorthanded_goalsintegerShorthanded goals (SHG).
overtime_goalsintegerOvertime goals (OTG).
game_winning_goalsintegerGame-winning goals (GWG).
shootout_deciding_goalsintegerShootout-deciding goals (SDS; the legend says 'Shootouts deciding shots').
shots_on_goalintegerShots on goal (SOG).
shot_pctnumericShooting percentage, goals / shots on goal x 100 (%SOG); 0-100 scale; null when the page shows '-'.
faceoffsintegerFaceoffs taken (FO).
faceoffs_wonintegerFaceoffs won (FOW).
faceoff_pctnumericFaceoff win percentage (%FO); 0-100 scale; null when the page shows '-' (no faceoffs taken).
toi_per_gamecharacterTime on ice in this game (TOI/G with GP 1), 'mm:ss'.
shifts_per_gamenumericShifts in this game (Sft/G with GP 1).
hitsintegerBody checks delivered (Hits).
blocked_shotsintegerBlocked shots (BLS).

With return_parsed = FALSE, the page's parsed record (a named list) instead.

Details

Source: GET https://www.vhlru.ru/en/report/{season}/ (server-rendered HTML, keyless; parsed with rvest). Unofficial use of a public source; payloads are not redistributed.

Terms of use

Check the provider's terms of use before redistributing this data.

Errors

  • fastRhockey_no_data: the VHL has nothing for the request (a season without that stage, a game not in the season's calendar, an unknown game, player or team page).

  • fastRhockey_bad_request: a bad season / stage / id, a missing argument, or HTTP 400 / 422.

  • fastRhockey_asset_fetch: the page could not be fetched, or it is not the page asked for (another season, game or player; a missing table or header drift).

Examples

if (FALSE) { # interactive()
# \donttest{
  try(vhl_player_box(season = 2026, game_id = 899223))
# }
}