Open Data Events v4.0.0
Open Data Events v4.0.0
0
[StatsBomb Open Data - last updated 08 May 2019]
This document describes the JSON format for StatsBomb’s open event data.
2. “counterpress”: an attribute on various defensive events, including: pressure, dribbled past, 50-50, duel, block,
interception, and foul committed (not offensive). These are pressing actions within 5 seconds of an open play
turnover.
3. “under_pressure”: the definition has been expanded to apply in more situations. So, events which are naturally
performed under pressure like duels, dribbles etc, all pick up the attribute, even in the absence of an actual pressure
event. Carries can be pressured not just by pressure events, but other defensive events (defined in change 2.) that
happen during or at the end of the carry.
Table of Contents
1
Appendix 1: Tactical Positions Guide: 21
Appendix 2: Locations 23
Pitch Coordinates - Coordinates specified as (x, y). 23
Goal Coordinates - Coordinates specified as (x, y, z) 24
Appendix 3: Shot Freeze Frame Objects 25
Appendix 4: Tactics Lineups Objects 26
Appendix 5: Cutback 27
Appendix 6: Cross 28
Appendix 7: Pressure 29
Appendix 8: Competition Stages 29
Appendix 9: Data Version Change Log 30
Appendix 10: Shot Fidelity Version Change Log 32
Format
Match files in the data/events directory will be in JSON format. Filenames will be in the format 1234.json where 1234 is a
match ID. The contents are an array containing event information for both teams. Some elements have either child elements
(normally a name/ID pair), or child arrays (these are detailed later in the document).
2
Column Type Child (/s) Child (/s) Description Values Value Description
Type
id uuid The unique identifier for e.g.
each event “0052d1b5-e2b0-4629-bb
ea-c18c884ab103”
index integer Sequence notation for the e.g. 1-# of events
ordering of events within
each match.
period integer The part of the match the 1 1st Half
timestamp relates to (1 =
first half, 2 = second half). 2 2nd Half
3 3rd Period
4 4th Period
5 Penalty Shootout
timestamp timestamp Time in the match the event e.g., 00:00:06.293
takes place, recorded to the
millisecond.
minute integer The minutes on the clock at e.g., 40
the time of this event.
Resets to 45 at half-time, 90
at the start of extra time etc.
second integer The second part of the e.g., 15
timestamp
type object id / name integer / text Id / name of the event 42 / “Ball Receipt” The receipt or intended
type. receipt of a pass.
2 / “Ball Recovery” An attempt to recover a loose
ball
3 / “Dispossessed” Player loses ball to an
opponent as a result of being
tackled by a defender without
attempting a dribble
3
4 / “Duel” A duel is an 50-50 contest
between two players of
opposing sides in the match.
5 / “Camera On*” Signals the stop of the camera
to capture gameplay for a
replay/video cut.
6 / “Block” Blocking the ball by standing
in its path.
8 / “Offside” Offside infringement. Cases
resulting from a shot or
clearance (non-pass). For
passes resulting in an offside
check pass outcomes section.
9 / “Clearance” Action by a defending player
to clear the danger without an
intention to deliver it to a
teammate.
10 / “Interception” Preventing an opponent's pass
from reaching their teammates
by moving to the passing
lane/reacting to intercept it.
14 / “Dribble” An attempt by a player to beat
an opponent
16 / “Shot” An attempt to score a goal,
made with any (legal) part of
the body.
17 / “Pressure” Applying pressure to an
opposing player who’s
receiving, carrying or releasing
the ball.
18 / “Half Start*” Signals referee whistle to start
a match period.
19 / “Substitution”
20 / “Own Goal Against” An own goal scored against
the team.
21 / “Foul Won” A foul won is defined as where
a player wins a free-kick or
4
penalty for their team after
being fouled by an opposing
player.
22 / “Foul Committed” Any infringement that is
penalised as foul play by a
referee.
Offside are not tagged as a
foul committed.
23 / “Goal Keeper” Actions that can be done by
the goalkeeper.
24 / “Bad Behaviour” When a player receives a card
due to an infringement outside
of play.
25 / “Own Goal For” An own goal scored for the
team.
26 / “Player On” A player returns to the pitch
after a Player Off event.
27 / “Player Off” A player goes/ is carried out of
the pitch without a
substitution.
28 / “Shield” Player shields ball going out of
bounds to prevent opponent
from keeping it in play.
30 / “Pass” Ball is passed between
teammates.
33 / “50/50” 2 players challenging to
recover a loose ball.
34 / “Half End*” Signals the referee whistle to
finish a match part.
35 / “Starting XI” Indicates the players in the
starting 11, their position and
the team’s formation.
36 / “Tactical Shift” Indicates a tactical shift made
by the team, shows the
players’ new positions and the
team’s new formation.
5
37 / “Error” When a player is judged to
make an on-the-ball mistake
that leads to a shot on goal.
38 / “Miscontrol” Player loses ball due to bad
touch
39 / “Dribbled Past” Player is dribbled past by an
opponent.
40 / “Injury Stoppage” A stop in play due to an injury.
41 / “Referee Ball-Drop” Referee drops the ball to
continue the game after an
injury stoppage.
43 / “Carry” A player controls the ball at
their feet while moving or
standing still.
possession integer Indicates the current unique e.g., 1 - # of unique New possession are triggered
possession in the game. A possessions after a team demonstrate
single possession denotes a they've established control of
period of play in which the the ball. A new possession can
ball is in play and a single begin even if the same team
team is in control of the ball. has possession of the ball for
example, a blocked pass goes
out for a throw in for the same
team, this would be a new
possession for the same
attacking team.
possession_team object id integer The ID of the team that e.g., 1 / "Arsenal"
started this possession in
control of the ball. Note that
this will appear even on
opposition events like
tackles attempted during
the possession.
play_pattern object id / name integer / text Id /name of the play pattern 1 / Regular Play The event was not part of any
relevant to this event. of the following play_patterns
2 / “From Corner” The event was part of the
passage of play following a
corner.
6
3 / “From Free Kick” The event was part of the
passage of play following a
free-kick.
4 / “From Throw In” The event was part of the
passage of play following a
throw-in.
5 / “Other”
6 / “From Counter” The event was part of a
counter attack:
● The possession started
with an open play turnover
outside the
counter-attacking team’s
final third.
● The possession was at
least 75% direct towards
goal (as measured by our
possession chain metrics)
● The counterattack
travelled at least 18 yards
towards goal.
● This definition is not part
of collection and is
derived from the logic
above.
7 / “From Goal Kick” The event was part of the
passage of play following a
goal kick.
8 / “From Keeper” The event was part of the
passage of play following a
keeper distribution.
9 / “From Kick Off” The event was part of the
passage of play following the
kick off.
team object id / name integer Id / Name of the team this e.g., 1 / “Arsenal”
event relates to. Team
object will only display if the
event is tied to a specific
team.
7
player object id / name integer / text Id / Name of the player this e.g., 5079 / "Zlatan
event relates to (player Ibrahimovic"
object will only display if the
event is tied to a specific
player).
position object id / name integer / text Id / Name of the position the e.g., 1 / “Goal Keeper” See Appendix 1 below for
player was in at the time of more information.
this event..
location array [x,y] Array containing two integer e.g., the center of the field See Appendix 2 below for
values. These are the x and is (60,40) more information.
y coordinates of the event
(this only displays if the
event has pitch
coordinates).
duration decimal If relevant, the length in Time in seconds.
seconds the event lasted.
under_pressure boolean The action was performed TRUE See Appendix 7 for more
while being pressured by an information on pressure.
opponent.
off_camera boolean The event occurred while FALSE, TRUE Thus, data accuracy is not
the camera was off. guaranteed and information is
logically inferred by collectors.
out boolean Added if the outcome of the TRUE
event is the ball going out of
bounds.
related_events array[uuid,uu A comma separated list of e.g.,
id,uuid,...] the Ids of related events. For "2b7d06c7-9bcb-4bbf-a6
example, a shot might be e5-08e54e1303ac" or
related to the Goalkeeper ("2b7d06c7-9bcb-4bbf-a6
event, and a Block Event. e5-08e54e1303ac",
The corresponding events "03b001b6-bf44-4691-ae
will have the Id of the shot in 47-e279f5a9b38c")
their related_events column.
tactics object formation text For events of type (Starting e.g., 343 e.g., three defenders four
XI or Tactical Shift), the midfielders and three strikers.
“tactics” object is added.
The formation item
describes the formation
being used.
8
lineup array For events of type (Starting See Appendix 4 Below for
XI or Tactical Shift), the more information.
“tactics” object is added.
The lineup item describes
the players and their
positions.
Event Type Column Type Child (/s) Child (/s) Description Values (/s) Values (/s) Description
(Nested Data Type
Frame)
50-50 outcome object id / name integer / text ID/ Name of the outcome of 108 / “Won” The player wins the 50/50
the 50-50 challenge. contest and regain possession
109 / “Lost” The player loses the 50/50
contest
147 / “Success To The player wins the 50/50
Team” contest and knocks the ball to
their team’s possession
148 / “Success To The player wins the 50/50
Opposition” contest but knocks the ball to a
opponent’s possession
counterpress Boolean Pressing actions within 5 TRUE
seconds of an open play
turnover.
9
Bad Behaviour card object id / name integer / text Id / Name for the attribute 65 / “Yellow Card”
option specifying the Card. 66 / “Second Yellow"
67 / “Red Card”
Ball Receipt outcome object id / name integer / text Id / Name for the attribute 9 / “Incomplete”
option specifying the outcome
of the ball receipt.
Ball Recovery offensive boolean Added if the recovery was TRUE Recovered ball lost by a
offensive teammate off bad touch or
dribble
recovery_failure boolean Added if the recovery was a TRUE Ball is lost while attempting to
failure. recover a loose ball
Block deflection boolean Added if the block was a TRUE Block that did not reverse or
deflection. strongly redirect the ball’s
trajectory
offensive boolean Added if the block was TRUE
offensive.
save_block boolean Added if the block saved a TRUE A block of a shot that was
shot. definitely going to be on target
by an outfield player
counterpress Boolean Pressing actions within 5 TRUE
seconds of an open play
turnover.
Carry end_location Array [x, Array containing two integer e.g., (100,45) See Appendix 2 for more
y] values. These are the x and y information on location
coordinates at which the carry coordinates.
ends.
Clearance aerial_won boolean Added if a clearance event TRUE Clearance that was also an aerial
was an aerial. duel won
body_part object id / name integer / text ID / Name of the body part 37 / “Head” Clearance attempted with head
used to shoot. 38 / “Left Foot” Clearance attempted with the left
foot
70 / “Other” Other body parts (i.e knee, chest,
etc)
40 / “Right Foot” Clearance attempted with right
foot
10
Dribble Overrun boolean Added when a dribble goes TRUE
past the original defender into
the possession of another
player
Nutmeg boolean Added when the dribble went
through an opposing players
legs.
outcome object id / name integer / text Id / Name for the attribute 8 / “Complete” Dribble attempt was successful
option specifying the outcome 9 / “Incomplete” Player was unable to complete
of the dribble. the act of attempting a dribble
No Touch boolean If the player attempted to do TRUE
the dribble by passing the ball
past the opponent instead of
receiving it.
Dribbled Past counterpress Boolean Pressing actions within 5 TRUE
seconds of an open play
turnover.
Duel counterpress Boolean Pressing actions within 5 TRUE
seconds of an open play
turnover.
type object id / name integer / text Id / Name for the attribute 10 / “Aerial Lost” Challenging for an aerial duel and
value of the type of duel not winning the ball
11 / “Tackle” Dispossessing opposing team
player
outcome object id / name integer / text Id / Name for the attribute 1 / “Lost”
option specifying the outcome
of the duel.
4 / “Won” A tackle that ended up in
possession of the tackler
13 / “Lost In Play” A tackle that knocked the ball to
an opponent
14 / “Lost Out” A tackle that knocked the ball out
of bounds in favor of opposition
15 / “Success”
16 / “Success In Play” A tackle that knocked the ball to
a teammate
11
17 / “Success Out” A tackle that knocked the ball out
of bounds in favor of tackler’s
team
Foul Committed counterpress Boolean Pressing actions within 5 TRUE
seconds of an open play
turnover.
offensive boolean Added if the foul was TRUE
committed while in possession
of the ball.
type object id / name integer / text ID / Name for the attribute 19 / “6 Seconds” Foul called due to 6 second
value of the foul committed. infringement
20 / “Backpass Pick” Foul called due to back-pass pick
up infringement
21 / “Dangerous Play” Foul called due to dangerous play
22 / “Dive” Foul committed due to simulation
23 / “Foul Out” Foul called due to foul out
infringement
24 / “Handball” Foul called due to handball
infringement
advantage boolean Added if play continued TRUE Foul committed but play was
(referee called advantage) waved on
penalty boolean Added if a penalty was TRUE A foul committed that resulted in
awarded. a penalty shot
card object id / name integer / text Id / Name for the attribute 5 / “Yellow Card”
option specifying the card. 6 / “Second Yellow"
7 / “Red Card”
Foul Won defensive boolean Added if the foul was won TRUE Winning a foul when out of
when out of possession. possession
advantage boolean Added if play continued TRUE Winning a foul that was not called
(referee called advantage) due to advantage played
penalty boolean Added if a penalty was TRUE Winning a penalty
awarded.
Goalkeeper position object id / name integer / text Id / Name for the attribute 42 / “Moving” Keeper was moving when the
option of goalkeeper’s shot was taken
positioning before a shot.
12
43 / “Prone” Keeper was on the ground when
the shot was taken
44 / “Set” Keeper was stationary when the
shot was taken
technique object id / name integer / text Id/ Name for the attribute 45 / “Diving” Keeper left his feet in order to
option specifying the make the save
goalkeeper technique used. 46 / “Standing” Keeper made the save from a
standing position
body_part object id / name integer / text Id / Name for the attribute 35 / “Both Hands” Save with both hands
option specifying the body 36 / “Chest” Save with chest
part used during this
goalkeeper action. 37 / “Head” Save with head
38 / “Left Foot” Save was made with left foot
39 / “Left Hand” Save with left hand
40 / “Right Foot” Save was made with right foot
41 / “Right Hand” Save with right hand
type object id / name integer / text Id / Name for the attribute 25 / “Collected” Keeper coming out to collect a
option specifying the type of ball
goalkeeper event. (Every shot 26 / “Goal Conceded” Goalkeeper concedes a goal
will have a related goalkeeper
event. If a goal is not 27 / “Keeper Sweeper” When keeper comes off his line
conceded or a save is not and/or out of his box to clear the
made, the goalkeeper type will ball
be “Shot Faced”). 28 / “Penalty Goalkeeper concedes a goal from
Conceded” a penalty kick
29 / “Penalty Saved” Save from a penalty kick
30 / “Punch” Keeper punch away (similar to
clear)
31 / “Save” Keeper save from a non-shot
32 / “Shot Faced” A shot faced that did not lead to
a save or goal conceded
33 / “Shot Saved” Keeper save from opposing team
shot
34 / “Smother” Equivalent to a tackle for an
outfield player, keeper coming
out to dispossess a player
13
113 / “Shot Saved Off Keeper save from opposing team
T” shot that was going off target
114 / “Shot Saved To A shot saved by the goalkeeper
Post” that hits the post
110 / “Saved To Post” A save by the goalkeeper that
hits the post
109 / “Penalty Saved A penalty saved by the
To Post” goalkeeper that hits the post
outcome object id / name integer / text 47 / “Claim” Keeper sweeper action where
keeper collects the ball
48 / “Clear” Keeper sweeper action where
keeper clears the ball
49 / “Collected Twice” Keeper collected the ball in
multiple tries after fumbling first
collect
50 / “Fail” Unsuccessful action
51 / “In Play” Goalkeeper save where the shot
is parried back into play
52 / “In Play Danger” Goalkeeper save where shot is
parried to opposing team player
53 / “In Play Safe” Goalkeeper save where shot is
parried to teammate
55 / “No Touch” Goal conceded without keeper
touching the ball
56 / “Saved Twice” Keeper made the save in multiple
tries after fumbling the first save
15 / “Success” Successful action for collect,
parried to teammate in smother
58 / “Touched In” Goal conceded despite keeper
touching the ball
59 / “Touched Out” Keeper touched the ball out of
bounds
4 / “Won” Retained possession
16 / “Success In Play” A smother that knocked the ball
to a teammate
14
17 / “Success Out” A smother that knocked the ball
out of bounds in favor of tackler’s
team
13 / “Lost In Play” A smother that knocked the ball
to an opponent
14 / “Lost Out” A smother that knocked the ball
out of bounds in favor of
opposition
117 / “Punched Out” The keeper punches the ball out
of boundaries
Half End Early Video End Boolean Added if the match video TRUE
wasn’t complete and it ended
before the period final whistle
Match Boolean Referee decides to end or TRUE
Suspended postpone the match
Half Start Late Video Boolean Added if the match video TRUE
Start wasn’t complete and started
after Kick Off
Injury Stoppage in_chain boolean Added if the ball was in the TRUE
injured player’s team’s
possession before the
stoppage began.
Interception outcome object id / name integer / text Id / Name for the attribute 1 / “Lost”
option specifying the outcome 13 / “Lost In Play” An interception that knocked the
of the interception ball to an opponent
14 / “Lost Out” An interception that knocked the
ball out of bounds in favor of
opposition
15 / “Success”
16 / “Success In Play” An interception that knocked the
ball to a teammate
17 / ”Success Out” An interception that knocked the
ball out of bounds in favor of
tackler’s team
4 / “Won” An interception that ended up in
possession of the tackler
15
Miscontrol aerial_won boolean Added if a miscontrol event TRUE
was an aerial.
Pass recipient object id / name integer / text Id / Name specifying the e.g., 2934 / "Érik
player id of the recipient of Lamela"
the pass, or for whom an
incomplete pass was
intended.
length decimal The length of the pass in e.g., 16.03 The length in yards of the pass,
yards. from its origin to its destination.
angle decimal The angle of the pass in e.g., -2.49 The angle in radians of the pass,
radians, with 0 pointing calculated clockwise from 0
straight ahead, positive values representing straight ahead, to π
between 0 and π indicating an meaning straight backwards.
angle clockwise, and negative
values between 0 and -π
representing an angle
anti-clockwise.
height object id / name integer / text Id / Name specifying the 1 / “Ground Pass” Ball doesn’t come off the ground.
height of the pass. 2/ “Low Pass” Ball comes off the ground but is
under shoulder level at peak
height.
3 / “High Pass” Ball goes above shoulder level at
peak height.
end_location array Array containing two integer e.g., (100,45) See Appendix 2 for more
[x,y] values. These are the x and y information on location
coordinates at which the pass coordinates.
ended.
assisted_shot_i uuid Reference to the shot this e.g.,
d pass assisted. "2b7d06c7-9bcb-4bbf
-a6e5-08e54e1303ac"
backheel boolean Added if the pass was made TRUE
by using a backheel.
deflected boolean Added if the pass was TRUE Pass was deflected, can occur on
deflected complete and incomplete passes.
miscommunicat boolean Added if the pass was a TRUE Pass was accurate but receiving
ion miscommunication. player misread the pass OR the
run from the receiving player was
16
correct and passer played in his
previous position
cross boolean Added if the pass was a cross. TRUE Whether or not the pass was a
cross. The calculation used to
mark crosses is detailed in
Appendix 6.
cut-back boolean Added if the pass was a TRUE For more information on how
cut-back (ball passed low cut-back’s are depicted see
backwards, within the Appendix 5
opposition’s penalty box)
switch boolean Added if the pass was a TRUE Whether or not the passer
switch (ball transitioned at switched the ball to the other
least 50% of the pitch side of the pitch. A switch is any
vertically). pass that travels more than 40
yards of the width of the pitch.
shot-assist boolean Added if the pass was an TRUE
assist to a shot (that did not
score a goal).
goal-assist boolean Added if the pass was an TRUE
assist to a goal.
body_part object id / name integer / text Id / Name of the body part 68 / “Drop Kick” Pass is a keeper drop kick
used to make this pass. 37 / “Head” Pass with head
69 / “Keeper Arm” Pass thrown from keepers hands
38 / “Left Foot” Pass with left foot
70 / “Other” Other body part (chest,back,
etc.)
40 / “Right Foot” Pass with right foot
106 / “No Touch” A player deliberately let the pass
go past him instead of receiving it
to deliver it to a teammate behind
him. (Also known as a “dummy”).
type object id / name integer / text Id / Name for the attribute 61 / “Corner” A pass from a corner kick
option specifying the type of 62 / “Free Kick” A pass from a free kick
pass.
63 / “Goal Kick” A pass from a goal kick
64 / “Interception” One touch pass off an
interception
17
65 / “Kick Off” A pass from a kick off at the
beginning of a match or after
scoring
66 / “Recovery” One touch pass off a loose ball
recovery
67 / “Throw-in” A pass from a throw-in
outcome object id / name integer / text ID / Name of the outcome of 9 / “Incomplete” Ball does not reach a teammate
the pass. and is still in play
74 / “Injury Clearance” Ball is played out of bounds to
stop play for an injury
75 / “Out” Ball goes out of bounds
76 / “Pass Offside” Ball reaches teammate but pass
is judged offside
77 / “Unknown” Outcome is unknown (i.e. foul
was called while in mid-flight)
Technique object id / name integer / text ID / Name of the technique of 104 / “Inswinging” For inswinging high/low corner
the pass. kicks.
105 / “Outswinging” For outswinging high/low corner
kicks.
107 / “Straight” For neither inswinging nor
outswinging corner kicks.
108 / “Through Ball” Pass cuts last line of defence
Player Off Permanent Boolean Added if the player left the TRUE
game permanently. For
scenarios where no subs are
left but the player cannot
return to pitch due to injury
Pressure counterpress Boolean Pressing actions within 5 TRUE
seconds of an open play
turnover.
Shot key_pass_id uuid e.g.,
"2985a109-390e-49fa
-8d92-9b1b4e6ea2fb"
end_location array e.g., (120, 50) or (120, For more information on the
[x,y] or 32.5, 1.2) location specifications, see
[x,y,z] Appendix 2.
18
aerial_won boolean Added if the shot was an TRUE An aerial duel was contested for
aerial won the shot
follows_dribble boolean Added if the shot followed a TRUE Whether or not this shot comes
dribble after a successful dribble by the
shooter.
first_time boolean Added if the shot was first TRUE Player’s first touch
touch.
freeze_frame array (see Appendix 3 for more Each shot includes an object Data from the JSON See Appendix 3 for more
documentation) called freeze_frame which is format will have a data information on freeze frame
an array containing frame nested within objects.
information about relevant each shot event.
players at the time of the shot.
Each freezeframe object is a
data frame with a row for each
player including their location,
team, id, name and position id
and name.
open_goal boolean Added if the shot was taken TRUE
with an open goal.
statsbomb_xg numeric The StatsBomb expected e.g., 0.15
goals value calculated for the
shot.
deflected boolean Added if the shot was TRUE Shot was redirected by another
deflected player’s touch.
technique object id / name integer / text ID / Name of the technique 89 / “Backheel” A shot that was taken with the
used for the shot. heel
90 / “Diving Header” Shot attempted with header
while player diving in front of him
to reach the ball
91 / “Half Volley” Contact was made off the ground
and after a bounce
92 / “Lob” A shot that had a high arc
trajectory in order to pass over
the opposition player
93 / “Normal” A shot that does not fall into any
other technique
19
94 / “Overhead Kick” Player’s back was to goal when
taking the shot
95 / “Volley” The ball never touched the
ground prior to the shot
body_part object id / name integer / text ID / Name of the body part 37 / “Head” Shot attempted with head
used to shoot. 38 / “Left Foot” Shot attempted with the left foot
70 / “Other” Other body parts (i.e knee, chest,
etc)
40 / “Right Foot” Shot attempted with right foot
type object id / name integer / text Id / Name for the attribute 61 / “Corner” Shot direct from a corner kick
option specifying the type of 62 / “Free Kick” Shot is from a direct free kick
shot.
87 / “Open Play” Shot is not directly from a
set-piece
88 / “Penalty” Shot is a penalty kick
65 / “Kick Off” Shot directly from kick off
outcome object id / name integer / text Id / Name for the attribute 96 / “Blocked” A shot that was stopped from
option specifying the outcome continuing by a defender
of the shot. 97 / “Goal” A shot that was deemed to cross
the goal-line by officials
98 / “Off T” A shot that’s initial trajectory
ended outside the posts
99 / “Post” A shot that hit one of the three
posts
100 / “Saved” A shot that was saved by the
opposing team’s keeper
101 / “Wayward” An unthreatening shot that was
way off target or did not have
enough power to reach the goal
line (or a miskick where the
player didn’t make contact with
the ball)
115 / “Saved Off T” A shot that was saved by the
goalkeeper but was not on target.
116 / “Saved To Post” If the keeper saves the shot and
it bounces off the goal frame
20
Substitution replacement object id / name integer / text For a substitution, the id / e.g., 3049 / "Aaron
name of the player coming on Ramsey"
the pitch. The player details
(main event) describe the
player coming off.
outcome object id / name integer / text Id / Name for the attribute 102 / “Injury”
option specifying the type of 103 / “Tactical”
substitution.
Appendix
21
Position Position Position Name
Number Abbreviation
1 GK Goalkeeper
2 RB Right Back
3 RCB Right Center Back
4 CB Center Back
5 LCB Left Center Back
6 LB Left Back
7 RWB Right Wing Back
8 LWB Left Wing Back
9 RDM Right Defensive
Midfield
10 CDM Center Defensive
Midfield
11 LDM Left Defensive
Midfield
12 RM Right Midfield
13 RCM Right Center
Midfield
14 CM Center Midfield
15 LCM Left Center Midfield
16 LM Left Midfield
17 RW Right Wing
18 RAM Right Attacking
Midfield
19 CAM Center Attacking
Midfield
20 LAM Left Attacking
22
Midfield
21 LW Left Wing
22 RCF Right Center
Forward
23 ST Striker
24 LCF Left Center Forward
25 SS Secondary Striker
Appendix 2: Locations
23
Goal Coordinates - Coordinates specified as (x, y, z)
24
Appendix 3: Shot Freeze Frame Objects
Each shot includes an object called freeze_frame which is an array containing information about relevant players at the time
of the shot. Each freezeframe object is structured as follows:
teammate boolean
25
Appendix 4: Tactics Lineups Objects
At the beginning of each match, an event is recorded for the tactics and lineups for each team. Each tactics lineups object is
structured as follows:
jersey_number integer
26
Appendix 5: Cutback
Cutbacks are low or ground passes that originate in zone A (on either side of the pitch) and end in zone B.
27
Appendix 6: Cross
28
Appendix 7: Pressure
Calculated as every on-the-ball event that overlaps the duration of a pressure event. For example, if a pressure event
appears before a pass, and the pressure’s timestamp plus its duration encompasses the pass’s timestamp, that pass is said
to have been made under pressure. If a pressure event occurs after a pass, but before the end of the pass (as calculated by
using its duration), that pass is said to have been received under pressure.
29
23 MLS Cup - Conference Finals
24 Promotion Play-offs - 1st Round
25 3rd Place Final
26 Final
27 Promotion Play-offs - 2nd Round
28 Play-offs
29 1st Qualifying Round
31 Preliminary Round - Semi-finals
33 8th Finals
34 1st Phase
35 Preliminary Round - Final
Data version is found in Open Data match files. Here is a list of all event data changes between data versions.
30
- “body type” variable added for event type “Clearance”
- “body type” now includes the option “No Touch” and “Drop Kick”
- “technique” variable added for passes, including: “Inswinging”, “Outswinging”, “Straight” and “Through Ball”
- “through_ball” variable for passes is now deprecated.
- “late-video-start” variable added for event type “Half Start” when the broadcast video starts after the kick off.
- “early-video-end” variable added for event type “Half End” when the broadcast video ends before the final whistle.
- “match-suspended” variable added for event type “Half End” when the match is suspended typically due to weather.
- “kick-off” is now an option for shot types.
- “Saved To Post” option for shot outcome when the goalkeeper saves the ball into a post.
- “Saved Off Target” option for shot outcome when the goalkeeper saves a shot that would have missed the frame.
- “No Touch” added as a possible attribute for the event type “Dribble” when the attacker fails to touch the ball.
- Additional “Outcome” options for event type “Goal Keeper” including: “Punched Out”, “Lost Out”, “Lost in Play”,
“Success Out”, and “Success In Play”.
- “Permanent” added as a possible option for event type “Player Off” for scenarios where no subs left but player cannot
return to pitch due to injury.
- Additional “Type” options for event type “Goal Keeper” including: “Penalty Saved To Post”, “Saved To Post”, “Shot
Saved To Post”, “Shot Saved Off Target”.
- Goalkeeper event outcome “Lost” has been deprecated.
31
Data Version 1.0.0
- Shots, freeze frames and events paired to shots use high fidelity x,y coordinates
[End of Document]
32