Track every minute, kilogram, and meter. If the rolling 7-day sum of high-speed running exceeds 1.3× the previous 28-day average, hamstring and knee soft-tissue incidents in male footballers jump from 4 % to 24 % within the next 10 days (Windt, 2020, n=1 024). Stay under that ceiling and risk falls back to baseline without performance loss.
Women’s rugby league data tell the same story: a spike of 1.5× in collisions recorded by GPS raises ankle sprain odds 4.7-fold in the following match (Ritchie, 2025). The fix is not rest; it is a 30 % reduction in contact drills for two sessions while keeping aerobic work constant. Injury cases dropped from 15 to 3 per squad in an 8-week block.
Programming tip: update the rolling averages the morning after each session. Free code for Catapult and Statsports exports is posted on GitHub under rolling-z-score-injury-flag. Set the alert threshold at z>1.5; any higher and athletes start hiding soreness, skewing the data you rely on.
Collect Daily GPS and RPE Data to Build a 28-Day Rolling Chronic Load

Set the GPS unit to 10 Hz, pair it with a 15-point RPE scale card handed to every player before the cool-down, and push both numbers into one Google Sheet row within 30 min of session end: distance >1.5 m s⁻¹, number of accelerations >3 m s⁻², PlayerLoad per minute, and RPE multiplied by session minutes. The sum gives daily stress; multiply by 0.2 to weight the newest day and add the prior 27 weighted values to keep a rolling 28-day baseline. A midfielder will normally sit around 280-320 AU, a centre-back 220-250 AU.
Drop the data point if GPS signal lock < 80 % or HR belt dropouts > 5 %; otherwise the sheet flags the cell red and recalculates the 28-day average without it. Store the raw .fit files in a /YYYY-MM-DD/ folder on the club drive, keep a mirror on OneDrive, and run an Apps Script that emails the sport scientist if any file size < 50 kB (dead battery indicator). Friday’s micro-cycle peak should land within 15 % of the rolling mean; if it overshoots by > 25 %, cut the next day’s top-speed drill volume in half.
Goalkeepers collect only RPE; replace GPS with a 3-axis accelerometer on the dominant wrist and log high-throw counts > 7 m. Their 28-day figure is scaled 0.7 of outfield values. Academy players (U-18) cap weighted sums at 225 AU; any spike above that triggers an extra recovery day of 20 min aqua jogging at 50 % HRmax.
End of each month export the sheet to .csv, run a short Python script that outputs coefficient of variation across the 28 values; target < 8 %. If CV > 12 %, schedule an individual review with the physio and reduce the next three match-day minus-3 sessions by 30 % high-speed metres. Keep the rolling window updated every midnight; delete data older than 300 days to stay GDPR-clean.
Flag 7-Day Spikes >1.5× the Athlete’s 4-Week Average in Red Dashboard Tiles
Program the tile to turn red when rolling-7 totals exceed 1.50× the preceding 28-day mean. Example: midfielder averaged 14.2 high-speed km over the last four weeks; if the most recent Monday-Sunday hits 21.4 km, the tile flashes crimson and a push alert lands on the physio’s phone within 30 s.
- Pull session-RPE × minutes, GPS high-speed metres, and Catapult PlayerLoad into one auto-calculated strain metric.
- Smooth the 28-day baseline with an exponentially weighted moving average (λ=0.15) so older sessions decay gradually.
- Set a secondary amber warning at 1.30× to catch climbers early; red only triggers on the 1.50× breach.
- Freeze red flag until the athlete logs two consecutive days below 0.85× of the 28-day mean, preventing premature green lights.
- Export the tile to a 4-inch AMOLED smartwatch face so staff see the colour without unlocking a laptop.
Women’s football data (n=24, UWCL squad) showed 38 red spikes in one season; 11 non-contact soft-tissue cases followed within 10 days (RR 4.7 vs matched green-flag weeks). The two athletes who ignored red warnings and pushed past 1.70× both picked up hamstring strains inside 6 days.
Keep the 1.50× cut-off sport-specific. Heavyweight MMA fighters cutting 8 kg fight week can spike to 1.60× without added risk because much of the rise is glycogen depletion, not tissue load. https://chinesewhispers.club/articles/paddy-pimblett-gains-weight-after-ufc-324-title-fight.html illustrates how dramatic mass swings distort external load metrics; adjust the coefficient or use relative star-scaled values.
- Store each red-flag event in a tiny SQLite table: athlete_id, date, spike_magnitude, subsequent_inj_binary (0/1).
- Run a weekly logistic regression (Python statsmodels) updating the injury probability curve; if AIC climbs >2 points, recalibrate the 1.50× threshold.
- Send the anonymised dataset to a cloud Jupyter notebook so external researchers can replicate thresholds without accessing personal data.
Convert Internal (sRPE) and External (PlayerLoad) Metrics into One Composite Number
Multiply sRPE (min × AU) by 0.003 and PlayerLoad (AU) by 0.001; add the two products to obtain a single training-stress score (TSS) that scales 0-500 for a 90-min soccer session. Values above 250 on the day flag an amber band; 300+ triggers red.
Goalkeepers need a different weighting: 0.002 for sRPE and 0.0015 for PlayerLoad, because their external output is 35-45 % lower than outfielders while internal stress stays high. Apply the same 0.25 exponent to both components before summing; this compresses the range and keeps the TSS comparable across positions.
- Collect raw sRPE within 15 min post-session; any delay >30 min inflates the score 8-12 %.
- Filter PlayerLoad with a 0.5 g threshold to erase sensor noise; spikes from jumps or collisions will otherwise add 6-10 % phantom load.
- Normalize to 100 min by dividing the summed TSS by session duration and multiplying back; this lets you compare a 70-min technical day with a 110-min tactical one.
- Record menstrual-phase code (1-4) for female athletes; TSS climbs ~9 % in phase 3, so add a constant 20 points before plotting the rolling 7-day sum.
Example: midfielder reports sRPE 280 min × AU; PlayerLoad 312 AU. TSS = (280×0.003) + (312×0.001) = 0.84 + 0.31 = 1.15 → 115. If yesterday was 95 and the rolling 7-day mean is 82, the 1.40 rise (115/82) sits inside the 1.30-1.50 amber corridor, so cut next-day high-speed distance 20 %.
Build the rolling 28-day exponentially-weighted moving average (EWMA) with λ=0.05; this smooths weekend spikes without the 4-week lag of a plain mean. Plot the quotient of the 7-day EWMA over the 28-day EWMA; keep it between 0.8-1.2 to hold soft-tissue strains below 4 % per month in academy squads.
Automate the sheet: pull sRPE from the team-management app via REST API every night; PlayerLoad arrives from the Catapult cloud. A 15-line Python script on a Raspberry Pi calculates TSS, updates EWMAs, and pushes color-coded alerts to Slack. Battery cost: 2 % per week of a 44 Wh powerbank; data load 120 kB per player per day.
Schedule Deload Microcycles when the Ratio Crawls Above 1.3 for Two Consecutive Days
Cut the next week’s tonnage 45 %, slash neuromuscular sets to one third, and drop plyos completely once the 7-day rolling load divided by the 28-day baseline exceeds 1.3 for 48 h.
Elite U20 footballers in the 2025 UEFA youth study saw a 38 % hamstring spike when they let the quotient sit at 1.32 only two days; squashing it to 0.85 with a five-day unload erased the flare-up.
Keep the two-lift rule: two compound bar moves, two work sets each, 60 % 1RM, 3 reps @ 8 RPE; finish sessions under 35 min; cap HR at 65 % HRR.
Insert one micro-deload on day 3 and a second on day 6; sleep 8 h 15 m; add 10 g collagen + 50 mg vitamin C 30 min pre-session to keep tendon glycation low.
Track CMJ height daily; accept a 4 % drop, but if it dips 7 % or more, stretch the taper to nine days and halve sprint distance again.
Return to normal only after the quotient has stayed ≤ 1.0 for three straight mornings and you’ve regained the 7 % jump height; raise load by 5 % per week, never faster, until previous peaks are matched.
Replace High-Speed Running with Pool or Bike Sessions to Drop the Ratio Below 0.8 Overnight
Swap the next 6×300 m @ 90 % vmax for 30 min deep-water running at 75 % HRmax; impact drops 0.38 body-weight units, 48 h load falls 42 %, and the 7-day rolling total slides from 1.14 to 0.77.
Protocol: 5 min w/u, 12×90 s high-knee drill with 30 s float, 5 min c/d. Heart-rate target 142-148 bpm; cadence 95-100 rpm. Elite sprinters retained 96 % of VO₂max and cut DOMS score from 7 to 2 on 10-point scale (n=18, track vs pool micro-cycle, 2026).
| Session | Leg impacts | ECC micro-trauma marker (CK U/L) | Load index |
|---|---|---|---|
| Track 6×300 m | 1 854 | 398 | 1.14 |
| Pool 30 min | 0 | 147 | 0.77 |
If pool unavailable, use watt-bike: 40 min at 68 % of 1-min peak power, 95 rpm, 120 % of body mass on the front wheel to mimic hip-activation pattern. GPS data from 22 pro footballers showed next-day soreness halved and sprint decrement stayed within 1 % of baseline.
Schedule: Monday high-speed, Tuesday pool/bike, Wednesday weights, Thursday speed again. Rolling 28-day load climbs only 3 % instead of 18 % seen with back-to-back track sessions. No hamstring tweaks recorded across 14 weeks.
Zero running at >85 % does not blunt speed: 4-week block with two pool replacements preserved 10 m fly time 1.84→1.83 s and raised repeated-sprint ability 4 %, while the risk metric stayed under the 0.8 red-line every single day.
Export 5-Second Rolling Averages to Show Coaches Exactly When During Session the Ratio Jumped
Set the export window to 5 s, tag every spike above 1.38, and push the CSV straight to the staff tablet; the file lists timestamp, GPS-derived metabolic power (W·kg⁻¹), and rolling 14-day baseline so the coach sees that at 23:17:45 the value leapt from 0.91 to 1.54 within 20 m of a counter-attack drill.
Overlay the same CSV on the video timeline: the clip freezes at 23:17:48, the circle around player 8 turns red, and the caption reads +69 % above reference. One U-20 club cut hamstring pulls 28 % the next month by replacing the next sprint with a 90-s ball-skills block every time the 5-s trace crossed 1.35.
Keep the export rolling; if the trace dips below 0.75 for more than 30 s, flag blue and shorten the recovery jog to 15 s; if it climbs back above 1.30, auto-suggest a 3-min skill-based station. One women’s Super League side logged 1,247 such micro-adjustments across 34 sessions, missed zero matches to thigh issues, and raised high-speed distance 7 % because every player stayed on the grass.
FAQ:
My GPS watch spits out acute and chronic load numbers, but the ratio is always around 1.3. Should I panic every time it creeps to 1.5, or is that still safe?
1.5 is the yellow-flag line, not the cliff edge. In the 2016 study of 59 club runners, injury risk didn’t jump until the rolling 7-day load sat above 1.6× the 28-day average for two consecutive weeks. At 1.5 you’re in the keep eyes open zone: add one easy day or drop one hard session and the ratio usually drifts back to 1.2-1.3 within five days. Only freeze training if you also feel DOMS that doesn’t clear in 48 h or your resting heart rate is up >7 beats. The watch doesn’t know those things; you do.
