Skip to content

Pass

A deliberate attempt to deliver the ball to a teammate. The unified pass event covers open-play passes, crosses, throw-ins, kickoffs, set-piece restarts played as passes, and headed passes. All decomposed via two orthogonal metadata axes (set_piece and pass_type) plus body_part.

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]. Not currently populated.
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).
length_cm int32 Euclidean distance start → target, in cm (span events).
pass_result str On pass rows: complete (next holder is a teammate), incomplete (next holder is an opponent) or out (play stopped before anyone controlled the ball). Null when undeterminable. Not currently populated. complete, incomplete, out
pass_type str Stylistic flavour for a pass event (e.g. cross). null for plain passes. cross
receiver_id str On pass rows: 'team-jersey' id of the next player to control the ball (the receiver, or the intercepting opponent). Null when the next holder's identity is unresolved or no holder is observed within the receive window.
receiver_team int8 On pass rows: harmonised team (0 or 1) of the next holder. Set even when receiver_id is null (team-only identity). Null when no holder is observed.
set_piece str Restart context for a pass event. open_play is the in-play default. open_play, throw_in, kick_off, corner_kick, free_kick, goal_kick
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.

pass_result

How a pass ended: complete when the next player to control the ball is a teammate of the passer, incomplete when it is an opponent, out when play stopped before anyone controlled it. Reserved: not emitted today.

Value Description
complete The next player to control the ball is a teammate of the passer.
incomplete The next player to control the ball is an opponent (interception / failed pass).
out Play stopped (ball out of bounds or an in-bounds stoppage) before anyone controlled the ball.

pass_type

Stylistic flavour of a pass event. Null for plain passes. Only set when a positive style signal fires.

Value Description
cross Wide delivery into the box. Set independently of set_piece and body_part (e.g. an open-play headed cross is set_piece=open_play, pass_type=cross, body_part=head).

set_piece

Restart context for a pass event. Records how the pass entered play.

Value Description
open_play In-play default. Always set on pass rows (not omitted) so consumers can distinguish "in play" from "field not declared".
throw_in Two-handed touchline restart after the ball leaves the sideline. Pair with body_part=both_hands.
kick_off Centre-circle restart at the start of a half or after a goal. Single-frame anchor.
corner_kick Restart from the corner arc after the defending team puts the ball over its own goal line.
free_kick Restart awarded after a foul or other in-play stoppage, taken from the spot of the offence.
goal_kick Restart from the six-yard box after the attacking team puts the ball over the byline.

Accuracy

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

Ground-truth source Recall Precision F1 GT events
PCBAS broadcast benchmark 0.88 0.83 0.85 4,458
World Cup Broadcast 0.80 0.86 0.83 3,059

Player attribution

Among correctly detected actions: the share credited to a player (coverage) and, of those, the share credited to the right player. Metric credited_player_accuracy@13f. Measured on GT-matched detections, so it does not cover players the engine never named.

Ground-truth source Coverage Accuracy (player) GT event-players
PCBAS broadcast benchmark 0.91 0.95 3,920
World Cup Broadcast 0.95 0.98 1,959

Querying

Request body for Query Intervals.

{
  "filters": [
    {
      "type": "event_property",
      "event_type": "pass",
      "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.

{
  "event_id": "06a0765b-0007-7007-8000-000000000007",
  "start": 617.92,
  "end": 618.72,
  "label": "pass",
  "event_type": "pass",
  "team_id": "team_0",
  "timeline_confidence": null
}

A span: end is at or after start. team_id is the actor's team. Null when the team is unknown.