Injury Risk Prediction · Football

Predict Protect Perform

A machine learning web app that forecasts injury risk for professional football players - so coaches can intervene before the whistle blows on a season.

Explore the Project ↓ View Expo Details

What is 2 to 3 Weeks?

In professional football, "2 to 3 weeks" is the most common phrase uttered when a player gets injured, a vague prognosis that leaves coaches, clubs and fans in the dark. We decided to take that phrase and turn it into a prediction engine.

Our web application ingests 20+ features including player biometric data, workload metrics, historical injury records and match statistics to output a real-time injury risk score. The goal is to give performance staff the early warning they need to rotate squads, adjust training loads and prevent career-altering injuries before they happen.

Beyond professional use, the platform also supports fantasy football players. When building squads and selecting players each gameweek, users can factor in predicted injury risk to avoid short-term absences and maximise points potential.

Built over four sprint cycles with a full-stack architecture, the system pairs a React frontend with a Python ML backend, trained on 2,000+ players across 80,000+ matches.

  • ⚡
    Real-time Risk Scoring
    Predict injury probability per player based on recent matches and training data.
  • 🧠
    ML-Powered Prediction
    Model trained on 2,000+ player-seasons of data.
  • 📊
    Coach Dashboard
    Visual interface with actionable insights.
Player Page Player Stats

Experience "2 to 3 Weeks"

The best way to understand the platform is to try it yourself. Explore real player data, view injury risk predictions, and interact with the dashboard in real time.

Sprint Cycles

The project was built using Agile methodology across four one-week sprint cycles, each delivering a shippable increment of the product.

Sprint 01 · Week 1
Research & Design
Researched about available APIs and ML models to investigate which fits best to our purpose.
  • Investigated & confirmed API-Football as data source
  • Tested multiple algorithms → selected XGBoost
  • Feature engineering on player & match data
  • Initial database population from API
  • Created frontend pages: Dashboard, Teams, My Players, Reported Injuries
Completed
Sprint 02 · Week 2
Frontend and Backend Integration
Designed and implemented a dynamic team and player interface with API-driven data, sorting, navigation, loading states and injury risk visualization.
  • Determine API structure for end-to-end data fetching and integrate automatic frontend updates.
  • Build Teams page with correct data (logos, names, injury metrics) and sort by injury risk.
  • Implement loading indicator with animated blue line during API requests.
  • Develop player sorting cards with clickable navigation and color-coded injury risk.
  • Create player view and risk trend graph with injury periods highlighted and responsive layout.
Completed
Sprint 03 · Week 3
Live Data Integration & Prediction
Integrate live data and ML predictions to build a dynamic dashboard, injuries page and search system with real-time updates and advanced filtering.
  • Integrate live API data and replace mock data with automated database updates and ML pipeline
  • Develop dashboard with matches overview, risk modules, and player comparison features
  • Implement injuries page with filtering, sorting, and navigation to player and team views
  • Build search functionality with autocomplete for players, teams, and injury regions
  • Enhance prediction model and schedule daily data updates and computations
Completed
Sprint 04 · Week 4
Deploy the Website
Final bug fixes, connect domain and deploy the final website
  • Implement relative injury risk multiplier calculated as individual risk divided by league average risk (players with ≥90 minutes in last 30 days)
  • Expand risk graph to display full 38 gameweeks with the current gameweek positioned at the right-hand side
  • Develop “Statistics” page to transparently report model performance, accuracy and limitations
  • Add “How the Model Works — Performance & Transparency” section explaining reliability and known shortcomings
  • Introduce disclaimer pop-up on first daily visit and persistent footer disclaimer across all pages
  • Enable navigation from reported injuries to individual player pages via clickable interactions
Completed

Project Expo

Join us at the final demo where we'll present the live application, our methodology, findings, and lessons learned.

2 to 3 Weeks — Final Demo

Date
May 7, 2026
Location
F2, Lindstedtsvägen 26 & 28
Time
13:00 – 17:00

Group Members

AA
August Ardhe
Product Owner & Developer
aardhe@kth.se
MÅ
Max Åstrand
Developer
JC
Joel Celinder
Developer
MD
Maya Dler Tawfik
Scrum Master & Developer
NK
Navneet Kaur
Developer
AM
Aryan Masiul
Developer
LN
Lukas Noel
Developer
LV
Leon Vesterlund
Developer