Changelog

Recent updates and improvements to IntervalCoach.

Thursday, April 16, 2026

  • Fixed: Trail runs, virtual runs, gravel rides, mountain bike rides, and other Intervals.icu activity subtypes now show the correct sport icon on the training plan weekly schedule. Previously anything that wasn't exactly "Run" or "Ride" fell back to a bike icon.
  • Fixed: The AI Coach card no longer shows a generic "Today: Free Training" label alongside a scheduled workout. When a workout is already on your calendar for today, the planned workout IS today's recommendation — the generic type badge is now hidden to avoid the confusing contradiction.
  • New: Universal Links. Tapping an intervalcoach.app link (from Mail, Messages, Safari, etc.) now opens the iOS app directly if you have it installed.
  • Fixed: Progressive Load trend percentages now reconcile with the values shown. Previously the trend could show +97% while the displayed wattages only changed by ~13%, because the trend was secretly computed from a multi-week average (and sometimes TSS). The table now shows the exact aggregates the trend was calculated from.
  • New: Breathing protocol on the workout chart. When your HRV is suppressed or elevated-variable, your cooldown is split into a normal ramp-down plus a dedicated "Breathing Protocol" segment so the box-breathing work is structured into the ride / run / swim itself, not just an email note.
  • New: Protocol row on Today's Plan. If today's workout has a signal-driven adaptation (extended warmup, breathing cooldown, stimulus swap, sleep hygiene), you'll see a compact row of icons describing it without cluttering the dashboard with an extra card.
  • Improved: High training monotony now triggers a swap to an endurance session on top of the load reduction — a genuinely different stimulus, not just a lighter version of the same thing.
  • Improved: Declining aerobic efficiency (durability signal) now swaps today's session for an easy endurance ride so you rebuild the aerobic base instead of continuing the high-intensity pattern that eroded it.
  • Fixed: Agent Log no longer shows a red "Rest" badge for days when the pipeline was actually keeping your planned workout unchanged. The badge now reflects the real readiness assessment (Push / Moderate / Rest), matching what the Dashboard shows. Signals like yellow recovery and sleep shortage now also appear in the log entry for these days.
  • Improved: Daily workout adaptation now uses the full readiness signals engine. Previously only a large TSB drop or red recovery would replace a planned workout; yellow recovery combined with short sleep, HRV instability, or training monotony went unaddressed even when the Dashboard already recommended capping intensity. Now the Dashboard and the actual workout stay in sync.
  • Improved: When signals cap your intensity for the day, the coach now swaps the workout type (e.g. VO2max → Tempo, Threshold → Sweet Spot) instead of only reducing TSS on the same type. This gives you a more appropriate stimulus on recovery-limited days.
  • New: The coach now extends your warmup by 5 minutes when you report high soreness, easing you into the main set to protect sore tissue. The extension is absorbed from the main set so your total workout length stays the same.
  • New: When your HRV is suppressed or HRV variability is elevated, the coach now extends your cooldown by 5 minutes so you can do structured breathing work (box breathing 4-4-4-4) to downshift your nervous system. This was previously only mentioned in the email text — now it is actually part of the workout.
  • New: When recent workouts have felt consistently harder than expected, the coach now swaps today's session for an aerobic endurance ride instead of retrying the same hard stimulus. Previously this signal was purely informational.
  • Improved: Coaching note now includes concrete protocol bullets (🔥 extended warmup, 🌬️ extended cooldown with breathing, 🛌 sleep hygiene) so you see exactly what to do differently today.
  • Fixed: Training plan no longer shows placeholder workouts on past days when a session is skipped. The remaining weekly TSS is now redistributed across the days you still have left to train.
  • Fixed: Warmup and cooldown on cycling recovery rides no longer exceed the intensity of the main set. Previously a recovery ride with a 45-55% FTP main set had a warmup ramping up to 75% and a cooldown starting at 65% — bookends harder than the actual work. Both are now capped within Z1.
  • Fixed: Recovery status on the Train page now uses your HRV and resting-HR baseline when your device doesn't provide a recovery score. Garmin and other users without a recovery % saw "Unknown" even when HRV/RHR were clearly favorable; now you get a Green/Normal/Yellow reading derived from the deviation vs your 30-day baseline.

Wednesday, April 15, 2026

  • New: IntervalCoach is now available as a native iPhone app. Daily briefing with push notifications, Coach+ chat, activity analysis, calendar, dashboard, and post-workout feedback. Download from the App Store: https://apps.apple.com/app/intervalcoach-companion/id6760976369
  • Fixed: Sweet Spot and other interval workouts no longer generate continuous work blocks without recovery when TSS adjustment adds extra intervals. Recovery is now always included between intervals.
  • Fixed: Scheduled workouts are now automatically removed from your calendar when you mark yourself as sick or injured. Previously the sick-day email was sent correctly but planned workouts remained on the calendar.
  • New: Wellness check-in in the daily briefing. Rate your stress and motivation with a single tap. Low motivation triggers coaching adjustments. Menstrual cycle tracking available as an opt-in setting.
  • New: Chronic stress detection. The system now identifies when HRV is both suppressed and unusually stable — a pattern indicating chronic sympathetic dominance that standard metrics miss.
  • New: Recovery recommendations. When stress signals are elevated, your coaching note includes targeted recovery actions like breathing exercises, cooldown protocols, and sleep tips.
  • Improved: Readiness level is now derived directly from your body signals for more consistent and accurate training guidance.
  • New: HRV stability trend in your daily coaching note shows whether your autonomic stability is improving or worsening week-over-week.

Tuesday, April 14, 2026

  • New: Taper aggressiveness setting. Choose how aggressively your training volume drops before a race: Aggressive (~60% reduction, research-optimal), Standard (~45%, default), or Conservative (~25%, minimal). Find it in Settings > Periodization > Advanced.
  • New: Heart rate-based cycling workouts. If you ride outdoors without a power meter, you can now switch cycling workout targets to heart rate zones in Settings > Training. Workouts will use Z1-Z5 HR targets that sync to your Garmin or bike computer. Your HR zones from Intervals.icu are used automatically.
  • Fixed Fitness/Fatigue/Form values showing differently on the Dashboard vs Analytics page. The fitness trend chart now uses the same adjusted values as the Dashboard, which correctly excludes planned workouts that haven't been completed yet.
  • Fixed running best efforts in Analytics showing modeled/predicted times instead of actual recorded times. Short distances (400m, 800m) now show your real race/workout times from Intervals.icu.
  • Fixed post-workout and daily emails not respecting your unit preference. If you switched to Imperial in Settings, the app showed miles correctly but emails still used kilometers. Now fixed for all email types.
  • Coach+ now returns total elapsed time (including stops) when you ask about an activity, not just moving time.
  • New (Beta): Agent Log. See a timeline of every decision the AI coach makes: readiness assessments, workout selections, phase transitions, weekly plans, and post-workout analysis with full reasoning. Enable in Settings > Beta (Pro and Max).

Monday, April 13, 2026

  • Fixed duplicate workouts appearing on the calendar after a plan regeneration. When the weekly plan changed (e.g. different workout type, duration, or sport on a given day), old workouts were not being cleaned up before new ones were created. The planner now removes all existing IntervalCoach workouts before regenerating, so you always see exactly what the current plan prescribes.
  • Fixed threshold progressive and reversed progression workouts generating unrealistically long intervals for long rides. A 3-hour ride was producing 4x37-minute threshold intervals (up to 105% FTP), which is humanly impossible. Intervals are now capped at 20 minutes for cycling and 15 minutes for running, with remaining time filled by endurance work.
  • Fixed post-workout analysis for runs using power zones instead of heart rate zones, which caused easy Z1 HR runs to be classified as threshold. The analysis now respects your running target preference: if you train by pace or HR, it uses heart rate zones for stimulus classification. Athletes who explicitly chose power mode still get power-based analysis.
  • Fixed consecutive training days warning being triggered by low-intensity activities like dog walks and commutes. Activities below IF 0.40 no longer count as training days, so your readiness assessment stays accurate even if you log daily walks. Gym sessions and recovery spins still count.
  • Fixed post-workout analysis using the wrong FTP after an FTP test. When a ride pushed your eFTP higher, the analysis would judge the ride against the new (higher) number instead of the FTP you were actually working against. Now uses your eFTP from before the ride for accurate assessment.
  • New: Unit preference in Settings. Choose between Metric (km, km/h, meters) and Imperial (miles, mph, feet) for how distances, speeds, and elevations are displayed. Go to Settings > Account to switch.
  • Fixed duplicate workouts being created when the plan regeneration ran twice. A concurrency lock now prevents the second run from creating additional workouts.
  • Fixed Coach+ chat using the wrong date in conversations that span multiple days. If you continued a conversation from a few days ago, the coach could think "today" was a past date and take actions on the wrong day. The current date is now always authoritative.
  • Fixed Coach+ chat falsely claiming that marking a day as unavailable would delete your existing workouts. Blackout dates only prevent future scheduling — existing workouts are now offered for separate deletion.
  • Improved Coach+ activity lookup: the chat now uses your most recent activity directly instead of asking you for an activity ID.
  • Fixed pre-race day workouts ignoring the race sport for multi-sport athletes. If you have a Run race on Sunday, the day before now gets a Run opener instead of the regularly scheduled Ride.
  • Fixed planned workouts showing on the calendar for days that have a race event added after the plan was generated. The planner now automatically removes stale placeholder entries when it detects a race on that date.
  • JustTrain now caps workout intensity when you are recovering from injury or illness. If you had a recent SICK/INJURED event, high-intensity options like VO2max intervals are deprioritized and recovery-friendly workouts are promoted.
  • Fixed some workouts missing their cooldown segment. When TSS adjustment added extra intervals that pushed the workout over its target duration, the cooldown could be squeezed out. The trimming logic now properly shrinks filler segments before removing the cooldown.
  • Fixed trail run events (e.g. "Fyri trail", "Alpine Trail") not being recognized as running goals, causing the weekly plan to generate all rides instead of runs for trail runners.
  • Fixed Progressive Load Growth Rate showing extreme values (e.g. -70% instead of ~10%). The comparison now averages up to 4 previous weeks instead of comparing against a single session, smoothing out outlier effects.
  • Trail run workouts now use higher warmup and cooldown zones (Z2 floor instead of Z1). Staying in Z1 is unrealistic on hilly terrain, so warmup and cooldown targets are raised for trail runners.
  • Fixed Progressive Load trend column misalignment on the Analytics page. Added an info tooltip explaining what the card measures.
  • Fixed workout chart looking flat for running and low-intensity workouts. The chart now zooms into the relevant power range instead of always showing 0-150%, making the structure of endurance and running workouts clearly visible.
  • Fixed strength workouts not being recognized as completed. When you logged a "Strength" or "WeightTraining" activity, the dashboard still showed the planned "IntervalCoach - Lower Body Strength" as pending because the matching was too strict. Now matches by sport category instead of exact name.

Sunday, April 12, 2026

  • New: Beta tab in Settings. You can now opt into experimental features like Training Score directly from your settings, without contacting support.
  • New: Efficiency by Workout Type chart on the Analytics page. See how your Efficiency Factor (power per heartbeat) and TSS/hr evolve over time for each training type: endurance, tempo, sweet spot, threshold, and VO2max. Toggle between EF and TSS/hr views.
  • Improved date labels on all analytics charts: dates now show as "Apr 5" instead of "04-05" for better readability.
  • Fixed sick day detection showing "SICK · DAY 1" on the day after your last sick day for athletes in timezones east of UTC (Australia, NZ, East Asia). The daily briefing and dashboard were using UTC instead of your local timezone, which made the sick event look one day longer than it actually was.
  • Fixed Coach+ chat failing to load activity details when you ask about a specific workout ("How was my last ride?"). The chat could find your activities but would show "activity not found" when trying to get the details.

Saturday, April 11, 2026

  • Fixed a long-standing bug where deleting a workout from the Training Plan silently blocked the planner from ever putting anything back in that slot, for up to four weeks. If you had deleted a workout at any point, those dates stayed "empty" even after regenerating, which made plans look sparse and undershoot their weekly TSS targets. Delete now just means delete: the slot returns to being an empty available day and the next regeneration may refill it. To express "I never train this day", toggle the day off in your training schedule.
  • Deleting a workout no longer redistributes its TSS across the remaining entries in the week. The week will honestly undershoot its target instead of inflating the other workouts to compensate.
  • Fixed Recovery weeks producing half-empty plans. The planner was hardcoding a 40% session cut on top of the volume reduction you had already configured, so Recovery weeks ended up with fewer sessions AND less load per session, doubly undershooting the weekly target. Recovery weeks now keep the same number of sessions as Build weeks and let the TSS target drive per-session volume. Your configured recovery reduction setting is now respected end-to-end.

Friday, April 10, 2026

  • Added a confirmation step before upgrading an existing subscription (e.g. Pro → Max) in the settings page and Coach+ upgrade prompts. You now have to explicitly confirm before your card is charged the prorated difference, so an accidental tap on the upgrade button no longer triggers an immediate payment.
  • Added Mobile Sessions to Account settings. You can now see which devices are signed in to the iOS app and revoke all sessions instantly if needed.

Thursday, April 9, 2026

  • Activities on your public profile are now clickable and link to a dedicated activity detail page you can share on social media. Each shared activity shows duration, distance, TSS, power, heart rate, zone distribution, and workout segments — with a rich preview card when pasted on Twitter, Strava forums, or messaging apps.
  • Improved workout completion detection: the dashboard now correctly recognizes when a completed activity (e.g. "Kort-kort" from Strava) is the same as your planned workout (e.g. "Drempel Herhalingen"), even when names differ. Short warmup rides are no longer confused with planned races.

Tuesday, April 7, 2026

  • Added command palette (Cmd+K / Ctrl+K) for quick access to all pages, Coach+ chat, dark mode toggle, and more. Type to search and navigate instantly.

Monday, April 6, 2026

  • Fixed taper weeks not reducing training load before A races. High-volume athletes saw taper weeks with the same TSS as peak weeks because the availability floor was overriding the taper reduction. Taper and Race Week now properly reduce volume.
  • Fixed training plan continuing to build CTL after the target was already reached. Plans now hold at maintenance when the goal CTL is met, instead of ramping toward the availability ceiling.
  • Fixed over-under workouts having both intervals above FTP. The "Under" was at 91% (Sweet Spot) instead of 95% (just below threshold), and the "Over" was at 100% instead of 105% (just above threshold). On top of that, TSS adjustment was scaling both up to 105-110%, completely defeating the purpose. Over-unders now correctly straddle FTP at 95% and 105%, and their intensities are locked so TSS adjustments can't distort them.
  • Fixed duplicate workouts appearing after weekly plan regeneration. When a plan changed the sport assigned to a date (e.g., Run to Ride), the new workout was generated without checking that an older workout already existed on that date. Dual-sport days (AM/PM splits) still work correctly.

Sunday, April 5, 2026

  • Fixed training plan countdown resetting when re-opening the goal wizard. Previously, editing your goal settings would reset the start date to today, pushing the end date forward. The original start date is now preserved.
  • Fixed taper not reducing load enough when multiple A-races are close together. The taper now starts decaying relative to the first upcoming race instead of only the goal event, giving your Form proper time to recover before race day.
  • You can now ask Coach+ to rebuild your weekly plan. No more navigating to the Training Plan page. Just say "rebuild my plan" in chat.
  • Coach+ conversation starters are now context-aware. Instead of random suggestions, you'll see prompts based on what's happening right now: your latest workout, upcoming race, fatigue level, or rest day.
  • Coach+ now supports multiple conversations. Start a new conversation with the + button, switch between them with the list button, and each conversation gets an AI-generated title. Up to 30 conversations are kept.

Saturday, April 4, 2026

  • Improved workout scoring. Scores no longer cluster around 7 — the system now understands what intensity is appropriate for each workout type. Unscheduled workouts (group rides, spontaneous sessions) now also get a score based on training value: duration, intensity, and structure.

Friday, April 3, 2026

  • FTP Improvement goals now let you set a target FTP. Previously the goal had no way to set a specific watt target, falling back to your manual FTP which was often already exceeded. You now get the same FTP slider and AI-suggested targets as race goals.
  • Fixed sport selection during onboarding not being saved. Selecting cycling-only during setup had no effect, causing running workouts to still be generated. Sport preferences now correctly persist to your training schedule.
  • Fixed Coach+ chat sometimes getting confused about which day of the week maps to which date. The AI now receives a pre-computed day reference table instead of trying to calculate dates itself.
  • Workout names are now generated in your language. Previously, AI-generated workout names were always in English even when your app language was set to Spanish, Dutch, etc.
  • Fixed swim pull sets having only 30 seconds rest between 400m+ hard efforts. Rest is now 1.5 minutes, giving proper recovery between sustained threshold-pace pulls.
  • Consolidated Recovery Analysis and Insights sections on the Analytics page into one unified section. Recovery assessment, training gaps, and recommendations are now in a single card instead of two separate sections saying similar things.
  • Fixed training plan not updating after changing your training schedule. Previously, enabling/disabling days or changing workout durations in Settings required waiting for the weekly plan to regenerate on Sunday. Now the plan updates immediately when you change your schedule.
  • Fixed duplicate workouts appearing when a mountain bike ride, gravel ride, or virtual ride was already on the calendar. The system now correctly recognizes these as "Ride" variants and skips generating another ride on the same day.
  • Fixed daily workout and race-day emails failing for some athletes when the AI returned malformed JSON with missing colons. The system now automatically repairs this and retries.
  • Fixed running strides showing HR zone targets instead of pace. Heart rate can't respond fast enough for 20-second efforts, so strides and short bursts now always use pace targets even when HR mode is selected.
  • Fixed monthly progress email using technical terms "TSB" and "CTL" instead of the app labels "Form" and "Fitness". Also added guardrails against overstating fitness trends when the numbers don't support them.
  • Redesigned the readiness card with a unified layout. HRV, Sleep, and RHR now show for all athletes (not just Whoop users) when data is available from Intervals.icu. Metrics are organized in a cleaner grid with the ring showing Recovery or Form, and Fitness, Fatigue, RHR, and Ramp always visible below.
  • Fixed taper weeks sometimes showing higher TSS targets than peak weeks. The first taper week is now always capped at the peak level, ensuring a smooth load reduction into race week.
  • Fixed future week TSS targets sometimes showing stale values from a previous plan generation. Weeks beyond the next 7 days now reflect your latest fitness and periodization, while the current and next week keep their targets since workouts have already been generated for them.
  • Fixed double workouts appearing on the calendar after a weekly plan regeneration. When the plan changes, stale workouts from the previous plan are now automatically cleaned up.
  • Fixed running workouts being generated for cycling-only athletes who hadn't explicitly set their sport preferences. The system now defaults to cycling only when no sports are configured.
  • Fixed projected CTL showing different values on the Dashboard vs Training Plan page. Both pages now always show the same projection.

Thursday, April 2, 2026

  • Running workouts now support power-based targets. If you train with a running power meter (Stryd, Garmin, etc.), go to Settings > Training and select "Power-based" to get workout targets as % of your running FTP instead of pace. Great for hilly or windy routes where pace is unreliable.
  • Fixed post-workout analysis hallucinating "structured intervals" and "high-power sprints" on casual group rides. The AI now only describes interval structure when actual interval data supports it. Short Z6/Z7 spikes on group rides are correctly described as brief surges, not fabricated training sets.
  • Refined effectiveness scoring for unstructured rides. Long endurance rides and hard group rides still score well (7-8) based on real training value, but the score description will be honest about what happened instead of fabricating structured training.

Wednesday, April 1, 2026

  • Fixed weekly plan overwriting workouts that were already generated and uploaded to your calendar. When the plan refreshed on Sunday, it could create conflicting duration targets for workouts already on your schedule, causing mismatches between the dashboard and daily email.
  • Fixed removing a sport (e.g. unchecking Running) in Edit Schedule not persisting. The setting would appear saved but revert after the next plan generation.
  • Fixed fitness trend chart showing inflated CTL/ATL for users in eastern timezones (UTC+8 and beyond). The chart was using projected values that included planned workout TSS instead of your actual current fitness, causing a mismatch with the Training Overview card.
  • Daily adaptation now triggers earlier when your fatigue builds up. Previously it required a large fitness drop to replace a scheduled workout. Now it also catches cases where your Form is deeply negative, swapping high-intensity sessions for lower-intensity alternatives instead of defaulting to recovery.
  • Fixed post-workout analysis giving inflated scores (9/10) when you skip the planned workout and just ride. The system now detects when your actual zone distribution doesn't match the planned workout type and scores based on what you actually did.
  • Fixed post-workout analysis commenting on "hilly terrain" and power variability for indoor/ERG-controlled rides. Indoor rides now suppress terrain commentary since it's controlled by the trainer.
  • Post-workout analysis now uses "Form" instead of "TSB" to match the app terminology, and rounds CTL values consistently with the dashboard.

Monday, March 30, 2026

  • New Max feature: Performance Benchmarks! See how your fitness compares to peers on the Analytics page. Toggle benchmarks on to see P50 reference lines on your CTL, eFTP, power curve, weekly TSS, and running pace charts. Filter by age group and sex to compare against a relevant peer group. Available for Max subscribers.
  • The power profile radar and peak powers table now show peer P50 values so you can see where you stand at each power duration (5s sprint through 60min endurance).
  • Your age group and sex are now shown in Settings under your profile, sourced from Intervals.icu.
  • Fixed weekly plan ignoring LIMITED availability on holiday events. If you mark a holiday as "Limited" in Intervals.icu with specific sports allowed (e.g. Run only), IntervalCoach now schedules workouts in those sports instead of skipping the day entirely. Max training time is also respected.

Sunday, March 29, 2026

  • Public athlete profiles are here! Share your training milestones with a public profile page. Go to Settings > Account > Public Profile to enable yours, customize your handle, and share the link. Your profile shows earned badges, peak fitness, and training stats.
  • The Coach+ chat counter now shows when your monthly credits reset (e.g. "14/20 · Resets Apr 1") so you can pace your usage.
  • Fixed race pace plans giving cycling warmup instructions (spinning, power targets) for running and trail run events. Warmup guidance is now sport-appropriate.
  • Added training milestone badges! Earn badges for volume (Century Day, Big Week, Monster Week), consistency (7-day and 30-day streaks, Plan Follower), fitness gains (FTP Bump, New Peak CTL, Power Surge), recovery (Rest Day Respect), and multi-sport training. Badges appear on your dashboard and you get an email notification when you unlock a new one. Toggle badge emails in Settings > Notifications.
  • Badges now include repeatable challenges: Monthly Century (100+ TSS day each month), Perfect Month (4 weeks of 90%+ adherence), and Annual Warrior (200 training days per year). Plus tenure milestones at 3 months, 6 months, 1 year, and 2 years.
  • Unearned badges show progress bars so you can see how close you are (e.g. "4/7 days" toward a streak). Earned badges show what percentage of athletes have unlocked them.

Saturday, March 28, 2026

  • Added body weight trend chart to the Analytics page under Wellness & Recovery. If you log weight in Intervals.icu, you can now see your weekly average weight over time.
  • Coach+ can now access your weight history. Ask about your weight trend, body composition, or W/kg changes and the coach will pull your data from Intervals.icu.
  • Fixed Threshold Surges workouts generating an excessive number of intervals for long rides. A 3h50m ride would previously fill the entire session with 19 threshold blocks instead of capping at a reasonable number and padding with endurance.
  • Fixed readiness score display for Polar users. Polar reports readiness on a 1-6 scale which was being misinterpreted, causing squashed graphs. Now correctly maps Polar values to percentages (e.g. 5 "Good" → 75%).
  • Reduced reconnect email spam for users who decline write permissions. If you use IntervalCoach in read-only mode (dashboard and analytics only), you will no longer receive daily reconnect emails.
  • Fixed Notes in Intervals.icu blocking the unavailability toggle in the training plan view. Notes no longer appear as 0min/0TSS entries in the day plan grid.

Friday, March 27, 2026

  • You can now schedule TrainNow workouts for a future date. Pick any upcoming day from the calendar and the workout will be uploaded to that date instead of today.
  • Updated privacy policy with detailed AI data sharing disclosure: what training data is sent, which providers process it, and how your privacy is protected.

Thursday, March 26, 2026

  • Fixed training plan TSS targets not accounting for periodization overhead. Peak, taper, and recovery weeks reduce effective TSS below the base target, making CTL goals mathematically unreachable even with perfect adherence. Build weeks are now inflated to compensate, respecting your periodization settings and availability.
  • Fixed changing the sport on a planned workout in the training plan view. Previously, switching a planned Ride to a Run (or vice versa) would fail with "Entry not found" because the lookup used the new sport instead of the original.
  • Fixed weekly plans generating fewer sessions than requested for athletes with 5-6 desired sessions per week. The rest-day spacing rule now scales with the number of requested sessions instead of enforcing a fixed maximum of 3 consecutive training days.

Wednesday, March 25, 2026

  • Fixed training recommendations being too conservative for athletes without a readiness score (e.g. Garmin users). Previously, a normal day-to-day HRV dip of -14% could trigger a recovery-only workout recommendation even when all other signals were green. Recovery assessment is now based on the full signals system (HRV, sleep, training load, fatigue, biometrics) instead of HRV alone.
  • Fixed weekly plans dropping Saturday workouts for high-volume athletes with multi-session days. Athletes with more desired sessions than training days (e.g. 14 sessions across 7 days) now keep all their configured days instead of having sessions removed by the rest-spacing rule.
  • Fixed long endurance rides with brief sprints being misclassified as "anaerobic" stimulus. A 5h Z2 ride with 2 minutes of Z6/Z7 is now correctly classified as "endurance" instead of "anaerobic".
  • Weekly summary emails now reference your actual planned workouts for next week instead of generic AI advice that could contradict the plan.
  • Improved workout variety: the recency penalty now lasts 3 weeks instead of 2, so the same workout is less likely to repeat week after week. Especially noticeable in Base phase endurance days.
  • Daily workouts now incorporate your coaching memories (learned from past conversations) into workout type selection, not just custom instructions. If you told Coach+ you prefer short VO2max intervals or want to avoid long threshold blocks, that now influences which workout gets picked for your daily plan.

Tuesday, March 24, 2026

  • Fixed completed activities not appearing on the calendar after syncing from Strava. The activity cache was not being refreshed when new activities arrived, so the calendar could show stale data for up to 4 hours even after clicking refresh.

Monday, March 23, 2026

  • Fixed Progressive Load and Zone 2 Quality charts not showing data for gravel rides, mountain bike rides, and e-bike rides. These activity types were accidentally excluded from the analytics calculations.
  • Fixed past weeks' TSS targets being recalculated when changing training settings. Past weeks now always keep their original targets, so your historical progress tracking stays accurate.

Saturday, March 21, 2026

  • Redesigned the calendar page with richer workout cards showing name, duration, and TSS at a glance. Completed activities have green borders, planned workouts show their event color, and upcoming plan placeholders appear with dashed borders so you can see what's coming before the workout is generated.
  • Added drag-and-drop to the calendar. Drag planned workouts or placeholders to a different day to reschedule them. Works for both Intervals.icu events and weekly plan entries.
  • The calendar now shows weekly summary data: total time, sport breakdown, and TSS progress alongside the week type badge.
  • Mobile calendar switched from a cramped 7-column grid to a vertical list view. Only days with workouts are shown, with larger touch targets and better readability.
  • Fixed swim workouts being much shorter than requested. Intensity swim sessions (VO2max, sprints, etc.) now fill remaining time with endurance swimming after the main set, matching how real swim coaches structure sessions.
  • Fixed weekly plan skipping days that only have strength training on the calendar. You can now get endurance workouts on days you also do weights.

Friday, March 20, 2026

  • Added power profile radar chart and power-duration curve to Analytics. The radar shows your strengths across 8 durations (5s to 20min) with each axis scaled to your peak, so you can instantly see your sprinter vs TT profile shape. The curve chart shows your full power-duration relationship with current vs all-time overlay.
  • Fixed the "Required hours" display escalating each time you increased your training schedule. The required hours now stay stable based on your CTL target, giving you a fixed goal to work toward.
  • Fixed deleted race events in Intervals.icu still showing peak/taper phases on the training plan calendar. The cache now refreshes automatically when events are added or removed.
  • Fixed workout generation silently failing on iOS PWA. You now get a clear timeout message instead of a blank error, and the server has more time to complete generation.
  • Fixed dashboard showing "Planned Rest Day" on days that have a workout in the weekly plan but the calendar event hasn't been generated yet.

Thursday, March 19, 2026

  • Added Alipay as a payment option at checkout, making it easier for users in China to subscribe.
  • Post-workout email now shows your CTL and TSB before and after the workout, so you can see exactly how each session contributes to your fitness.
  • Fixed training plan completion percentage showing incorrect values when manually added workouts push the week's total TSS above the original target. The percentage now correctly reflects the raised target.

Wednesday, March 18, 2026

  • Fixed weekly plan overloading remaining workout days when you have manually planned workouts on your Intervals.icu calendar. The plan now deducts the TSS from your manual workouts before distributing load across the days it generates.
  • Swimming workouts now use distance-based intervals (e.g., 100mtr, 200mtr) instead of time-based, so they display correctly in Intervals.icu with proper Pace/100m targets based on your CSS.

Tuesday, March 17, 2026

  • Workout ramp segments with trivial power ranges (3% or less) are now output as steady-state instead of meaningless ramps. A "75-76% ramp" in ERG mode was indistinguishable from flat power.
  • Fixed weekly TSS targets not updating when you change your periodization week-in-cycle. Previously, changing a Build week to Recovery in settings would show the Recovery label but keep the old Build-level TSS target and generate full-volume workouts.

Monday, March 16, 2026

  • Fixed Peak phase only assigning Sweet Spot and Endurance workouts instead of VO2max and Anaerobic. Athletes approaching their goal event now get race-specific intensity as intended.
  • Training plan now shows both planned placeholders and real workouts from your calendar side by side, so you can see exactly what has been generated and what is still upcoming.
  • Training plan: placeholder workouts now show a dashed border and tooltip to distinguish them from generated workouts on your calendar.
  • Training plan: you can now edit the workout category (Recovery, Endurance, Tempo, Sweet Spot, Threshold, VO2max, Anaerobic) on placeholder workouts. The intensity flag is automatically derived from the category.
  • Training plan: manually added, edited, or moved placeholders now survive weekly plan regeneration instead of being overwritten every Sunday.
  • Training plan: manually deleted placeholders are no longer re-added when the plan regenerates.
  • Fixed Coach+ chat not being scrollable on iPhone. Auto-scroll now pauses when you scroll up to read earlier messages, and pull-to-refresh no longer hijacks scroll gestures in Safari and Arc.
  • Fixed individual workout TSS targets sometimes exceeding physiological limits when your training history showed unusually high intensity rates.

Sunday, March 15, 2026

  • Fixed running workouts ignoring the Heart Rate-based target setting. Workouts now use HR zone format (Z1-Z5 HR) when you select Heart Rate-based in settings, which Intervals.icu and Garmin recognize as structured targets with actual HR guidance on your watch.
  • Fixed the Running Pace Preference setting (Critical Speed vs Manual Threshold) being ignored. Running zones and workout paces now correctly use your chosen pace source instead of always defaulting to Critical Speed.
  • Your coaching instructions and coach memories now influence workout selection. Instructions like "focus on threshold" or "avoid VO2max" will nudge both TrainNow recommendations and daily workouts toward your preferences.
  • Fixed swim workout TSS running 50%+ higher than planned. Endurance swims now produce ~45 TSS/hr instead of ~75, matching the intended training load.
  • Cadence pyramid workouts now ramp intensity alongside cadence (tempo at 70rpm → threshold at 110rpm) instead of holding flat power across all cadence steps.
  • Sweet spot dense workouts now fit within the requested duration instead of sometimes running 7 minutes over.
  • Swim pacing workouts now use progressive 92-100% CSS pace with adequate recovery, instead of fixed threshold intervals at 100% CSS.
  • Longer swim sessions (60min+) now get proportionally longer warmups and cooldowns.
  • Recovery rides no longer get inflated TSS targets from weekly plan surplus distribution.
  • Fixed false "volume jump" warnings in TrainNow that could force unnecessary recovery workouts. The previous week's training load was being calculated from only 1-2 days of data instead of the full 7 days.
  • New Pyramidal periodization model: 75% easy, 15% moderate (tempo/sweet spot), 10% hard. A research-backed alternative to Polarized training for athletes who respond well to sustained tempo and sweet spot work.
  • Analytics now shows your actual training pattern (Base, Polarized, Pyramidal, Threshold, or High Intensity) alongside the polarization index, so you can see if your real distribution matches your intended model.
  • Distribution drift detection: analytics flags when your recent training pattern has shifted from your longer-term trend (e.g. "Shifted from Polarized to Threshold").
  • New training monotony detection: the system now tracks daily training load variation and warns when monotony is too high (Foster 1998), reducing overuse injury risk.
  • New load-recovery ratio: compares your weekly training load against your recovery score to detect when load outpaces recovery capacity.
  • Phase-aware signal thresholds: during Build phases, more warning signals are needed before training is modified (3 vs 1 during Taper), so expected fatigue accumulation does not trigger unnecessary reductions.
  • New ACWR (Acute:Chronic Workload Ratio) tracking: detects training load spikes by comparing your recent 7-day load against your 28-day average. Ratios above 1.5 trigger automatic load reduction to lower injury risk (Gabbett 2016).
  • New aggregate durability tracking: monitors your Efficiency Factor (EF) trends across qualifying endurance sessions (90+ min, endurance pace), comparing 7-day vs 28-day averages to detect improving, stable, or declining aerobic fitness.
  • New training consistency index: tracks how well you follow your planned weekly TSS targets. Shows compliance status (on track, partial, below target) and per-week breakdown to help identify schedule adherence patterns.

Saturday, March 14, 2026

  • New training goal templates: you can now set a training goal without having a race. Choose from General Fitness, Return to Sport, Off-Season Base, Weight Management, Speed/Power Block, or Maintenance — each with its own phase model and duration. Available in onboarding and settings.
  • Fixed training plan projection charts (CTL, Form, Ramp Rate) curving backward instead of moving forward in time.
  • Fixed goal events more than 1 year away (e.g. Ironman France 2027) not appearing in training plan setup. The lookup window now extends to 2 years.
  • Fixed swim workout TSS calculation producing wildly inflated values (e.g. 3046 instead of ~60) by correctly mapping swim pace percentages to intensity factors.
  • Tempo workouts now target mid-zone intensity (~82% FTP) instead of the zone ceiling (87%), making sustained tempo efforts more realistic and sustainable.
  • Fixed workout duration overruns for openers, sweet spot, and swim VO2max workouts where generated segments exceeded the requested duration.
  • Fixed workouts being significantly shorter than your configured availability. Athletes with high training hours but lower CTL were getting 60-70 minute rides on 2-hour slots because the weekly TSS budget was too low to fill the available time at endurance intensity. The plan now ensures weekly TSS targets respect your scheduled training hours.
  • Fixed a bug where upgrading your subscription (e.g. Pro to Max) could leave the old subscription active, causing duplicate billing. Old subscriptions are now automatically cancelled on upgrade, and renewal events from stale subscriptions no longer overwrite your current plan.
  • Fixed the Contact button doing nothing on mobile. It now opens your email app instead.
  • Improved swim workout quality: sprint, anaerobic, recovery, threshold, and endurance workouts now have distinct structures with intensity progression, proper rep caps, and duration scaling. Sprint workouts split into 3 types (short sprints, anaerobic repeats, sprint ladder) instead of all using the same pattern.
  • Fixed swim workout TSS estimation ignoring long endurance steps (25+ minutes), which caused TSS accuracy checks to fail on endurance and steady-state swim workouts.
  • New swimmer-specific strength workout with shoulder stability, rotator cuff, and pull exercises. Strength workouts now better match your primary sport instead of defaulting to generic templates.
  • New Mobility & Recovery strength session with stretching, foam rolling, and flexibility work for recovery and transition weeks.
  • Improved strength workout variety: less repetition across sessions (different core exercises per template), phase-aware volume guidance (lighter/higher reps in Base, heavier/lower reps in Build), and the quick core routine is now available for all sports.

Friday, March 13, 2026

  • Smarter daily TSS distribution: your training plan now allocates TSS based on the specific workout category (VO2max, threshold, endurance, etc.) instead of a simple intensity/endurance split. This means your VO2max days get a realistic TSS budget and endurance days aren't shortchanged, leading to better workout selection and less type-shifting.

Thursday, March 12, 2026

  • Fixed B-race goals being misidentified as A-races in the coaching pipeline. The coach now correctly recognises your race priority (A/B/C) when generating workout advice, taper recommendations, and chat responses.
  • Fixed AI Coach note incorrectly identifying mid-week Build phases as a "deload pattern." The coach now compares the same days of the week (e.g. Mon–Thu this week vs Mon–Thu last week) rather than a partial week against a full previous week, eliminating false TSS drop signals.
  • Fixed SS Intervals workout generating only 3 large blocks instead of the expected 6×5-minute structure. SS Intervals now use a dedicated generator producing short 5-minute efforts with 2-minute recoveries, correctly scaling to 6+ intervals for a 60-minute session.
  • Fixed 4 workout types sharing the wrong generator and producing incorrect structures: Sweet Spot Cadence now alternates low/high cadence blocks; Tempo Blocks now uses 5-8 min efforts (not 8-12 min); Cruise Intervals now targets the correct SS/threshold zone intensity (not tempo zone); Anaerobic Capacity now uses 60-second efforts with 4-minute recovery (not 20-second sprints).
  • Fixed pre-race day workouts (openers) being assigned too much TSS, causing the generator to push intensity beyond what the workout type can produce. Pre-event days now get a realistic TSS budget and freed TSS is redistributed to other training days.
  • Added example prompts and guidance for custom coaching instructions to help you get the most out of the feature.
  • Coach+ can now update and delete your race events (A/B/C) directly in chat.
  • Changing your CTL target now instantly updates your weekly TSS targets without rebuilding the entire training plan.
  • Improved workout variety: you'll now see a much wider range of workout types instead of the same 3-5 repeating. Category-level recency tracking ensures you don't get similar workouts back-to-back, and all 100+ catalog workouts are now reachable across training phases.
  • New workout types: force intervals, sprint pyramids, Rønnestad 30/15s, contrast intervals, cadence pyramids, and more micro-interval variations for both cycling and running.
  • Fixed race simulation workouts using tempo zones (76-87% FTP) instead of threshold zones (85-105% FTP) for the main blocks.
  • Fixed TrainNow allowing swim-only workout types to be selected for cycling or running sessions.
  • Coach+ can now build fully custom workouts from scratch. Describe any workout structure in natural language (e.g. "5x5min at 105% with 2min rest" or "a pyramid of 1-2-3-4-3-2-1 minutes") and preview it before adding to your calendar.
  • Fixed swim workouts showing "(0w)" and an empty power chart in Intervals.icu. Steps are now formatted as percentage of CSS (Critical Swim Speed) pace instead of FTP power, so the swim chart renders correctly.
  • Fixed Coach+ custom swim workouts occasionally generating absurd durations (e.g. 3h50m) when the AI confused meters with minutes. Workouts are now validated and capped at a sensible maximum duration, and the schema guidance now explicitly clarifies that times are in minutes.
  • Fixed Coach+ scheduling workouts on a future planned swim/ride/run day instead of today when you ask for a workout without specifying a date.

Wednesday, March 11, 2026

  • Fixed daily email showing "Scheduled" for rest days during recovery weeks. When fewer workouts are planned (e.g., 4 instead of 6), the remaining days now correctly show as rest.
  • Fixed ultra-distance cycling events being misclassified as running goals, which caused too many running sessions in the weekly plan.
  • Weekly plans now prioritize your goal sport when distributing sessions. If your goal is a cycling event, you'll get more cycling sessions and fewer runs (and vice versa).
  • Fixed Sweet Spot workouts prescribing VO2max-level intensities (101-108% FTP instead of 88-94%). Zone calibration was shifting zone boundaries upward, producing dangerous intensity targets.

Tuesday, March 10, 2026

  • New Training Demand control on the Training Plan page — quickly adjust your training intensity with Easy (-25%), Moderate, Demanding (+15%), or Aggressive (+30%) settings. Your weekly TSS targets update instantly across the entire plan.
  • Fixed training plan showing impossibly low TSS targets (e.g., 9 TSS for a 2-hour ride) when CTL is low but training volume is high. Weekly TSS now respects a minimum floor based on your scheduled training hours.
  • Improved CTL target wizard accuracy for athletes who recently started training or ramped up significantly. The wizard now accounts for recent training load (ATL) when it significantly exceeds long-term fitness (CTL).
  • Generated workouts are now more reliable and consistent. Duration, structure, and intensity are always accurate, with personalized warmup and cooldown messages tailored to you.
  • Improved workout variety with new cycling, running, and swimming workout types including descending VO2max, progressive threshold, race simulations, and more.
  • Fixed workout duration calculator not counting seconds-only intervals (e.g., 30s sprints, 45s surges), which caused workouts with short intervals to appear much shorter than they actually are.
  • Fixed fallback workout templates (2x20 FTP, Progressive Sweet Spot, FTP Test, Openers, VO2max Pyramid) always producing the same duration regardless of the requested time. A 150-minute 2x20 FTP request now correctly produces a 150-minute workout with Z2 endurance around the core intervals, instead of always outputting 70 minutes.
  • Fixed Training Intensity Distribution chart tooltip showing incorrect percentages (e.g., 6000% instead of 60%).

Monday, March 9, 2026

  • New Training Science section on the Analytics page with three metrics: Training Intensity Distribution (time-based easy/moderate/hard split with polarization index), Zone 2 Quality (scores your endurance rides for gray zone drift), and Efficiency Factor trending (tracks aerobic fitness via NP/HR over time).
  • The Training Stimulus card on the dashboard now shows a 3-color intensity distribution bar (easy/moderate/hard) based on actual time in zones, replacing the previous 2-color session count bar. Includes your periodization model target for comparison.
  • Post-workout AI analysis now flags gray zone issues on endurance rides and compares your Efficiency Factor to your recent average.
  • Fixed multi-sport athletes (triathletes) getting only easy/recovery workouts for some sports. Intensity sessions are now distributed across all endurance sports instead of concentrating in one or two.
  • Coach+ chat now automatically recovers from corrupted conversation errors instead of showing an unrecoverable Retry button. If the error occurs, the conversation resets and the next message works normally.

Sunday, March 8, 2026

  • Improved Zone Development scoring: zones are now scored by comparing your current power curve against your all-time best at each energy system duration (30s for anaerobic, 5min for VO2max, 8min for threshold, 20min for tempo, 60min for endurance), giving a meaningful 0-10 score instead of always maxing out.
  • Redesigned the Zone Development card to show percentage of peak (e.g., "80% of peak"), trend indicators (improving/stable/declining), and reference durations. Tap a zone to see your current watts vs all-time best.
  • Added Form (%) and Ramp Rate projection charts to the Training Plan page, showing how your freshness and training load rate of change are expected to evolve alongside your CTL trajectory
  • Fixed activity detail dialog crashing when opening activities synced from Strava or other sources that do not include an activity type (e.g. on the calendar page on Android).
  • Unified workout detail dialog — clicking any workout or activity opens an intelligent dialog that shows structure and nutrition for planned workouts, and performance data with AI analysis for completed activities
  • Clicking a completed workout on the dashboard now opens your actual results (power, zones, AI analysis) instead of the planned workout structure
  • Added energy tracking to workout details — see calories burned (kcal/kJ) from your device data, or smart estimates when device data is missing
  • Added post-workout nutrition advice for today's completed activities with recovery-focused recommendations

Saturday, March 7, 2026

  • Fixed C events (group rides, fondos, etc.) not showing as completed on the dashboard after finishing the ride. The event card now correctly shows the "Completed" badge instead of still displaying the upcoming event.
  • Fixed Coach+ chat occasionally failing with "Something went wrong" when empty messages were sent to the AI. The chat now validates message content before processing.
  • FTP tests are now automatically scheduled into your weekly plan based on your frequency setting (every 4, 6, 8, or 12 weeks). Previously the setting existed but had no effect — you had to manually ask Coach+ to create a test.
  • Fixed Training Stimulus card incorrectly counting weight training sessions as high-intensity workouts. HR spikes during lifting (e.g., heavy squats) were being classified as threshold or VO2max sessions, skewing the intensity distribution and showing "Not Polarized" warnings for well-structured training.
  • Fixed AI coaching note showing wildly inflated week-over-week TSS percentages (e.g., "3231% increase") for athletes training multiple sessions per day. The system was limiting to 14 activities by count instead of by time window, cutting off previous week data.
  • Fixed Zone Progression and Focus Areas showing 0.0 for all zones. Some Intervals.icu accounts return zone time data in a numeric array format that was not being handled correctly.
  • Fixed workouts being named "VO2max" when the actual content was Z2 endurance. The workout name now reflects the actual generated content instead of always using the planned type.
  • Fixed AI weekly coaching notes complaining about training load even when you hit your weekly TSS target. The AI now sees your actual progress vs target so it can accurately assess whether you are on track.
  • Fixed dashboard showing "Ready to Train" with green signals after training on a scheduled rest day. The readiness widget now respects the rest day violation and recommends rest.
  • Fixed dashboard still showing "ready to tackle today's session" after completing a workout. The workout card now reliably shows a "Completed" badge instead.
  • Fixed "Days consec" counter always showing 0 on the dashboard. The consecutive training days calculation was using the server's UTC date instead of your local timezone, causing it to miss matching activity dates.

Wednesday, March 4, 2026

  • Post-workout effectiveness score is now based on Intervals.icu compliance % instead of AI judgment. A workout where you only completed 30% of the plan now correctly scores 3/10 instead of the AI giving 8/10.
  • Fixed Coach+ chat crashing with "Something went wrong" when viewing running performance profiles. The performance profile card now handles missing or incomplete running data gracefully instead of crashing.
  • Fixed Coach+ failing to replace or delete workouts when the AI used placeholder names instead of real event IDs. The chat now validates event IDs before making calendar changes.
  • Fixed workouts being scheduled on days that already have a race or event (A/B/C events). The system now detects race events on the calendar and skips those days.
  • Fixed deleted workouts (rest days) being automatically refilled the next day. The system now remembers which workouts it already generated, so removing a workout to take a rest day is respected.
  • Fixed changing a run to a bike workout causing the system to reschedule a new run. User modifications to workout sport are now preserved.
  • Fixed post-workout analysis showing "Workout compliance N/A" for unscheduled activities. Compliance is now only shown when a planned workout exists, and the effectiveness reason text is consistent with the score.

Tuesday, March 3, 2026

  • Fixed Coach+ silently deleting existing workouts when generating a new one on the same day. The AI now explicitly identifies which workout to replace instead of automatically removing all IntervalCoach workouts on that date.
  • Fixed weekly workouts not appearing on the calendar after the Sunday plan generation. The system was only filling one missing day per daily run, so it could take nearly a week to populate your full schedule. Now all missing workouts are created at once.

Monday, March 2, 2026

  • Coach+ chat now shows rich visual cards for tool results instead of plain text — workouts display with a zone-colored chart, training status shows a metric grid, nutrition advice renders as an expandable card, and more. Applies to 9 tools including activity details, performance profile, wellness, warnings, and activity search.
  • Fixed Coach+ describing workout actions in prose without actually calling the tools. The AI now always previews the action and calls the tool in the same response, so you see the Approve/Cancel prompt immediately.
  • Fixed Coach+ ignoring specific workout instructions like "15 hill repeats" or "focus on cadence drills". Your exact request is now passed through to the workout generator.
  • Fixed Coach+ creating duplicate workouts when asked to replace an existing workout. The AI now correctly replaces the targeted workout instead of creating a second one.
  • Fixed workouts being generated on disabled training days after changing your schedule. The system now checks the live training schedule before creating workouts, even if the plan hasn't regenerated yet.
  • Fixed Calendar and Training Plan pages showing different training phases for the current week. The Calendar now uses the same phase source as the Training Plan when the plan projection isn't available.
  • Fixed dashboard fitness metrics (CTL/ATL/TSB) now including today's completed workouts — previously only yesterday's values were shown, so a morning ride wouldn't be reflected until the next day

Sunday, March 1, 2026

  • Fixed endurance workouts sometimes generating a single 45-minute continuous ramp instead of steady-state blocks. Progressive workouts now use stepped power blocks, and any AI-generated ramp in the main set is automatically caught and replaced with a proper workout structure.
  • You can now move and delete generated workouts in the upcoming week on the Training Plan page. Previously the action menu was missing for these workouts.
  • The Training Stimulus card no longer flags "too much high intensity" when you're following the AI-generated plan. It now checks your actual hard sessions against what was prescribed, and only warns if you exceed the plan.
  • The Weekly TSS chart in Training Analysis now responds to the timeframe selector, matching the behavior of the Fitness Trend and Zone Progression charts.
  • Fixed a dashboard crash that could occur when readiness data was still loading.
  • Fixed bottom navigation tabs (Coach+ and More) being cut off on iPhones in portrait mode.
  • Fixed Coach+ creating duplicate workouts when regenerating or replacing workouts on the same day. The AI now explicitly targets which workout to replace, preventing accidental duplicates.
  • Fixed daily workouts generating at roughly half the planned TSS target — the AI was not receiving the session-level TSS target from your training plan, resulting in consistently under-prescribed workouts.
  • Fixed wellness data (resting HR, sleep, recovery) surfacing stale values from days or weeks ago as if they were current. The system now only reports today's wellness data — if no data is available today, it shows "Unknown" instead of misleading old values.
  • Fixed Coach+ sometimes showing raw tool output (JSON data) in chat responses. Chat now uses the AI SDK's native message persistence, preserving full conversation context including tool metadata. This eliminates the workaround that was causing tool output leaks and improves chat reliability.

Saturday, February 28, 2026

  • Fixed sick/injured status persisting one day too long — if you marked a single day as sick on Intervals.icu, IntervalCoach would still show you as sick the next day. Now correctly clears when the sick day is over.
  • Fixed strength workouts being duplicated on the calendar — each cron run added another copy because the idempotency check didn't recognize existing strength workouts. Now correctly detects them and skips re-generation.
  • Fixed post-workout analysis email saying "no power data" for rides that had power in their intervals but a missing activity-level average. Power is now detected from interval data as a fallback.
  • Fixed generated workouts ignoring your RPM preferences (e.g., "never above 85rpm") when adding cadence variety. Your cadence preferences now take priority over default variety targets.
  • Fixed dashboard showing redundant alternative advice (e.g., "stay in Z2") when the scheduled workout is already a Z2 endurance ride.
  • Fixed tempo workouts being mislabeled as "Threshold" in post-workout analysis when their intensity factor was near the threshold range.
  • Fixed Coach+ chat sometimes fabricating which activity produced a peak power value. The AI now correctly explains that peak powers are aggregate all-time bests without activity attribution.
  • Fixed Coach+ directing users to the wrong page for training availability settings. It now correctly points to the Training Plan page (Training Volume section).
  • Fixed daily email coaching note sometimes referencing a planned workout that was deleted or skipped. The AI now only references actually completed activities.
  • Fixed Race Simulation workouts being generated at endurance intensity (~65% FTP) during taper/deload phases. High-intensity workout types now maintain their prescribed power targets, with the intensity modifier reducing volume (fewer reps) instead of dropping power below race pace.
  • Dashboard no longer shows "Today: Rest Day" recommendation after you've completed a workout. The training recommendation and alternative advice are hidden once you're done training for the day.
  • Form metric now shows raw TSB value (e.g., "-30 TSB") matching Intervals.icu, instead of the percentage that was confusing users.
  • Improved workout variety — workouts you've done recently are now deprioritized with a time-decay penalty, so you cycle through more of the 30+ workout types instead of getting the same one back-to-back.

Friday, February 27, 2026

  • Dashboard now automatically refreshes when you return to it after 5+ minutes — newly synced activities and updated fitness data appear without needing to manually hit the refresh button
  • Coach+ can now mark dates as unavailable directly from chat — tell it "I'm away March 5–7" and it will update your training plan schedule and ask if you want to remove any existing workouts on those days
  • All emails now include an Unsubscribe link in the footer that takes you directly to your notification settings, as well as a physical mailing address for compliance.
  • Fixed workouts occasionally exceeding your configured availability (e.g. 2h38m for a 2h window) — the AI now strictly requires a duration on every workout step, and workouts with missing durations are caught and regenerated
  • Fixed: Coach+ chat occasionally failed with an internal error mid-conversation when using tools (e.g., generating or moving workouts). Conversations should now stay stable regardless of how many tool calls occur.
  • Fixed: holiday and vacation events on Intervals.icu now block workout scheduling on those specific days — previously the weekly load was reduced but workouts were still placed during your vacation. Holiday days also appear as unavailable in the training plan week view.

Thursday, February 26, 2026

  • Training plan timeline now shows target and actual load in one chart — see at a glance how your training tracked against the plan across the whole season.
  • The training plan now shows last week's completed workouts and this week's planned workouts — both expand automatically so you can see the full picture alongside upcoming weeks.
  • IC-generated workouts in the current week now have move and delete actions — use the ⋮ menu on any planned workout to reschedule it to another day or remove it entirely.
  • Fixed: dashboard Load and Form signals were inflated by planned (not yet completed) workouts, causing false rest-day recommendations and unnecessary recovery-ride swaps. Values now reflect only what you've actually done.

Wednesday, February 25, 2026

  • Added training signal health panel to the dashboard — shows Recovery, Sleep, HRV, Load, and Biometrics status at a glance. Expands automatically when signals are active, collapses to a minimal summary when everything looks good.
  • Training signals now fully wired: fatigue indicators (HRV trend, RHR trend, overreaching risk) are computed and fed into adaptation signals across the dashboard, TrainNow, and Coach+ chat — so workout recommendations reflect your true recovery state rather than surface wellness alone.
  • Added HRV Stability (CV) to the analytics page — a new chart shows your week-to-week HRV consistency based on the coefficient of variation, with green/amber/red bands so you can see at a glance whether your autonomic nervous system is stable or volatile
  • HRV-CV now appears in the HRV summary card on the analytics page, giving you a quick stability reading alongside your average HRV
  • The AI coach now considers your HRV stability when generating workouts — if your week has been physiologically volatile (CV > 25%), it favors moderate intensity even when your daily HRV looks normal

Tuesday, February 24, 2026

  • You can now override the weekly TSS target for any upcoming week in your training plan — click the TSS number on a future week to set a custom target, and the CTL projection updates instantly to reflect your adjusted plan
  • Mark dates as unavailable with the new blackout days feature — tap any future day in the week table to block it off, and the planner will redistribute your training around your time off
  • Added an "Add workout" button to locked (current) weeks in the training plan — you can now fill gaps in your schedule even after the week has started
  • Fixed Target CTL fluctuating wildly week-to-week (e.g. 46 → 60 → 85 → 46) when no CTL target was set — the system was auto-generating a target from the projection which changed on every recalculation; the target now only shows when you've set one via the CTL wizard
  • Fixed free tier users not receiving rolling daily workouts — workout generation was gated behind a flag that only applied to paid users
  • Fixed mid-week plan regeneration leaving empty days when workouts were already generated for some days — gaps are now filled with placeholder workouts so every training day has a plan
  • Fixed Coach+ chat being unscrollable on iOS Safari — conversation history can now be scrolled with native momentum
  • Fixed single-day A races being incorrectly detected as 2-day events — Intervals.icu returns midnight of the next day as the end time for events with duration set, which was inflating taper and phase calculations
  • Fixed HRV and resting heart rate analysis giving confident recovery assessments with only a few days of data — the system now requires at least 14 days of baseline data before drawing conclusions from z-score deviations
  • Fixed transition steps being incorrectly placed inside repeat blocks — steps like "Transition to finish" were repeated with every interval instead of running once, inflating workout duration estimates

Monday, February 23, 2026

  • Workouts now appear on your calendar one day at a time instead of all at once on Sunday — each workout is generated 7 days ahead, so your calendar fills in gradually throughout the week
  • You can now edit upcoming planned workouts directly from the calendar — change the sport, duration, TSS target, intensity, move it to another day, or delete it entirely before the workout is generated
  • Improved workout variety — the AI now checks what you did the previous day and avoids scheduling the same workout type on consecutive days

Sunday, February 22, 2026

  • Activity detail now shows comprehensive interval data — work intervals are visually distinguished from rest, with expandable rows showing power (NP, W/kg, L/R balance, work kJ), running metrics (stride, GAP, max speed), plus TSS, decoupling, elevation, and temperature
  • Fixed race day email not being sent when a warmup workout was also scheduled on the same day — the system could pick up the workout first and never detect the A/B race event, resulting in a regular training email instead of race day guidance
  • Fixed daily adaptation replacing pre-race warmups, cooldowns, and FTP tests with endurance rides — these user-intentional workouts are now protected from automatic adaptation
  • Fixed Coach+ chat erroring on custom questions — improved error handling for tool calls so the AI recovers gracefully instead of showing "Something went wrong"
  • Fixed weekly plan sometimes generating workouts much longer than the available time slot — the AI occasionally produced descriptive step lines without duration markers, making the duration estimate unreliable; the system now detects this and falls back to a template workout that respects your schedule
  • Fixed interval/lap data not appearing in activity details despite the recent fix — the Intervals.icu API response format was parsed incorrectly, so interval power, HR, cadence, and pace data was silently dropped
  • Fixed training plan showing negative TSS and training hours for future weeks when your current fitness exceeds what the goal requires
  • Fixed dashboard occasionally crashing when AI generates JSON with trailing commas in goal analysis or readiness messages
  • Fixed activity detail page failing to load for Strava-sourced activities — the intervals endpoint returns an error for Strava activities due to API restrictions, which now gracefully falls back to showing the activity without interval data
  • Fixed post-workout analysis misclassifying sweet spot and threshold workouts as endurance — the AI now receives a metrics-based classification hint so workouts like TrainerRoad's "Rosa" (IF 0.87) are correctly identified as sweet spot
  • Fixed navigation tabs being invisible on tablet screens — inactive tabs blended into the header background, making it appear only the active page was selectable

Saturday, February 21, 2026

  • Fixed warmup ramps starting at 0-1W on smart trainers — recovery and endurance workouts now start at a rideable 40% FTP minimum instead of the scientifically-correct-but-impossible 0W floor
  • Fixed training plan showing wrong completion percentage for the current week — e.g. showing 110% when actual TSS was 461 of a 567 target (should be 81%)
  • Fixed AI coaching note week-over-week TSS comparison using rolling UTC windows instead of proper Monday-to-Sunday calendar weeks — this could show inaccurate training load changes, especially for athletes in timezones far from UTC
  • Fixed activity interval/lap data always showing as empty — the AI coach, post-workout analysis, and activity detail page now show per-interval power, HR, cadence, and lactate data from your completed workouts
  • Fixed calendar events marked "busy", "unavailable", or "off" not being detected as time off — the coach could schedule workouts on days you marked as unavailable

Friday, February 20, 2026

  • Introducing Coach+ — chat directly with your AI coach to ask training questions, review your readiness, look up past activities, adjust your weekly plan, get race strategy advice, and more. Available for Pro (20 messages/month) and Max (200 messages/month) subscribers.
  • New Max plan — everything in Pro plus 10x more Coach+ messages (200/month) for €8/month or €80/year. Upgrade from Settings or the pricing page.

Wednesday, February 18, 2026

  • Fixed running race simulation and race pace workouts rendering as "0w" in Intervals.icu — these workouts now correctly use pace-based percentages instead of power percentages, so Intervals.icu can display and execute them properly for runners
  • Fixed AI sometimes generating nested repeat blocks (e.g. "2x" containing "4x") — Intervals.icu silently drops the outer repeat, producing the wrong workout duration; the AI instructions now include explicit examples showing why this breaks workouts and how to write them correctly
  • Fixed running workouts occasionally mixing pace and heart rate targets in the same workout — Intervals.icu can only render one target type per workout, so mixed targets resulted in broken workout structure
  • Fixed swimming workout generation sometimes entering an infinite loop by repeating "Total duration" summary lines — the AI now has explicit instructions to never add summary lines, and any that slip through are automatically stripped
  • Fixed French translations missing accented characters (é, è, ê, à, etc.) throughout the UI — all French locale files now use proper diacritics
  • Fixed post-workout analysis sometimes missing context from the previous week — the activity history window was too short for reliable week-over-week comparisons
  • Ramp workout steps now display as color gradients instead of solid blocks in the workout detail view, making it easier to see how intensity builds across the interval
  • Fixed "Start Training" button on the dashboard navigating to TrainNow instead of opening the planned workout — it now opens the workout detail dialog so you can review and start the workout that was planned for you
  • Fixed training plan projecting too-high weekly TSS in early weeks — the plan now gradually ramps from your current fitness level to the goal instead of targeting peak volume from the start
  • Training plan now detects when you return from illness and automatically reduces the first week back to 55% volume with a recovery focus
  • Improved power profile analysis for ultra-endurance athletes — low sprint and anaerobic power is no longer flagged as a weakness if you have strong 30-60 minute sustained power
  • AI coaching prompts now note that TSB may include planned workout stress, reducing overly cautious fatigue assessments when you have upcoming workouts on the calendar

Tuesday, February 17, 2026

  • Added Training Volume section to the training plan page — see your available vs required weekly hours, a per-day schedule bar chart, and edit your training schedule without leaving the page
  • Fixed CTL goal wizard showing impossibly low max achievable CTL for athletes with limited training history — the ramp rate now has a floor of 2 CTL/week
  • Fixed dashboard showing previous week's training plan data (week type, TSS target, focus) when the current week hadn't been planned yet

Monday, February 16, 2026

  • Fixed weekly plan generating far less training volume than your goal requires — a fatigue-based override was converting Build weeks to Recovery weeks when your TSB was moderately negative, even though your periodization model already schedules recovery weeks; this caused some athletes to get ~250 TSS when they needed 500+
  • Fixed weekly overview in daily email showing "Rest" label for days that have a planned workout name

Sunday, February 15, 2026

  • Fixed goal progress projection overshooting and then declining before race day — the CTL projection now uses your actual periodized weekly TSS targets (accounting for phases, recovery weeks, holidays, and B/C races) instead of a simplified model that could overestimate training load
  • Fixed weekly plan generating too few endurance workouts when strength-only days are configured — strength days were incorrectly consuming your endurance session budget, so 4 strength days with 6 desired sessions would only produce 2 cycling/running workouts instead of the full amount
  • Fixed running workouts using too-low pace zones — endurance runs were targeting 56-75% pace (Z1 territory) instead of 65-80% (Z2), because the workout catalog used cycling power zones for running pace; all running workout types now use sport-specific pace zone ranges
  • Fixed daily workouts uploading to the previous day for users in east-of-UTC timezones (e.g., China, Australia) — the upload date was using the server's UTC date instead of your local date
  • Fixed workout profile chart not matching AI-generated workout steps — the chart was showing a template structure while the actual workout had a different interval layout
  • Fixed recovery and taper weeks getting double-reduced workout targets — the weekly TSS budget already accounts for reduced volume, but each workout was applying the reduction again, resulting in ~49% volume instead of the intended ~70%
  • Training plan now shows your periodization cycle position (e.g., "Week 1 of 4") and week type badges (Recovery, Peak, Taper) so you can see where you are in your mesocycle at a glance

Friday, February 13, 2026

  • Added workout library picker to JustTrain page — browse and select from your IntervalCoach workout library instead of only generating AI workouts, with search filtering and one-tap selection
  • Added support for multi-day goal events (stage races, tours) — the app now recognizes events spanning multiple days from Intervals.icu, extends Race Week phase across the full event duration, shows date ranges in settings, and informs the AI planner about multi-day demands
  • Added manual phase planning option in Goal Setup Wizard — choose between automatic event-based planning or custom Base/Build/Peak/Taper durations with visual preview bars showing your periodization structure
  • Added trail running support — if your goal event is a trail race, ultra, or mountain run, workouts now use heart rate zones instead of pace (since pace varies with terrain), include hill repeats and elevation gain targets, and the AI coaching prompts account for trail-specific demands like technical terrain and high-impact descents
  • Added elevation data tracking — recent activities now capture total elevation gain from Intervals.icu, giving the AI better context for planning workouts that match your terrain
  • Improved training plan race markers — timeline now shows up to 3 race dots per week with "+N more" indicator for weeks with 4+ events, preventing visual clutter on busy training calendars
  • Improved goal setup wizard with clearer radio button selection — choose between Goal Event Mode (automatic periodization) or Manual Planning (custom phase control) with large, accessible cards
  • Added validation for manual phase planning — total phase duration is capped at 52 weeks with clear warning messages and disabled save buttons when limits are exceeded
  • Fixed training plan current week indicator appearing on wrong week — the timeline now correctly shows the "Current" marker on the actual current week instead of using array position, which caused misalignment when weeks don't start at 1
  • Fixed dashboard readiness ring turning gray after page load — the recovery indicator now maintains its color (emerald for peak readiness, green for ready, blue for moderate, orange for easy, amber for recovery-only, purple for rest) throughout the entire loading process instead of flickering from the correct color to gray when extended data loads
  • Fixed HRV4Training recovery scores always showing green — the 1-10 scale normalization now uses your personal baseline instead of hardcoded thresholds, so a bad day for you actually shows as yellow/red even if the absolute number looks high
  • Fixed multi-day event end date off by 1 day — multi-day events like "fietsweekend dag 1" (May 29-31) were showing end date as Saturday May 30 instead of Sunday May 31 because the code used the START date of the last sibling event instead of checking for actual end_date_local fields
  • Fixed CTL ramp rate calculation showing wrong values — the historical ramp rate (used by AI to recommend target CTL) was broken when there were gaps in daily data, sometimes showing 0.1 CTL/week when actual growth was 1.4 CTL/week; now uses date-based lookup to find points exactly 7 days apart over a 90-day window
  • Fixed AI goal analysis showing low-intensity demands for race events — multi-day events with warm-up stages (like "dag 1: parcoursverkenning") were confusing the AI into listing "Aerobic base, Active recovery" as key demands instead of high-intensity racing; the AI now focuses on the hardest stages when analyzing A/B race events

Thursday, February 12, 2026

  • Fixed Garmin/Wahoo workout sync showing intervals without power targets — cycling workouts are now converted to structured Intervals.icu format before upload, ensuring head units display correct power targets for each interval
  • Fixed regenerating weekly plan resetting periodization cycle position — if you were 2 weeks into a 3:1 Build/Recovery cycle and regenerated, the plan would schedule 3 more build weeks before recovery instead of 1; the plan now respects your current position in the periodization cycle
  • Added recommended RPE and feel indicators to post-workout feedback form — after completing a workout, the feedback form now shows the expected RPE range (based on workout stimulus type) and recommended feel (based on your recovery score), helping you calibrate your perceived effort
  • Fixed weekly plan workout durations deviating significantly from configured availability — workouts that are too long or too short (beyond ±10%) are now caught and replaced with correctly-timed templates, so a 2h target won't produce a 2h58m or 1h30m workout
  • Fixed weekly plan assigning unrealistic pure Tempo workouts for long rides — rides over 2.5 hours are now automatically set to Endurance intensity, preventing physiologically impossible sessions like 4 hours of continuous tempo
  • Fixed weekly overview in daily email showing "Rest" for days that have scheduled workouts — today's planned workout now correctly appears in the week overview
  • Fixed post-workout analysis flagging normal heart rates as "quite high" — the AI now knows your LTHR and Max HR from Intervals.icu settings and interprets heart rate relative to your personal thresholds, not absolute values
  • Fixed race day email showing literal backslash-dash characters instead of line breaks in pacing and warmup sections
  • Fixed "Reset Calendar" not clearing existing workouts before regenerating — previously, resetting your plan would create duplicate workouts alongside the old ones instead of replacing them
  • Fixed weekly plan showing "Peak" phase while the dashboard shows "Taper" — near phase boundaries, the weekly plan and training plan timeline were calculating the phase independently from the dashboard, ignoring hysteresis. All surfaces now use the same central phase calculation
  • Fixed dashboard readiness status badge flickering between different labels during page load — the label now shows a loading state until the AI assessment is ready, then displays once with the final result
  • Fixed intermittent crash on Settings page on Mobile Safari caused by a hydration mismatch when swapping the theme picker skeleton for the actual dropdown — the page now waits for full hydration before rendering settings content
  • Fixed intermittent crash on TrainNow page on mobile browsers — simplified tooltip rendering to eliminate cascading state updates during page load that could overflow the call stack on devices with limited memory
  • Fixed stale eFTP used for athletes who train both indoors and outdoors — Intervals.icu maintains separate eFTP models per sport type, so the app now uses whichever was updated most recently instead of always defaulting to outdoor
  • Fixed AI thinking/reasoning text leaking into workout descriptions — internal chain-of-thought like calculation notes and self-corrections are now filtered out before displaying workouts
  • Fixed fitness trend chart showing tomorrow's date for athletes in western timezones — the dashboard now uses your local timezone instead of server UTC time to determine today's date
  • Fixed workout profile chart sometimes showing phantom intervals (e.g., Sweet Spot blocks) that don't exist in the actual workout text — when the AI generates a workout in a format the chart parser can't recognize, the chart is now hidden rather than showing misleading template-based intervals
  • Fixed Sweet Spot and Tempo power targets being 3-5% lower than expected — the wellness-based intensity reduction was incorrectly applied to all zones; it now only reduces threshold (Z4) and above, keeping moderate-intensity targets at their correct values
  • Fixed post-workout analysis overwriting your activity description in Intervals.icu — the IntervalCoach analysis is now appended below your existing notes instead of replacing them, and re-analyses update only the IntervalCoach section

Wednesday, February 11, 2026

  • Added customizable weekly plan delivery time — choose when you receive your Sunday weekly training plan email (8:00–22:00 in your local timezone) from Settings → Notifications
  • Expanded daily email delivery time range — now available from 3:00 AM to 12:00 PM (previously 5:00–9:00 AM) for early risers and late starters
  • Fixed volume jump warning showing incorrect weekly TSS values — the warning was comparing rolling 7-day windows instead of calendar weeks (Mon–Sun), causing values like "146 TSS" to display when the actual week had 396 TSS
  • Fixed workout structure showing "undefined% FTP" for warmup/cooldown ramp segments — when the Intervals.icu API doesn't provide power data for ramps, the power range (e.g., "40-75%") is now extracted from the step text
  • Fixed zone progression focus areas sometimes labeling stable zones instead of declining zones — when multiple zones had the same level, the sort order was arbitrary; declining zones are now consistently prioritized as focus areas via trend-based tiebreaker
  • Fixed progressive overload showing false decline when comparing rides of very different durations — when comparing a long endurance ride (e.g., 4h @ 210W) to a short threshold session (e.g., 1h @ 220W), the power comparison incorrectly showed decline; now uses TSS comparison when durations differ by more than 50%
  • Added rowing activity support — rowing workouts are now properly recognized as endurance activities and analyzed with HR-based metrics instead of being misidentified as running
  • Improved weekly plan duration awareness — workout durations are now capped based on your recent training rhythm per sport, so you won't get a 2-hour swim if you normally swim 30 minutes (allows up to 30% progression above your recent max)

Tuesday, February 10, 2026

  • Added support for multiple training sessions per day — schedule AM/PM splits (e.g., morning cycling + evening running) in Settings → Training, with per-session duration and sport controls
  • Improved weekly plan workout generation — workouts are now generated in parallel for faster plan creation, with post-generation TSS validation that automatically corrects workouts that deviate more than 15% from target
  • Improved weekly plan workout variety — endurance workouts are now capped at 2 per week and same-stimulus penalties are doubled, so you get more varied training across the week
  • Fixed weekly plan TSS distribution creating unrealistic session loads — individual workouts can no longer exceed 60% of your weekly TSS target, workout selection now considers your session TSS budget upfront (selecting Endurance instead of VO2max when the budget is low), and high-intensity workouts are automatically cascaded down the intensity ladder (VO2max → Threshold → Sweet Spot → Tempo → Endurance → Recovery) as a safety net, preventing AI from generating sessions that overshoot by 150%+ and fail to load in Intervals.icu
  • Fixed weekly plan ignoring recovery status — deload, overreaching, ramp rate, and volume jump warnings now flow into the AI prompt so your plan adapts to your current fatigue
  • Fixed weekly plan swimming workout duration and load estimation — structured swim formats (e.g. "4x100m Z3 Pace") and section headers with repeats (e.g. "Main Set Tempo 6x") are now parsed correctly
  • Fixed goal event distance formatting in AI analysis — distances with many decimal places (e.g., 20.356789 km from Intervals.icu) are now rounded to 1 decimal place (20.4 km) to prevent confusion in AI prompts and ensure consistent formatting
  • Fixed fitness trend chart showing no data for HRV-only users — users who track HRV (heart rate variability) but have no training load data (CTL/ATL) now see their HRV trend instead of an empty chart
  • Fixed TrainNow suggesting wrong phase workouts during taper weeks — when a weekly plan exists, TrainNow now uses the plan's current phase (e.g., Taper) instead of calculating independently, preventing mismatches where the plan shows Taper but TrainNow suggests Build-phase Sweet Spot sessions
  • Added Chinese (Simplified) language support — 中文(简体)now available with sport-specific cycling and running terminology
  • Added Danish language support — Dansk now available

Sunday, February 8, 2026

  • Fixed race-day detection for athletes in positive UTC timezones (e.g. Australia) — activity analysis emails were treating race day as "tomorrow" because the server used UTC instead of the athlete's local timezone, resulting in pre-race tips instead of post-race analysis
  • Fixed several additional timezone bugs found by improved linting: calendar goal countdown could be off by a day, taper recommendations used wrong race date, training gap detection compared UTC vs local dates, and weekly plan event grouping could place events in the wrong week
  • Fixed AI Coach showing all sessions completed when only one of multiple daily sessions is done — on multi-session days (e.g. Strength + Run), completing just one session no longer triggers "training done for the day" messaging

Saturday, February 7, 2026

  • Fixed fitness card on Analytics showing wrong CTL value for users in western timezones — the summary card was not accounting for timezone, causing a large discrepancy with the chart below it
  • Fixed Goal Progress card showing different status on Dashboard vs Analytics — the Dashboard was using a generic growth assumption instead of your actual training progression rate, leading to contradictory "Ahead of Schedule" vs "At Risk" assessments
  • Fixed goal event distance displayed incorrectly — distances from Intervals.icu were shown in meters instead of kilometers (e.g., "1700000 km" instead of "1700 km"), which also caused the AI to misinterpret event demands
  • Fixed Training Stimulus card showing 0 intensity sessions — workouts like "Threshold 4x2km" with warmup/cooldown that diluted zone data were not being classified correctly
  • Fixed HRV data not displaying for Apple Watch users — Apple Watch via Health Sync writes HRV to a different field (SDNN) that was not being read
  • Fixed analytics charts showing tomorrow's date for users in western timezones — the server was using UTC which is ahead of US/Americas timezones
  • Fixed weekly plan running workouts ignoring heart rate-based intensity preference — if you chose HR zones in Settings, running workouts still showed pace targets instead
  • Fixed AI coaching advice using inflated fatigue from planned workouts — TSB is now computed from completed activities only, so rest day recommendations and readiness assessments reflect your actual training load

Friday, February 6, 2026

  • New Training Plan page (beta) — see your full training plan from now to your goal event with week-by-week TSS targets, training phases, CTL projection chart, phase roadmap, and progress tracking. Currently in limited beta availability.
  • Added Plan Progress summary to Training Plan page — shows weeks completed, total TSS achieved vs planned, average weekly completion percentage, and how many weeks hit the target
  • B-race periodization now includes a 1-week mini taper — previously B races went straight from Peak to Race Week, now there is a light volume reduction week before the race
  • Fixed gym and strength sessions being treated as cycling workouts — post-workout analysis no longer compares gym metrics against cycling power expectations, and completing a gym session no longer claims your scheduled bike workout is done
  • Fixed goal event misclassification — the AI now receives distance, duration, and expected load from Intervals.icu when analyzing your goal event, so ultra-endurance and multi-day races are classified correctly instead of being guessed from the name alone
  • Fixed AI coaching messages using "the athlete" instead of "you" — training insights, readiness assessments, and workout explanations now address you directly
  • Fixed goal analysis ignoring custom coaching instructions — your custom instructions (e.g. "74km XC marathon") are now included when analyzing goal event duration and demands

Thursday, February 5, 2026

  • Added strength training support — select Strength alongside Cycling, Running, and Swimming in Settings → Training to include gym sessions in your weekly plan. Existing strength/gym sessions in your Intervals.icu calendar no longer block endurance workout generation.
  • Added Czech and Slovenian language support — switch languages in Settings → Account
  • Calendar improvements — navigate to past months, larger icons/text for better readability, TSS heat-map backgrounds showing training load intensity, and inline legend to save space
  • Fixed swimming workouts showing pool length as duration — "4x 25m" was being parsed as "4x 25 minutes" instead of "4x 100m" because Intervals.icu interprets "m" as minutes
  • Fixed threshold workouts generating at 75% FTP instead of 95-105% — added explicit power zone guidance for all cycling, running, and swimming workout types
  • Improved settings tab selector visibility on mobile — added clearer border, shadow, and dropdown indicator
  • Fixed aggressive weekly TSS targets for goal-based training — now caps CTL ramp at 6 points/week instead of trying to reach target too quickly
  • Fixed calendar not updating after manually uploading activities to Intervals.icu — calendar cache now refreshes when activities are processed
  • Fixed race pace plan failing to load for some events — improved handling of special characters in AI-generated race strategies
  • Improved race strategy in calendar event details — now uses same full context as race day email (fitness, wellness, phase) for better advice
  • Fixed AI advice treating stale wellness data as current — prompts now indicate when data is from yesterday or older
  • Fixed post-workout analysis for FTP tests — the AI now recognizes test workouts (FTP test, ramp test, time trial) and analyzes Normalized Power and Intensity Factor instead of average power, which was incorrectly lowered by warmup and cooldown
  • Fixed Goal Setup wizard showing stale CTL from months ago — wizard was reading oldest fitness data instead of most recent, causing incorrect AI recommendations and slider ranges

Wednesday, February 4, 2026

  • Added "Sessions per week" slider in training settings — you can now mark all 7 days as available while choosing fewer training sessions (e.g., 5), and the coach automatically spreads them out with rest days in between (max 3 consecutive training days)

Tuesday, February 3, 2026

  • Fixed workout interval blocks being ignored when using multi-set structures — workouts like "2 sets of 6 reps" now correctly create all repetitions instead of only running the inner block once
  • Post-workout emails now include a "How did it feel?" button — tap to rate RPE and feel without logging in, and your feedback syncs directly to Intervals.icu
  • TrainNow options are now AI-ranked based on your full training context — recovery status, upcoming events, weekly plan, and training phase all factor into smarter recommendations with personalized reasons in your language
  • Added cycle week adjustment in periodization settings — if your training cycle is out of sync (e.g., system shows week 1 but you're in recovery week 4), you can now tap the correct week number to realign it
  • Rest days now override scheduled workouts — when rest is needed, the coach removes your planned workout and replaces it with an optional recovery session on your calendar
  • Fixed goal setup wizard showing eFTP instead of your chosen FTP preference — if you use manual FTP, the wizard now correctly shows your tested value as the baseline
  • Fixed weekly plans exceeding your available training hours — workouts now respect your per-day time limits, and the weekly summary email shows a note when your TSS target was adjusted to fit your schedule
  • Fixed workout durations showing 3-4 hours instead of ~90 minutes in Intervals.icu — the AI was mentioning race distances (e.g., "74km") in warmup messages, which Intervals.icu parsed as distance targets
  • Fixed weekly plans repeating the same workout type too often — the coach now limits how many times the same stimulus (e.g., Sweet Spot, Threshold) can appear per week, scaled to your training schedule

Monday, February 2, 2026

  • Daily emails now show a week-at-a-glance schedule with TSS progress, week type (Build/Recovery/Taper), and a Mon-Sun day-by-day view showing completed, current, and upcoming workouts
  • Weekly workout plans now prioritize declining zones — if your VO2max or Threshold zones are dropping, generated workouts will target those areas instead of defaulting to your strongest zones
  • Fixed weekly outlook showing "Build" phase with high TSS during race weeks — A/B race weeks now correctly show as "Race Week" with reduced volume for taper
  • Fixed dashboard coaching note showing workout swap recommendations when the system wouldn't actually swap the workout — the coaching note now only appears when conditions have changed enough to trigger an adaptation
  • Fixed goal progress card and week progress card showing different weekly TSS targets — both now display the same periodized plan target

Sunday, February 1, 2026

  • Warmups and cooldowns now use progressive ramps instead of flat zones — warmups gradually build from easy to target intensity, cooldowns ease back down
  • Fixed timezone handling for athletes outside UTC — daily metrics, wellness data, and sick/injured detection now correctly use your local date instead of UTC
  • Improved AI workout completion recognition when third-party apps (Zwift, MyWhoosh) rename scheduled workouts — coaching messages now correctly acknowledge completed workouts

Saturday, January 31, 2026

  • Added German, Spanish, Italian, French, Polish, and Portuguese language support — switch languages in Settings → Account

Friday, January 30, 2026

  • Fixed remaining workout count in daily emails to reflect actual calendar events instead of weekly schedule settings — deleting a workout from your calendar now correctly updates the count
  • Added expandable examples showing week-by-week training patterns for each periodization model, so you can see how load, recovery, and intensity vary before choosing
  • Changing your planned sports or training availability now prompts you to regenerate your training plan, automatically removing workouts for sports you no longer train
  • Fixed B and C races incorrectly getting A-race taper phases — B races now skip taper (openers only), C events train through with no special phases
  • Fixed training phase timeline showing wrong "now" position for B and C races
  • Improved A-race taper to a 3-week window based on Mujika & Padilla (2003) research

Thursday, January 29, 2026

  • Added plan toggles — you can now pause weekly plan generation and daily adaptation independently in Settings → Goals
  • Added "Adapt all calendar workouts" toggle — opt in to let the AI coach adapt externally-scheduled workouts (from Intervals.icu training plans or manual entries) based on your daily readiness. Races are never modified.
  • Added FTP Goal setting — set a personal FTP target in watts. Your goal FTP drives the Peak Form Progress card on the dashboard and guides your AI coach toward your target (Settings → Goals)
  • Added Custom Coaching Instructions — Pro users can write free-text instructions that the AI coach follows across weekly plans, daily emails, and JustTrain workouts (Settings → Training)
  • Dashboard now detects sick/injured status from your Intervals.icu calendar and shows a rest recommendation banner with adjusted AI coaching notes
  • Extended JustTrain duration slider from 2 hours to 4 hours for long endurance sessions

Wednesday, January 28, 2026

  • Added Goal Setup Wizard - a unified 3-step flow to select your goal event, set CTL target intensity (Conservative/Moderate/Aggressive with AI guidance), and optionally regenerate your training plan
  • Added runner-specific dashboard metrics including Critical Speed progress, D' capacity, and pace zones for running athletes
  • Added primary sport setting to customize which metrics are displayed on the dashboard (auto-detect, cycling, running, or multi-sport)
  • Redesigned workout profile chart with Intervals.icu-style visualization - segments are now time-proportional with zone-colored bars, gradient fills, and interactive tooltips showing segment details on hover
  • Fixed workout chart not matching workout text for running workouts - the parser now correctly reads pace percentages like "75% pace" instead of falling back to defaults
  • Polished JustTrain page design with circular step indicators, smoother animations, and improved visual hierarchy
  • Refreshed Calendar page with branded header, improved month navigation, and polished day cells with better hover states and visual hierarchy
  • Polished Settings page with branded header, refined cards, smoother entrance animations, and improved visual consistency across all tabs
  • Refreshed Dashboard and Analytics pages with branded headers, refined section headers, and consistent card styling across all components

Tuesday, January 27, 2026

  • Added PayPal as a payment option for Pro subscriptions - you can now upgrade using either credit card or PayPal
  • Fixed Dashboard Goal Progress card to display your selected goal event instead of always showing the nearest upcoming event
  • Reorganized Settings with a new Goals tab - goal event, periodization, and weekly plan info are now in their own tab for cleaner navigation
  • Mobile-friendly settings navigation - Settings now uses a dropdown menu on mobile devices instead of cramped tabs
  • Added dietary preference setting - choose between standard, vegetarian, or vegan nutrition recommendations in your workout emails
  • Personalize FTP test scheduling - choose how often to test (4, 6, 8, or 12 weeks) or disable automatic test scheduling entirely
  • Choose your preferred FTP test protocol - Ramp Test, 20-minute test, MyWhoosh, Zwift, or your own custom protocol
  • Smarter training for time-crunched athletes: if you train less than 5 hours per week, the app now prioritizes Sweet Spot and threshold work over long endurance sessions, giving you better training adaptations in limited time
  • Added running workout target preference - choose between pace-based targets, heart rate zone targets, or automatic selection (HR for trails, pace for roads)

Monday, January 26, 2026

  • Added Race Pace Plans for goal events - get AI-generated race day strategies with pacing guidance, warm-up protocols, and scenario-based advice for your A, B, and C priority events (Pro feature)
  • Smart FTP/Ramp test scheduling - training plans now automatically include fitness tests every 4-6 weeks to track your progression and keep zones calibrated
  • Fixed AI Coach and Rest Day widgets showing contradictory recommendations - AI Coach now respects your weekly training plan's scheduled rest days instead of recommending workouts based purely on fitness metrics

Sunday, January 25, 2026

  • Event-specific workout prioritization: training now adapts to your goal race type - criterium riders get more VO2max/sprint work while gran fondo riders get more endurance/tempo work
  • Goal distance and duration from Intervals.icu are now used to classify your event and adjust workout recommendations accordingly
  • Added AI nutrition advice for workouts - get personalized pre-workout, during-workout, and post-workout fueling recommendations based on your workout type, duration, and intensity
  • Nutrition advice appears in daily workout emails, post-workout analysis emails, and the JustTrain interface
  • Carb and protein recommendations scale to your body weight for accurate fueling targets
  • Science-backed recommendations following sports nutrition research (Burke et al. 2011, Jeukendrup 2014, Thomas et al. 2016)
  • All nutrition advice available in both English and Dutch

Saturday, January 24, 2026

  • Added referral program - Pro users can share referral codes and earn a €3 credit when referred users upgrade
  • New option to sync workout analysis to Intervals.icu activity descriptions - your analysis appears in Strava via the sync
  • JustTrain duration slider now shows the selected time above the thumb while dragging
  • Redesigned sport picker with icons for clearer selection
  • Added default activity preference in Settings - your preferred sport is now pre-selected in JustTrain
  • Added back button to navigate between JustTrain steps - easily change your sport or duration selection
  • Upload button is now integrated into the workout card for a cleaner interface
  • Smarter daily emails for unscheduled days: instead of always showing "Rest Day", the email now assesses your readiness and encourages JustTrain when you're ready to train

Friday, January 23, 2026

  • Smart sleep adaptation: all recovery metrics (HRV, resting HR, sleep) now compare to your personal 30-day baseline instead of hardcoded thresholds - if you consistently sleep 6 hours and your body shows good recovery, the app treats that as normal for you
  • Training availability now sets your TARGET workout duration - if you set 2 hours, workouts will aim for 2 hours (except during recovery/taper weeks)
  • Post-workout analysis now compares your workout against similar past workouts - see power trends, HR efficiency changes, and progression insights
  • New workout comparison section in post-workout emails shows how you performed vs. the same workout type from weeks ago
  • Activity detail dialog now displays workout-to-workout comparison with trend indicators for power and heart rate
  • HR:Power coupling analysis detects cardiovascular efficiency improvements or signs of fatigue accumulation
  • Added native-style bottom tab navigation for mobile with quick access to Dashboard, Train, Calendar, Analytics, and More
  • Fixed Training Stimulus card showing zeros for high-intensity interval workouts and races by using zone data instead of averaged Intensity Factor
  • Fixed Analytics showing false "No VO2max work" warnings for users with interval workouts
  • Added theme toggle to switch between light mode, dark mode, and system preference
  • Enhanced marketing page with parallax hero, floating orbs, animated stats with icons, and scroll-triggered reveals

Thursday, January 22, 2026

  • Weekly plan workouts now adapt to your daily readiness - threshold becomes endurance when you need recovery, maintaining progression while respecting your body
  • Adaptation reasons are more specific - see exactly why workouts change with details like "Threshold → endurance due to moderate fatigue (TSB -7) and good recovery (82%)"
  • New adaptation section in daily emails clearly shows when and why workouts were adjusted from your weekly plan
  • Workout names are now consistent between JustTrain and daily emails (no more date confusion)
  • Multiple workouts on the same day (warmup, race, cooldown) are properly detected and factored into adaptation decisions

Wednesday, January 21, 2026

  • Added Critical Speed (CS) progression chart for runners in Analytics - track your running fitness over time
  • New Best Efforts table shows your recent 42-day bests vs season PRs for key distances (400m to 5K)
  • Added pace preference setting: choose between Critical Speed (adaptive) or manual threshold pace from Intervals.icu
  • Goal sport detection now identifies running, cycling, swimming, and multi-sport events for smarter training recommendations
  • AI coach provides running-specific CTL guidelines for races from 5K to ultramarathons
  • Added race day warmup and cooldown options in JustTrain - get proper pre-race preparation and post-race recovery workouts
  • Improved workout duration accuracy - workouts now stay within 10% of your selected duration instead of varying widely

Tuesday, January 20, 2026

  • Added FTP preference setting: choose between eFTP (default, adapts to current fitness) or manual FTP (your Intervals.icu setting)
  • Redesigned email templates with modern, professional styling and improved visual hierarchy
  • Enhanced weekly summary emails with better training insights and clearer metrics
  • Improved trial emails with accurate Pro feature highlights and clearer free plan comparison
  • Added "Reset Calendar" option in Settings to regenerate your training plan after changing preferences
  • Fixed cadence instructions not being synced to Intervals.icu in cycling workouts
  • Fixed interval workout structure so repeats sync correctly to Intervals.icu (nested sets like 2x4x now work properly)

Monday, January 19, 2026

  • Your coach now learns your preferences over time - workouts that feel harder, recovery patterns, and training habits are remembered and used to personalize future recommendations
  • AI coach can now access your learned preferences during daily workout decisions for smarter training suggestions
  • Fixed trial reminder emails to use appropriate timing based on your trial length
  • Added self-service account deletion in Settings - securely delete your account and all data with confirmation

Sunday, January 18, 2026

  • JustTrain redesigned as a clear 3-step wizard with progress indicator and auto-scroll
  • Touch-friendly workout options with "Top Pick" highlighting and one-tap selection
  • Fixed date display bug that showed workouts one day off for users in certain timezones (EST, CST, PST)
  • Smarter sport selection matches workouts to your typical training patterns from the last 2 weeks
  • Weekly plans now include gradual 10% duration progression when your schedule allows
  • Sport variety balancing prefers underutilized sports to keep your training diverse
  • Smarter recovery scheduling: the day after a race event now automatically gets an easy recovery workout

Saturday, January 17, 2026

  • Sport-specific training days: restrict which sports can be scheduled on each day (e.g., swim only on Wednesdays)
  • Quick pick workout type in JustTrain - select Recovery, Endurance, Tempo, Sweet Spot, Threshold, VO2max, or Sprints to generate a workout instantly
  • Choose your target goal event from your Intervals.icu calendar (A and B races)
  • Option to regenerate your training plan when changing your goal
  • Post-event congratulations email sent the day after your goal event with prompt for next goal
  • AI-powered power profile analysis with goal-specific strengths, weaknesses, and training recommendations
  • AI recovery assessment provides personalized intensity guidance based on HRV, sleep, and baseline deviations
  • Added resting heart rate trend chart to wellness section

Friday, January 16, 2026

  • Added new Analytics page with comprehensive training insights and historical trends
  • View eFTP progression over time with interactive charts
  • Track peak power records (5s, 1min, 5min, 20min) with all-time bests comparison
  • Monitor weekly TSS trends and training volume
  • Weekly power zone distribution shows time spent in each training zone
  • Weekly heart rate zone distribution for HR-based training analysis
  • See HRV trends with Whoop recovery score integration
  • Progressive overload tracking shows improvement across similar workouts
  • AI-powered insights detect training gaps and health warnings
  • Goal alignment shows projected CTL vs target with weekly TSS needed
  • Time range selector to view 7 days, 30 days, 90 days, or full year

Thursday, January 15, 2026

  • Added swimming as a third supported sport with CSS (Critical Swim Speed) based workout generation
  • Added onboarding wizard for new users to set up training preferences and weekly schedule
  • Calendar now shows completed activities on past days with TSS totals and workout details

Wednesday, January 14, 2026

  • Introduced Free and Pro tiers - Free includes 3 AI workouts per month, Pro offers unlimited access
  • New users get a 7-day Pro trial to experience all features
  • Added subscription management in Settings with Stripe integration
  • JustTrain now shows remaining workouts for Free tier users
  • Added /pricing page with plan comparison and upgrade options
  • Expanded pricing page with detailed Pro feature explanations showing the value of adaptive training
  • Weekly planning now creates full detailed workouts (not just placeholders) for your entire week
  • Daily emails now refine weekly workouts based on current recovery, sleep, and fatigue
  • Workouts automatically adapt when your body signals it needs rest or intensity changes
  • Added holiday-aware training planning - automatically adjusts weekly plan around vacations
  • Pre-Holiday Push: build extra fitness before your vacation with 115% TSS target
  • Holiday weeks treated as recovery with reduced TSS target
  • Races during holidays take priority over recovery planning
  • Added visual training plan calendar view with monthly grid display
  • See planned workouts, races, and events color-coded by type
  • View daily TSS targets and next 4 weeks overview
  • Calendar extends multiple months to your goal date
  • Added email preferences to control which types of emails you receive (Daily Briefing, Workout Analysis, Weekly Summary, Monthly Recap)
  • Added contact page for sending feedback, questions, bug reports, and feature requests
  • Added individual pattern recognition - learns your unique performance patterns
  • Identifies your best training days for intensity, endurance, and recovery
  • Discovers effective workout sequences that work for your body
  • Detects personal warning signs before fatigue or illness strikes
  • Pattern insights now inform AI workout recommendations
  • New "Your Patterns" card on dashboard shows discovered insights

Tuesday, January 13, 2026

  • Added outcome-based learning - workout recommendations now personalize based on what actually works for you
  • Unified workout generation - JustTrain and daily emails now use the same AI-powered approach with personalized messages
  • Added training availability settings - configure which days and how much time you have to train
  • Added preferred email delivery time setting - choose when you receive daily workout emails
  • Added workout difficulty feedback loop - avoids repeating workouts that felt too hard
  • Added zone-based workout classification for more accurate training analysis
  • Improved workout type detection using actual power zone distribution
  • Added fatigue cost estimation based on time-in-zone data
  • Added mismatch warnings when activity name differs from actual intensity
  • Added workout visualization charts showing power zones over time

Monday, January 12, 2026

  • Added AI Training Insight with personalized recommendations
  • Added PWA install prompt for mobile app experience

Sunday, January 11, 2026

  • Added zone calibration system for personalized training zones based on test data
  • Added workout alternatives with ranked options for each training session
  • Added AI-driven training phase detection with scientific thresholds
  • Added weekly TSS volume card to dashboard
  • Added CTL/ATL trend arrows to fitness metrics
  • Added color coding to Sleep and Ramp Rate metrics
  • Added Whoop day strain to readiness assessment
  • Added AI-generated personalized readiness messages
  • Added app localization support (English and Dutch)
  • Improved dashboard loading performance with caching
  • Fixed Intervals.icu workout upload

Saturday, January 10, 2026

  • Added 7-day calendar view on dashboard
  • Improved post-workout email with comprehensive analysis
  • Auto-fetch email and timezone from Intervals.icu during login
  • Added admin dashboard for athlete management
  • Added security improvements (token encryption, rate limiting)
  • Improved error monitoring with Sentry integration
  • Fixed calendar event date handling

Friday, January 9, 2026

  • Added This Week's Progress card to dashboard
  • Added training load warnings and alerts
  • Added fitness projection integration
  • Added phase timeline and upcoming workout display
  • Added form trend chart with color coding
  • Added Whoop webhook for real-time workout generation
  • Added email notification settings
  • Improved dashboard layout and organization
  • Fixed form trend chart direction (old to new)

Command Palette

Search for a command to run...