Skip to content

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.

Asking Koutsi for one

You can also just ask. In Ask Koutsi, "could you build me eight weeks for a hilly gran fondo in October?" gets you a drafted plan shown as a card with Yes and No under Koutsi's reply — and nothing at all happens to your training until you press Yes.

It is the same generator the form above uses, with the same AI model behind it, so the plan you approve is the plan you get. The difference is only how you asked for it: the form is where you set every parameter yourself, and Koutsi is where you describe the event and let it choose them from what it knows about your training.

Accepting archives an overlapping plan

Creating a plan — from the form or from a card — archives any plan you are currently following whose dates overlap it. That is not new behaviour, but the card says so before you click, naming the plans it would file away. Nothing is lost: you can unarchive a plan from this page at any time.

Koutsi can also draft a change to a plan you already have: moving its start date, renaming it, changing its length or goal, archiving or reopening it, or editing a single planned session — including marking one skipped, with a reason. Each of those arrives the same way, as something to approve.

An offer stands for 24 hours. If your plans have moved on in the meantime — another plan created, the start date now in the past, the session already done — accepting is refused rather than applied, and you ask Koutsi for a fresh draft.

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.

When a plan finishes

A plan closes itself once its last day has passed — you don't have to do anything. It moves out of your current plans and into Completed plans at the bottom of the plan page, showing the date it finished and the adherence score it ended on. Open it to look back over the calendar of the block you just did.

The switch happens on your own calendar day, so a plan that ends on a Sunday closes when that Sunday is over where you are.

A finished plan is not put away. It still counts:

  • an activity you upload later — a delayed sync, or a head unit you empty at the weekend — is still matched to the planned workout it completes, as long as it falls inside the plan's dates
  • its adherence chart is still there, and still updates if you link an activity to one of its sessions after the fact
  • the AI coach can still see it, so you can ask how the block you just finished went

Not finished after all?

Reopen puts a completed plan back at the top of the page as a plan you're following, and it stays there. If you want the plan to actually run for longer, edit its length or start date instead — it will then finish again on its new end date.

Archiving is different, and still yours to do by hand: it files a plan away whether or not it ran its course. Creating a new plan that overlaps an existing one archives the old one for you. Archived plans are listed separately and are left out of matching, charts, and what the coach sees.

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 .zwo file.
  • 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.