SkillCorner X PySport Analytics Cup
December 28, 2025 · View on GitHub
This repository contains Emaly Vatne's submission for the SkillCorner X PySport Analytics Cup Research Track. :)
Calculating Worst-Case Scenario Running Demands in Soccer Using Optical Tracking Data and Contextualizing Them with In-Game Events and Visualized Movement Sequences
Introduction
External load metrics from match play are ubiquitously used to support physical preparation in soccer (1), but are often aggregated across a match, obscuring worst-case scenario (WCS) demands. WCS demands represent the highest locomotor intensities over short rolling windows and better reflect peak match demands than whole-match averages (2,3). Preparing players for WCS demands is critical for effective training design. However, WCS metrics are rarely contextualized within the game, limiting their value to coaches. It remains unclear which technical or tactical actions precede WCS demands or how movement sequences can support sport-specific conditioning. Therefore, this study aimed to contextualize WCS running demands by identifying preceding events and reconstructing movement sequences to inform tactical teaching and physical preparation.
Methods
Optical tracking data from a randomly selected professional soccer match with publicly available tracking and event files (Brisbane Roar FC vs. Perth Glory FC; match_id = 1925299) were analyzed to develop this reusable tool. WCS running demands were calculated using a rolling moving-average approach across 1-, 2-, 3-, 4-, and 5-minute windows. For each player, WCS windows were extracted and aligned with event data using timestamps and frame counts. Events occurring prior to each WCS window were merged with its start by matching frame count and player ID. Player trajectories and speed profiles during WCS periods were reconstructed to characterize individual movement sequences.
Results
This submission provides a generalizable Jupyter Notebook that calculates WCS demands from SkillCorner tracking data, merges them with preceding in-game dynamic events on a player-specific basis, and visualizes movement sequences during WCS periods for a selected player, allowing the workflow to be applied across matches.
In the match analyzed for the development of this tool, the peak running intensity increased as window duration shortened, with the highest demands observed during the 1-minute windows, consistent with previous literature (2,3).
Table 1. Team-level summary of peak locomotor intensities across multiple WCS durations, reported as mean values with minimum–maximum ranges.
| Team | Peak m/min 60s | Peak m/min 120s | Peak m/min 180s | Peak m/min 240s | Peak m/min 300s |
|---|---|---|---|---|---|
| Brisbane Roar FC | 220.3 (98.2 – 269.6) | 212.1 (78.7 – 269.6) | 210.4 (73.2 – 269.6) | 209.4 (67.5 – 269.6) | 209.2 (65.2 – 269.6) |
| Perth Glory Football Club | 225.1 (114.2 – 375.5) | 212.7 (97.9 – 375.5) | 210.7 (89.6 – 375.5) | 208.9 (81.6 – 375.5) | 208.5 (81.6 – 375.5) |
Additionally, common preceding events differed across players and positions, with WCS demands emerging from contexts including defensive off-ball runs and on-ball engagements.
Table 2. Summary of dynamic tactical events occurring immediately before peak 60-second worst-case scenario (WCS) running demands, grouped by team.
| Team | Event Type | Event Type Count | Event Proportion | Event Sub-Type | Sub-Type Count |
|---|---|---|---|---|---|
| Brisbane Roar FC | passing_option | 2 | 28.57 | No Sub-Type | 2 |
| Brisbane Roar FC | off_ball_run | 2 | 28.57 | run_ahead_of_the_ball | 1 |
| Brisbane Roar FC | off_ball_run | 2 | 28.57 | support | 1 |
| Brisbane Roar FC | on_ball_engagement | 2 | 28.57 | pressure | 1 |
| Brisbane Roar FC | on_ball_engagement | 2 | 28.57 | recovery_press | 1 |
| Brisbane Roar FC | player_possession | 1 | 14.29 | No Sub-Type | 1 |
| Perth Glory FC | off_ball_run | 3 | 37.50 | run_ahead_of_the_ball | 1 |
| Perth Glory FC | off_ball_run | 3 | 37.50 | support | 2 |
| Perth Glory FC | passing_option | 2 | 25.00 | No Sub-Type | 2 |
| Perth Glory FC | player_possession | 2 | 25.00 | No Sub-Type | 2 |
| Perth Glory FC | on_ball_engagement | 1 | 12.50 | pressing | 1 |
Movement sequence analysis revealed substantial inter-individual variability in how peak demands were accumulated despite similar running intensities. This part of the Notebook supports the design of conditioning drills that replicate the locomotor demands of WCS demands periods. Additionally, the visualization demonstrates that WCS demands/peak running intensities are rarely linear and in the same speed and thus training should adjust accordingly to be sport-specific.
Figure 1. Example animation of 60-Second WCS Demand Movement Sequence.
Conclusion
This workflow provides coaches and performance practitioners with interpretable, context-driven WCS calculations and analysis. By linking peak running intensities to tactical events and reconstructing movement sequences, it enhances collaboration across departments and informs individualized, sport-specific training prescriptions. The notebook offers a scalable tool that can be repeatedly applied across matches to support ongoing monitoring, tactical evaluation, and readiness-based decision-making in elite soccer.
How to Run the Code
- Prerequisites
Make sure Python3 is installed. - Install Pipenv
- Set up the environment
- Open the notebook
Launchsubmission.ipynband choose the Python kernel created by Pipenv. - Run the notebook
Select the match(es) that you wish to analyze. For the movement sequences visualization, select the player and window duration and then hit Play.
References
-
Halson, S. L. (2014). Monitoring Training Load to Understand Fatigue in Athletes. Sports Medicine, 44(S2), 139–147. https://doi.org/10.1007/s40279-014-0253-z
-
Oliva-Lozano, J. M., Rojas-Valverde, D., Gómez-Carmona, C. D., Fortes, V., & Pino-Ortega, J. (2020). Worst case scenario match analysis and contextual variables in professional soccer players: A longitudinal study. Biology of Sport, 37(4), 429–436. https://doi.org/10.5114/biolsport.2020.97067
-
Lobo-Triviño, D., García-Calvo, T., Polo-Tejada, J., Sanabria-Pino, B., López del Campo, R., Nevado-Garrosa, F., & Raya-González, J. (2025). Analyzing Positional and Temporal Variations in Worst-Case Scenario Demands in Professional Spanish Soccer. Journal of Functional Morphology and Kinesiology, 10(2), 172. https://doi.org/10.3390/jfmk10020172