Premier League Injury Analytics Dashboard

Overview

Status: Work in Progress

I built an end-to-end analytics project using a Kaggle dataset of Premier League player-season injuries from the 2020/21, 2021/22, and 2022/23 seasons. I cleaned the data in PostgreSQL and then connected it to Tableau Public to design a dashboard.

Project Details

The dashboard explores how player height, age, weight, BMI, and minutes played relate to days missed through injury, using:

  • Binned bar charts for categorical comparisons
  • KPI cards showing average days injured, number of injured player-seasons, and percentage with prior significant injury

Key Findings

The key takeaway from this first version is that within this dataset, there is no strong, simple link between height/weight/BMI and time lost to injury, while age and minutes played behave more as expected (older players and players with fewer minutes tend to carry higher injury loads).

Future Plans

This project is my starting point for soccer analytics. Next, I plan to:

  • Learn web scraping with Python using requests and BeautifulSoup
  • Scrape fresh Premier League data from Transfermarkt
  • Join it with injury information
  • Rebuild the dashboard with newer seasons and richer features (e.g., xG, position-specific metrics)

Technologies Used

  • PostgreSQL: Data cleaning and normalization
  • Tableau Public: Dashboard creation and visualization
  • SQL: Data querying and analysis
  • Python (Planned): Web scraping and ETL pipeline development

Project Visualizations

Dashboard Charts
View Full Size

Tableau Dashboard Visualizations

Charts showing relationships between player attributes and injury patterns.

SQL Data Structure
View Full Size

PostgreSQL Database Structure

Data schema and structure used for cleaning and organizing the injury dataset.