Appearance
Off-Ball Player Data: Drives
The drives_off_ball_player section in the markings response contains one row per off ball player (both offense and defense) for drive actions, with off-ball matchup and positioning context.
Overview
This data set provides off-ball player context around drives, including:
- Player and matchup identity
- Start-of-play positioning and regions
- Distance metrics to ball, hoop, and matchup throughout the play
- Weak-side vs. strong-side positioning flags
Sample Response
json
{
"markings": {
"drives_off_ball_player": [
{
"chance_id_ctg": "chance_4c33ded97f95174cc013b446c3981347",
"drive_id_ctg": "drive_4c0859e1242cf39607d5896f6dae865c",
"game_id_nba": "0022500404",
"is_matchup_on_weak_side_at_play_start": true,
"is_matchup_on_weak_side_at_touch_end": true,
"is_moving_at_play_start": false,
"is_on_offense": false,
"is_on_weak_side_at_play_start": true,
"is_on_weak_side_at_touch_end": true,
"is_one_pass_away": null,
"matchup_min_ball_distance_during_ballhandler_touch": 6.4,
"matchup_min_hoop_distance_during_ballhandler_touch": 8.29,
"matchup_play_start_ball_distance": 6.4,
"matchup_play_start_hoop_distance": 26.72,
"matchup_player_id_nba": 1642852,
"matchup_start_region": "middle three",
"matchup_start_x": -145.59,
"matchup_start_y": -31.08,
"max_ball_distance_during_ballhandler_touch": 9.64,
"max_hoop_distance_during_ballhandler_touch": 20.57,
"max_matchup_distance_during_ballhandler_touch": 9.63,
"min_ball_distance_during_ballhandler_touch": 3.4,
"min_hoop_distance_during_ballhandler_touch": 4.28,
"min_matchup_distance_during_ballhandler_touch": 3.25,
"pass_start_ball_distance": null,
"pass_start_matchup_distance": null,
"pass_start_player_region": null,
"period": 1,
"play_start_ball_distance": 8.46,
"play_start_hoop_distance": 20.57,
"play_start_lowness_rank": 2,
"play_start_lowness_rank_left": null,
"play_start_lowness_rank_right": 2,
"play_start_matchup_distance": 9.17,
"play_start_matchup_speed": 0.4,
"play_start_speed": 6.05,
"player_id_nba": 203076,
"player_start_region": "middle two",
"player_start_x": -254.81,
"player_start_y": -17.57
}
]
}
}Fields
Identifiers
drive_id_ctg
Type: string
CTG-generated unique ID for the drive
game_id_nba
Type: string
NBA game ID
chance_id_ctg
Type: string
CTG-generated chance ID that contains this drive
player_id_nba
Type: integer
NBA player ID for the off ball player
matchup_player_id_nba
Type: integer
NBA player ID for the off ball player's matchup at play start
Context
period
Type: integer
Period in which the play occurs
is_on_offense
Type: boolean
true when player_id_nba is on offense for this play
Start-Frame Positioning
player_start_x
Type: float | Unit: inches
Off ball player's x coordinate at play start
player_start_y
Type: float | Unit: inches
Off ball player's y coordinate at play start
player_start_region
Type: string | Nullable
Off ball player's start region. null if the play-start checkpoint is unavailable.
matchup_start_x
Type: float | Unit: inches | Nullable
Matchup player's x coordinate at play start. null if matchup coordinates are unavailable.
matchup_start_y
Type: float | Unit: inches | Nullable
Matchup player's y coordinate at play start. null if matchup coordinates are unavailable.
matchup_start_region
Type: string | Nullable
Matchup player's start region. null if matchup coordinates are unavailable.
Start-Frame Distances / Ranks
play_start_hoop_distance
Type: float | Unit: feet
Off ball player's distance from rim center at play start
matchup_play_start_hoop_distance
Type: float | Unit: feet | Nullable
Matchup player's distance from rim center at play start. null if matchup coordinates are unavailable.
play_start_ball_distance
Type: float | Unit: feet
Off ball player's distance from the ball at play start
matchup_play_start_ball_distance
Type: float | Unit: feet | Nullable
Matchup player's distance from the ball at play start. null if matchup coordinates are unavailable.
play_start_matchup_distance
Type: float | Unit: feet | Nullable
Off ball player's distance from matchup at play start. null if matchup coordinates are unavailable.
play_start_speed
Type: float | Unit: feet/sec | Nullable
Off ball player's speed at play start. null when coordinates are unavailable.
play_start_matchup_speed
Type: float | Unit: feet/sec | Nullable
Matchup player's speed at play start. null when coordinates are unavailable.
play_start_lowness_rank_left
Type: integer | Nullable
Lowness rank among players on the left side at play start (1 is lowest on that side). null if player is not on the left side. "Lowest" means closest to the basket.
play_start_lowness_rank_right
Type: integer | Nullable
Lowness rank among players on the right side at play start (1 is lowest on that side). null if player is not on the right side. "Lowest" means closest to the basket.
play_start_lowness_rank
Type: integer | Nullable
Lowness rank at play start in one number. This shows the left-side rank when it exists, otherwise the right-side rank, so it matches whichever half of the floor the player is counted on with the same interpretation as those fields (1 is lowest on that side; lowest means closest to the basket). null when both side-specific ranks are null (player is not placed on either side for this snapshot).
Pass-Start Checkpoint
These fields represent the off ball player's positioning and movement at the moment the driving ballhandler releases a pass (if they passed during the drive).
pass_start_matchup_distance
Type: float | Nullable
Distance to matchup at ballhandler pass start (feet). null if no pass exists.
pass_start_ball_distance
Type: float | Unit: feet | Nullable
Distance from the player to the ball at pass start. null when no pass occurred or coordinates are unavailable.
pass_start_player_region
Type: string | Nullable
Player region at ballhandler pass start. null if no pass exists.
Min/Max During Ballhandler Touch
min_ball_distance_during_ballhandler_touch
Type: float | Unit: feet
Minimum distance to ball during ballhandler touch
matchup_min_ball_distance_during_ballhandler_touch
Type: float | Unit: feet | Nullable
Matchup player's minimum distance to ball during ballhandler touch. null if matchup coordinates are unavailable during the touch.
min_hoop_distance_during_ballhandler_touch
Type: float | Unit: feet
Minimum distance to rim center during ballhandler touch
matchup_min_hoop_distance_during_ballhandler_touch
Type: float | Unit: feet | Nullable
Matchup player's minimum distance to rim center during ballhandler touch. null if matchup coordinates are unavailable during the touch.
min_matchup_distance_during_ballhandler_touch
Type: float | Unit: feet | Nullable
Minimum player-to-matchup distance during ballhandler touch. null if matchup coordinates are unavailable during the touch.
max_ball_distance_during_ballhandler_touch
Type: float | Unit: feet
Maximum distance to ball during ballhandler touch
max_hoop_distance_during_ballhandler_touch
Type: float | Unit: feet
Maximum distance to rim center during ballhandler touch
max_matchup_distance_during_ballhandler_touch
Type: float | Unit: feet | Nullable
Maximum player-to-matchup distance during ballhandler touch. null if matchup coordinates are unavailable during the touch.
Weak-Side / Movement Flags
is_moving_at_play_start
Type: boolean
true if the player is moving at a reasonably high speed at the start of the play.
is_one_pass_away
Type: boolean | Nullable
true if the player is on the perimeter (more than 15 feet from the center of the rim) and there is no teammate between them and the ball. null when not available.
is_on_weak_side_at_play_start
Type: boolean
true if the player is on what we estimate is the weak side at the start of the play.
is_on_weak_side_at_touch_end
Type: boolean
true if the player is on what we estimate is the weak side at the end of the ballhandler's touch.
is_matchup_on_weak_side_at_play_start
Type: boolean | Nullable
true if the player's matchup is on what we estimate is the weak side at the start of the play. null if a matchup is unavailable at play start.
is_matchup_on_weak_side_at_touch_end
Type: boolean | Nullable
true if the player's matchup is on what we estimate is the weak side at the end of the ballhandler's touch. null if a matchup is unavailable at touch end.
