Training plans & workouts¶
openkoutsi can build you a structured training plan and turn its days into detailed interval workouts you can ride from your head unit.
Generating a plan¶
Create a periodized plan that progresses through the classic phases:
Base → Build → Peak → Taper
You give the plan a name, a goal, a start date, and a length, and openkoutsi lays out the workouts across the weeks.
Structure parameters¶
Beyond the training days and workout types, you can shape how the plan progresses. Sensible defaults are suggested from your experience level, and you can override any of them:
- Weekly progression — how much load and time ramp up each build week, usually 5–10%. Novices sit at the low end, experienced riders at the high end.
- Build : recovery cadence — how many build weeks come before each recovery week (a 2 : 1 or 3 : 1 rhythm). Novices generally do best with 2 : 1; intermediate and experienced riders can handle 3 : 1.
- Weekly hours available — a range, e.g. 4–6 hours. openkoutsi keeps each week's total ride time inside the band: recovery weeks sit near the low end, peak build weeks near the high end. Leave it blank for no limit.
- Weekly base load — extra weekly Load you pick up from non-workout riding such as commuting. It's treated as context (shown alongside each week and given to the AI) and is not added into the prescribed sessions, so the plan stays realistic without double-counting.
Set your hours once
Your typical weekly training-hours range lives on your profile. New plans prefill from it, so you only set it once.
Build and recovery weeks¶
Each week is labelled as a build, recovery, or taper week, with a short focus note and the week's target hours and Load shown on the plan calendar. Build weeks progressively overload; recovery weeks ease off so your body absorbs the training before the next block.
Sensible hard days
Threshold and VO2max sessions are demanding — a set like 3×15 min at your FTP is very hard when done properly. openkoutsi keeps these "hard" days from being scheduled back-to-back and caps how many land in a week, easing any extras to tempo. Each day's description matches its actual duration and target Load.
Editing a plan¶
Plans are not fixed once created. You can:
- edit the plan's metadata (name, goal, start date, length)
- add, edit, or delete individual planned workouts from the calendar day view
- regenerate a plan's workouts (rule-based or AI)
Completed workouts are protected
Workouts you have already done are locked from editing and are preserved when you regenerate a plan.
The training calendar¶
Your dashboard calendar shows both performed and planned workouts with distinct markers (completed, pending, skipped). From a day, you can mark a planned workout as done or skipped without opening the full plan.
When you skip a workout you can record a reason (illness, injury, fatigue, travel, weather, and so on). This keeps your training log accurate and gives the AI coaching features useful context.
One workout, several activities¶
Sometimes a single session ends up recorded as more than one activity — you accidentally stopped the recording, paused for a coffee break, or did a couple of back-to-back virtual rides. You can link each of those activities to the same planned workout, and their durations and Load are counted together towards the goal.
Open the planned workout from the calendar, link the first activity, then use Link another activity to add the rest. Each linked activity is listed and can be unlinked on its own.
Off by a day or two?
When you link manually, the picker offers every activity you recorded within two days either side of the planned day, each labelled with its full date. Plans routinely slip a little, so a ride you did on Wednesday can still complete Tuesday's planned workout.
Example
A long ride is planned, but you accidentally stop recording halfway and end up with two medium rides. Link both to the planned workout and their combined time and Load satisfy it — no need to merge the files.
Note
Automatic matching still links a single activity that already covers the day's workout on its own. When the session was split into parts that each fall short, link the extra activities by hand.
Adherence score¶
openkoutsi turns "am I sticking to my plan?" into two concrete percentages, updated continuously as your activities come in — not just at the end of the plan. They are always available and don't require an AI subscription.
Per-workout match score. Each completed workout gets a score from 0–100% for how closely it hit the plan. For cycling workouts this looks at both the Load and the duration, and — importantly — it penalises going too hard or too long just as much as falling short: an easy spin done as a brutal interval session is not a perfect match. Hitting the target gives 100%; being 20% off either way lands around 80%. Non-cycling "supplemental" workouts (strength, yoga, a swim) are simply scored as done or missed. When one session was split across several linked activities, their Load and duration are added together before scoring.
A workout you actually completed never drops below 50%, no matter how far off target it was — turning a planned 85-minute endurance ride into a four-hour easy spin still beats skipping it. Only missed and skipped workouts can go lower.
Plan adherence score. Your workout scores are rolled up into a single "so far" percentage for the whole plan, covering the part of the plan that has already elapsed. It is Load-weighted, so missing a big key session pulls it down more than missing an easy recovery ride. A missed session counts as zero.
Skipped workouts are treated gently, and the reason matters:
| Skip reason | Effect on the score |
|---|---|
| Illness, injury | Almost fully excused |
| Fatigue, travel | A moderate dent |
| Weather | A mild dent |
| Anything else / no reason | Counts close to a full miss |
Today is judged kindly
A workout scheduled for today that you haven't done yet is held in grace — it isn't counted as missed until the day is over. The moment you link an activity, it's scored on what you've done so far. Rest days and future workouts never count against you.
You'll see the current "so far" percentage on the plan header, a colour-coded badge on each workout, and an adherence-trend chart on your dashboard so you can watch the number move through the plan.
Structured workouts¶
Build interval workouts and export them for your device:
- Zwift — export as a
.zwofile. - Head units — export as a FIT workout file. Repeat blocks are flattened into individual consecutive steps so they display reliably on Wahoo and Garmin devices.
Pushing workouts to Wahoo¶
If you have connected Wahoo, you can send a structured workout straight to your account as a scheduled planned workout. It then appears under Planned Workouts on your ELEMNT / RIVAL.
- Schedule it for today through six days out.
- Re-pushing the same workout updates it instead of creating a duplicate.
Generating workouts from a plan¶
In one action, openkoutsi can auto-synthesize structured interval workouts for a plan's upcoming days (using a configured LLM). Generated workouts are cached on the planned workout, so already-generated days and rest days are skipped and no extra work is repeated. A per-day summary shows what was generated, skipped, or failed. The results appear in the Workouts tab, where you can review, edit, and upload them to Wahoo individually.
More detail coming
A full walkthrough of building an interval workout from scratch will be added here.