Module 04 · Injury Risk Modelling

Injury Risk Modelling

Survival models over exposure history that describe how an athlete’s own risk profile is changing — with the confidence intervals attached and the limits stated.

Injury Risk Modelling in use with a professional squad

Start with what is not possible

Individual injury prediction is a hard statistical problem, and the difficulty is structural rather than a matter of better algorithms. Non-contact soft-tissue injuries in a professional squad are rare events. Rare events mean small numbers of positive cases relative to observation periods, which means wide confidence intervals on any effect estimate, which means a model that looks impressive on a training set and disappoints on a held-out season. Add that injury is multi-causal — genetics, sleep, nutrition, technique, contact, footwear, surface, psychological stress, prior injury — and most of those causes are not in your data.

This is the same critique that the sports-science literature has directed at single-metric approaches, most publicly at the acute:chronic workload ratio, and it applies to sophisticated models too. A machine-learning model built on the same impoverished feature set inherits the same ceiling. Anyone selling you individual injury prediction with a confident accuracy figure should be asked what their false-positive rate does to a squad of twenty-five over a season.

What we build instead

We fit time-to-event (survival) models over each athlete's exposure history. Rather than asking “will this athlete be injured”, the model asks how the instantaneous hazard of a soft-tissue absence changes as accumulated exposure, exposure change rate, readiness trajectory and prior-injury history change. The output is a hazard estimate with a credible interval, and a decomposition showing which inputs moved it.

CoxProportional hazards baseline FrailtyPer-athlete random effect RecurrentRepeat-event handling 95%Interval reported

The per-athlete frailty term matters more than the model family. Athletes differ in baseline susceptibility in ways no feature set captures, and a shared-baseline model attributes that difference to whatever happens to correlate with it. Letting each athlete carry their own random effect stops the model from mistaking “this person gets injured more” for “this training pattern causes injury”.

Features, and why we keep the list short

  • Accumulated external load over multiple rolling windows, exponentially weighted
  • Rate of change of exposure, expressed as a week-on-week difference rather than a ratio
  • Log-RMSSD trajectory and its variability against the athlete's own baseline
  • Days since return from previous absence, and the type and site of that absence
  • Match versus training exposure split, and cumulative minutes at high speed
  • Age and career exposure, entered as a smooth term rather than a category

Short feature lists are deliberate. With the number of events available in a single squad-season, every additional feature buys variance rather than signal. Clubs frequently ask us to add sleep, wellness questionnaire responses or GPS metrics from a previous vendor; we will, but only after showing what it does to the interval width.

Validation you can inspect

Models are validated on a time-forward split, never a random split — a random split leaks future information into the training set and inflates every metric. We report concordance, calibration in the large, and calibration slope, and we show the calibration plot rather than a single number. Where a club's own history is too short to validate on, the model runs on a pooled prior with the club's data entering as it accumulates, and the interface says so explicitly.

If the interval on a hazard estimate spans the range from “no change” to “doubled”, that is not a finding. Showing that honestly is more useful than a number that looks decisive.

How staff actually use it

In practice the module earns its place in the weekly medical and performance meeting, not in a daily alert. The useful pattern is: three athletes whose hazard estimate has moved materially this week, with the contributing inputs listed, reviewed by people who also know that one of them flew back from international duty on Monday and one has a personal situation the model has never heard of. The model contributes a structured prompt. The staff contribute everything else.

What this does not do

It does not name who will get injured, it does not produce a green/amber/red athlete status, and it will not be used in our marketing to claim an injury-reduction percentage. If your board wants a headline number of that kind, we are the wrong vendor and we would rather say so now.

Elsewhere on the chain

Modules that sit either side of this one

See it run on your own data.

Forty-five minutes, one anonymised session file, and a straight answer about whether this module solves the problem you actually have.