Skip to content

Closeouts

The closeouts section in the markings response contains a row for each closeout we identify in the tracking data.

Overview

A closeout occurs when a defender closes the distance toward an offensive player who is receiving a pass.

We identify a closeout when:

  • A pass is completed to an offensive player
  • A defender moves meaningfully toward the pass receiver as a result of that pass
  • The receiver catches the ball in a position where they could reasonably score or attack (roughly within 35–40 feet of the rim)

We also include:

  • Off-ball screen situations where there is separation between the defender and receiver before the pass, requiring the defender to close distance
  • Bobbled catches where the receiver retains possession despite briefly losing control
  • Hard stunts where a defender covers meaningful ground toward the receiver, even if they don't end up right on the ball

We do not count as closeouts:

  • Handoffs and dribble handoffs — when the separation is created by a screen/handoff action rather than defensive positioning before the pass
  • Catches with back to the basket — when the receiver is facing away from the rim on the catch and doesn't turn to face within about a second (since we view this as not in a position to score)
  • Catches far from the rim — when a player is simply getting open far from scoring range with no immediate threat
  • Incomplete passes and loose balls — when the intended receiver doesn't gain possession (though bobbles that result in retained possession are included)
  • Trivial movements — when a defender barely moves (less than roughly a step) because they're already in position

Sample Response

json
{
  "markings": {
    "closeouts": [
      {
        "ball_handler_id_nba": 1642852,
        "ball_handler_speed_before_touch_inches_per_sec": 58.12,
        "chance_id_ctg": "chance_4c33ded97f95174cc013b446c3981347",
        "closeout_attack_style": "other",
        "closeout_id_ctg": "closeout_a768e79d1936d3f3aef88b58e23472ba",
        "closeout_result": "hold",
        "closeout_stop_frame_distance_in": 117.98,
        "closeout_stop_he_frame": 1475,
        "closeout_stop_hips_angle": 14.38,
        "closeout_stop_hips_facing": "square",
        "closeout_stop_player_angle": -2.65,
        "closeout_stop_wall_clock": "2025-12-23T01:10:59.038+00:00",
        "defender_id_nba": 203076,
        "drive_direction": null,
        "end_game_clock": 694.0,
        "end_he_frame": 1588,
        "end_shot_clock": 13.0,
        "end_wall_clock": "2025-12-23T01:11:00.922+00:00",
        "game_id_nba": "0022500404",
        "hand_up_timing": null,
        "jump_timing": null,
        "passer_id_nba": 1630529,
        "period": 1,
        "receiver_touch_start_he_frame": 1417,
        "region": "middle three",
        "start_distance": 12.08,
        "start_game_clock": 698.0,
        "start_he_frame": 1394,
        "start_shot_clock": 16.0,
        "start_wall_clock": "2025-12-23T01:10:57.688+00:00",
        "touch_distance": 13.72
      }
    ]
  }
}

Fields

Identifiers

game_id_nba

Type: string

NBA game ID


closeout_id_ctg

Type: string

CTG-generated unique closeout ID


chance_id_ctg

Type: string

CTG chance ID


Participants

defender_id_nba

Type: integer

NBA player ID of the defender closing out


ball_handler_id_nba

Type: integer

NBA player ID of the offensive player being closed out to


passer_id_nba

Type: integer

NBA player ID of the player who passed to the ball handler


Timing

Period

period

Type: integer

Period in which the closeout occurred

Start (Closeout Begins)

The closeout start frame is placed when the defender begins moving toward the pass receiver.

start_game_clock

Type: float

Game clock when closeout begins


start_shot_clock

Type: float

Shot clock when closeout begins


start_he_frame

Type: integer

Hawk-Eye frame when closeout begins


start_wall_clock

Type: string

UTC timestamp when closeout begins

End (Closeout Ends)

The closeout end frame is placed when the defender's closeout movement ends — either when the defender stops moving toward the receiver, when the receiver's touch ends, or when the ball/receiver has clearly passed the defender (e.g. on a drive), whichever comes first.

end_game_clock

Type: float

Game clock when closeout ends


end_shot_clock

Type: float

Shot clock when closeout ends


end_he_frame

Type: integer

Hawk-Eye frame when closeout ends


end_wall_clock

Type: string

UTC timestamp when closeout ends


Closeout Details

closeout_stop_he_frame

Type: integer

Hawk-Eye frame when the closeout player either (a) leaves the ground to jump at the end of the closeout or (b) decelerates significantly to stay in front of the offensive player


closeout_stop_wall_clock

Type: string

UTC timestamp corresponding to closeout_stop_he_frame


receiver_touch_start_he_frame

Type: integer

Hawk-Eye frame when the pass receiver's possession touch begins


closeout_result

Type: string

What does the offensive player do after receiving the pass that triggered the closeout?

  • shot - immediately shoots the ball or pump fakes and shoots
  • pass - passes the ball very soon after receiving it without dribbling
  • drive - dribbles toward the basket
  • hold - does not do any of the options above. hold can include dribbling but not doing so in a way designed to attack the basket.

closeout_stop_frame_distance_in

Type: float | Unit: inches

How many inches the mid hip of the defensive player was from the offensive player at the closeout_stop_he_frame


closeout_stop_player_angle

Type: float | Unit: degrees

The angle formed by the defender, the offensive player and the rim at the closeout_stop_he_frame. If these players are in a straight line, the angle would be 0. The angle will be negative when the defender is to the right of the offensive player, as looked at as if you were standing under the basket.


closeout_stop_hips_angle

Type: float | Unit: degrees

The angle formed by the way the defensive player's hips are facing relative to the rim and the offensive player at the closeout_stop_he_frame. 0 degrees means if you draw a line from the rim to the offensive player, the defensive player's hips are parallel with that line — i.e. completely square to the offensive player. A positive angle means the defender has his hips turned to his right, a negative angle means to his left.


closeout_stop_hips_facing

Type: string

A category for how the defender's hips are facing at the closeout_stop_he_frame, attempting to measure whether the defender is forcing no middle, middle, or is square to the offensive player.

  • no_middle - when the defender's hips are facing away from the middle of the court, or the defender is significantly to the side of the offensive player in a way that would encourage a drive away from the middle of the court
  • middle - when the defender's hips are facing toward the middle of the court, or the defender is significantly to the side of the offensive player in a way that would encourage a drive toward the middle of the court
  • square - when the defender's hips and position are not facing either middle or no middle

drive_direction

Type: string

When the closeout_result is drive, does the offensive player drive toward the middle of the floor or away from the middle of the floor (no_middle)? If the closeout_result is not drive, this field will be null.


hand_up_timing

Type: string

When does the defender put his hand up? Options:

  • before_catch - if the hand is up before the offensive player catches the pass
  • before_action - if the hand is up before the player jumps to shoot/passes/drives
  • after_action - if the hand is up after the player jumps to shoot/passes/drives
  • null - if the defender never gets their hand up

jump_timing

Type: string

When does the defender leave his feet? Options:

  • early - if the defender leaves his feet before the offensive player’s action (e.g. bites on a pump fake)
  • normal - if the defender leaves his feet in reaction to the offensive player’s action
  • null - if the defender never jumps

closeout_attack_style

Type: string

Uses the pose data to determine how the offensive player attacked the closeout:

  • catch_to_shoot - caught the pass and immediately got into a shooting position before shooting/making a move
  • catch_to_drive - caught the pass in a position oriented for an immediate drive
  • other - something else

ball_handler_speed_before_touch_inches_per_sec

Type: float | Unit: inches/second

The speed of the offensive player's mid hips in the half second before the touch. The combination of this field and closeout_attack_style could help you identify things like "stampede" catches, for example.


region

Type: string

Court region label for where the ball handler is located at the end of the closeout


start_distance

Type: float

Distance (in feet) between defender and ball handler at start_he_frame


touch_distance

Type: float

Distance (in feet) between defender and ball handler at the receiver’s touch start frame