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
Held-out model quality — how well the engine reproduces ground truth on frozen
evaluation games it was never trained on. This is not per-match confidence (each
event row also carries its own confidence_event). Metric: frame_macro_f1
(per-frame, macro-averaged over classes), measured 2026-07-10.
| Ground-truth source | Accuracy | Macro F1 | Frames |
|---|---|---|---|
| World Cup Broadcast | 0.89 | 0.82 | 466,231 |
| Senior broadcast pool | 0.91 | 0.65 | 608,382 |
| Non-broadcast youth pool | 0.87 | 0.64 | 733,307 |
| Senior tactical-camera pool | 0.82 | 0.58 | 710,842 |
Querying
{
"filters": [
{
"type": "event_property",
"event_type": "ball_phase",
"properties": [
{ "field": "phase", "eq": "in_play" }
]
}
]
}
Response
Events of this type appear in the Events endpoint response:
{
"start": 125.5,
"end": 135.5,
"label": "in_play",
"event_type": "ball_phase"
}
The label is the phase value (e.g., "in_play", "out_of_bounds").