Planning process
Season to Session
A deterministic planning hierarchy. Events anchor the season. Phases commit the load trajectory. Weeks lock the targets. AI materializes the sessions. Actuals drive adaptive reforecast — not continuous target drift.
Level 1
Event
Race targets and protected windows
Level 2
Season
Planning snapshot and season arc
Level 3
Phase
Committed load contracts
Level 4
Week
Target bands and lifecycle
Level 5
Session
Canonical load, one formula
Race calendar
Events anchor the plan
Every season starts with event targets. Events set the objectives that phases, weeks, and sessions are designed to serve. A-races lock the taper window and peak timing. B-races are performance targets that must not compromise A-race preparation. C-races are training stimuli — no taper, no protection.
36-week season · three events
| Tier | Taper window | Post-race protection | What the planner does |
|---|---|---|---|
| A | 2 – 3 weeks | 5 – 7 days | Locks phase end. Inserts taper phase. Protects post-race recovery window. |
| B | 4 – 7 days | 3 – 5 days | Reduces week target. Shifts key sessions earlier. Does not restructure phases. |
| C | None | 1 – 2 days | Treated as a hard training session. No load reduction. |
Season baseline
Planning snapshot
When the season is created, Steig freezes a planning snapshot. This captures the athlete's state at planning time — not a live estimate that drifts with every activity. All phase and week targets trace back to this snapshot. Reforecasting creates a new snapshot; it does not silently overwrite the original.
Sustainable Load
362
pts / week
Trimmed mean of stable recent weeks. Race weeks, illness, and deload outliers are excluded.
Available Hours
9.5
hr / week
Athlete schedule input. Sets the upper bound on feasibility — converted to a load ceiling per phase.
Constraint Map
Frozen
events · blocks · thresholds
Fixed sessions, travel blocks, protected rest days. Read at snapshot time; not recalculated on every plan change.
Mesocycle structure
Phase design
Each phase is a committed contract — not just a label and a date range. It stores the load trajectory the athlete agreed to, the periodization model driving the pattern, the sport mix focus, and the feasibility ceiling checked at commit time. The plan does not drift when actuals change; it reforecasts on explicit triggers.
Load multiplier
1.05 – 1.25×
Relative to sustainable load
Typical duration
4 – 10 weeks
Adjust per athlete and event distance
Intensity intent
70% low / 20% moderate / 10% high
Adaptation focus
Periodization models
Functional goal
Drive physiological adaptation. Raise threshold power and pace.
Three-layer target model · Build phase
Raw Phase Target
540
Sustainable load × phase multiplier
Feasible Ceiling
485
−55 from hours / frequency constraints
Committed Target
485
Phase planned against this. Stable unless reforecast.
Phase objective implies 540 pts/week. Schedule constraints cap feasibility at 485. Committed target set to 485.
Microcycle structure
Week lifecycle
Weeks are generated from the committed phase contract, not from live sustainable load. Each week gets a target range — ±15% of the committed phase target — rather than a brittle single-point estimate. A formal lifecycle advances the week from draft through execution to completion.
Status lifecycle
Draft
Plan being assembled
Proposed
Ready for review
Committed
Targets locked in
In Progress
Week underway
Completed
Actuals captured
Superseded
Replaced by reforecast
±15% committed target band · illustrative committed target: 400
Min (−15%)
340
Committed
400
Max (+15%)
460
Session materialization
AI session planning
The AI receives a deterministic context — committed week target, residual phase budget, day availability, event protection flags — and outputs session roles first, dates second. The backend validates and recalculates load canonically. The AI owns the structure; the backend owns the numbers.
Planning context pipeline
Committed week target
Residual phase budget
Day envelopes
Event protection
Recent actuals
AI role assignment
Load validation
Key
RI 1.00 – 1.20×
1 – 2× / week
30 – 40%
Race-pace stimulus, threshold work, targeted intervals. Highest load per hour.
Quality
RI 0.90 – 1.10×
1 – 2× / week
20 – 30%
Supporting intensity — tempo, threshold repeats, quality endurance runs.
Endurance
RI 0.65 – 0.80×
2 – 4× / week
30 – 40%
Aerobic base volume. Low intensity. High contribution to long-term fitness.
Recovery
RI 0.50 – 0.65×
1 – 2× / week
5 – 15%
Active recovery, mobility, or rest. Promotes adaptation between harder sessions.
One formula, always
Applied by AI-generated sessions, manual sessions, recurring rules, and templates — the same canonical service, every time. Backend is the single source of truth.
Adaptive control loop
Reforecast, not drift
Actuals are captured after every week. Deviation is classified against committed targets. Minor deviations adjust the next week; major deviations trigger a reforecast. Reforecast creates a new planning snapshot, forward-simulates locked phases for baseline accuracy, then recomputes draft and proposed future phases. Committed phases are never touched.
| Review state | Deviation | Outcome | What changes |
|---|---|---|---|
| on_plan | < ±10% | None | Carry forward. No adjustment needed. |
| below_plan | −10% to −20% | Advisory | Adjust next 1–2 weeks. Phase contract unchanged. |
| above_plan | +10% to +20% | Advisory | Monitor recovery. Key sessions deprioritized next week. |
| structurally_compromised | > ±20% | Reforecast | New planning snapshot. Draft and proposed phases recomputed. Committed phases locked. |
| superseded_by_context | A-race shift, major hours change | Reforecast | Structural change trigger. Season arc and phase sequence recalculated. |
Possible Underload
Very positive form
Extended deload or illness. Fitness may be declining faster than fatigue.
Fresh
Moderately positive
Well rested. Can absorb more load or push quality sessions harder.
Stable Build
Near zero
Training is landing. Productive zone for quality work and adaptation.
Fatigue Watch
Moderately negative
Accumulated fatigue. Monitor session quality and recovery response.
High Fatigue
Very negative form
Recovery priority. Reduce load or deprioritize key sessions.
Form balance bands are coaching guardrails — not injury-probability claims. They indicate when to prioritize recovery, not when to stop training.
Planning principles
What this system is not
Committed phase targets do not automatically adjust every time an activity is completed. They reforecast on explicit triggers — not on every data point.
Form balance bands are coaching guardrails, not injury-probability scores. No single threshold predicts injury risk with clinical reliability.
AI session planning generates structure and session roles. Final load is always calculated by the canonical backend formula — the AI does not own the numbers.
Sustainable Load is an estimate, not a measurement. It improves over time as more stable training data accumulates in the system.
The planning hierarchy does not replace coaching judgment. It makes the plan legible so adjustments are explicit, traceable, and coach-readable.