Ball Phase
A continuous span describing whether the ball is in play, out of bounds, or in a stoppage. Carries a phase enum: in_play, out_of_bounds, in_bounds_stoppage, half_kickoff.
Category: Structure
Properties
| Property | Type | Description | Values |
|---|---|---|---|
phase |
str |
Ball-phase span label. | in_play, out_of_bounds, in_bounds_stoppage, half_kickoff |
Property Values
phase
A continuous span describing whether the ball is in play, out of bounds, or in a stoppage. Carries a phase enum: in_play, out_of_bounds, in_bounds_stoppage, half_kickoff.
| Value | Description |
|---|---|
in_play |
Active gameplay. The ball is in bounds and the referee has not stopped play. |
out_of_bounds |
Between the ball crossing a touchline or goal-line and the restart. |
in_bounds_stoppage |
Play is paused but the ball is still on-pitch (e.g. foul, injury). Distinct from out_of_bounds. |
half_kickoff |
Single-frame kickoff anchor at the start of a period. |
Accuracy
Engine output scored against ground truth on held-out evaluation games, metric frame_macro_f1 (per-frame, macro-averaged over classes), measured 2026-10-18; per-match confidence is the separate confidence_event property.
| Ground-truth source | Accuracy | Macro F1 | Frames |
|---|---|---|---|
| World Cup Broadcast | 0.92 | 0.84 | 466,231 |
| Senior broadcast pool | 0.93 | 0.72 | 608,382 |
| Non-broadcast youth pool | 0.90 | 0.71 | 733,307 |
| Senior tactical-camera pool | 0.88 | 0.74 | 709,008 |
Querying
Request body for Query Intervals.
{
"filters": [
{
"type": "event_property",
"event_type": "ball_phase",
"properties": []
}
]
}
properties constrains the metadata fields listed above. See Event Property Filter.
Response
Shape of this event type in the Events endpoint response.
{
"event_id": "06a0765b-0005-7005-8000-000000000005",
"start": 125.5,
"end": 135.5,
"label": "in_play",
"event_type": "ball_phase",
"team_id": null,
"timeline_confidence": null
}
label is the phase value, e.g. "in_play" or "out_of_bounds".