Metric Definitions¶
The exact formulas, thresholds, and computation rules behind every physical metric the system reports. This is the reference a coach or sports scientist can audit and an engineer can implement from directly. It turns the metric list in functional-requirements.md (FR-PHY, FR-LOAD) into precise math.
Scope: youth / omladinski football (roughly U12–U19). The single most important rule in this document: adult thresholds do not transfer to children. A U13 who tops out at 24 km/h records zero sprint distance against an adult 25.2 km/h cut-off — a measurement artefact, not a training truth. Every threshold below therefore comes in two forms: a default age band (to start today, squad-comparable) and an individualized version (the professional standard, once each player has been speed-tested). Calibrate to the individual as soon as you can — Section 8 is the protocol.
What the system measures from. Each fix is the wire packet in
server/src/types.ts: lat, lon, spd (m/s, GNSS Doppler),
hdg, fix, sats, pdop, server-stamped serverTs (ms). Sample rate is 10 Hz
(NFR-RATE-1). IMU-derived metrics (PlayerLoad, clean accel/decel) need the optional MPU-6050
(ADR-0004); where the IMU is absent, a GPS-only
substitute is given so v1 is never blind.
0. Conventions & units¶
| Quantity | Symbol | Unit | Notes |
|---|---|---|---|
| Velocity (instantaneous) | v |
m/s | from packet spd; ×3.6 → km/h |
| Acceleration | a |
m/s² | derivative of smoothed v (Section 2.3) |
| Distance | d, TD |
m | between consecutive fixes (Section 2.1) |
| Sample interval | Δt |
s | nominal 0.1 s at 10 Hz; use actual serverTs deltas |
| Gravity | g |
9.81 m/s² | for metabolic-power equivalent slope |
| Load (session-RPE) | — | AU | arbitrary units (RPE × minutes) |
| PlayerLoad | PL |
au | Catapult-scaled accelerometer load |
| Metabolic power | P |
W/kg | di Prampero model |
Conversions used throughout: 1 m/s = 3.6 km/h; km/h → m/s = ÷3.6.
Always compute on serverTs deltas, never assume an exact 0.1 s — at 10 Hz QoS0 a frame can be
dropped (NFR-RES-2) and a naive fixed Δt then inflates speed and acceleration.
1. Youth age categories & maturation¶
Serbian federation (FSS) categories map approximately as below; exact birth-year cut-offs vary by competition, so treat these as bands, not law.
| Category (RS) | Typical ages | Band used here |
|---|---|---|
| Mlađi pioniri | ~U12 | U12 |
| Stariji pioniri | ~U13–U14 | U14 |
| Kadeti | ~U15–U16 | U16 |
| Omladinci / Juniori | ~U17–U19 | U19 |
Maturation, not just age, drives the numbers. Two U14s can differ by years of biological development; high-speed and high-load thresholds track maturity (peak height velocity, PHV) more than birth year. For a squad you can quantify this cheaply:
- Khamis–Roche %-of-predicted-adult-height (needs height, weight, mid-parent height) — a simple maturity index, no sitting-height measurement.
- Mirwald maturity offset — years-from-PHV from height, sitting height, weight, age.
Use a maturity estimate to (a) prefer individualized thresholds over age-band defaults, and (b) apply the growth-spurt guardrails in Section 7. This is the difference between a toy and a professional youth service.
2. Distance, velocity & acceleration primitives¶
Everything else is built on these three per-sample quantities.
2.1 Per-sample distance (FR-PHY-1)¶
Distance between consecutive fixes i-1 → i. Two equivalent options:
Haversine (direct on lat/lon):
φ = latitude (rad), λ = longitude (rad), R = 6 371 000 m
Δφ = φ_i − φ_{i-1}, Δλ = λ_i − λ_{i-1}
h = sin²(Δφ/2) + cos φ_{i-1}·cos φ_i·sin²(Δλ/2)
d_i = 2R·asin(√h)
Local planar (faster, and what the client already uses — makeProjector in
client/src/geo.ts): project to metres east/north about a session
reference point, then d_i = √(Δx² + Δy²). Over a 105×68 m pitch the two agree to < 1 cm; planar
is preferred for the analytics path because the projection is shared with the homography.
Total Distance TD = Σ d_i over the session.
Noise floor. Consumer GNSS jitters ~2–5 m even when still (NFR-ACC-1). Summing raw d_i
manufactures phantom distance. Gate it: ignore d_i when v_i is below a walking floor
(≈ 0.4 m/s) or when pdop > 5 / fix < 2. Prefer integrating the Doppler spd
(d_i ≈ v_i·Δt), which is far less noisy than differencing positions.
2.2 Velocity (FR-PHY-2)¶
Use the packet spd (u-blox Doppler velocity) as the primary source — it is more accurate and less
noisy than position differencing. Max speed is the session peak of smoothed v (below);
report the peak sustained over ≥ 0.3 s (≥ 3 samples), never a single-sample spike, which is almost
always GNSS noise.
2.3 Smoothing & acceleration (FR-PHY-6)¶
Raw 10 Hz velocity is too noisy to differentiate directly — differentiating noise yields garbage acceleration. Smooth first, then differentiate:
- Smooth
vwith a short low-pass: a centred moving average over ~5 samples (0.5 s), or a 2nd order Butterworth at ~1 Hz cut-off. Call the resultṽ. - Acceleration
a_i = (ṽ_i − ṽ_{i-1}) / Δt_i, using the realΔt_i = (serverTs_i − serverTs_{i-1})/1000. - Clamp to a human-plausible range (|a| ≤ ~8 m/s²); anything beyond is a GNSS artefact.
GPS acceleration is adequate for accel/decel effort counts; it is not PlayerLoad. True PlayerLoad needs the 50–100 Hz IMU (NFR-RATE-2, Section 5.1). Don't conflate them.
3. Speed zones (FR-PHY-3, FR-PHY-4)¶
3.1 Adult reference model (the baseline we scale down from)¶
The widely-used 5-zone model. Do not apply these to youth — they are the anchor for the age-band table that follows.
| Zone | Name | km/h | m/s |
|---|---|---|---|
| 1 | Walking | 0 – 7.2 | 0 – 2.0 |
| 2 | Jogging | 7.2 – 14.4 | 2.0 – 4.0 |
| 3 | Running | 14.4 – 19.8 | 4.0 – 5.5 |
| 4 | High-Speed Running (HSR) | 19.8 – 25.2 | 5.5 – 7.0 |
| 5 | Sprinting | > 25.2 | > 7.0 |
- High-Speed Running distance (HSRD) = distance in Zone 4+ (≥ 5.5 m/s adult).
- High-Intensity distance = distance in Zone 4 + Zone 5.
- Sprint distance = distance in Zone 5.
3.2 Default age-band thresholds (start here)¶
Pragmatic absolute thresholds for whole-squad comparability before you have individual test data. Set at roughly 85–90 % of typical category maximal speed, so the metric is meaningful for that age. These are starting defaults — replace per player after speed-testing (Section 8).
| Band | HSR threshold | Sprint threshold | (HSR / Sprint, m/s) |
|---|---|---|---|
| U12 | 16.0 km/h | 19.0 km/h | 4.44 / 5.28 |
| U14 | 17.5 km/h | 21.0 km/h | 4.86 / 5.83 |
| U16 | 19.0 km/h | 23.0 km/h | 5.28 / 6.39 |
| U19 | 19.8 km/h | 25.0 km/h | 5.50 / 6.94 |
Zones 1–3 keep the adult walking/jogging/running breaks (2.0 / 4.0 m/s); only the high-intensity band (HSR) and sprint cut-off scale by age. Store the threshold set used with each session so historical metrics stay interpretable when you later re-tune.
3.3 Individualized thresholds (the professional standard)¶
Once a player has been tested, derive thresholds from their capacities, not their birth year. Two anchors per player:
- MSS — Maximal Sprint Speed (m/s), the fastest they can run (Section 8.1).
- MAS — Maximal Aerobic Speed (m/s), the speed at VO₂max, the floor of "high-intensity" aerobic work (Section 8.2).
- ASR — Anaerobic Speed Reserve =
MSS − MAS. The window between "hard aerobic" and "flat-out".
Thresholds:
High-intensity running v > MAS
Sprint v > MAS + 0.90·ASR (≈ flat-out; ~90% of the reserve)
— or simply v > 0.90·MSS, whichever your staff prefers
3.4 What counts as a "sprint" (FR-PHY-3)¶
A sprint is an effort, not a single fast sample. Count one sprint when all hold:
vrises above the sprint threshold (3.2 / 3.3), and- stays above it for ≥ 1.0 s (≥ 10 samples), and
- consecutive sub-threshold efforts are separated by a ≥ 1.0 s dip below threshold (otherwise it's one effort, not two).
Report sprint count, sprint distance (distance accumulated while above threshold), and max sprint speed. An optional stricter definition also requires an entry acceleration (e.g. the player accelerated > 2.5 m/s² into the effort) to distinguish a true sprint from drifting over the line downhill.
4. Accelerations & decelerations (FR-PHY-6)¶
High accel/decel counts are a large, often dominant share of youth neuromuscular load and a known soft-tissue injury driver — decelerations especially.
4.1 Effort thresholds¶
| Intensity | Acceleration | Deceleration |
|---|---|---|
| Moderate | a ≥ +2.0 m/s² | a ≤ −2.0 m/s² |
| High | a ≥ +3.0 m/s² | a ≤ −3.0 m/s² |
Youth default to the 2.0 / 3.0 m/s² bands above (adults often add a > 4 m/s² tier). A clean, mature U19 squad may add a +4 / −4 tier.
4.2 Counting an effort¶
Mirror the sprint rule: an effort counts when a crosses the threshold and is sustained ≥ 0.3 s
(≥ 3 samples); efforts within 0.3 s of each other merge. Report counts per band, per direction
(accel vs decel), plus accel/decel density = efforts per minute. Because these come from
differentiated GPS velocity, treat absolute values as trend indicators, not lab-grade — the IMU
(Section 5.1) is the accurate source.
5. Load metrics (FR-PHY-7, FR-LOAD-1)¶
"Load" is the dose of training. We define external load (what the body did, from sensors) and internal load (what it cost the athlete, from RPE/HR). For youth, track both — external for mechanical/overuse risk, internal for fatigue.
5.1 PlayerLoad — IMU, the gold-standard external load¶
Catapult-style accumulated tri-axial accelerometer load. Requires the MPU-6050 at 50–100 Hz
(NFR-RATE-2). For samples in g:
PL_n = √[ (x_n − x_{n-1})² + (y_n − y_{n-1})² + (z_n − z_{n-1})² ] / 100
PlayerLoad = Σ PL_n (accumulated over the session, arbitrary units)
PlayerLoad/min = PlayerLoad / session_minutes (intensity)
/100 is Catapult's scaling convention so values land in a familiar range. Report total and
per-minute. Not available in GPS-only v1 — use 5.2 as the substitute until the IMU is fitted.
5.2 Metabolic Power & High-Metabolic-Load Distance — GPS-only load proxy¶
The professional way to capture load without an IMU. Speed zones miss the cost of hard
accelerations; di Prampero's model recovers it by treating accelerated flat running as equivalent
uphill running. Per sample, from smoothed v and a:
Equivalent slope ES = a / g (g = 9.81)
Equivalent mass EM = √(ES² + 1)
Energy cost (J/kg/m) EC = (155.4·ES⁵ − 30.4·ES⁴ − 43.3·ES³ + 46.3·ES² + 19.5·ES + 3.6) · EM
Metabolic power P = EC · v (W/kg)
+ k·v², k ≈ 0.01, is negligible at youth speeds.)
- High-Metabolic-Load Distance (HMLD) = distance covered while
P ≥ 25.5 W/kg. (Use ≥ 20 W/kg as a softer youth variant.) HMLD counts hard accel/decel efforts that a pure speed zone ignores. - Equivalent Distance
EqD = (Σ P·Δt) / 3.6— total energy expressed as the level-running distance that would have cost the same.EqD / TD > 1quantifies how "stop-start" the session was.
Worked example — v = 5.0 m/s:
| Case | a | ES | EM | EC (J/kg/m) | P (W/kg) |
|---|---|---|---|---|---|
| Constant speed | 0.0 | 0.000 | 1.000 | 3.60 | 18.0 |
| Hard acceleration | 2.0 | 0.204 | 1.021 | 9.32 | 46.6 |
Same 5 m/s, but accelerating more than doubles the metabolic cost — which is exactly the signal HMLD captures and speed zones throw away.
5.3 Session-RPE — internal load, zero hardware¶
The most validated, cheapest internal-load measure; works even before any wearable is on the pitch. Collect the player's Rating of Perceived Exertion ~30 min post-session on the CR-10 scale (0–10):
Example: RPE 6 × 70 min = 420 AU. This AU is the recommended daily load input to ACWR (Section 6) because every player produces one every session, with or without a device.5.4 Choosing the daily-load currency¶
ACWR and monotony need one number per athlete per day. Pick one and keep it consistent:
| Currency | Source | Best for |
|---|---|---|
| sRPE (AU) | RPE × min | Always available; recommended default for youth |
| Total Distance (m) | GPS | Volume-driven, simple |
| HMLD / EqD | GPS metabolic | Captures intensity without IMU |
| PlayerLoad (au) | IMU | Best mechanical load, once IMU is fitted |
6. ACWR — Acute:Chronic Workload Ratio (FR-LOAD-2, FR-LOAD-3)¶
The flagship readiness/risk flag: is recent load spiking above what the athlete is prepared for?
6.1 Definitions¶
- Acute load = total daily load over the last 7 days (the current week's fatigue).
- Chronic load = the athlete's rolling 28-day load expressed as a weekly average (their "fitness"/preparedness).
ACWR = Acute / Chronic.
Two computation methods — implement EWMA, keep RA for transparency:
Rolling Average (RA), uncoupled (recommended — avoids mathematical coupling):
Acute = Σ load over days t-6 … t (last 7 days)
Chronic = (Σ load over days t-27 … t-7) / 3 (the prior 21 days, weekly avg)
ACWR_RA = Acute / Chronic
Exponentially-Weighted Moving Average (EWMA) — weights recent days more, handles missed days better:
λ_acute = 2 / (7 + 1) = 0.250
λ_chronic = 2 / (28 + 1) = 0.069
EWMA_today = load_today · λ + EWMA_yesterday · (1 − λ) (run for acute and chronic separately)
ACWR_EWMA = EWMA_acute / EWMA_chronic
6.2 Worked example (RA, sRPE AU)¶
Weekly loads: three prior weeks 1800, 2000, 2200; current week (acute) 2600.
(Coupled would be2600 / ((1800+2000+2200+2600)/4) = 2600/2150 = 1.21.)
6.3 Interpretation bands¶
| ACWR | Zone | Reading |
|---|---|---|
| < 0.80 | Undertraining / detraining | Load dropped — fitness may be eroding |
| 0.80 – 1.30 | "Sweet spot" | Load progressing in step with preparedness |
| 1.30 – 1.50 | Caution | Spiking; watch closely |
| > 1.50 | High-risk "danger zone" | Acute spike well beyond chronic base |
6.4 Monotony & Strain (Foster)¶
Cheap companions to ACWR that flag sameness of load — a separate risk factor:
Monotony = mean(daily load over the week) / SD(daily load over the week)
Strain = weekly total load × Monotony
6.5 Caveats — read before acting on a number¶
ACWR is a flag, not a verdict, and is genuinely contested in the literature:
- Mathematical coupling — the acute week sits inside a coupled chronic window, biasing the ratio (Lolli et al.). Use the uncoupled form (6.1).
- Warm-up period — chronic needs ~28 days of history to mean anything. Don't compute or act on ACWR in a player's first 3–4 weeks of data; show "building baseline" instead.
- Youth validity — ACWR thresholds were derived largely in adult/pro populations; in growing athletes treat bands as softer guidance and weight Section 7 (maturation) heavily.
- Never decide on ACWR alone — combine with wellness (sleep, soreness, mood), HR-based readiness, and the coach's eyes. Critiques (Impellizzeri, Windt & Gabbett) are right that a single ratio can't carry a load-management decision.
7. Youth & maturation guardrails¶
Professional youth service ≠ shrinking the adult model. Extra rules that override raw numbers:
- Cap weekly progression — avoid raising weekly load > ~10 % week-on-week (the "10 % rule": imperfect, but a sane ceiling for growing tissue). Large green-zone ACWR jumps still warrant caution in youth.
- Growth-spurt sensitivity (around PHV) — during the peak-height-velocity window, bone grows ahead of tendon and coordination dips; apophysitis (Osgood–Schlatter, Sever's) risk rises. Temporarily reduce high-speed and high-decel exposure for players flagged near PHV (Section 1).
- Bio-band comparisons — compare and benchmark by maturity status where possible, not just age, so an early-maturing U14 isn't held to an early-developer's numbers (or vice-versa).
- Integrate internal load + wellness — sRPE (5.3) and a 1–5 wellness check (sleep, soreness, energy, mood) catch overload that external GPS load alone misses, and need no hardware.
- Individualize first — youth variance is enormous; per-player thresholds (3.3) and per-player baselines beat any squad-wide default.
8. Calibration protocols (per-player profile)¶
The tests that turn age-band defaults into individualized thresholds. Re-test each block (~6–8 weeks) and after growth spurts — youth capacities move fast.
8.1 Maximal Sprint Speed (MSS)¶
- Protocol: 2–3 × maximal ~30–40 m sprints from a rolling/standing start, full recovery between. Outdoors, dry, fitted device.
- Read-out:
MSS= peak smoothed GPS speed (peak 0.3–0.5 s window, not a single sample). - Use: sprint / HSR thresholds (3.3); the upper anchor of ASR.
8.2 Maximal Aerobic Speed (MAS)¶
Pick one:
- 30-15 Intermittent Fitness Test (Buchheit) — use the final running speed VIFT as the
high-intensity reference velocity. Practical for a squad; intermittent like football.
- Time-trial — a maximal 5–6 min run; MAS ≈ distance / time (m/s). The GPS already gives
the distance.
- Use: the high-intensity-running floor (3.3); the lower anchor of ASR.
8.3 Store the profile with the data¶
Persist per player: MSS, MAS, ASR = MSS − MAS, derived HSR/sprint thresholds, test date,
maturity estimate. Stamp the threshold set onto every session so a later re-test doesn't
silently rewrite historical metrics — comparability across a season depends on this.
9. Where each metric is computed (system mapping)¶
| Stage | Lives in | Metrics |
|---|---|---|
| Wearable (10 Hz) | firmware/src/main.cpp |
raw lat/lon/spd/hdg/fix (+ IMU later) — no derived metrics on-device |
| Ingest (real-time) | server/src/ingest.ts |
server-stamp, validate (fix ≥ 2), persist; live v, live distance for the coach view |
| Live view | client/src/PitchCanvas.tsx |
current speed, live distance, position (homography); splits |
| Analytics (post / rolling) | future analytics module over server/src/db.ts |
zones, sprints, accel/decel, HMLD/EqD, PlayerLoad, daily load, ACWR, monotony |
Live metrics (speed, distance, dots) compute on the hot path; derived load metrics (zones, ACWR, HMLD) are batch/rolling over stored history (FR-DATA-2) — they don't belong on the per-packet path. Persisted raw telemetry (FR-DATA-1) means any threshold can be re-derived retroactively when you re-tune.
10. Metric → requirement → formula index¶
| Metric | FR | Section |
|---|---|---|
| Total distance | FR-PHY-1 | 2.1 |
| Current / max speed | FR-PHY-2 | 2.2 |
| Sprint count & distance | FR-PHY-3 | 3.2–3.4 |
| HSR / High-Intensity distance | FR-PHY-4 | 3.1–3.3 |
| Distance per minute | FR-PHY-5 | 2.1 + 5.1 (per-min pattern) |
| Accelerations / decelerations | FR-PHY-6 | 2.3, 4 |
| PlayerLoad | FR-PHY-7 | 5.1 |
| Metabolic power / HMLD (GPS load proxy) | FR-PHY-7 (IMU-free) | 5.2 |
| Session-RPE (internal load) | FR-LOAD-1 | 5.3 |
| ACWR | FR-LOAD-2 | 6 |
| Monotony / strain, injury-risk flags | FR-LOAD-3 | 6.4, 6.5, 7 |
References (concepts attributed, standard in the field)¶
- Minetti et al. (2002) — energy cost of running on gradients (the EC polynomial).
- di Prampero et al. (2005); Osgnach et al. (2010) — metabolic power & equivalent slope in football from GPS.
- Foster (1998) — session-RPE, training monotony and strain.
- Gabbett (2016); Blanch & Gabbett (2016); Hulin et al. — acute:chronic workload ratio.
- Lolli et al. (2019); Windt & Gabbett (2019); Impellizzeri et al. (2020) — ACWR coupling & methodological critiques (why uncoupled / EWMA / "flag not verdict").
- Buchheit (2008) — 30-15 Intermittent Fitness Test (VIFT / MAS reference).
- Mendez-Villanueva & Buchheit; Buchheit — individualized (% MSS / MAS / ASR) GPS thresholds for youth.
- Mirwald et al. (2002); Khamis & Roche (1994) — maturity offset / predicted adult height for bio-banding.
These are starting parameters for a youth setting, not immutable constants. The professional workflow is: start on age-band defaults → speed-test → individualize → re-test each block → always read load metrics alongside wellness and the coach's judgement.
Appendix A — Worked example: one player, one session, end to end¶
A single concrete walk-through of the whole chain: raw 10 Hz fixes → per-sample mechanics → session aggregates → daily load → ACWR. Every asserted sum, ratio, and load number below is computed from the formulas in this document (the per-sample metabolic powers, the sRPE, the ACWR three ways, and monotony/strain are arithmetic-verified). The zone-distance split and effort counts are an illustrative session profile — realistic, internally consistent (zone distances sum to the total), but not a literal replay of 42 000 fixes.
Player: "Marko", U14, training session. No IMU yet → GPS-only, so metabolic power / HMLD (§5.2) substitutes for PlayerLoad and sRPE (§5.3) is the daily-load currency (§5.4). U14 age-band thresholds (§3.2): HSR ≥ 4.86 m/s (17.5 km/h), sprint ≥ 5.83 m/s (21 km/h).
A.1 Per-sample mechanics (0.5 s micro-trace)¶
Half a second from one acceleration into a sprint, at 10 Hz, after velocity smoothing (§2.3).
a = Δṽ/Δt, d = v·Δt, zone per §3.2, metabolic power P per §5.2.
| t (s) | v (m/s) | a (m/s²) | d (m) | Zone | ES | EM | P (W/kg) |
|---|---|---|---|---|---|---|---|
| 0.0 | 4.60 | — | 0.460 | Z3 run | 0.000 | 1.000 | 16.6 |
| 0.1 | 4.85 | +2.50 | 0.485 | Z3 run | 0.255 | 1.032 | 54.5 |
| 0.2 | 5.10 | +2.50 | 0.510 | Z4 HSR | 0.255 | 1.032 | 57.4 |
| 0.3 | 5.40 | +3.00 | 0.540 | Z4 HSR | 0.306 | 1.046 | 72.3 |
| 0.4 | 5.70 | +3.00 | 0.570 | Z4 HSR | 0.306 | 1.046 | 76.3 |
| 0.5 | 5.95 | +2.50 | 0.595 | Z5 sprint | 0.255 | 1.032 | 66.9 |
These P values are single-sample instantaneous peaks during a hard acceleration — they last
fractions of a second, are not sustained loads, and (like all GPS-derived acceleration, §4) the di
Prampero model tends to over-read at high |a|. A session-mean metabolic power is ~10–12 W/kg;
70+ W/kg is a momentary spike. Only the accumulation — HMLD, EqD — is interpreted at session level.
Two things this trace makes visible — and that plain speed zones miss:
- At t = 0.1 the player is still in Z3 (4.85 m/s, below the 4.86 HSR cut-off) yet P = 54.5 W/kg — roughly triple the ~17.5 W/kg of running 4.85 m/s steadily. The acceleration is the cost, not the speed. A speed-zone report logs this instant as "low intensity"; HMLD (§5.2) correctly counts it.
- t = 0.5 is the fastest sample (5.95 m/s) but P drops to 66.9 vs 76.3 at t = 0.4, because
acceleration eased from 3.0 → 2.5 m/s².
Ptracks bothvanda.
The trace shown is only the first 0.5 s of a longer effort — so far just t = 0.5 has crossed
5.83 m/s. If v stays above the sprint threshold for ≥ 1.0 s (≥ 10 samples, §3.4), the whole effort
counts as one sprint and its Z5 samples (including the 0.595 m at t = 0.5) accrue to sprint
distance.
A.2 Session aggregates (full 70-min session)¶
| Metric | Value | Source |
|---|---|---|
| Total distance | 5 800 m | §2.1 |
| Distance / min | 82.9 m/min (5 800 / 70) | §2.1 |
| Zone 1 walk (0–2.0 m/s) | 2 200 m | §3.2 |
| Zone 2 jog (2.0–4.0) | 2 100 m | §3.2 |
| Zone 3 run (4.0–4.86) | 900 m | §3.2 |
| Zone 4 HSR (4.86–5.83) | 420 m | §3.2 |
| Zone 5 sprint (≥ 5.83) | 180 m | §3.2 |
| HSRD (Z4+Z5) | 600 m | §3.1 |
| Sprint distance (Z5) | 180 m | §3.4 |
| Sprint count | 9 efforts | §3.4 |
| Max speed | 6.7 m/s (24.1 km/h) | §2.2 |
| High accels (≥ 3 m/s²) / decels (≤ −3) | 16 / 12 | §4 |
| Moderate accels (≥ 2) / decels (≤ −2) | 41 / 35 | §4 |
| HMLD (P ≥ 25.5 W/kg) | 720 m | §5.2 |
| Equivalent distance (EqD) | ≈ 6 670 m (EqD/TD ≈ 1.15) | §5.2 |
In this stop-start session HMLD (720) > HSRD (600) > sprint distance (180) — but that ordering
is session-dependent, not a rule. At this U14's speeds, steady high-speed running (4.86–6.0 m/s)
mostly sits below the 25.5 W/kg HMLD cut-off, so almost all of the 720 m HMLD is
acceleration-driven (like t = 0.1 above), while much of the 600 m HSRD is steady running; in a
low-acceleration possession session HSRD can instead exceed HMLD. The durable point is that HMLD
counts the hard-acceleration cost speed zones miss. EqD/TD = 1.15 says the stop-start nature of the
session cost 15 % more energy than the same 5 800 m run steadily — load a GPS-only setup would
otherwise miss. (HMLD here uses the 25.5 W/kg default; the softer youth variant ≥ 20 W/kg from §5.2
would report a larger distance.)
A.3 Internal load (sRPE)¶
Marko rates the session RPE 6 (CR-10) at 30 min post:
This 420 AU is today's daily-load value feeding the ratios below.A.4 Place the session in 4 weeks of history¶
Daily sRPE summed per week; today is day 28, the last day of week 4 — a tournament week (two matches), the legitimate cause of the load spike.
| Week | Daily loads (AU) | Weekly total |
|---|---|---|
| W1 (d1–7) | 0, 400, 450, 350, 400, 580, 0 | 2 180 |
| W2 (d8–14) | 0, 410, 460, 360, 410, 600, 0 | 2 240 |
| W3 (d15–21) | 0, 420, 470, 370, 420, 620, 0 | 2 300 |
| W4 (d22–28, acute) | 640, 400, 0, 640, 440, 420, 420 | 2 960 |
Weeks 1→3 ramp gently (~3 %/wk, well inside the 10 % guardrail of §7). Week 4 jumps to 2 960.
A.5 ACWR, three ways (§6)¶
Acute (last 7 days, = W4) = 2 960 AU
Chronic, uncoupled (avg of W1–W3) = (2180+2240+2300)/3 = 2 240 AU
Chronic, coupled (avg of W1–W4) = (2180+2240+2300+2960)/4 = 2 420 AU
ACWR (RA, uncoupled) = 2960 / 2240 = 1.32 → Caution (1.30–1.50)
ACWR (RA, coupled) = 2960 / 2420 = 1.22 → "Sweet spot" — spike hidden
ACWR (EWMA) = 407.6 / 318.9 = 1.28 → upper sweet spot, right at the 1.30 line
This is §6.5's coupling caveat in one example. By the §6.3 bands, only the uncoupled ratio (1.32) crosses into Caution; the coupled ratio (1.22) drops the spike well into the green zone because the heavy week sits inside its own denominator. EWMA (1.28) lands between them — still technically sweet-spot, but pressed against the 1.30 boundary and clearly elevated, so it corroborates the upward trend the coupled view flattens rather than independently triggering the flag. Read the uncoupled ratio and the trend — not the reassuring coupled number.
A.6 Monotony & strain — week 4 (§6.4)¶
Daily loads W4 = [640, 400, 0, 640, 440, 420, 420], mean = 422.9 AU
SD (population, ÷n) = 197.8 → Monotony = 422.9 / 197.8 = 2.14
Strain = weekly load × monotony = 2 960 × 2.14 ≈ 6 327
A.7 The coach-facing decision¶
Putting it together for Marko after this tournament week:
- ACWR (uncoupled) 1.32 — caution; EWMA 1.28 sits just under the line and corroborates the trend; the coupled 1.22 would have falsely reassured.
- Monotony ~2.1, high strain — the week was both heavy and samey.
- Action (per §7): emphasise recovery now; do not raise next week's load (10 % rule already argues against it — last week was +29 %); weight Marko's wellness check and any soreness heavily, and watch decelerations (12 hard decels) for soft-tissue niggles.
- Not a panic, a flag. The spike has a clear cause (two matches). ACWR earned its keep by making "this was a big week, back off" quantitative — but the decision still rests with the coach, wellness, and growth status, never the ratio alone (§6.5).
- Read it as provisional. Day 28 is the first point Marko has ~4 weeks of history, so per §6.5's warm-up rule this is the earliest his ACWR is even interpretable — trust the trend over the exact number until the chronic base has more weeks behind it.
The full chain — raw fix → smoothed v → per-sample P and zone → session aggregates → sRPE → ACWR + monotony → a coaching decision — is exactly what the analytics module (§9) automates over the persisted telemetry (FR-DATA-1/2). This appendix is its hand-computed reference.