Appearance
Chance Matchups
The chance_matchups section in the markings response contains one row per on-court player per chance, attempting to identify the player's matchup at the beginning and end of the chance.
Overview
This data set is player-centered. Each chance has one row for each of the ten players on the court:
- When
is_on_offenseistrue, matchup player fields refer to the defender guardingplayer_id_nba. - When
is_on_offenseisfalse, matchup player fields refer to the offensive player guarded byplayer_id_nba.
The data includes both 1-to-1 matchup assignments and probabilistic matchup estimates which allow multiple players to be assigned to the same matchup. 1-to-1 assignments mean that at each frame, we try to estimate who each player is assigned to. Double teams are not allowed, so each player must be assigned to exactly one other player.
Probabilistic matchup estimates suggest what the probability is that each player is assigned to each other player at each frame, so if a player is playing between two offensive players they might be 0.5 for each. And if two players are guarding one, they both might be near 1.0 for that player.
Sample Response
json
{
"markings": {
"chance_matchups": [
{
"chance_id_ctg": "chance_51bfc1fda2cc0deb125bee9988859667",
"end_highest_matchup_probability": 0.8724,
"end_highest_probability_matchup_player_id_nba": 1630180,
"end_matchup_player_id_nba": 1630180,
"end_matchup_frame_he": 806,
"end_second_highest_matchup_probability": 0.0876,
"end_second_highest_probability_matchup_player_id_nba": 1642852,
"game_id_nba": "0022500404",
"is_on_offense": true,
"most_common_matchup_frames": 124,
"most_common_matchup_player_id_nba": 1630180,
"player_id_nba": 1629023,
"start_highest_matchup_probability": 0.9132,
"start_highest_probability_matchup_player_id_nba": 1630180,
"start_matchup_player_id_nba": 1630180,
"start_matchup_frame_he": 414,
"start_second_highest_matchup_probability": 0.0611,
"start_second_highest_probability_matchup_player_id_nba": 1642852
}
]
}
}Fields
Identifiers
game_id_nba
Type: string
NBA game ID
chance_id_ctg
Type: string
CTG-generated chance ID
player_id_nba
Type: integer
NBA player ID for the player whose matchup context is described by this row
Context
is_on_offense
Type: boolean
true when player_id_nba is on offense for this chance. Offensive rows point to the defender guarding the offensive player. Defensive rows point to the offensive player guarded by the defender.
Chance Checkpoints
start_matchup_frame_he
Type: integer | Nullable
Hawk-Eye frame used as the start-of-chance matchup checkpoint. For chances that end up in the halfcourt, the idea is to try to find a frame where the matchups have settled initially but before any actions are run. null if there is no way to determine matchups cleanly before the chance ends.
end_matchup_frame_he
Type: integer | Nullable
Hawk-Eye frame used as the end-of-chance matchup checkpoint. For chances that end in a shot, this is set to the shot release. null if no end checkpoint can be determined.
Clear Matchups
start_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's matchup near the start checkpoint. This uses 1-to-1 clear assignments, so each defender is assigned as best as possible to an offensive player with no duplicates. null if no clear matchup assignment is available.
end_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's matchup near the end checkpoint. This uses 1-to-1 clear assignments, so each offensive player is assigned as best as possible to a defender with no duplicates. null if no clear matchup assignment is available.
most_common_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's most common matchup during the chance. This uses 1-to-1 clear assignments, so each defender is assigned as best as possible to an offensive player with no duplicates. null if no clear matchup assignments are available during the chance.
most_common_matchup_frames
Type: integer | Nullable
Number of frames during the chance where most_common_matchup_player_id_nba was the player's clear matchup. null if no clear matchup assignments are available during the chance.
Start Matchup Probabilities
start_highest_probability_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's highest-probability matchup near the start checkpoint using the probabilistic matchup estimates. null if no matchup probability estimate is available.
start_highest_matchup_probability
Type: float | Nullable
Estimated probability for start_highest_probability_matchup_player_id_nba. null if no matchup probability estimate is available.
start_second_highest_probability_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's second-highest-probability matchup near the start checkpoint using the probabilistic matchup estimates. null if there is no meaningful second matchup estimate.
start_second_highest_matchup_probability
Type: float | Nullable
Estimated probability for start_second_highest_probability_matchup_player_id_nba. null if there is no meaningful second matchup estimate.
End Matchup Probabilities
end_highest_probability_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's highest-probability matchup near the end checkpoint. null if no matchup probability estimate is available.
end_highest_matchup_probability
Type: float | Nullable
Estimated probability for end_highest_probability_matchup_player_id_nba. null if no matchup probability estimate is available.
end_second_highest_probability_matchup_player_id_nba
Type: integer | Nullable
NBA player ID for the player's second-highest-probability matchup near the end checkpoint. null if there is no meaningful second matchup estimate.
end_second_highest_matchup_probability
Type: float | Nullable
Estimated probability for end_second_highest_probability_matchup_player_id_nba. null if there is no meaningful second matchup estimate.
