Reviewing a workout
Who can use this — all coaches, for the athletes they can see. Assistant coaches review their assigned athletes; head coaches review anyone in the company.
When an activity syncs from TrainingPeaks, PlanMyPeak compares the completed session against the planned workout and produces a compliance analysis. Open an activity from your dashboard to review it.
Compliance analysis only runs once a workout has been completed and its data has synced. Open a workout that’s still planned for a future date and you’ll see a note that the workout hasn’t been completed yet. You can still preview what an upcoming workout asks for before it’s ridden — see Previewing an upcoming workout. The same applies to AI feedback: it can only be generated for completed workouts. Rides without a structured plan still get a useful review — see Rides without a planned structure.
Reading the analysis
If the activity happened on a date marked as a rest day in the athlete’s plan, you’ll see a Planned rest day banner at the top of the review. It shows the two preceding calendar days and lists every completed activity’s actual TSS and IF. A day without a completed activity is shown explicitly, and an unavailable metric is shown as a dash. Activities stay separate when there was more than one in a day, because IF should not be combined into a single daily value. This banner is coach-only; athletes do not see it in their report.
The banner also shows a Next day card so you can see what the athlete is heading into. It lists what their plan holds for the following calendar day — each session’s title and type with its planned TSS and duration — or says Rest day (planned) when that day is prescribed as rest, or Nothing planned when it is empty. The card always describes the plan, so it reads the same whether or not the athlete has already completed that day.
On any review, if the day before the activity was a planned rest day that the athlete trained through, you’ll see a Rode on a planned rest day notice naming that date and listing what they did, with actual TSS and IF. You don’t have to open the rest day’s own report to notice it. When the activity you’re reviewing also fell on a rest day, the banner above marks its Previous day card instead, so the same fact is never shown twice. Like the banner, this notice is coach-only.
The analysis brings together everything you need to judge the session:
-
Planned vs. actual — duration, distance, training load, and intensity side by side.
-
Workout Execution — three cards — Duration, Intensity, and Load — that each show what the athlete actually did, how far it was from the plan (for example,
-43m vs 120m), and a band describing the gap (on target, a bit under/over, or well under/over). Each card is colored by how close it landed, so you can see at a glance where the session went as planned and where it drifted. -
Effort detail — depending on the data recorded, you may see a power profile, aerobic decoupling, heart-rate recovery, and peak power. The aerobic decoupling, heart-rate recovery, and peak power cards explain themselves right on the card: what the metric measures, which direction is good, and — where the metric has reference bands — where this session’s number lands between them. Each card also keeps a help button — ? Understand more on the decoupling and recovery cards, ? Help on peak power — that opens the longer explanation.
-
Time in zone — whenever a ride has power data and the athlete has power zones, a card shows how the ride’s time was distributed across those zones. Percentages are exact; the per-zone times are approximate.
-
Activity type and discipline — the workout header shows the sport (for example, Bike) and, when the connected provider distinguishes it, a discipline badge for the finer type of ride: Road, Gravel, Mountain, Track, Cyclocross, Indoor, Virtual, E-Bike, or Hand Cycling. Strava rides carry the richest discipline detail; when a ride does not specify one, only the sport is shown.
-
Workout type — alongside the sport, the header shows what the planned session was designed to train: Recovery, Endurance, Tempo, Sweet Spot, Threshold, VO2 Max, Anaerobic, Sprint, Skills, Test, Race, or Mixed. Some sessions show a more specific label instead, such as Over/Unders, FTP Test, or Race Sim. It is read from the planned structure, so a ride with no plan attached shows no workout type.
-
Matching rides — earlier sessions with the same structure, so you can see how this one compares.
Aerobic decoupling only appears for steady aerobic sessions. It measures how the power-to-heart-rate ratio drifts over a sustained Zone 2 effort, so it needs a continuous Zone 2 block of at least about 30 minutes to be meaningful. When the planned workout is an interval, threshold, or other session without a long enough Zone 2 stretch, the card is left off the report. Turn off Hide empty metrics in Settings to keep the card on the page with a note explaining why it is empty.
Report display settings
A metric needs the right data to be measured. A ride recorded without a heart-rate strap has nothing to calculate aerobic decoupling or heart-rate recovery from, and a session too short or too stop-start has nothing steady to measure.
By default, reports simply leave those metrics out — the report shows what was measured, and the remaining cards spread out to fill the space. Nothing is lost: the metric had no result either way.
If you would rather see every metric listed, with a note explaining why each empty one could not be measured, go to Settings → Reports and turn off Hide empty metrics.
This is your own setting — each coach chooses their own, and it applies to your reports and to what your athletes see for the same workout, so you both look at the same page.
The activity profile chart
The Activity Profile chart plots the session against its plan. The coloured bars are the planned training zones for each interval; the lines are what the athlete actually did.
- The zone legend below the chart names each zone using the athlete’s own power-zone setup as it was on the day of the activity — so the labels (and how many zones there are) match how that athlete trains. If an activity predates this, or has no power zones, the legend falls back to the standard names (Recovery, Endurance, Tempo, Threshold, VO2 Max, Anaerobic).
- Use the Power, Heart Rate, Cadence, Elevation, and Temperature buttons to show or hide each line. A button only appears when that data was recorded. Elevation and temperature start hidden — turn them on when you want the extra context.
- The chart always starts aligned: idle time at the start or end of the recording — pedals not turning before the ride begins, or the file left running after the cool-down — is cropped away, and the first pedal stroke lines up with the start of the planned workout. The trace is only shifted, never stretched, so it keeps its true shape and length: a ride that was genuinely shorter than the plan still ends before the right edge (a cut-short session stays visible as one), and a ride that ran long extends past the planned bars.
- Each recorded point is drawn at the moment it actually happened, and recording pauses (a coffee stop, an auto-paused ride) show as gaps in the lines rather than a line drawn straight across — hovering over a pause shows no made-up values, and the rest of the ride is never squeezed out of position.
- When the workout prescribes a cadence target, the chart shades a band over each interval showing the planned cadence range, with the actual cadence line on top — so you can see at a glance whether the athlete held the target (for example, staying inside an 88–95 rpm band) or drifted at peak power.
- When the ride recorded elevation, an elevation line traces the terrain, so you can see whether a fade or a surge lined up with a climb rather than the flat. Indoor and trainer rides usually have no elevation, so the line and its button simply don’t appear.
- When the ride recorded temperature, a temperature line shows how hot or cold it was through the session, so you can see whether a fade lined up with the heat rather than the effort. Rides whose device or file carries no temperature simply don’t show the line or its button.
- Hover anywhere on the chart to read the exact power (W), heart rate (bpm), cadence (rpm), elevation (m), and temperature (°C) at that point in the ride.
If a session has no cadence recorded and no cadence target, the chart looks exactly as before — no cadence line, band, or button. The same is true of elevation and temperature: with none recorded, there’s no line or button for them.
Saving the chart as an image
The Export chart image button at the top of the review turns the Activity Profile into a PNG you can drop into a message, a training log, or a slide. The dialog shows a live preview of the finished image: every setting you change re-renders it immediately, so what you see is exactly what Download PNG saves. The settings walk through the export in order:
- Data to include — the chart’s data series as coloured toggles: power, heart rate, cadence, elevation, and temperature. Only the series the ride actually recorded are offered, and you can turn them all off — for example to export just the planned structure. Each series you include beyond power gets its own labelled axis (with units matching your measurement preference), so the exported image widens slightly the more you turn on.
- Chart appearance — what the chart looks like. Options that depend on
another one appear underneath it only when it’s on:
- Title & date header — the athlete name, workout title, and date across the top. Turn it off for an image you’d rather not put a name on.
- Planned structure — the planned zone bars, cadence bands, and zone legend. Turn it off to show the recorded ride on its own. With it on, Fill to zone floor draws each planned bar as its target zone instead of one solid block: solid colour up to the bottom of the zone, and the prescribed range shown transparent above it, so you can see exactly where inside the zone the athlete rode.
- Smooth lines — averages the trace over the number of samples you set, so the shape reads clearly at small sizes.
- Time gridlines — a vertical gridline every 1–5 minutes, with elapsed times below the chart.
- Watts gridline interval — spacing of the horizontal watts gridlines, in steps of 50W. The chart’s watts axis fits itself to the ride, so a lower interval reads better on an easier ride and a higher one suits a ride with a wide power range.
- Image size — automatic, or a set width or height. The chart keeps its proportions either way, and the resulting pixel size shows above the preview and in the dialog’s footer.
- Markup (optional) — select Open tools to draw arrows, lines, and text labels onto the image — handy for pointing at the interval you want the athlete to look at. Changing a setting after you’ve drawn re-renders the chart, so the dialog asks first before discarding your markup.
When it looks right, Download PNG saves the image you’re looking at.
The aligned segments view
Outdoors, almost nobody starts every interval exactly on the planned second. Riders roll into the first effort early, stretch a recovery at a junction, or run an interval long down a tailwind stretch. The analysis understands this: it finds each planned segment’s effort where it actually happened in the ride and scores it there.
When an activity has been analyzed this way, the Activity Profile and Segment Compliance charts show an Aligned segments button. Turn it on and each planned segment bar moves from its nominal position in the plan to sit over the stretch of the ride that fulfilled it — so the bars and the power line finally tell the same story, even when the whole interval block happened minutes ahead of schedule.
A few things you may see in this view, all of them honest reflections of how the ride unfolded rather than glitches:
- Hatched gaps between segments are stretches of the ride that don’t belong to any planned segment — extra easy minutes between sets, a stop at the lights, a longer-than-planned roll between efforts.
- Overlapping bars happen when the athlete rolled straight from one effort into the next with no break: the end of one segment and the start of the next genuinely share a moment of the ride. The shared strip gets its own marking so both segments stay readable.
- Ghosted (outlined) bars are planned segments the analysis couldn’t find in the ride at all — a skipped set, for example. They stay at their planned position so you can see what’s missing and where it should have been.
- Extra effort markers flag unplanned surges — hard riding that doesn’t map to any planned segment, like chasing a group mid-recovery. They show the surge’s position and average power.
Turning the button off returns the bars to their planned positions. The view is only available on activities analyzed with segment alignment — older analyses and free rides simply don’t show the button. Re-running the analysis on an older activity will produce it.
Zooming in on a section of the ride
To study one stretch of the ride — an interval block, a climb, a surge — click and drag across the Activity Profile chart. The selected section is highlighted and a selection stats panel opens below the chart with numbers for just that slice:
- Headline: duration, distance, and TSS of the selection.
- Detail: work (kJ), normalized power (NP), intensity factor (IF), variability index (VI), efficiency factor (EF), elevation gain and loss, average grade, and climb rate (VAM).
- MIN / AVG / MAX table: power, heart rate, cadence, speed, pace, elevation, and temperature — each row appears only when the ride recorded that data.
A few things to know:
- Everything is computed from the ride’s own recorded samples, on the spot — selecting never changes the stored activity or its analysis.
- NP, IF, TSS, VI, and EF need at least a minute of power inside the selection; shorter slices show a dash for those instead of a misleading number. IF and TSS also need an FTP on the activity.
- To clear the selection, click the chart once without dragging, press Esc, or use the Clear selection button on the panel.
Where the data comes from
At the very bottom of the review, a small footnote credits the source of the data, next to each provider’s icon. Most of the time the plan and the recorded streams come from the same place, so you’ll see a single line — for example Data from TrainingPeaks.
When the workout was planned in one provider but the power, heart-rate, and cadence streams were matched from another — typically a TrainingPeaks plan filled in with detail from a matched Strava ride — the footnote splits into two lines so it’s clear where each part came from:
- Plan from TrainingPeaks
- Stream data from Strava
Previewing an upcoming workout
You don’t have to wait for an athlete to ride a session to see what it asks for. Open a structured workout that’s still planned for a future date and the review page previews the plan:
- The workout description — the coach’s notes for the session (for example, “3×10min @ Sweet Spot, keep cadence above 90”) — is shown near the top in a collapsible panel, with its line breaks preserved. When the workout also has a structured plan, a step-by-step breakdown (each interval’s duration, target power, zone, and cadence) appears alongside the notes. If the workout has a structured plan but the coach left no notes, the panel still opens on the step-by-step breakdown under a Workout Structure heading — so a synced interval session is never blank. The panel appears on completed workouts too, whenever there’s a description or a structured plan to show.
- The Activity Profile chart draws the planned zone bars and the FTP line from the planned structure, exactly as they’ll appear once the workout is completed — so the preview and the post-completion analysis line up. There are no actual power, heart-rate, or cadence lines yet, because nothing has been ridden.
- A Planned Workout summary shows the planned duration, TSS, intensity factor, and energy. When TrainingPeaks omits planned TSS or intensity factor, PlanMyPeak calculates the missing value from a time-based power structure and the athlete’s FTP. If that information is unavailable, the value shows as a dash instead of preventing the review from loading.
- You’ll still see the note that the workout hasn’t been completed yet, and the Coach Feedback card explains that feedback becomes available once the workout is done — feedback is written from the completed ride, so there’s nothing to generate yet.
The planned chart needs a time-based structure (intervals measured in minutes or seconds), a power target, and the athlete’s FTP. The FTP is taken from the athlete’s most recent completed cycling ride, so an upcoming workout charts as soon as the athlete has at least one synced ride with power zones — a brand-new athlete with no completed rides yet sees the description and planned summary until their first ride syncs. When a workout is built around distance or has no power targets, the page still shows the description and the planned summary, just without the chart.
Rides without a planned structure
Not every ride follows a structured plan — free rides, group rides, and races often sync with no planned intervals at all. These activities still get a review page:
- The Activity Profile chart plots the recorded power, heart rate, cadence, and elevation lines (with the athlete’s FTP line when their power zones are set up). There are simply no planned zone bars, because there was no plan.
- A Ride Summary card shows the headline numbers: duration, average and max power, normalized power, intensity factor, TSS, energy, and average heart rate. Anything the device didn’t record shows as a dash.
- The Time in Zone card breaks the ride down across the athlete’s power zones, just like on structured rides.
- A note explains that compliance analysis isn’t applicable — there’s no plan to compare against.
- You still get Coach Feedback: for a completed cycling ride with recorded power and an FTP, the AI writes a performance review of the ride itself — intensity, effort distribution, durability (aerobic decoupling), and peak efforts — without a compliance grade. Generate it the same way you would on a planned ride, and it publishes to TrainingPeaks as the coach summary plus the link to the athlete’s report.
- You can edit and refine this performance feedback exactly like on a planned ride — tweak the wording yourself, revert to the original, or ask the AI to refine it with a note (see Refine the AI feedback). The refinement works from the same ride metrics the original review used.
AI feedback needs power and an FTP, not a plan. A completed cycling ride with a recorded power stream and an FTP gets an AI performance review even with no planned structure. When a ride has no power data or no FTP, the Coach Feedback card explains that instead of offering a Generate button.
Compliance analysis is for cycling. For other workout types — strength, swims, runs, and so on — the review page shows a Workout Summary with every metric the device recorded (duration, distance, training load, heart rate, calories, and more), without compliance or AI feedback sections, since the power-based analysis doesn’t apply to them. These workouts also never appear in your dashboard’s review queue: there is nothing to review.
When a planned ride barely matched the plan
Sometimes an athlete has a structured workout on the calendar but rides something completely different — a group ride instead of the intervals, or an easy spin instead of the threshold set. Treating that as a failed execution of the plan isn’t useful to anyone, so rides that fall far outside the planned structure are treated as rides without a planned structure:
- The review switches to the same Ride Summary and performance review you’d see for a genuinely unplanned ride — the AI describes the ride on its own terms (intensity, effort distribution, durability, peak efforts).
- Only you, the coach, see a short note explaining that the ride could not be compared meaningfully with the plan. It appears in place of the usual no-structure note.
- The athlete never sees that note. Their report and the TrainingPeaks comment read exactly like any other unplanned ride: the performance summary and report link.
This is automatic and per-ride. It’s decided from the ride’s own compliance result each time a workout is analyzed, so a ride the athlete genuinely followed keeps its normal structured review.
Choosing between two AI versions
Every so often, a workout’s Coach Feedback card shows two versions of the feedback side by side, labelled Version A and Version B. We do this on a small, regular sample of reviews to keep improving the quality of the AI feedback — and we ask you, the coach, which one is better.
Read both, then select Choose Version A or Choose Version B to pick the one you’d rather send. A few things to know:
- Your choice is final. Once you pick a version, it becomes the workout’s AI feedback and the other version is gone — there’s no way back to it.
- Pick first, then refine. While both versions are showing, the Edit, Request AI Refinement, and Approve and publish actions are paused. Choose a version and they come back, working exactly as usual on the version you kept.
- It’s blind on purpose. The two versions aren’t labelled with anything but A and B, so your choice reflects which feedback reads better — nothing else.
You’ll only see this on a handful of reviews, not every workout. The rest of the time there’s a single AI feedback draft, just as before.
Refine the AI feedback
Every analysis comes with AI-written coaching feedback — a short narrative you can send as-is or make your own. You can:
- Edit the feedback to add your voice or a personal note.
- Request AI Refinement — give the AI a short note (for example, “focus more on the climbs” or “make it more encouraging”) and it rewrites the feedback for you. This works on every report, whether or not the ride had a planned structure — an unstructured ride’s review is refined from its own metrics.
- Revert to the original AI version if you want to start over.
The analysis shows which coach last edited the draft, so a team stays in sync. Head coaches can change the AI’s tone and emphasis for everyone — see Custom AI feedback.
A refinement sees everything the original review saw. When you ask for a refinement, the AI re-reads the full workout — every segment, the session summary, cadence and heart rate, and the kind of session it was — and then applies your note. It isn’t working from a summary of the original review, so asking it to “say more about the second interval” gets an answer grounded in that interval’s actual numbers.
The feedback focuses on the main work. Warm-up and cool-down are only called out when they were meaningfully under-executed — if they were done acceptably, the AI leaves them out so the feedback stays focused on the intervals. One exception: when a session has hard intervals and the warm-up beforehand was short (under about 10 minutes), the feedback adds a gentle reminder that a slightly longer warm-up next time — within reason — helps prepare for hard efforts.
The AI reads each segment on its own terms. For every planned segment the review measures how the effort was actually executed and feeds that detail to the AI: how steady the power was and how much of the segment sat inside its target, the longest stretches spent above or below target, whether power held or faded from the first half to the second, and any brief spikes or drops. Where heart rate was recorded on a long, sustained effort, it also looks at heart-rate drift (decoupling) and how the heart rate settled; where cadence was recorded, it looks at cadence changes and coasting. Crucially, the AI applies each measure only where it makes sense — a long tempo block is judged on drift and pacing, while a short interval step is judged against its own target rather than on drift or first-half-versus-second-half pacing, and a recovery block is judged on staying easy. The main work block carries the most weight, and a steady endurance stretch at the end of a ride is read as an endurance finish, not automatically as a cool-down.
Occasionally the AI feedback can’t be generated for a workout. When that happens, the Coach Feedback card shows a short notice instead of a draft, with a Retry button — the rest of the analysis (execution metrics, segments, and charts) is still there. Select Retry to generate the feedback again. While feedback is unavailable, the workout can’t be approved and published yet — retry until it succeeds, then approve.
Workouts that were already in an athlete’s history when you connected them get the compliance analysis automatically, but Coach Feedback is not generated for them up front — only recent workouts get feedback automatically. For an older, imported workout the Coach Feedback card explains this and shows a Generate AI feedback button. Select it to create the feedback on demand, then review and approve as usual.
Approve and publish
When you’re happy with the feedback, select Approve and publish. A short popup shows you the exact comment that will be posted on the athlete’s TrainingPeaks activity — the coaching note, without a compliance score. You can edit that text before it goes out, so the comment reads exactly how you want for this one activity. Select Confirm & publish to send it, or Cancel to go back.
The link to the athlete’s full report is always added to the end of the comment (the popup shows it and notes this), so your athlete can always open the full analysis — you don’t need to add it yourself, and it can’t be removed by editing.
The status pill at the top of the page tracks where the report is — analyzing, review pending, approved, published, or dismissed — and once it’s published you’ll see the timestamp and a link to the athlete’s report. You’ll always get a clear success or error message; if publishing fails (for example, because the connection expired), the message tells you the next step.
The report link is the same for everyone — one link opens the report for whoever follows it. The athlete opens it to read their full report; if you (the coach) open the very same link from the TrainingPeaks comment, it opens your coaching view of that activity. Either way you sign in first — the report isn’t public, so it stays private to the people allowed to see it, each seeing their own view. The full analysis lives in PlanMyPeak.
See how the athlete responded
After a report is published, your athlete can react to it from their side: a thumbs up or thumbs down on the report, plus short comments about how the session felt. When they do, an Athlete Feedback panel appears on your view of the same activity, under the coach feedback — their rating and comments, newest last.
The panel is read-only for coaches and only shows up once the athlete has actually rated or commented, so it never adds noise to reports without a response.
Dismiss a report
If you don’t want a report sent to an athlete, select Dismiss — on the activity page next to Approve and publish, or straight from the Dismiss button in your dashboard review queue. After a quick confirmation, the report is set aside: nothing is posted to TrainingPeaks, the athlete is not notified, and the activity leaves both dashboard views.
Dismissing isn’t final. Open the activity again and select Reopen to bring the report back as a draft, so you can revise it and approve it later.
Review mode vs. auto-approve
Whether a workout waits for you or is approved automatically depends on the athlete’s feedback mode. In review mode, every analysis lands in your pending queue; in auto-approve mode, qualifying sessions publish on their own. You set this per athlete — see Managing athletes.
An analysis is produced for activities that sync within about 48 hours of being completed. If an activity is much older when it arrives, it may show no report.