Skip to content

Carry

A player moving with the ball at their feet while keeping control of it. The span covers consecutive frames where the same player is the active possessor and the ball stays bound to them. This is a carry in the standard sense (the ball is progressed under control); it is not a claim that an opponent was beaten one on one.

Category: Ball action

Properties

Property Type Description Values
body_part str Which body part contacted the ball. unknown is the engine-side placeholder for unmeasured rows. head, both_hands, unknown
confidence_detection float32 Detection confidence [0,1].
confidence_event float32 Event [0,1]. Model confidence for this event class.
confidence_identity float32 Identity confidence [0,1]. Null for non-actor events and for rows where the jersey/player_id was not resolved (team-only actor rows have this null).
direction_deg int16 Heading of the carry start → end, degrees in [-180, 180], in the raw pitch frame (0 points toward increasing x). Not attack-relative; rotate with the game's left_start_team to make it so. Null when start/end xy are unavailable.
length_cm int32 Euclidean distance start → target, in cm (span events).
min_opp_dist_m float32 Closest the carrier came to any opponent over the carry span, in metres. Low values indicate the carrier engaged a defender (a take-on). Null when the carrier's identity is unresolved or no opponent was observed on-pitch during the span.
path_length_cm int32 Distance travelled along the carry path, in cm (sum of the actor's frame-to-frame movement over the span). At least length_cm when tracking is dense (a weaving carry exceeds its straight-line distance); can fall below it where the track has gaps, since it sums only observed movement. Null when the actor has no resolved identity or no tracked path over the span.
x_target int16 Target x-coordinate in cm (corner-origin, same convention as top-level x/y).
y_target int16 Target y-coordinate in cm (corner-origin, same convention as top-level x/y).

Property Values

body_part

Which body part contacted the ball.

Value Description
head Headed contact. Includes header, flick-on, headed pass, headed clearance.
both_hands Two-handed throw. Used for throw-in restarts (paired with set_piece=throw_in).
unknown Engine-side placeholder for rows where body part was not measured. Distinct from a positive identification of a non-standard body part.

Accuracy

Engine output scored against ground truth on held-out evaluation games, metric event_f1@13f (per-event match within ±0.5s), measured 2026-08-30; per-match confidence is the separate confidence_event property.

Ground-truth source Recall Precision F1 GT events
PCBAS broadcast benchmark 0.82 0.71 0.76 3,262
World Cup Broadcast 0.81 0.67 0.73 2,836

Querying

Request body for Query Intervals.

{
  "filters": [
    {
      "type": "event_property",
      "event_type": "carry",
      "properties": []
    }
  ]
}

properties constrains the metadata fields listed above, players and teams restrict the actor. See Event Property Filter.

Response

Shape of this event type in the Events endpoint response.

{
  "start": 125.5,
  "end": 135.5,
  "label": "carry",
  "event_type": "carry"
}