As fans, we wanted a more intuitive summary of a match. Current match summaries typically highlight individual statistics like shots on goal and possession percentage. However, the most impactful moments in a match are often nuanced and not easily measured.
As developers (and ones newly exposed to Opta data at that), we wanted to build a way to quickly analyze and iterate on match data to try to make sense of the wealth of information.
We believe insights from large of amounts of data are most useful to humans when they are intuitive and understandable. So we built a tool to facilitate exploration of match data.
What it does
Match Explorer is composed of 3 parts: data import, event analysis, and insight visualization.
- Data Import: Opta data files can be easily ingested into a relational database for flexible querying.
- Event Analysis: Event data is exposed as Ruby objects. This allows offline analysis to be a simple ruby script. We also built a heuristic based match segmentation and possession quality analysis tool as examples. The web app also provides a quick explore tool that lets an analyst explore a possession's match data right from the browser.
Insight Visualization: A web app displays a match's possessions and insights for each possession.
A fan has a better "game cast" view of a match. The visualization shows possessions through a match, with insights and events for each possession.
An analyst can see a summary of the match and drill down into more detail for a possession using the in app editor.
A developer can quickly access Opta data as ruby objects to add further offline processing and analysis.
How we built it
- Postgresql: we import Opta csv files into json columns to accommodate all event attributes without sacrificing the ability to query with SQL.
- Direct database import for Opta data via automated scripts
- Rails + Graphql to allow for rich querying via an API
- React-based front end to allow for web-based charting/visualizations
Challenges we ran into
- Time: There are a lot of moving pieces to the tool. We spent a bulk of our time connecting each part of the architecture. This didn't leave much time for things that would improve the usuability of the tool such as UI polish and more interesting analysis.
Accomplishments that we're proud of
It works! Insights and displayed match data corresponds to our intuition. We recognize individual moments in recent matches.
What we learned
Opta data is very rich. Also fan viewing experiencing has much room for improvement.
What's next for Match Explorer
More in depth analysis of match data. Machine based learning to better identify critical moments in a match (eg detect a counter attack after absorbing sustained pressure from previous possessions).