All notable changes to this project will be documented in this file.


1.2.2_ - 2022-03-11#


  • Fix the atomic version of the goal_from_shot labeling function

  • Added missing opta event types 78 - 84

  • Fixes conversion of owngoals in Atomic-SPADL (GH198)

  • Fixes the result of shots when subsequent events are not registered due to replays (GH199)

  • Handle incorrect timestamps in Stats Perform event data


  • Added instruction for downloading test data to the contributor guide. Also, the download script was improved.

  • Fixed the description on how SPADL handles the direction of play

1.2.1_ - 2022-01-09#


  • SchemaErrors on Windows (GH157)

1.2.0 - 2022-01-07#


  • Add support for loading StatsBomb 360 data

  • Add support for loading StatsBomb data directly from the paid API

  • Add documentation for the data module

  • Add documentation for the StatsBomb data schemas

  • Add documentation for the Opta data schemas


  • Remove the requests dependency

  • Remove the Unicode dependency

  • Some fields in the Opta data schema were removed or renamed to make them more uniform with the other data loaders

  • The referee_id and venue_id fields were replaced by a referee and venue field, respectively


  • Fix a bug in the “minutes_played” field of the dataframe returned by the method. (GH153)

  • Add missing WhoScored type ID (GH143)

  • Update the MA1 and MA3 Stats Perform parsers to make them compatible with the latest API version

  • Several small fixes in the Opta parsers

1.1.3 - 2021-12-20#


  • Support loading new StatsBomb event data containing 360 snaphots.

1.1.2 - 2021-12-08#


  • Use Poetry for depency management.

  • Use Nox for testing multiple Python versions.

  • Automatic depandency updates with Depandabot.


  • Drop support for Python 3.6

  • Updated

  • Updated

  • Improved CI workflow with deployment to test PyPi and test coverage.


  • Bugs in the StatsPerform MA3 parser affecting extract_players().

  • Conversion to Atomic-SPADL changed the data type of the player_id column to float.

  • Fix incorrect type annnotations.

  • Wyscout action coordinates could be outside the [0, 68] or [0, 105] range.

  • Moved broken CI workflow from Travis to Github Actions.

1.1.1 - 2021-09-22#


  • Add missing data module to pip release.

1.1.0 - 2021-09-17#


  • Support for Stats Perform’s MA1 and MA3 JSON feeds by @JanVanHaaren and @denisov-vlad

  • Enhanced tests suite by use of @slow decorator, which is controlled via a --skip-slow command line argument.

  • A play_left_to_right() function to socceraction.spadl and socceraction.atomic.spadl which changes the start and end location of each action such that all actions are performed as if the team plays from left to right.

  • A load_model() function to socceraction.xthreat to load a precomputed xT grid


  • Own goals are converted to a “bad_touch” SPADL event with outcome “owngoal”. Previously, the action type differed between providers. (GH26)

  • All event data loaders are moved from socceraction.spadl to

  • socceraction.xthreat.ExpectedThreat.predict is depracated and replaced by socceraction.xthreat.ExpectedThreat.rate to be compatible with the VAEP api


  • Bugs in OptaLoader’s extract_lineups() function affecting “is_starter” & “minutes_played” columns (GH48)

1.0.2 - 2021-04-03#


  • Opta converter converted goalkicks to regular passes (GH45)

  • Fix StatsBomb converter for the public CL dataset (GH46)

  • The goalscore feature also counted goalkicks as goals

1.0.1 - 2021-01-16#


  • The WhoScored parser extracts the ‘competition_id’, ‘season_id’ and ‘game_id’ fields from the filename. It is no longer required to append these fields to the JSON.

1.0.0 - 2021-01-11#


  • Sphinx documentation

  • A PublicWyscoutLoader class which enables easy access to the open source Wyscout soccer-logs dataset (GH14)

  • A new bodypart type “head/other”, since Wyscout does not distinguish beteen headers and other body parts (GH27)

  • Unit tests for the StatsBomb, Opta and Wyscout data convertors.

  • Add an original_event_id column to the SPADL format (GH7)

  • Add an action_id column to Opta and Wyscout SPADL to be consistent with the StatsBomb converter

  • A high-level API for training VAEP and Atomic-VAEP models

  • A parser for WhoScored JSON

  • CI with Travis

  • A logo

  • Minimal version requirements for dependencies


  • Opta and Wyscout convertors are refactored as a class based API to be consistent with the StatsBomb converter (GH23)

  • Details in the README are moved to the docs


  • Check for same period when adding dribbles.

  • Fix typo in StatsBomb converter

  • Fix type of return value in xthreat.predict

  • Fix ‘time_seconds’ field in the StatsBomb converter for overtime periods and shoutouts

  • Fix result of Wyscout interception passes (GH28)

  • Fix own goals from bad touch events (GH25)

0.2.1 - 2020-06-16#


  • Use the atomic version of actiontypes in Atomic-SPADL

0.2.0 - 2020-06-15#


  • Atomic-SPADL and Atomic-VAEP


  • Rename socceraction.classification to socceraction.vaep

0.1.1 - 2020-01-30#


  • mypy typhinting


  • Add missing requests dependency

0.1.0 - 2020-01-22#


  • Simpler and more transparant API for the StatsBomb converter

0.0.9 - 2020-01-14#



  • Information leakage in xG model

  • Fix end coordinates of clearances

0.0.8 - 2019-11-29#


  • Remove ujson from

0.0.7 - 2019-11-28#


  • Expected goals demo


  • Possibility of extra time periods in the Wyscout converter by @dbelcham

  • Fix utf-8 endcoding errors in convertors by @dbelcham

  • Retrieval of Wyscout substitutions by @dbelcham

  • Incorrect “bad touch” event type name in Opta parser

  • Fix SIGKDD citation in the readme

  • Fix storage of events in the optastore


  • ujson dependency

0.0.6 - 2019-10-15#


  • Typo in

  • Fixed “scores” and “concedes” label of the last action in a dataframe

0.0.5 - 2019-10-15#


  • Improve speed and memory usage of the StatsBomb converter

  • Improve README

  • Add action_id column to spadl action table


  • Fixed Opta bugs related to fouls and playergamestats

0.0.4 - 2019-10-01#


  • Fixed encoding error in StatsBomb parser by @kim-younghan

  • Fixed start_angle_to_goal and end_angle_to_goal features


  • LICENCE.txt

0.0.3 - 2019-08-26#


  • SPADL convertor for Wyscout event data

  • MIT License file

  • file

0.0.2 - 2019-07-31#

0.0.1 - 2019-07-31#

Initial release.