Common Data Format - Event Data Schema

Type: object

Version 0.3.2

This schema defines the Event Data as described in the Common Data Format paper.

This schema describes a single JSON Object with a JSON Lines file.

Type: object

Type: string

Unique match identifier

Type: object

Type: boolean

Indicates if synced tracking data is available (true) or not (false) for this event


Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

Type: enum (of string)

Must be one of:

  • "pass"
  • "shot"
Type: object

Type: number

Type: number

Type: string
Type: object

If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.

Type: object

Type: const
Specific value: "referee"
Type: object

The following properties are required:

  • official_id

Type: object

Type: object
Type: object

The following properties are required:

  • player_id
  • team_id

Type: object

Type: string

Unique identifier of the event

Type: stringFormat: date-time

Absolute time in UTC of when the event started (e.g., moment the pass is given, the moment the ball leaves the hands on a thrown in)

Type: enum (of string)

Period of the match which can be firsthalf, secondhalf, firsthalfextratime, secondhalfextratime, or shootout

Must be one of:

  • "first_half"
  • "second_half"
  • "first_half_extratime"
  • "second_half_extratime"
  • "shootout"

Type: string

Name of the event type (e.g. shot, pass, referee, defending, goalkeeping, misc etc.)

Type: string or null

Name of the event sub type, which can be for shot - (penaltykick, freekick, cornerkick etc.); pass - (throwin, freekick, cornerkick, goalkick, kickoff etc.); referee - (finalwhistle, foul, caution, offside, substitution, playeron, playeroff. Player on and player off events occur for example when a player has to abandon the game due to a lack of available substitutions, or as a temporary measure after a medical check); defending - (clearance, interception, pressing, block etc.); goalkeeping - (save, saveattempt, claim, etc.); misc - (otherballaction, chancewithoutshot, tackle, etc.)

Type: boolean

Denotes whether the event was successful (true) or not (false)

Type: string

Event outcome options: shot - (successful, saved, blocked, wide, woodwork, owngoal); pass - (e.g. successful, outofplay, intercepted); referee - (start, end, injury, offside, yellowcard, redcard or secondyellowcard); defending - (e.g. clearance, block, interception, pressure); goalkeeping (e.g. save, saveattempt, claim); misc - (e.g. successful, unsuccessful)

Type: string

Unique identifier of the player performing the action. For example, player committing a pass, or making a tackle. Required for all non-referee events. Referee events require event/official_id.

Type: string

Unique team identifier of the player performing the action. Required for all non-referee events. Referee events require event/official_id.

Type: string

Unique identifier of the official performing the action. Mandatory only when type is referee, else use event/playerid and event/teamid

Type: string or null

Unique identifier of the player receiving a pass. Leave null when the event is not a pass or when the pass has no receiver.

Type: string or nullFormat: date-time

Absolute time in UTC of the first moment the ball was received. Leave null when the event is not a pass or when the pass has no receiver.

Type: string or null

Unique team identifier of the player identified by receiver_id, leave null if the event does not end with a known player in possession

Type: number

x location where the action of player_id happened (m).

Type: number

y location where the action of player_id happened (m).

Type: number or null

x location where the action of player_id ended (m), null for single-point events that have no end coordinate.

Type: number or null

y location where the action of player_id ended (m), null for single-point events that have no end coordinate.

Type: enum (of null or string)

Denotes the body part used by player_id, null allowed for events other than pass and shot.

Must be one of:

  • "left_foot"
  • "right_foot"
  • "feet"
  • "head"
  • "hands"
  • "upper_body"
  • "lower_body"
  • "body"
  • "other"
  • null

Type: string

The match clock as a string in format "MM:SS.mm" (i.e. minutes, seconds, milliseconds) (e.g. "92:01.04"). The clock resets to "45:00.00", "90:00.00" or "105:00.00" at the start of "secondhalf", "firsthalfextratime", "secondhalf_extratime", respectively.

Type: object

Type: number

Calculated xG value between [0,1]

Type: number

Calculated post-shot xG value between [0,1]

Type: number

Calculated expected pass value between [0,1]

Type: number

Expected possession value between [0,1]

Type: object

Type: boolean

Was this event reviewed by the video assistant referee (true) or not (false)

Type: boolean

Was the on-field ruling confirmed (true) or overturned (false)

Type: object

Type: integer

Frame identifier from the tracking data related to the event at (x, y)

Type: integer

Frame identifier from the tracking data related to the event at (xend, yend)

Type: object

Type: number

x location of the player committing an event according to the tracking data. For example, player committing a pass, or making a tackle (m)

Type: number

y location of the player committing an event according to the tracking data. For example, player committing a pass, or making a tackle (m)