May 9th, 2026

Week of May 9

This week earned its name as a packed one — 39 changes across 6 ship days, three new blog posts, and the iOS 1.10 release. The big strokes: Coach Mode launched, Training Score went GA, race-week / taper accuracy got a serious overhaul, and the Coach+ approval flow was tightened end-to-end across web, iOS, and email. Highlights below.

Coach Mode is live. Invite a human coach onto IntervalCoach — they see your dashboard, can edit your weekly plan, and chat with you in Coach+ alongside the AI. Coaches use IntervalCoach free; you pay for Max as the athlete and the coach pays nothing on top. See Settings → Coach to send an invite, or read the launch post: Bringing your coach onto IntervalCoach.

Training Score is out of beta and on by default for every Pro, Max, and trial athlete. A single 0-100 number on the dashboard with four sub-scores under the hood — Fitness Base (your eFTP and CTL), Progressive Overload (whether weekly TSS is actually building toward your goal), Consistency (how closely you've hit recent plan targets), and Load Management (Foster monotony / strain). A weekly history chart on Analytics lets you watch a build block lift Progressive Overload while Load Management compresses, then flips through a recovery week. Each post-workout email shows your Training Score change for the week, and Coach+ understands the components — ask "why is my Load Management low?" and it has the actual sub-score values plus standard advice. Read more in Training Score: One Number That Actually Tells You Something.

iOS 1.10 is a major release. Coach+ chat got a top-to-bottom overhaul: tapping Approve on a delete-workout, generate-workout, schedule-race, or adjust-intensity proposal actually executes the action (we squashed a stack of bugs that left approvals stuck or silently failing). A blinking cursor and animated thinking dots show when the coach is composing, fetching, or waiting; a Stop button aborts long answers; failed streams show a tap-to-retry banner; long-press a message for Copy / Share; tool cards render live as the coach calls them. The daily briefing was rebuilt as the deeper read of your daily outlook — readiness signals, training context, and recommended action all in one place — and its "Discuss with Coach+" button opens the coach with the right context. Push notifications were reorganized: title now leads with duration and phase ("75 min · Build") which survives the iOS truncation, critical signals take the title slot when they fire, and all daily briefings group together in Notification Center. Plus accessibility labels everywhere and a Dynamic Type cap so the largest text sizes don't break dense data layouts.

Race-week and taper accuracy got a major workout. The protocol now runs as a single deterministic day-by-day flow that A and B races share — A engages at D-7 (last key session → moderate endurance → easy recovery × 2 → rest × 2 → openers → race day), B engages at D-4 with the same D-4 to D-0 prescriptions. It actually engages on dashboard, daily briefing, and Coach+ for races more than one day out (previously only D-1 fired). Race Week and Taper TSS targets are hard-capped at maintenance load (CTL × 7) — closes a bug where Race Week could come out higher than maintenance for athletes already at goal CTL. B races get a 1-week mini-taper instead of the full 14-21 day A-race taper that was bleeding into them. HRV dips and bad sleep during race-week taper are now framed as expected ("taper tantrums") on the dashboard rather than triggering alarm-style copy the day before the race.

Preview-before-applying flow was tightened end-to-end. When the morning cron stages a workout swap and you have Preview turned on, every surface now agrees it's a proposal awaiting your approval — not a done deal. The daily briefing flips to an orange hourglass "Workout proposed" header instead of a misleading "Workout adapted ✓" badge; the daily email swaps "⚡ Workout Adapted" for "⏳ Workout Proposed"; the dashboard's Today's Plan card gains a "Voorstel" pill so the decision sitting below doesn't get missed. The pending-adaptation card itself now shows the proposed workout next to the original with name, TSS, and duration so you can compare before approving. Approve / Keep original buttons were rebalanced (Approve primary, Keep original a quieter ghost). The "Why" bullets now match the dashboard Health card and email — no more reassuring "Training load balanced" lines mixed in with the actual triggers.

New: choose how your daily email is timed. Settings → Notifications gains an "After HRV and sleep sync" option — the email is held until today's wellness has arrived from your wearable, with an 11am-local fallback so it always goes out by mid-morning. Whoop users effectively had this behavior already; the setting makes it explicit. The fixed-time option is still there for predictable delivery.

Plan and workout intelligence. Run and swim workouts now prescribe pace percentages aligned with Intervals.icu's default Coggan zones (a "Long Run · Aerobic" no longer comes out at 8:27/km when proper endurance is closer to 6:30). Weekly intensity sessions no longer get scheduled on your longest day of the week. Peak / Build / Taper plans no longer overshoot their TSS target by 10-22%. Post-illness recovery ramps over three weeks instead of jumping back to a full Build week. Zone-progression diagnosis is now respected on Peak / Taper / Race Week — an athlete weak in VO2max no longer gets a threshold-heavy Peak. The eFTP value on Settings → Training and the dashboard now matches the eFTP shown on the chart and on Intervals.icu directly. On the blog: Spotlight: @vonpiter, Three Days from UŁAN 600 — a quiet read on what the calmest week in three months looks like before 500 km of Polish gravel.

Reliability and performance: dashboard, calendar, and analytics pages load noticeably faster (transient page data moved to Vercel's Runtime Cache; slowest 1% of reads dropped from ~750ms to ~5ms). Coach+ chat questions that fail mid-tool-call no longer count against your monthly chat budget. Onboarding now forces an explicit sport choice instead of pre-selecting Ride. Apple Health workout sync accepts "Other" and equestrian workout types. The retry banner in Coach+ clears when you switch conversations after an error.

Full changelog with all the details: https://www.intervalcoach.app/changelog
As always, let me know if you run into any issues or have feedback!