IntervalCoach - AI workouts that adapt daily to your recovery and goals

Je commence à perdre patience, j ai reculé l objectif de 2 mois et c est encore pire le CTL est devenu non atteignable et j ai épuisé mon crédit coach+ a essayer de lui faire comprendre le problème, il est très coopératif, mais il remplace les séances prévues par des séances encore plus faible en charge, ce qui ne va pas aider à augmenter le CTL. Les saisons passées je n ai pas eu ce genre de problème avec Garmin coach :frowning:

Hi, I was wondering about the base phase workouts. The suggested workouts haven’t gone above Z2 for weeks now for me. Is this really the recommended way how to do base building? I was thinking once a week some Z3/Z4 would be beneficial

1 Like

Sorry for the frustration, I understand.

When you moved your goal back, the system recalculated with a more gradual build since there’s more time. But with 4 sessions per week, the weekly TSS needs to be higher per session to drive CTL growth. I’m looking into why the targets are lower than they should be.

Good observation, and you’re right. Modern training science (polarized model) recommends keeping some intensity even during base building: about 80% easy Z1/Z2 and 20% harder Z4/Z5 work. So for a typical 4-session week, 3 sessions should be endurance and 1 should include higher intensity.

Right now the base phase is too conservative on this. I’m fixing it so you’ll get one intensity session per week during base.

1 Like

Please also check the workout duration. I am still getting both 1h20m and 3h+ workouts for days where I set the workout duration to 2h

Hi Martijn,
I added a workout for March 10 in the plan tab

It does not update in the calendar tab (look at March 10)

Also, When should I see this updated in intervals.icu?

Je suis désolé, mais autant de semaines d entraînement pour passer de 50 CTL à 43, ça ne me semble pas sérieux

L année dernière j’ai pris 45 watt de ftp en 9 semaines avec une moyenne de 6h/semaine ( 3 a 4 jours/ semaine) à l aide du plan VTT non dynamique de Garmin.

Les plans ne sont ils pas un peu trop « sage » ?

tu es certain d’avoir bien parametre tes sessions ? en terme de jours et temps dispo pour chaque session ?

Le 4 Juillet tu as un evenement ? quelle donnes as tu mis dans l’ojectif de l’evenement ?

Je suis à un peu plus de 7 heures semaine en 4 fois et je vais passer à plus de 8 heures en 4 fois avec le retour du beau temps.

J ai mis une course À le 4 juillet mtb 60km 1300d+ 3 heures
Je viens de faire quasiment cela sans forcer le WE dernier ( il y a avait un peu moins de dénivelé mais je suis resté cool, Garmin a noté sortie Base)

Donc plusieurs mois d entraînement pour ne pas progresser et faire quelque chose que je suis déjà capable de faire, et d après le programme pouvoir gagner 5 watt de ftp :joy: au dessus ce serait « ambitieux « :rofl:

The training sience card on the analysis page seems to have an issue with the calcualtion of the percentages. when i look at the percentage distribution for one week, it brings up funky high numbers.

Just looking at the prescribed VO2 max session for next week. I think there are a few issues in how this has been defined.

The Z2 and 70% in the first main set confuse each other. It needs to be one or the other.

When I edit to remove Z2 the warmup looks better but the definition for the pyramids doesn’t work, and I’m not sure what the 7x is doing at the end!!

Thanks for reporting this, workout duration accuracy is something I’m actively working on. I’ve added an evaluation system to systematically catch these issues, and I’m in the middle of a complete pipeline refactor that makes workout predictable (correct by construction, rather than relying on AI to get the math right). This should significantly reduce or eliminate these mismatches. The fix is in progress and should land soon.

Thanks for the detailed screenshots John. You’re right, this workout has several formatting issues: the mixed zone/percentage notation in the warmup, the pyramid syntax that Intervals.icu can’t parse, and the 7x block at the end which is the AI putting coaching text where it shouldn’t be.

This is exactly what I’m working on fixing right now. I’ve added an evaluation system to catch these kinds of issues, and am refactoring the workout generation so the structure (intervals, pyramids, recovery) is built from reliable templates rather than having the AI write the workout code directly. That should eliminate these formatting problems. Expect improvements soon.

Thanks for spotting this! The tooltip on the Intensity Distribution chart is showing the raw values multiplied by 100 instead of calculating proper percentages. The bars themselves are correct (they’re normalized to 100%), but the hover tooltip has a formatting bug. I’ve already fixed it, and will be live shortly.

Thanks for the feedback. If you can already do your A-race effort without pushing hard, the plan is clearly too conservative for your current level.

I’m working on improving how training plans are personalized, especially calibrating progression targets based on what you’re already capable of. The plan should push you, not just confirm what you can already do.

In the meantime, have you adjusted your CTL target in settings? You can choose a more aggressive level, which will increase training load and FTP projections. That should be a better fit for what you’re looking for.

1 Like

Hey Martijn, so far I have liked the AI coach and subscribed after the trial! Saves a lot of time planning and makes it easier to stick to training for me. Keep up the good work!

Somethings have come up though as of late:

  1. I have marked every weekday as available but the sessions per week to 6. Still the system seems to always plan 7 workouts and not the 1 rest day.


  1. I use the Apple Watch and use the Health Sync app to push data to intervels.icu. RHR and HRV push every morning fine but since a few days ago intervalcoach has been not seeing the data.
    image

Then about some of the workouts that have been generated for me
3. For saturday it has planned a 2 hour tempo ride. Considering the longest tempo intervals it has generated for me before this is a couple 15min intervals and my own inserted workout of 20min tempo intervals tomorrow I’d say 2h straight at tempo seems quite steep.

  1. And to the opposite direction it has planned a 2 hour Z1 Recovery ride for next monday. My sense says that 2 hours of anything is not something I’d consider recovery and seems like a colossal waste of time

I like that the workouts are now created in a rolling 7 day window.
But the created workouts really seem odd. This is the one created for Tuesday:

This is way short and seems to have very random intervals and does not even come close to anything I did in the last weeks. I would have expected some around 1 hour, on a sub lt or treshold level.

Thanks for flagging this. You’re right, that 18-minute workout was way too short. I’ve deployed a completely refactored workout pipeline today which should also fix this type of issues.
I can see your calendar has already been updated with the correct workout for Tuesday: a ~56 minute threshold repeats session at 62 TSS. So you should be good to go!

Let me know if anything else looks off.

Thanks for the kind words, really glad it’s helping you stay consistent! And great bug reports, these are super useful.

Let me go through each one:

  1. Rest day not being scheduled
    You’re right, if you set 6 sessions it should give you a rest day. I can see the bug: the setting is saved but isn’t being picked up correctly by the plan generator. I’ve filed this and will fix it.

  2. HRV/RHR not showing
    This is most likely a sync timing issue. IntervalCoach checks for today’s wellness data, and Apple Watch via Health Sync can sometimes have a delay before the data lands in Intervals.icu. If the data hasn’t synced by the time the daily email goes out, it shows “no data available.” The data itself is being read correctly when it’s there. One thing to check: in Intervals.icu, does today’s wellness page show HRV and RHR values? If it does and IntervalCoach still doesn’t pick it up, let me know and I’ll dig deeper.

  3. 2h25m Tempo ride
    That’s way too much steady tempo for a single ride. The system should be generating tempo intervals within a longer endurance ride, not 2.5 hours of pure tempo. I’ve logged this and will tighten the cap. I’ve also deployed a completely refactored workout pipeline today which should be more robust.

  4. 2h Recovery ride
    Agreed, a 2-hour recovery ride defeats the purpose. Recovery should be 45-60 minutes max. This is a missing duration cap that I’ll add.

I’ll work on fixing these. Thanks again for the detailed report!

What is the “wellness page”?
Googled it and came to this recent forum post asking the same and as is answered there wellness data just shows on the calendar page as they do for me too which you see in the sceenshot I shared above

Cant see the Wellness page - Intervals.icu Forum

Edit: Checked the Analysis page again on intervalcoach and the Recovery Analysis now seems to be working, no longer reporting that today’s wellness data is not available. Dashboards AI Coach window at the top now also has the access to the data so probably some timing issue as you say

1 Like

Workout Generation: Major Quality Update
I’ve been doing a lot of work behind the scenes on how IntervalCoach generates your workouts, and today I shipped a big round of improvements.

What changed
I rethought the workout generation pipeline from the ground up. Instead of relying purely on AI to produce workout structures, I now use a template and generator-based approach as the foundation. Think of it as encoding proven coaching patterns (progressive intervals, tempo sets with recovery padding, structured endurance sessions) into the system, so every workout follows sound training principles by design.

On top of that, I’ve made workouts feel more varied and coached:

  • Interval sessions now have progressive intensity and varied durations instead of identical repeats
  • Longer tempo and threshold sessions break into manageable sets with Z2 recovery between them
  • Endurance and recovery rides have gentle rolling variation instead of flat monotone blocks
  • Added dedicated generators for tempo progressive and fat-max endurance sessions

Important: These improvements apply to any newly generated workouts going forward. Workouts already on your calendar were generated with the previous system and won’t change automatically.

The numbers
I built an evaluation system to objectively measure workout quality. Here’s what the data shows across 422 evaluated workouts:

Stage Pass rate Quality score (1-5)
Before 31% 3.6
After rethinking the pipeline 58% 4.0
+ Bug fixes round 1 31%* 4.8
+ Bug fixes round 2 84% 4.4

*Round 1 temporarily introduced a stricter evaluation criteria, hence the lower pass rate despite higher quality scores.

What’s next
Now that I have a proper evaluation system and baseline metrics, I’ll keep reviewing the data daily and pushing accuracy and workout quality higher. The goal is to make every generated workout feel like it was written by an experienced coach who knows your fitness, your goals, and your schedule.

As always, feedback is very welcome, if a workout feels off, too easy, too hard, or just weird, let me know. It directly helps me improve.

5 Likes

Hi,

using IntervalCoach since yesterday.
Looks very promising and is definetly closing a gap I tried to close for some time.

Today I got my first mails and there are some bug in it.

First is the translation.
In my planned workout mail most part was german or english, but there is a part wich is dutch.

Second one is in the analysis mail coming after the run.
Weather is way off. It was 9 °C and the mail says it was hot.

BEOBACHTUNGEN

  • Stabiler 25-min Z2-Block mit 3.6% Decoupling und 78 rpm Kadenz
  • Solide Pace von 8.4 km/h trotz Hitze und 52m Höhenmetern
  • Gute Überschreitung des Plans (133%) mit hohem Trainingswert

My thoughts - the recovery should be Z1. If you are inserting a recovery period in between harder sessions, the goal is to recover. You need to properly recover so that the next interval can be done properly. For this, as far as I have always read and done myself, Z1 is recommended, usually 50-55% from what I have seen. Z2 seems too high

You’re right. Recovery between hard sets should be proper recovery, not Z2. I’ve updated it, cycling recovery segments now use Z1, and running recoveries use a 60-70% range instead of being pinned at 70%.

Welcome, and thanks for the detailed bug reports!

Translation issue: I found the cause. The coaching notes section uses a different language fallback than the rest of the email, and in your case it’s picking up Dutch instead of German. I’ll push a fix for this shortly. In the meantime, could you check your language setting under Settings? If it’s not set to German yet, switching it there should fix it immediately for your next email.

Weather in the analysis: You’re right, 9°C is definitely not hot! The AI gets the raw temperature but doesn’t have clear guidelines for interpreting it in an exercise context. I’ll add proper temperature classification so it correctly identifies cold/cool/warm/hot conditions.

Thanks for reporting these on your first day, really appreciate it.