Nowadays many actors in the soccer industry, from television broadcasters to scouts and professionals in soccer clubs, are increasingly relying on data-driven scores to rank players, find promising talents, and increase fan engagement (gudmundsson2017spatio; pappalardo2017quantifying; bornn2018soccer). Several online platforms, such as wyscout.com or whoscored.com, allow for searching players in a database and show aggregated statistics of their performance. Unfortunately, these tools provide no intuitive way to compare the evolution of performance of players or suggest players behaving in a similar manner.
In this paper we describe a web dashboard for searching and comparing data-driven performance scores of soccer players. The dashboard provides the user with a graphical interface to interact with the PlayeRank algorithm (pappalardo2018playerank) that offers a principled evaluation of the performance of players based on data describing all the spatio-temporal events (e.g., passes, shots, etc.) that occur during a match. Several actors in the sports industry may benefit from our dashboard:
a talent scout, who searches for promising talents that meet specific constraints (e.g., age or role);
a coach, who needs to visualize the evolution of the performance of their players to select the team’s lineup in the next match;
a sports journalist, who wants to comment in an article about the performances in a recent match;
a soccer enthusiast, who wants a support to set up the lineup of their fantasy football team.
The design of the dashboard is hence motivated by the need of providing these actors with: (i) a way to visualize the evolution of the performance of a player in time; (ii) a compact way to compare the performance of two or more players; (iii) the possibility to search players by role and to filter them according to specific constraints (e.g., age, trend of growth of their performance, matches played); (iv) the possibility to change the parameters of the PlayeRank algorithm to obtain tailored evaluations of performance. A demo-video of the web dashboard is available at the following link: youtu.be/SzrDRKucRjE, while an online version will be available soon at playerank.d4science.org.
2. Dashboard Architecture
The web dashboard is designed in Python as a Dash (Dash) app that communicates with the PlayeRank algorithm (pappalardo2018playerank) (Figure 1). The communication channel is realized through an API that implements the exchange of data in two directions: (i) the web dashboard sends a request for aggregated data through the HTTP protocol, using an URL containing the parameters of the request; (ii) the API returns the desired aggregated data using JSON format.
A Dash app consists of two parts: the layout and the set of callbacks (Figure 1). In the layout, all the components of the graphical interface are specified, each having a unique and unambiguous identifier. This identifier is the connection point to the callbacks part, a dynamic section that specifies the actions to be executed when an event occurs on a layout component (e.g., the user clicks on a button or changes the value in a dropdown). The callbacks are the part that actually communicates with the API functions. This communication is transparent to the user, who can only interact with the layout part of the dashboard.
3. Dashboard Layout
Figure 2 shows the components in the layout of the web dashboard and the callbacks associated with each graphical component. The design of the layout has been guided by the Visual Exploration Paradigm (du2010visual), consisting in a three-step process, called the Information Seeking Mantra: overview, zoom and filter, and details-on-demand.
The upper part of the layout (Navbar) is a navigation bar containing two search dropdowns (Figure 2a, c) with their corresponding buttons (Figure 2b, d). The dropdowns are associated with callbacks that: (i) call the API to retrieve all players having the name or role typed by the user (Figure 2); (ii) highlight on the pitch part the selected role; (iii) add the selected players in the players table.
The second part of the layout (Pitch & Settings) contains two elements: the visualization of a soccer pitch that highlights the roles selected in the navigation bar; and the settings panel (Figure 2g) that, when its filters are modified, updates the boxplot visualizing the distribution of the players’ performance score per role (Figure 2f).
The third part (Table & Settings) contains a set of sliders (Figure 2h, i, l) that allow the user to filter the players by age, trend of performance growth and number of matches played. Sliders are associated with a callback that updates the players table, a component that visualizes the names of the selected players, as well as other information like age and role, average performance score and trend of performance growth (Figure 2m).
The fourth part (Trend) contains a line chart (Figure 2n) visualizing the evolution of the performance scores of the players that have been selected in the players table.
Finally, the last part (Cards) contains some cards that show further information about the selected players and, in addition, it shows other players that are similar according to the way they have pitched on the soccer field (Figure 2p).
In the next sections we describe in detail some of the layout components of the web dashboard, in order to explore its functionalities, and refer the interested reader to the demo-video available at the following link: youtu.be/SzrDRKucRjE.
3.1. Pitch Plot
The soccer pitch component (Figure 3) is linked to the “Search by role” dropdown in the navigation bar. When the value of the dropdown changes, a callback is triggered, drawing the corresponding role data on the soccer pitch component. The role is drawn by highlighting the positions of the pitch associated with that role. Figure 3 shows how the soccer pitch components looks like when three roles (left CB, right CB and central FW) are selected in the “Search by role” dropdown.
3.2. Settings panel
In general, PlayeRank (pappalardo2018playerank)
computes a player’s performance score in a match as a scalar product between a vector of features describing their performance (e.g., number of shots, number of cards, expected goals, etc.) and a vector of weights specifying the important of each feature. The web dashboard allows the user to recalibrate the feature weights of thePlayeRank algorithm so as to obtain tailored evaluations of performance.
As an instance, the user can change the importance of scoring a goal into the player evaluation (using the slider in Figure 4c), so to reward more the players who score goals. Similarly, the weight associated with each performance feature can be changed by the corresponding slider (Figure 4e), which triggers a callback that in turn asks the API to recompute the performance scores with the new weights.
The boxplot in Figure 4a provides a visual summary of the distribution of performance scores per role. It is updated every time a feature weight is changed by the corresponding slider, i.e., the two buttons in Figure 4b-d activate a callback that re-draw the boxplot with the new performance scores. Note that changing the feature weights from the Settings panel implies changing the visualization of the performance scores in the trend plot (Figure 5) as well.
3.3. Trend plot
compares three top players in the Italian first division season 2018/2019: Mauro Icardi (FC Internazionale), Cristiano Ronaldo (Juventus FC) and Lorenzo Insigne (SSC Napoli). The striking impact of Cristiano Ronaldo (the orange curve) on the Italian league is immediately recognizable from the plot: after a shaky start, probably due to adaptation to a new league, the performance scores of C. Ronaldo shortly overtake the ones of renowned strikers in the league, like Icardi and Insigne.
By using a proper dropdown (Figure 5b) the user can choose among two types of trends: (i) trend_long, calculated taking equally into account all matches’ scores; (ii) trend_short which weights more the player’s score in the most recent matches. The trends specified by the user in the dropdown are drawn, via a dedicated callback and for each player, in the trend plot.
4. The talent scout use scenario
To demonstrate the usefulness of our web dashboard, we consider a crucial task in the soccer industry such as talent scouting. The main purpose of a talent scout is searching for promising talents, i.e., young and unknown players who show a good and a positive trend in their performance. A scout can achieve this goal using the web dashboard as follows.
The scout first searches for players of specific roles (e.g., central forward or central midfielder) using the “Search by role” dropdown. Then, s/he uses the age slider (Figure 6a) to select young players (¡ 22 yo). To focus on players who promise a bright future, the scout selects a positive trend of growth using the trend slider (Figure 6c). The scout sorts the resulting players by trend of growth (column TrendPercentage in Figure 6), by age and finally by average performance score (column PlayeRankMean).
Figure 6 shows the players table resulting from the above described operations. Note that a player can appear in several rows because he can play different roles in different matches. For example Kean occurs twice in the ordered list, once as central MF and once as central FW.
The scout can eventually select some players in the table by using the appropriate check boxes, hence visualizing the evolution of their performance in a specific trend plot. Referring to the example shown in Figure 6, the talent scout selects Kean, Mancini and Cassata as the most promising young talents in the Italian first division and asks the interface to show their performance plot.
In this paper we presented a web dashboard for searching and comparing soccer performance scores. Through a set of API endpoints, the web dashboard can retrieve data about performances and players. Users can search for players by name or roles, getting an immediate comparison of selected players and their performance evolution. Users can also search for players behaving similarly in the previous played games. If we consider that player scouting in soccer is a high-consuming task, our dashboard can help scouts in saving a considerable amount of time, hence partially automating the complex process of finding promising talents.