How EndurexAI counts your training load

Dr. Sebastian Reinhard 5 min read
How EndurexAI counts your training load

cl and al sit at the center of EndurexAI’s training model. Each one summarizes a different horizon of training load from a single daily number: the total TSS for that day. If that daily number is wrong, every downstream metric inherits the error, including form, the curve you use to judge whether you are fresh, flat, or overcooked.

Three situations used to leak TSS out of the calculation. A recent change fixes each one. The rules are now explicit, and the behavior of cl, al, and form should track your training reality more closely, especially on days where the data is incomplete.

1. Sessions you finished but never uploaded

Some sessions never make it to Strava. The head unit’s battery dies, the session is a pool swim on a non-tracking watch, the file gets stuck in a sync queue, or the workout was done on a rented bike with no computer at all. The body did the work; no Activity record appears on that date.

Until now, the planned endurance event for that day was ignored once the day had passed, so the session contributed nothing to cl or al. The fitness curve dropped as if you had rested.

EndurexAI now honors the done flag on endurance events. Mark a past event as done, and its planned TSS counts as the training load for that day. cl climbs, al climbs, form reflects the work you did.

The rule applies whenever the event has no Activity merged to it. If an Activity is merged, the Activity’s TSS is used instead, because a merged Activity is a statement that the event and the uploaded session are the same training.

2. A planned session linked to an uploaded Activity

When a planned endurance event is paired with an uploaded Activity through the merge function, EndurexAI treats the Activity as the truth and the event as the plan. The Activity carries the real data, computed from power, pace, or heart rate streams. Its TSS is what counts, and the event’s planned TSS is set aside.

This behavior is consistent whether the session matched the plan or not. If you planned 90 TSS and the ride came back at 102, cl and al see 102. The planned number was a target; the executed number is the training load the body absorbed.

The merge is explicit: you decide which Activity corresponds to which event. Unlinked Activities and unlinked events are treated as independent sessions, because EndurexAI has no reliable way to guess the pairing without your input. If you uploaded a Strava ride without linking it, and you also have a planned event on the same date, both will count. The fix in that case is to merge them through the event detail, not to delete one side.

3. Strength training and same-day Activity uploads

Lifting is the harder case. Stream-based TSS estimates for a barbell workout are rough at best; a heart-rate trace of a strength session says very little about the mechanical and metabolic load the workout produced. The planned lifting workout, written with specific sets, reps, and loads, is the more accurate source of TSS for that session.

EndurexAI now uses the lifting event’s TSS whenever a lifting event is scheduled for the day, and suppresses any same-day Activity whose type is lifting. The stream-derived estimate is set aside, and the planned workout’s TSS counts.

Activities of any other type on the same day keep their TSS. A lifting event in the morning and a bike commute in the afternoon produce two separate contributions to the day’s training load. A strength session and a recovery run behave the same way. The suppression rule targets only lifting-to-lifting collisions on the same date, where the two sources are describing the same session from different angles.

What still projects forward

Planned sessions in the future keep contributing to cl and al as before. Endurance events dated today or later add their planned TSS to the forward curve regardless of the done flag, because future events have not happened yet and planning is the point of them. Lifting events do the same for all dates, past and future, because lifting TSS is always taken from the plan.

The distinction is simple. Past endurance events contribute only when they were done. Future endurance events contribute because they are scheduled. Lifting events always contribute the planned TSS. Merged endurance events yield to their Activity, which is already in the totals from the upload side.

What to do with this

Two habits make the most of the new behavior. Mark done on past endurance sessions you completed, especially the ones that never produced a file. Use the merge function to link planned sessions with their uploaded Activities when you can. Both are small, deliberate signals that shape cl, al, and form to match the work you have done, not the work the data happens to show.

Dr. Sebastian Reinhard

Dr. Sebastian Reinhard

Founder & Head Coach

Triathlete and software engineer building the future of AI-powered endurance coaching. Passionate about combining data science with training methodology.

Comments(0)

Sign in to join the conversation.