Skip to content

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 (near the end of the shot)
  • 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

Sample Response

json
{
  "markings": {
    "after_shot_positioning": [
      {
        "avg_speed_xy": 39.59,
        "avg_velocity_x": 20.13,
        "avg_velocity_y": 34.08,
        "chance_id_ctg": "chance_068d7afd51d6b5aa6d0e6db9381832b6",
        "did_position_for_off_reb": true,
        "end_loc_x": -476.86,
        "end_loc_y": 130.3,
        "end_region": "left corner two",
        "game_id_nba": "0022500404",
        "is_shooter": false,
        "min_rim_distance": 88.84,
        "min_rim_distance_loc_area": "near_rim",
        "min_rim_distance_frame": 102628,
        "movement_direction": "getting_back",
        "player_id_nba": 1642852,
        "shot_id_ctg": "shot_8c070a59b7d88e32228b22135578fa17",
        "start_loc_area": "near_rim",
        "start_loc_x": -501.36,
        "start_loc_y": 88.8,
        "start_region": "ra"
      }
    ]
  }
}

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_rim
  • stationary
  • getting_back
  • out_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_rim
  • long_midrange
  • behind_3pt_line
  • backcourt

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 (near the end of the shot).


end_loc_y

Type: float | Unit: inches

Y coordinate of the player's centroid at the end of the after-shot window (near the end of the shot).


end_region

Type: string

Court region label for the player's end position


Minimum Rim Distance

min_rim_distance_loc_area

Type: string

We bucket the player's position when they are closest to the rim in the window between the shot release and shot contact the rim into the following areas:

  • near_rim
  • long_midrange
  • behind_3pt_line
  • backcourt

min_rim_distance

Type: float | Unit: inches

Minimum rim distance during the after-shot window


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.