Skip to content

Jump Shots ​

The jump_shots section in the markings response contains shooting mechanics data for every jump shot, including checkpoints (key frames), body positions, timing, and balance metrics.

Sample Response ​

json
{
  "markings": {
    "jump_shots": [
      {
        "ankle_distance_2d_at_jump_start_inches": 19.35,
        "ball_height_relative_to_neck_at_min_hips_in": 15.57,
        "ball_in_hands_sec": 0.92,
        "ball_in_hands_to_min_hips_sec": 0.63,
        "ball_release_height_in": 111.37,
        "ball_rim_distance_at_release_in": 288.57,
        "ball_velocity_after_release_inches_per_sec": 329.0,
        "ball_velocity_min_ball_to_set_inches_per_sec": 103.5,
        "ball_velocity_set_to_release_inches_per_sec": 181.48,
        "basket_entry_angle": 46.21,
        "basket_entry_depth": 5.38,
        "basket_entry_distance_to_center_of_rim_2d": 6.26,
        "basket_entry_he_frame": 272361,
        "basket_entry_left_right": 3.21,
        "basket_entry_location_relative_to_hoop_center_x": 4.19,
        "basket_entry_location_relative_to_hoop_center_y": 4.66,
        "basket_entry_speed_inches_per_sec": 302.5,
        "basket_entry_wall_clock": "2025-12-23T02:41:51.781+00:00",
        "elbow_relative_to_ball_at_release_forward_back_inches": 0.81,
        "elbow_relative_to_ball_at_release_side_to_side_inches": 3.74,
        "elbow_relative_to_ball_at_set_forward_back_inches": 14.73,
        "elbow_relative_to_ball_at_set_side_to_side_inches": 4.0,
        "event_pbp_id": 506,
        "first_ball_in_hands_he_frame": 272227,
        "first_ball_in_hands_wall_clock": "2025-12-23T02:41:49.548+00:00",
        "first_left_wrist_below_eye_after_release_he_frame": 272308,
        "first_left_wrist_below_eye_after_release_wall_clock": "2025-12-23T02:41:50.898+00:00",
        "first_right_wrist_below_eye_after_release_he_frame": 272306,
        "first_right_wrist_below_eye_after_release_wall_clock": "2025-12-23T02:41:50.864+00:00",
        "game_id_nba": "0022500404",
        "hand_closest_to_ball_on_release": "right",
        "heel_distance_at_jump_start_inches": 19.43,
        "hip_facing_angle_relative_to_rim_at_first_ball_in_hands": 42.13,
        "hip_facing_angle_relative_to_rim_at_jump_landing": 42.11,
        "hip_facing_angle_relative_to_rim_at_jump_start": 39.26,
        "hip_facing_angle_relative_to_rim_at_min_hips": 33.66,
        "hip_facing_angle_relative_to_rim_at_release": 42.13,
        "hip_turn_from_first_ball_in_hands_to_jump_landing": -0.02,
        "hip_turn_from_jump_start_to_jump_landing": 2.85,
        "hip_turn_from_min_hips_to_jump_landing": 8.45,
        "hip_turn_from_min_hips_to_release": 8.47,
        "is_off_balance": false,
        "jump_distance_not_toward_rim_in": 1.13,
        "jump_end_he_frame": 272302,
        "jump_end_wall_clock": "2025-12-23T02:41:50.798+00:00",
        "jump_shot_footwork_type": "left_right",
        "landing_ankle_height_difference_in": 0.81,
        "last_ball_in_hands_he_frame": 272282,
        "last_ball_in_hands_wall_clock": "2025-12-23T02:41:50.464+00:00",
        "last_either_foot_on_floor_he_frame": 272277,
        "last_either_foot_on_floor_wall_clock": "2025-12-23T02:41:50.381+00:00",
        "last_left_foot_on_floor_he_frame": 272277,
        "last_left_foot_on_floor_wall_clock": "2025-12-23T02:41:50.381+00:00",
        "last_right_foot_on_floor_he_frame": 272276,
        "last_right_foot_on_floor_wall_clock": "2025-12-23T02:41:50.364+00:00",
        "left_ankle_distance_forward_back_at_jump_start_inches": -4.49,
        "left_ankle_distance_side_to_side_at_jump_start_inches": 6.03,
        "left_ankle_vs_hip_side_to_side_at_jump_start_inches": 1.89,
        "left_foot_angle_to_hoop_at_jump_start": -44.43,
        "left_hip_bend_angle_at_min_ball": 141.53,
        "left_hip_bend_angle_at_min_hips": 140.04,
        "left_knee_bend_angle_at_min_ball": 144.18,
        "left_knee_bend_angle_at_min_hips": 110.08,
        "mid_toe_distance_at_jump_start_inches": 21.63,
        "mid_toe_heel_dist_difference_at_jump_start_inches": 2.2,
        "min_ball_height_ball_position_forward_to_back_in": 13.75,
        "min_ball_height_ball_position_side_to_side_in": 8.23,
        "min_ball_height_he_frame": 272247,
        "min_ball_height_relative_to_hips_in": -0.13,
        "min_ball_height_wall_clock": "2025-12-23T02:41:49.881+00:00",
        "min_hips_height_he_frame": 272265,
        "min_hips_height_wall_clock": "2025-12-23T02:41:50.181+00:00",
        "neck_relative_to_feet_midpoint_at_release_xy_distance_in": 4.26,
        "neck_relative_to_knee_midpoint_at_release_xy_distance_in": 2.7,
        "neck_relative_to_mid_hip_at_release_xy_distance_in": 0.44,
        "non_shooting_wrist_above_eye_after_release_sec": 0.43,
        "pbp_event_id": 506,
        "release_angle": 44.51,
        "release_height_above_min_ball_height_in": 69.31,
        "release_height_above_nose_in": 24.86,
        "release_point_ball_position_forward_to_back_in": 10.29,
        "release_point_ball_position_side_to_side_in": -1.07,
        "release_relative_to_jump_peak_timing": 0.1,
        "release_relative_to_jump_sec": 0.08,
        "right_ankle_distance_forward_back_at_jump_start_inches": -8.14,
        "right_ankle_distance_side_to_side_at_jump_start_inches": 12.98,
        "right_ankle_vs_hip_side_to_side_at_jump_start_inches": 8.85,
        "right_foot_angle_to_hoop_at_jump_start": -27.88,
        "right_hip_bend_angle_at_min_ball": 138.22,
        "right_hip_bend_angle_at_min_hips": 150.1,
        "right_knee_bend_angle_at_min_ball": 132.3,
        "right_knee_bend_angle_at_min_hips": 121.62,
        "set_height_above_min_ball_height_in": 40.36,
        "set_point_ball_position_forward_to_back_in": -4.77,
        "set_point_ball_position_side_to_side_in": -1.22,
        "set_point_he_frame": 272271,
        "set_point_height_above_nose_in": 9.97,
        "set_point_height_in": 82.43,
        "set_point_wall_clock": "2025-12-23T02:41:50.281+00:00",
        "set_relative_to_jump_sec": -0.1,
        "set_to_release_sec": 0.18,
        "shooter_id_nba": 1631255,
        "shooting_elbow_flare_angle_at_set_point": 20.23,
        "shooting_elbow_shoulder_hip_angle_at_set_point": 132.65,
        "shooting_elbow_shoulder_hoop_angle_at_set_point": 11.05,
        "shooting_wrist_above_eye_after_release_sec": 0.4,
        "shooting_wrist_elbow_shoulder_angle_at_set_point": 78.87,
        "shot_id_ctg": "shot_009f4b290df7ad4f18532b2d660ca60e",
        "shot_jump_direction_ankles": -36.93,
        "shot_jump_direction_mid_hips": -39.3,
        "shot_jump_distance_ankles_in": 13.64,
        "shot_jump_distance_mid_hips_in": 4.9,
        "shot_jump_max_hip_height_vs_standing_hip_height_diff_in": 12.47,
        "shoulder_facing_angle_relative_to_rim_at_first_ball_in_hands": 58.8,
        "shoulder_facing_angle_relative_to_rim_at_jump_landing": 31.97,
        "shoulder_facing_angle_relative_to_rim_at_jump_start": 35.29,
        "shoulder_facing_angle_relative_to_rim_at_min_hips": 31.49,
        "shoulder_facing_angle_relative_to_rim_at_release": 34.68,
        "shoulder_turn_from_first_ball_in_hands_to_jump_landing": -26.83,
        "shoulder_turn_from_jump_start_to_jump_landing": -3.32,
        "shoulder_turn_from_min_hips_to_jump_landing": 0.48,
        "shoulder_turn_from_min_hips_to_release": 3.19,
        "vertical_shoulder_tilt_at_min_hips": -5.35,
        "wrist_relative_to_ball_at_release_forward_back_inches": -0.08,
        "wrist_relative_to_ball_at_release_side_to_side_inches": -0.96,
        "wrist_relative_to_ball_at_set_forward_back_inches": 6.26,
        "wrist_relative_to_ball_at_set_side_to_side_inches": -1.6
      }
    ]
  }
}

Fields ​

Identifiers ​

game_id_nba ​

Type: string

NBA game ID


shot_id_ctg ​

Type: string

CTG-generated unique shot ID (can join with shots)


shooter_id_nba ​

Type: integer

NBA player ID of the shooter


pbp_event_id ​

Type: integer

Play-by-play event ID (i.e. NGSS ID) for this shot


event_pbp_id deprecated ​

Type: integer

Play-by-play event ID (i.e. NGSS ID) for this shot

Deprecated

Use pbp_event_id instead. This field will be removed in a future version.


Checkpoints ​

Checkpoints are key frames in the shooting motion. Fields ending in _he_frame are Hawk-Eye frame numbers (60 FPS), and corresponding _wall_clock fields are UTC timestamps.

Gather & Setup ​

first_ball_in_hands_he_frame ​

Type: integer

First frame where shooter has both hands on the ball continuously until release

NOTE

This frame may be well before the actual shooting motion if the player has the ball in both hands the entire time. For example, if the shooter catches and holds the ball for a while, jabs a few times, and then goes into their shooting motion, this frame would be multiple seconds before the shooting motion begins.


first_ball_in_hands_wall_clock ​

Type: string

UTC timestamp of the above frame


min_ball_height_he_frame ​

Type: integer

Frame where ball is at lowest height before upward motion into shot


min_ball_height_wall_clock ​

Type: string

UTC timestamp of the above frame


min_hips_height_he_frame ​

Type: integer

Frame where mid hips are at lowest height before upward motion. null if no minimum hip height before both feet are off the ground (e.g. catch and shoot in midair)


min_hips_height_wall_clock ​

Type: string

UTC timestamp of the above frame

Jump Timing ​

last_left_foot_on_floor_he_frame ​

Type: integer

Frame when left foot leaves the floor. null if player didn't jump


last_left_foot_on_floor_wall_clock ​

Type: string

UTC timestamp of the above frame. null if player didn't jump


last_right_foot_on_floor_he_frame ​

Type: integer

Frame when right foot leaves the floor. null if player didn't jump


last_right_foot_on_floor_wall_clock ​

Type: string

UTC timestamp of the above frame. null if player didn't jump


last_either_foot_on_floor_he_frame ​

Type: integer

Last frame where either foot is on floor (i.e. the frame right before they are completely in the air). null if player didn't jump


last_either_foot_on_floor_wall_clock ​

Type: string

UTC timestamp of the above frame. null if player didn't jump


jump_end_he_frame ​

Type: integer

First frame where at least one foot is back on ground after jump. null if player didn't jump


jump_end_wall_clock ​

Type: string

UTC timestamp of the above frame. null if player didn't jump

Release ​

set_point_he_frame ​

Type: integer

Our estimate for the "set point" of the shot. We define this as the point in which the ball is furthest back away from the rim before it starts going forward towards the rim.


set_point_wall_clock ​

Type: string

UTC timestamp of the above frame


last_ball_in_hands_he_frame ​

Type: integer

Our estimate for the "release point" of the shot. This is the first frame where we are confident the ball is not touching either hand.


last_ball_in_hands_wall_clock ​

Type: string

UTC timestamp of the above frame


first_right_wrist_below_eye_after_release_he_frame ​

Type: integer

First frame where right wrist drops below eye level after release


first_right_wrist_below_eye_after_release_wall_clock ​

Type: string

UTC timestamp of the above frame


first_left_wrist_below_eye_after_release_he_frame ​

Type: integer

First frame where left wrist drops below eye level after release


first_left_wrist_below_eye_after_release_wall_clock ​

Type: string

UTC timestamp of the above frame


Basket Entry ​

The goal of the basket entry checkpoint is to identify where the ball "lands" for a shot relative to the height of the rim, so that you can see whether players are shooting short/long or left/right.

basket_entry_he_frame ​

Type: integer

The frame where we estimate the ball enters the basket, i.e. when, after the peak of the shot arc, it gets to a height that if it were in a spot to go into the basket that the bottom of the ball would be below the height of the rim.

  • If the ball is over the rim, this will be the frame in which the ball contacts the rim.
  • If the ball goes through the basket but hits the back of the rim, this will still be the first frame in which the bottom of the ball is below rim height.
  • If the ball airballs/is blocked, it will still be the first frame after the peak of the shot where the ball is below the height where it would have gone in the basket had it been in the right spot.
  • If the ball hits the backboard first, it will still be the frame where the ball reaches the appropriate height.

basket_entry_wall_clock ​

Type: string

UTC timestamp of the basket_entry_he_frame.


basket_entry_depth ​

Type: float | Unit: inches

How many inches forward/back the center of the ball was from the center of the rim at the basket_entry_he_frame, from the perspective of the shooter. Positive numbers mean the ball was long, negative means short. We determine the "perspective of the shooter" by essentially drawing a line from the ball at release to the center of the rim.


basket_entry_left_right ​

Type: float | Unit: inches

How many inches left/right the center of the ball was from the center of the rim at the basket_entry_he_frame, from the perspective of the shooter. Positive numbers mean the ball was right, negative means left. We determine the "perspective of the shooter" by essentially drawing a line from the ball at release to the center of the rim.


basket_entry_location_relative_to_hoop_center_x ​

Type: float | Unit: inches

The x coordinate of the center of the ball at the basket_entry_he_frame if you imagine the center of the hoop as the origin, i.e. coordinate (0,0).


basket_entry_location_relative_to_hoop_center_y ​

Type: float | Unit: inches

The y coordinate of the center of the ball at the basket_entry_he_frame if you imagine the center of the hoop as the origin, i.e. coordinate (0,0).


basket_entry_distance_to_center_of_rim_2d ​

Type: float | Unit: inches

The distance, ignoring the height of the ball, from the center of the rim at the basket_entry_he_frame. In other words, imagine looking at the hoop from straight above and putting a dot where the center of the ball is at the basket_entry_he_frame. The distance from that dot to the center of the rim is the basket_entry_distance_to_center_of_rim_2d.


basket_entry_angle ​

Type: float | Unit: degrees

The angle formed between the ball at the basket_entry_he_frame, the ball 1/10th of a second prior, and the horizontal plane of the ball at the basket_entry_he_frame. The ball dropping straight down into the hoop from above would be a 90 degree angle, coming in completely flat in a straight line parallel to the floor would be a 0 degree angle.


basket_entry_speed_inches_per_sec ​

Type: float | Unit: in/sec

The speed of the ball over the 1/10th of a second prior to the basket_entry_he_frame, measured in inches per second. This is calculated by measuring the distance traveled by the ball in that time and multiplying by 10 to scale it to distance per second.


Shot Mechanics ​

General Metrics ​

hand_closest_to_ball_on_release ​

Type: string

Whether the left or right hand is closer to the center of the ball at the last_ball_in_hands_he_frame. This is almost always the shooting hand of the shooter, so it is a good way to filter these metrics based on the shooter’s handedness.


release_angle ​

Type: float | Unit: degrees

The angle the ball is released at from the shooter's hands, in degrees. 90 degrees would be straight up in the air, 0 degrees would be in a straight line parallel to the ground. This is calculated between the last_ball_in_hands_he_frame and 1/6th of a second later. null for blocked shots.

Ball Position ​

min_ball_height_relative_to_hips_in ​

Type: float | Unit: inches

How many inches above the shooter's mid hip joint the ball is at the min_ball_height_he_frame, i.e. when the ball is at its lowest point before the upward motion into the shot.


ball_release_height_in ​

Type: float | Unit: inches

Ball height above ground at release


release_height_above_nose_in ​

Type: float | Unit: inches

Ball height above shooter's nose at release


set_point_height_in ​

Type: float | Unit: inches

Ball height above ground at set point


set_point_height_above_nose_in ​

Type: float | Unit: inches

Ball height above shooter's nose at set point


ball_height_relative_to_neck_at_min_hips_in ​

Type: float | Unit: inches

How many inches the ball is above the neck at the min_hips_height_he_frame, when the hips are at their lowest point before the upward motion into the shot.


release_height_above_min_ball_height_in ​

Type: float | Unit: inches

How many inches the ball is released above the height of the ball at the min_ball_height_he_frame, i.e. when the ball is at its lowest point before the upward motion into the shot.


set_height_above_min_ball_height_in ​

Type: float | Unit: inches

How much higher the ball is at the set_point_he_frame vs. the min_ball_height_he_frame.

Ball Position (Side to Side) ​

set_point_ball_position_side_to_side_in ​

Type: float | Unit: inches

How many inches the ball is to the left or right of the nose at the set_point_he_frame. Positive values are to the left, negative values to the right.


min_ball_height_ball_position_side_to_side_in ​

Type: float | Unit: inches

How many inches the ball is to the left or right of the nose at the min_ball_height_he_frame. Positive values are to the left, negative values to the right.


release_point_ball_position_side_to_side_in ​

Type: float | Unit: inches

How many inches the ball is to the left or right of the nose at the last_ball_in_hands_he_frame. Positive values are to the left, negative values to the right.

Ball Position (Forward to Back) ​

set_point_ball_position_forward_to_back_in ​

Type: float | Unit: inches

Ball position in front of nose at set point


min_ball_height_ball_position_forward_to_back_in ​

Type: float | Unit: inches

Ball position in front of nose at min ball height


release_point_ball_position_forward_to_back_in ​

Type: float | Unit: inches

Ball position in front of nose at release

Shot Distance ​

ball_rim_distance_at_release_in ​

Type: float | Unit: inches

How many inches the center of the ball was from the center of the rim at the last_ball_in_hands_he_frame.

Ball Velocity ​

ball_velocity_min_ball_to_set_inches_per_sec ​

Type: float | Unit: in/sec

How many inches the ball traveled from the min_ball_height_he_frame to the set_point_he_frame divided by how many seconds elapsed in that time.


ball_velocity_set_to_release_inches_per_sec ​

Type: float | Unit: in/sec

How many inches the ball traveled from the set_point_he_frame to the last_ball_in_hands_he_frame divided by how many seconds elapsed in that time.


ball_velocity_after_release_inches_per_sec ​

Type: float | Unit: in/sec

How many inches the ball traveled from the last_ball_in_hands_he_frame to 1/6th of a second later divided by how many seconds elapsed in that time. null if the shot is blocked.


Shot Timing ​

release_relative_to_jump_sec ​

Type: float | Unit: seconds

Time from feet leaving floor to ball release. null if player didn't jump


set_relative_to_jump_sec ​

Type: float | Unit: seconds

Time from feet leaving floor to set point. null if player didn't jump


set_to_release_sec ​

Type: float | Unit: seconds

Duration from set point to release


ball_in_hands_sec ​

Type: float | Unit: seconds

Duration from first ball in hands to release


ball_in_hands_to_min_hips_sec ​

Type: float | Unit: seconds

Duration from first ball in hands to min hips


release_relative_to_jump_peak_timing ​

Type: float | Unit: seconds

Time from release to peak of jump. Negative = released on the way down. null if player didn't jump


shooting_wrist_above_eye_after_release_sec ​

Type: float | Unit: seconds

How many seconds the shooting hand remained above the shooter's eye level after the last_ball_in_hands_he_frame. This can help with measuring a player holding their follow through.


non_shooting_wrist_above_eye_after_release_sec ​

Type: float | Unit: seconds

How many seconds the non-shooting hand (aka guide hand) remained above the shooter's eye level after the last_ball_in_hands_he_frame.


Joint Angles ​

Shoulder Tilt ​

vertical_shoulder_tilt_at_min_hips ​

Type: float | Unit: degrees

A measurement of how tilted to the right or left the shoulders are at the min_hips_height_he_frame. 0 degrees means parallel to the ground, 90 degrees would mean the shoulders are stacked vertically, one on top of the other (i.e. the player is sideways in the air). Negative values mean the right shoulder is higher than the left, positive values mean the left shoulder is higher than the right.

Hip Facing (relative to rim) ​

0° = facing rim, 90° = facing left of rim, -90° = facing right of rim.

hip_facing_angle_relative_to_rim_at_first_ball_in_hands ​

Type: float | Unit: degrees

Hip angle at first ball in hands


hip_facing_angle_relative_to_rim_at_min_hips ​

Type: float | Unit: degrees

Hip angle at min hips


hip_facing_angle_relative_to_rim_at_jump_start ​

Type: float | Unit: degrees

Hip angle at jump start. null if player didn't jump


hip_facing_angle_relative_to_rim_at_release ​

Type: float | Unit: degrees

Hip angle at release


hip_facing_angle_relative_to_rim_at_jump_landing ​

Type: float | Unit: degrees

Hip angle at jump landing. null if player didn't jump

Hip Turn ​

hip_turn_from_first_ball_in_hands_to_jump_landing ​

Type: float | Unit: degrees

The difference in the hip facing angle from the first_ball_in_hands_he_frame to the jump_end_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right. null if player didn't jump

NOTE

This will usually be meaningful only for shots where the player went into a shooting motion right after putting both hands on the ball. For those shots, this will show you the full extent of the hip turn from the beginning of the shooting motion through the landing. Otherwise, there may be a significant amount of time between having both hands on the ball and going into the shooting motion and this measurement is unlikely to tell you much in that case.


hip_turn_from_min_hips_to_jump_landing ​

Type: float | Unit: degrees

The difference in the hip facing angle from the min_hips_height_he_frame to the jump_end_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right. null if player didn't jump


hip_turn_from_jump_start_to_jump_landing ​

Type: float | Unit: degrees

The difference in the hip facing angle from the last_either_foot_on_floor_he_frame to the jump_end_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right. null if player didn't jump


hip_turn_from_min_hips_to_release ​

Type: float | Unit: degrees

The difference in the hip facing angle from the min_hips_height_he_frame to the last_ball_in_hands_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right.

Shoulder Facing (relative to rim) ​

Same convention as hip facing.

shoulder_facing_angle_relative_to_rim_at_first_ball_in_hands ​

Type: float | Unit: degrees

Shoulder angle at first ball in hands


shoulder_facing_angle_relative_to_rim_at_min_hips ​

Type: float | Unit: degrees

Shoulder angle at min hips


shoulder_facing_angle_relative_to_rim_at_jump_start ​

Type: float | Unit: degrees

Shoulder angle at jump start. null if player didn't jump


shoulder_facing_angle_relative_to_rim_at_release ​

Type: float | Unit: degrees

Shoulder angle at release


shoulder_facing_angle_relative_to_rim_at_jump_landing ​

Type: float | Unit: degrees

Shoulder angle at jump landing. null if player didn't jump

Shoulder Turn ​

shoulder_turn_from_first_ball_in_hands_to_jump_landing ​

Type: float | Unit: degrees

The difference in the shoulder facing angle from the first_ball_in_hands_he_frame to the jump_end_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right. null if player didn't jump

NOTE

This will usually be meaningful only for shots where the player went into a shooting motion right after putting both hands on the ball. For those shots, this will show you the full extent of the shoulder turn from the beginning of the shooting motion through the landing. Otherwise, there may be a significant amount of time between having both hands on the ball and going into the shooting motion and this measurement is unlikely to tell you much in that case.


shoulder_turn_from_min_hips_to_jump_landing ​

Type: float | Unit: degrees

The difference in the shoulder facing angle from the min_hips_height_he_frame to the jump_end_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right. null if player didn't jump


shoulder_turn_from_jump_start_to_jump_landing ​

Type: float | Unit: degrees

The difference in the shoulder facing angle from the last_either_foot_on_floor_he_frame to the jump_end_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right. null if player didn't jump


shoulder_turn_from_min_hips_to_release ​

Type: float | Unit: degrees

The difference in the shoulder facing angle from the min_hips_height_he_frame to the last_ball_in_hands_he_frame. A positive number means the player rotated to the left, a negative number means they rotated to the right.

Knee Bend ​

Angle formed by hip, knee, and ankle.

Knee bend angle illustration

left_knee_bend_angle_at_min_hips ​

Type: float | Unit: degrees

Left knee angle at min hips


left_knee_bend_angle_at_min_ball ​

Type: float | Unit: degrees

Left knee angle at min ball height


right_knee_bend_angle_at_min_hips ​

Type: float | Unit: degrees

Right knee angle at min hips


right_knee_bend_angle_at_min_ball ​

Type: float | Unit: degrees

Right knee angle at min ball height

Hip Bend ​

Angle formed by shoulder, hip, and knee.

Hip bend angle illustration

left_hip_bend_angle_at_min_hips ​

Type: float | Unit: degrees

Left hip angle at min hips


left_hip_bend_angle_at_min_ball ​

Type: float | Unit: degrees

Left hip angle at min ball height


right_hip_bend_angle_at_min_hips ​

Type: float | Unit: degrees

Right hip angle at min hips


right_hip_bend_angle_at_min_ball ​

Type: float | Unit: degrees

Right hip angle at min ball height


Foot Position at Jump Start ​

Ankle Distance ​

NOTE

All fields in this section are null when no jump was detected for the shot (e.g., set shots, or tracking gaps during the shot attempt).

ankle_distance_2d_at_jump_start_inches ​

Type: float | Unit: inches

The two dimensional distance between the left ankle joint at the last_left_foot_on_floor_he_frame and the right ankle joint at the last_right_foot_on_floor_he_frame. Imagine looking at the player from overhead and seeing how far apart the feet are as each leaves the ground. null if no jump detected.

Ankle distance 2D illustration

left_ankle_distance_side_to_side_at_jump_start_inches ​

Type: float | Unit: inches

How many inches to the left side of the middle of the hips is the shooter's left ankle as the left foot leaves the ground. To measure this, imagine a graph based on the way the hips are facing, with the center (at 0, 0) being the middle of the hips, the vertical axis being forward-back and the horizontal axis being side-to-side. This field shows the distance on the side-to-side dimension between the ankle point and the middle of the hips. null if no shot jump detected.

Ankle distance side to side illustration

right_ankle_distance_side_to_side_at_jump_start_inches ​

Type: float | Unit: inches

How many inches to the right side of the middle of the hips is the shooter's right ankle as the right foot leaves the ground. To measure this, imagine a graph based on the way the hips are facing, with the center (at 0, 0) being the middle of the hips, the vertical axis being forward-back and the horizontal axis being side-to-side. This field shows the distance on the side-to-side dimension between the ankle point and the middle of the hips. null if no shot jump detected.


left_ankle_vs_hip_side_to_side_at_jump_start_inches ​

Type: float | Unit: inches

How many inches to the outside of the left hip is the left ankle. 0 would mean directly in line with the hip on that side of the body, negative numbers show the foot is inside the hip. null if no shot jump detected.

Ankle vs hip side to side illustration

right_ankle_vs_hip_side_to_side_at_jump_start_inches ​

Type: float | Unit: inches

How many inches to the outside of the right hip is the right ankle. 0 would mean directly in line with the hip on that side of the body, negative numbers show the foot is inside the hip. null if no shot jump detected.


right_ankle_distance_forward_back_at_jump_start_inches ​

Type: float | Unit: inches

How many inches forward or back of the hips is the shooter's right ankle as the right foot leaves the ground. To measure this, imagine a graph based on the way the hips are facing, with the center (at 0, 0) being the middle of the hips, the vertical axis being forward-back and the horizontal axis being side-to-side. This field shows the distance on the vertical axis between the ankle point and the middle of the hips. null if no shot jump detected.


left_ankle_distance_forward_back_at_jump_start_inches ​

Type: float | Unit: inches

How many inches forward or back of the hips is the shooter's left ankle as the left foot leaves the ground. To measure this, imagine a graph based on the way the hips are facing, with the center (at 0, 0) being the middle of the hips, the vertical axis being forward-back and the horizontal axis being side-to-side. This field shows the distance on the vertical axis between the ankle point and the middle of the hips. null if no shot jump detected.

Foot Angle ​

right_foot_angle_to_hoop_at_jump_start ​

Type: float | Unit: degrees

The angle formed by the center of the rim, the heel of the right foot, and the midpoint of the big and little toes. If the foot is pointing straight at the rim, this would be 0 degrees; to the left side of the hoop, this angle will be negative; to the right will be positive. null if no shot jump detected.

Foot angle to hoop illustration

left_foot_angle_to_hoop_at_jump_start ​

Type: float | Unit: degrees

The angle formed by the center of the rim, the heel of the left foot, and the midpoint of the big and little toes. If the foot is pointing straight at the rim, this would be 0 degrees; to the left side of the hoop, this angle will be negative; to the right will be positive. null if no shot jump detected.

Heel and Toe Distance ​

heel_distance_at_jump_start_inches ​

Type: float | Unit: inches

How far apart are the shooter's heels, measured as each foot leaves the floor. This is measured in two dimensions, i.e. it ignores a difference in height. null if no shot jump detected.

Heel distance illustration

mid_toe_distance_at_jump_start_inches ​

Type: float | Unit: inches

How far apart is the midpoint of the shooter's toes on each foot, measured as each foot leaves the floor. This is measured in two dimensions, i.e. it ignores a difference in height. null if no shot jump detected.


mid_toe_heel_dist_difference_at_jump_start_inches ​

Type: float | Unit: inches

Toe distance minus heel distance. Positive = feet turned out, negative = turned in. null if no shot jump detected.

Toe heel distance difference illustration

Paul George's toes are turned in on this shot. The value of this field for this shot is -6.6.


Shooting Arm Position ​

At Set Point ​

shooting_wrist_elbow_shoulder_angle_at_set_point ​

Type: float | Unit: degrees

Angle formed by wrist, elbow, shoulder (from the side).

Wrist elbow shoulder angle illustration

shooting_elbow_shoulder_hip_angle_at_set_point ​

Type: float | Unit: degrees

Angle formed by elbow, shoulder, hip.

Elbow shoulder hip angle illustration

shooting_elbow_shoulder_hoop_angle_at_set_point ​

Type: float | Unit: degrees

Measures where the elbow is pointing relative to the hoop. This tells you the angle formed by the shooting elbow, shooting shoulder, and hoop at the set point, where 0 degrees would be aiming straight at the rim, negative is to the left of the rim and positive to the right.

Elbow shoulder hoop angle illustration

shooting_elbow_flare_angle_at_set_point ​

Type: float | Unit: degrees

How flared out or in is the shooting elbow relative to the shoulders at the set point. 0 degrees would mean the elbow is directly in line with the way the shoulders are pointing, a positive number means it's flared out away from the center of the body (regardless of whether it's the left or right arm), a negative number would mean it's pointed in toward the center of the body.

Elbow/Wrist Relative to Ball ​

elbow_relative_to_ball_at_set_forward_back_inches ​

Type: float | Unit: inches

Viewed from above, how far in front of or behind the center of the ball is the elbow at the set point. The forward-back axis here is the line from the center of the ball to the center of the rim.


elbow_relative_to_ball_at_set_side_to_side_inches ​

Type: float | Unit: inches

Viewed from above, how far to the left or right of the center of the ball is the elbow at the set point. The side-to-side axis here is the line perpendicular to the line from the center of the ball to the center of the rim. Negative is to the left of the ball, positive is to the right.


elbow_relative_to_ball_at_release_forward_back_inches ​

Type: float | Unit: inches

Viewed from above, how far in front of or behind the center of the ball is the elbow at the release point. The forward-back axis here is the line from the center of the ball to the center of the rim.


elbow_relative_to_ball_at_release_side_to_side_inches ​

Type: float | Unit: inches

Viewed from above, how far to the left or right of the center of the ball is the elbow at the release point. The side-to-side axis here is the line perpendicular to the line from the center of the ball to the center of the rim. Negative is to the left of the ball, positive is to the right.


wrist_relative_to_ball_at_set_forward_back_inches ​

Type: float | Unit: inches

Viewed from above, how far in front of or behind the center of the ball is the wrist at the set point. The forward-back axis here is the line from the center of the ball to the center of the rim.


wrist_relative_to_ball_at_set_side_to_side_inches ​

Type: float | Unit: inches

Viewed from above, how far to the left or right of the center of the ball is the wrist at the set point. The side-to-side axis here is the line perpendicular to the line from the center of the ball to the center of the rim. Negative is to the left of the ball, positive is to the right.


wrist_relative_to_ball_at_release_forward_back_inches ​

Type: float | Unit: inches

Viewed from above, how far in front of or behind the center of the ball is the wrist at the release point. The forward-back axis here is the line from the center of the ball to the center of the rim.


wrist_relative_to_ball_at_release_side_to_side_inches ​

Type: float | Unit: inches

Viewed from above, how far to the left or right of the center of the ball is the wrist at the release point. The side-to-side axis here is the line perpendicular to the line from the center of the ball to the center of the rim. Negative is to the left of the ball, positive is to the right.


Balance ​

is_off_balance ​

Type: boolean

true if we estimate that the shooter would be judged as off balance when they release the ball, false otherwise. We measure this by looking at whether the player is fading any direction in the air at release, whether they jump a far distance in a direction away from the rim, and what their balance and feet are like when they land.

NOTE

This is a more subjective marking than many of the others we've produced data on, but we think it's valuable. We also include all of the inputs we've used for this as separate fields below if you would like to develop your own estimate of balance or simply use each individual field as its own input in a larger model.


neck_relative_to_feet_midpoint_at_release_xy_distance_in ​

Type: float | Unit: inches

Imagine looking at a player from straight overhead as they release their shot. This field measures the two-dimensional distance (ignoring the height distance) between the player's neck and the point in between their left and right ankles. A player standing straight up and down would have their neck right over their ankles (and a distance close to 0), while a player leaning back would have their neck much further from their ankles.


neck_relative_to_knee_midpoint_at_release_xy_distance_in ​

Type: float | Unit: inches

Imagine looking at a player from straight overhead as they release their shot. This field measures the left-to-right distance (i.e. ignoring the height distance) between the player's neck and the point in between their knees. A player standing straight up and down would have their neck right over their knees (and a distance close to 0), while a player leaning back would have their neck much further from their knees.


neck_relative_to_mid_hip_at_release_xy_distance_in ​

Type: float | Unit: inches

Imagine looking at a player from straight overhead as they release their shot. This field measures the two-dimensional distance (ignoring the height distance) between the player's neck and the point in between their left and right hips. A player standing straight up and down would have their neck right over their hips (and a distance close to 0), while a player leaning back would have their neck much further from their hips.


jump_distance_not_toward_rim_in ​

Type: float | Unit: inches

How many inches the player's jump for the shot took them in a direction that was not toward the rim. null if player didn't jump


landing_ankle_height_difference_in ​

Type: float | Unit: inches

When the player landed from their jump for their shot, how many inches different was the height of their ankles from each other. A player who is off balance when shooting is much more likely to land on one foot and kick the other foot out for balance. null if player didn't jump


Shot Jump ​

These fields relate to the player's jump into the shot attempt.

NOTE

All fields in this section are null when no jump was detected for the shot (e.g., set shots, or tracking gaps during the shot attempt).

shot_jump_max_hip_height_vs_standing_hip_height_diff_in ​

Type: float | Unit: inches

The maximum number of inches the player got their hips off the ground during the jump above where we estimate they would have been if they were standing on the ground straight up. A value of 12, for example, means the player's mid hip is 12 inches higher in the air than our estimate of their standing mid hip height during this jump. null if no jump was detected for the shot.


shot_jump_distance_mid_hips_in ​

Type: float | Unit: inches

The two-dimensional distance covered by the player's jump, based on where their mid hip is at the start and end of the jump. Imagine putting a dot on the floor where the mid hip is when they start their jump and where it is when they land, and then measuring the distance with a tape measure. null if no jump was detected for the shot.


shot_jump_direction_mid_hips ​

Type: float | Unit: degrees

The angle formed by the rim, the mid hip location at the start of the jump, and the mid hip location at the end of the jump. 0 degrees would be directly toward the rim, 180 would be directly away. Any negative numbers mean the player went to the left on their jump relative to the rim, positive means to the right. null if no jump was detected for the shot.


shot_jump_distance_ankles_in ​

Type: float | Unit: inches

The two-dimensional distance covered by the player's jump, based on where the midpoint of their ankles is at the start and end of the jump. Imagine drawing a line between the two ankles and putting a dot on the floor at the middle of that line when they start their jump and where it is when they land, and then measuring the distance with a tape measure. null if no jump was detected for the shot.


shot_jump_direction_ankles ​

Type: float | Unit: degrees

The angle formed by the rim, the midpoint of the ankles at the start of the jump, and the midpoint of the ankles at the end of the jump. 0 degrees would be directly toward the rim, 180 would be directly away. Any negative numbers mean the player went to the left on their jump relative to the rim, positive means to the right. null if no jump was detected for the shot.


jump_shot_footwork_type ​

Type: string

Classifies the type of footwork the player used to get into their shot jump.

Options:

  • hop - the player lifts both feet off the ground and lands with them both very close to the same time before jumping for their shot
  • left_right - the player steps into the shot, first with their left foot, then with their right
  • right_left - the player steps into the shot, first with their right foot, then with their left
  • plant_foot_left - the player has their left foot planted on the ground for a reasonable period of time and moves their right foot before jumping to shoot
  • plant_foot_right - the player has their right foot planted on the ground for a reasonable period of time and moves their left foot before jumping to shoot
  • both_planted - both feet are planted on the ground for a reasonable period of time before jumping

  • other - we couldn't confidently classify the footwork into one of the categories above (this is rare)