top of page
Search

Footy Comparer - A Streamlit App Allowing Anyone to Analyze Player Performance Data

Writer's picture: Adith Joshua GeorgeAdith Joshua George

Updated: Jan 23


When determining how to create my first project in the soccer analytics space, I kept coming across the common theme that taking the first step is the hardest part of entering the field, as is true in many things. Seeing the myriad of creative projects and insightful analyses created by talented individuals can make it difficult for anyone to determine the niche they want to carve out in order to stand out. With this in mind, I created Footy Comparer, a Streamlit app built using Python that aims to allow anyone with soccer analyst ambitions to take a dataset and provide insightful charts with as few clicks as possible.


This application went through multiple iterations to provide the tools necessary to derive valuable findings from a dataset with as few limitations as possible to truly allow anyone to take their first steps into the sports analytics space. It utilizes percentile data calculated from the provided dataset and chosen position to produce visualizations and tables that help illustrate how a player compares to others in a position across user-chosen statistics.


Here is a quick demo of the app that I would highly recommend watching, but if you would want a breakdown of the features in the app in written format, feel free to scroll below this video.






First, I would like to break down the features included in this app. There are three categories in the sidebar. The first is the Upload Dataset tab.


The default dataset is MLS
The default dataset is MLS

This tab allows the user to upload their dataset as a .csv (comma separated value) file. There is a default dataset loaded in for both the player and goalkeeper tabs, which uses MLS data from the 2024 season. In order to upload your own dataset to replace either of these, just click on browse files and upload it from your device.


As for the requirements of the dataset chosen, there are only four mandatory columns: Player (or Name), Nation, Team, and Position.


Once you upload your dataset, the next tab of note is the Player Search and Filters.




Each of these filters is required to produce the results you are looking for, so make sure to check each one
Each of these filters is required to produce the results you are looking for, so make sure to check each one

This section contains the filters that must be chosen by the user to create the visualizations they aim to produce. I will quickly break them all down below:


Position

The first selection to make is the Position that you want to compare a player's statistics against. This is of importance to this app as a big inspiration was seeing how the Columbus Crew utilized players such as Yaw Yeboah, Max Arfsten, Malte Amundsen, and others outside their previously defined positions and got significantly improved performance out of them within their system. This Position feature allows any chosen player to be compared against others in the chosen position despite that player's indicated position in the dataset, which allows for these out-of-position analyses to be performed easily.

Player

Player to Compare Against (Optional)

Select Stats

Select Chart Type

Number of Similar/Best Players


The final tab in this app is the Optional Filters.



None of these are required to create a visualization, but can be useful for more niche analyses
None of these are required to create a visualization, but can be useful for more niche analyses

There are only three features here that I will break down:


Inverse Stats

This is a feature I created as I noticed statistics I was looking at such as Errors and Goals Allowed should have their percentiles reversed as lower numbers indicate better player performance for these statistics. You can account for these statistics after you add them in the Select Stats section in the above tab by adding them here.

Filter By Nation

Filter By Team


Finally, I will break down what the user can produce using this application.


There are three categories that each provide a unique way for the user to draw insights for a player/dataset
There are three categories that each provide a unique way for the user to draw insights for a player/dataset

Chart

The user can see the Pizza/Radar chart created for player(s) and statistics chosen here.

Similar Players

Best Players



Thank you for taking the time to understand my application! If you have any feedback or recommendations, feel free to contact me over LinkedIn or by email.

 
 
 

Comments


myself

Adith George - DS & AI @ Purdue - The Soccerlyst

Join me as I explore the world of soccer analysis.

  • Linkedin
  • GitHub

© 2025 by Adith George. 

bottom of page