How it thinks
Nothing gets planned before the safety gate clears. Only then do three loops run, each on its own clock — a day, a week, a training block — each one handing its conclusion to the next.
The daily loop can veto the weekly plan. The weekly plan can't override the gate.
Every morning, one question: what is this body good for today? The answer changes the session, or removes it. A green light is earned, not assumed.
sleep · HRV · resting HR · subjective check-in · yesterday's loadSeven days laid out against the week that actually exists — meetings, travel, the days where 05:30 isn't happening. Sessions are placed where they can survive.
weekly training load · phase target · last week's review · calendar realityBase to build to peak to taper, aimed at a specific date. This is the loop that knows why an easy week in March matters to a June result.
load history · race priorities · ramp rate · fitness & form trendThe data model
"Hard" and "easy" are not units. This is the vocabulary the system reasons in: quantities derived from watts and pace, so that a decision to back off can point at a number instead of a mood.
| Quantity | Unit | What it answers |
|---|---|---|
| TSS | points | Training Stress Score — how much a single session actually cost, combining how hard and how long. |
| IF | 0.00–1.20 | Intensity Factor — how hard that session was relative to threshold, independent of its length. |
| CTL | 42-day avg | Fitness. The slow-moving accumulation of work. Takes weeks to build and weeks to lose. |
| ATL | 7-day avg | Fatigue. The fast-moving cost of recent work. Rises and falls within days. |
| TSB | CTL − ATL | Form. Fitness minus fatigue — the number a taper is designed to move, and the reason tapers exist. |
| Ramp rate | ΔCTL / week | How fast fitness is being added. Push it too hard and the injury risk arrives before the fitness does. |
| ACWR | acute : chronic | Acute-to-chronic workload ratio — whether this week is dangerously out of step with the last month. |
Honest framing: this is the model the coach reasons in — the quantities it computes from activity data and argues from when it changes a session. It is not a claim that a polished TSS and form chart is sitting in a live dashboard today. The reasoning layer came first; the visualisation is downstream of it.