Appearance
After Shot Positioning
The after_shot_positioning section in the markings response contains information on how offensive players are moving after each shot. It contains a row for each offensive player on the court (including the shooter) during every field goal attempt.
Overview
For each field goal attempt, we include one row per offensive player on the court (including the shooter), describing:
- Where the player started (at shot release)
- Where the player ended (approximately when the ball first arrives at the rim)
- The closest the player got to the rim during that window
- A flag to indicate whether it seemed like the player was intentionally positioning for an offensive rebound
After-Shot Window Timing
The window we measure runs from shot release to approximately when the ball first arrives at the rim (specifically, the first frame after the shot's arc peak where the ball enters the vicinity of the basket). This is the reference point for player start and end positions, minimum rim distance, and movement velocity. In unusual cases where the ball never has a detected near-rim frame — such as some blocked shots — the window ends at the shot's canonical end frame instead.
Sample Response
json
{
"markings": {
"after_shot_positioning": [
{
"avg_speed_xy": 12.8,
"avg_velocity_x": 2.58,
"avg_velocity_y": 12.54,
"chance_id_ctg": "chance_51bfc1fda2cc0deb125bee9988859667",
"did_position_for_off_reb": false,
"end_loc_x": 454.24,
"end_loc_y": -208.23,
"end_region": "right corner two",
"game_id_nba": "0022500404",
"is_shooter": false,
"min_rim_distance": 213.41,
"min_rim_distance_loc_area": "long_midrange",
"min_rim_distance_frame": 761,
"movement_direction": "stationary",
"player_id_nba": 1629023,
"first_touch_loc_x": 390.34,
"first_touch_loc_y": -170.76,
"first_touch_region": "right wing two",
"rebound_loc_x": null,
"rebound_loc_y": null,
"rebound_region": null,
"shot_id_ctg": "shot_105f89542695fcebf740bb7c426ac4c3",
"start_loc_area": "long_midrange",
"start_loc_x": 454.76,
"start_loc_y": -210.74,
"start_region": "right corner two"
}
]
}
}Fields
Identifiers
shot_id_ctg
Type: string
CTG-generated unique shot ID
game_id_nba
Type: string
NBA game ID
chance_id_ctg
Type: string
CTG chance ID in which the shot occurred
player_id_nba
Type: integer
NBA player ID
Player / Rebounding Context
is_shooter
Type: boolean
true if this player is the shooter for the shot
did_position_for_off_reb
Type: boolean
true if this player appeared to be positioning for an offensive rebound based on their movement and proximity to the rim after the shot. This does not always mean the player went toward the rim in a strong "crashing" style movement, as long as they seem not to be heading back on defense or standing and watching but aiming to get in position to get a rebound if they can.
A player who is already near the rim and doesn't clearly sprint back, for example, would be true, as would a player on the perimeter who slowly creeps in toward the rim even if they don't get so far.
movement_direction
Type: string
General movement classification for the player's movement after the shot. Possible values:
towards_rimstationarygetting_backout_of_bounds- if the player is out of bounds when the shot gets to the rim (often due to momentum after a shot or pass)on_ground
Locations
start_loc_area
Type: string
We bucket the player's start position (when the shot is released) into the following areas:
near_rimlong_midrangebehind_3pt_linebackcourt
start_loc_x
Type: float | Unit: inches
X coordinate of the player's centroid at the start of the after-shot window (shot release).
start_loc_y
Type: float | Unit: inches
Y coordinate of the player's centroid at the start of the after-shot window (shot release).
start_region
Type: string
Court region label for the player's start position
end_loc_x
Type: float | Unit: inches
X coordinate of the player's centroid at the end of the after-shot window — approximately the frame when the ball first arrives at the rim after its arc peak. See After-Shot Window Timing.
end_loc_y
Type: float | Unit: inches
Y coordinate of the player's centroid at the end of the after-shot window — approximately the frame when the ball first arrives at the rim after its arc peak. See After-Shot Window Timing.
end_region
Type: string
Court region label for the player's end position (at the same frame as end_loc_x / end_loc_y)
first_touch_loc_x
Type: float | Unit: inches | Nullable
X coordinate of the player's centroid when the ball is first touched after the shot ends
first_touch_loc_y
Type: float | Unit: inches | Nullable
Y coordinate of the player's centroid when the ball is first touched after the shot ends
first_touch_region
Type: string | Nullable
Court region label for the player when the ball is first touched after the shot ends
rebound_loc_x
Type: float | Unit: inches | Nullable
For missed shots, x coordinate of the player's centroid when the ball is first possessed after the shot ends, or when play stops before that possession is established. null for made shots.
rebound_loc_y
Type: float | Unit: inches | Nullable
For missed shots, y coordinate of the player's centroid when the ball is first possessed after the shot ends, or when play stops before that possession is established. null for made shots.
rebound_region
Type: string | Nullable
For missed shots, court region label for the player when the ball is first possessed after the shot ends, or when play stops before that possession is established. null for made shots.
Minimum Rim Distance
min_rim_distance_loc_area
Type: string
We bucket the player's position when they are closest to the rim during the after-shot window (shot release to when the ball first arrives at the rim) into the following areas:
near_rimlong_midrangebehind_3pt_linebackcourt
min_rim_distance
Type: float | Unit: inches
Minimum distance from the player's centroid to the rim during the after-shot window (shot release to when the ball first arrives at the rim)
min_rim_distance_frame
Type: integer
Hawk-Eye frame number where the player reached min_rim_distance
Movement
avg_velocity_x
Type: float | Unit: inches/second
Average x velocity during the after-shot window, null if the after-shot window has zero duration (i.e. there are 0 frames between shot release and shot end), which can happen in rare cases like dunks.
avg_velocity_y
Type: float | Unit: inches/second
Average y velocity during the after-shot window, null if the after-shot window has zero duration (i.e. there are 0 frames between shot release and shot end), which can happen in rare cases like dunks.
avg_speed_xy
Type: float | Unit: inches/second
Average speed in the xy plane during the after-shot window, null if the after-shot window has zero duration (i.e. there are 0 frames between shot release and shot end), which can happen in rare cases like dunks.
