Acute:Chronic Workload Ratio (ACWR)
Understand how Trainingload.ai calculates ATL / CTL, what a change in the ratio means, and why ACWR is not an injury or readiness prediction.
Acute:Chronic Workload Ratio (ACWR)
Acute:Chronic Workload Ratio (ACWR) compares the model's recent-load trend with its longer-load trend. In Trainingload.ai, the displayed A:C value is the current ATL divided by the current CTL.
Use it to locate a change in load context, then inspect the workouts and athlete signals behind that change. ACWR does not directly measure adaptation, fatigue, recovery, readiness, injury probability, or medical risk.
Example card: values are for UI preview only.
The exact Trainingload.ai calculation
The server first maintains two exponential moving averages of the selected daily training-load input:
CTL_today = DailyLoad × (2 / 43) + CTL_yesterday × (1 - 2 / 43)
ATL_today = DailyLoad × (2 / 8) + ATL_yesterday × (1 - 2 / 8)It then calculates:
ACWR_today = ATL_today / CTL_todayIf CTL is zero, the product returns 0 instead of dividing by zero. The result is rounded to two decimal places for the status response.
This is a coupled PMC-style ratio: today's load contributes to both ATL and CTL. It is not a pair of simple 7-day and 28-day arithmetic averages, and it is not an uncoupled research variant.
How to read a change
| Observation | What the model establishes | What to check next |
|---|---|---|
| A:C rises | ATL increased relative to CTL. | Which recent sessions, imports, or load-source changes moved ATL? |
| A:C falls | ATL decreased relative to CTL. | Was this planned recovery, missed training, incomplete data, or a taper? |
| A:C is high after time off | The CTL denominator may be small. | Review absolute ATL and CTL, not only their ratio. |
| A:C changes unexpectedly | One or both load trends changed. | Check duplicate/missing activities, thresholds, and selected load sources. |
The client currently displays four bands:
| Displayed band | Product boundary | Safe interpretation |
|---|---|---|
| Low | < 0.8 | Recent modeled load is below the longer-load trend. |
| Baseline band | 0.8–1.3 | Recent modeled load is closer to the longer-load trend. |
| Elevated | 1.3–1.5 | Recent modeled load is higher relative to the longer-load trend. |
| Highest band | > 1.5 | The relative increase is larger and deserves context review. |
These boundaries explain the current interface. They do not prove that a value is optimal, unsafe, undertraining, overreaching, or predictive of injury for an individual athlete.
A practical review workflow
- Confirm the displayed ATL, CTL, and A:C values refer to the same date.
- Open the PMC chart and locate when the ratio began to change.
- Trace that interval back to completed activities and verify their load values.
- Check whether profile thresholds or the load-source priority changed.
- Add non-model context: workout quality, subjective fatigue, sleep, pain, illness, and prior injury.
- Adjust the plan only when the combined evidence supports a change.
Data-quality checks
An unexpected A:C value is often an input or denominator question before it is a training conclusion. Check for:
- missing or duplicated activities;
- activities without usable power, heart-rate, pace, or session-RPE load;
- recently changed FTP, LTHR, pace thresholds, or load-source priority;
- a very small CTL after a long break or a new account;
- a date boundary or timezone mismatch around imported sessions.
Related metrics
- ATL: the recent-load model used as the numerator.
- CTL: the longer-load model used as the denominator.
- TSB: the difference between current CTL and ATL.
- Training Load: how daily load enters the PMC model.
Training Stress Balance (TSB)
Understand TSB as the difference between modeled longer-term and recent load, including its Trainingload.ai formula, useful questions, and readiness limits.
Training Monotony
Training monotony describes how similar daily training load is across a week and helps identify overly uniform training structure.