Athlete alerts
Who can use this — every coach, including assistant coaches, for their own athletes. Each coach sets their own rule; nothing here is shared or inherited.
Athlete alerts watch six things about each of your custom-plan athletes and let you know when one of them drifts outside the range you’ve chosen — so you can review the athlete without checking every one of them every day.
This is separate from Compliance alerts, which grade weekly training load against plan. Those now cover off-the-shelf plans only — for custom-plan athletes, this rule is the one that alerts you.
Alerts prompt a review — they don’t diagnose anything. An alert means a number moved outside the range you set, using the data PlanMyPeak has. It is not a medical assessment, an illness prediction, or a change to the athlete’s plan. Open the athlete, look at the week, and decide.
One rule, all your custom-plan athletes
Open Alert Rules from the sidebar. The first section, Your athlete alert rule, is the only rule you have and the only one you need: there is no list of rules to add to, duplicate, or delete.
- It applies to all your custom-plan athletes — every active athlete assigned directly to you whose plan type is Custom plan. The page shows how many athletes that is right now.
- Off-the-shelf plans and athletes with no plan type set are not included. This is fixed, not a filter: if an athlete never seems to trigger an alert, check their plan type first.
- It’s yours alone. A head coach’s rule doesn’t apply to other coaches’ athletes, doesn’t become a default for anyone, and can’t override yours. When an athlete is reassigned, they leave the old coach’s rule and join the new coach’s.
- Athletes never receive these alerts. They go to you, in the app and by email — never to the athlete, and never to TrainingPeaks.
If you have no eligible athletes yet, the page says No eligible custom-plan athletes. You can still set up and save the rule; it starts checking athletes as soon as one becomes eligible.
Turning the rule on and off
The switch at the top of the rule — Enable athlete alerts — is the master control. While it reads Paused, nothing is checked and nothing is sent, in the app or by email. Your period and every component’s settings are kept, and you can keep editing and saving them while paused.
Switch it back on and the next check picks up from the latest complete period. Pausing doesn’t replay anything you missed, and it doesn’t reset the repeat-alert timer.
Choosing the period
Evaluation period decides what stretch of days each check looks at. There is one period for the whole rule — all six components use it.
- Rolling 7 days — the seven complete days ending yesterday, in the athlete’s own time zone. Each new day, the window moves forward one day.
- Previous completed week — the most recent finished Monday to Sunday in the athlete’s time zone.
Only complete days are ever counted. Today is never in the window, so a workout the athlete simply hasn’t done yet can’t be called missed.
The six components
Each row in the rule is a component you can include or leave out, and Adjust to set its thresholds. To enable the rule you need at least one component included with a valid setting. Left-out components keep their old settings so you can bring them back later.
Where a component has a lower and an upper bound, you can leave one blank for a one-sided range. Landing exactly on a bound is fine — only going below the lower bound or above the upper bound counts.
Resting heart rate (RHR)
Compares the athlete’s average resting heart rate over the period with their usual level — the typical daily reading over the previous four weeks. You set how big a change should alert you — a Rise, a Drop, or both — each as a positive number of beats per minute, not a percentage. There’s no minus sign to enter, and the two limits are independent: a drop of 8 with a rise of 5 is fine.
For example: with a rise of 5 bpm, an athlete whose resting heart rate usually sits around 48 and averaged 54 this week (a change of +6) would be alerted on; one who averaged 52 (+4) would not. A drop of 5 alerts you when the week’s average is more than 5 bpm below usual, which can point to an athlete who is unusually fresh or whose readings have changed. Leave either limit empty to watch only one direction. One unusual morning won’t skew the four-week baseline.
This needs at least 4 readings in the period and 14 readings in the previous four weeks. Missing days aren’t filled in. Resting heart rate comes from stored daily readings, so it works whether the athlete is connected to TrainingPeaks or not, as long as the readings are there.
A resting heart rate outside your range is a reason to look — fatigue, poor sleep, travel, illness, or a heavy block can all move it. PlanMyPeak reports the change; it doesn’t say why.
Missed workouts
Counts planned workouts in the period that had a target (a planned load or duration) and weren’t completed. Rest days, calendar notes, and duplicates aren’t counted. You set the maximum missed workouts you’re happy with; one more than that triggers the alert. Zero is a valid maximum.
This component waits for the athlete’s TrainingPeaks activities to sync for the whole period before it decides anything — an unsynced workout is unknown, not missed. See When results are ready.
Unsuccessful sessions
Counts completed, planned, structured sessions whose analysis score came in below your minimum. You set two numbers: the minimum successful score (0–100) and the maximum unsuccessful sessions you’ll accept before being alerted.
The score used is the deterministic one from workout analysis — whether or not you’ve reviewed or approved the report. Unplanned or unstructured rides aren’t judged, and the AI’s written feedback isn’t a score.
If any session in the period is still waiting for analysis, the component reports Awaiting analysis rather than guessing, and tries again on a later check. It never counts an unanalysed session as a failure or as a success.
Fitness (CTL)
Checks the athlete’s fitness score at the end of the period against a lower and/or upper target you set. This is the same fitness number shown on the athlete’s trends, taken at the last day of the window — not an average across the week.
Fitness needs enough training history to be meaningful. A new athlete or a long gap in data reads as Fitness history not ready rather than as zero.
Form (TSB)
Checks the athlete’s form score at the end of the period against a lower and/or upper target. Form can be negative (building fatigue) or positive (fresh), so both bounds accept negative numbers. Like fitness, it uses the period’s last day and needs enough history.
Plan compliance
Compares the training the athlete actually did with the training you planned, as a percentage, over the period. 100% means they completed exactly the load you prescribed; 60% means they did well under it; 130% means they went well over.
You set the limits as percentages of plan — a lowest completed figure, a highest completed figure, or both. A limit above 100 is allowed and is the point of the upper one: it tells you about over-training as well as under-training. With 80 and 120 set, an athlete who completes 60% or 130% of their planned load is alerted on; one who completes exactly 80% is not.
A few things worth knowing:
- It covers every planned activity in the period, with no split by sport. Riding, running, and swimming all count towards the same percentage.
- Training done with nothing planned still counts towards what was completed — so an athlete who skips half their plan but rides hard off-plan won’t read as under-training.
- A period with nothing planned is not a failure. When there is no planned load at all — a rest week, or a plan you haven’t written yet — there is nothing to take a percentage of, so the result reads No planned training in this period rather than 0%. It never triggers an alert.
- It needs TrainingPeaks and waits for the athlete’s activities to finish syncing for the whole period, like the other activity components. A half-synced week reads as Awaiting activity sync, never as under-training.
The weekly period suits this component best. On Rolling 7 days the window moves every day and can cut a planned block in half — a big Saturday still to come reads as a shortfall until it’s done. Previous completed week compares a finished week against a finished plan.
When results are ready
Checks run regularly throughout the day — about every half hour; the rule page shows the exact interval. A period’s results become available from 8:00 in the athlete’s local time, once the period is complete:
- Rolling 7 days — from 8:00 each morning, for the seven days ending yesterday.
- Previous completed week — from 8:00 on Monday, for the week that just finished.
8:00 is the earliest a result can appear, not a promise of when it will. Missed workouts, unsuccessful sessions, fitness, form, and plan compliance all wait for the athlete’s activities to finish syncing from TrainingPeaks for the whole period. Until then the check simply reports Awaiting activity sync and tries again later. Resting heart rate doesn’t depend on that sync.
An athlete in Auckland and an athlete in Lisbon on the same rule therefore get their results at different times of your day — each at 8:00 their time.
What the result states mean
When you open a check’s results, each athlete and component shows one of:
| State | Meaning |
|---|---|
| Within range | Measured, and inside your bounds. |
| Outside your range | Measured, and outside your bounds. This is what triggers an alert. |
| Awaiting activity sync | The athlete has TrainingPeaks access but their activities haven’t finished syncing for the whole period yet. Checked again later. |
| TrainingPeaks required for activity alerts | The athlete is connected through Strava only. Missed workouts, unsuccessful sessions, fitness, form, and plan compliance need TrainingPeaks (the athlete’s own connection, or your coach connection with the athlete in it). Strava-only activity alerts aren’t supported yet. |
| No connected data source | Neither the athlete nor you have a connection that covers this athlete, so activity-based components can’t be measured. |
| TrainingPeaks needs reconnecting | There is a TrainingPeaks connection for this athlete, but it has expired or been revoked. Reconnect it — see Connecting TrainingPeaks. |
| Awaiting analysis | A session in the period is still being analysed, so unsuccessful sessions can’t be counted yet. |
| Fitness history not ready | Not enough training history to give a trustworthy fitness or form number. |
| No planned training in this period | Nothing was planned for the athlete in the period, so plan compliance has nothing to compare against. Not a failure, and never an alert. |
| Not enough resting-heart-rate readings | Fewer than 4 readings in the period, or fewer than 14 in the previous four weeks. |
Missing data in one component never hides a known problem in another. An athlete with unsynced workouts but a clear resting-heart-rate rise is still alerted on for the heart rate.
Resting heart rate alerts work from stored readings on their own; they don’t wait for the activity sync and aren’t affected by which provider the athlete uses.
Saving is not checking
Save changes stores your whole rule — period, switch, and all six components — in one go. Saving never evaluates athletes and never sends anything. Your changes take effect on the next scheduled check, which is why the page says “Enabled changes take effect at the next scheduled check.”
Inside a component’s editor, Apply to rule only updates your unsaved draft. Nothing is stored until you press Save changes on the rule; Discard changes throws the draft away.
The Latest run area is history: the most recent completed check, with its time and the saved version of the rule it used. Until the first check has run for what you just saved, it reads Awaiting next scheduled check rather than showing an all-clear it hasn’t earned. Results from an older saved version are labelled as such, and editing the rule never changes what an earlier check recorded.
If two people edit the same rule at once (for example on two devices), the second save is refused with a message asking you to reload — your draft is kept so you can reapply it.
How you’re notified
When a check finds athletes outside your range, you get one in-app notification (the bell menu) and one email, both covering everything that is due from that check. Never one message per athlete, and never more than one of each per check.
- Both are sent at the same time. If one of them fails, the other is not re-sent later — you’ll have one or the other, and the check’s history shows which.
- Each notification lists the athletes and components involved, the measured value against your bounds, the period, and a link straight to the athlete.
- Opening or reading a notification doesn’t resolve anything; it’s just a link.
How often you hear about the same thing
Once you’ve been alerted about a particular athlete and a particular component, you won’t be alerted about that same athlete-and-component again for seven days — even though the rolling window moves every day and the athlete may still be outside range tomorrow.
The seven days count from 8:00 local time on the day that period’s results became available, not from when the message actually reached you. In practice that means:
- If a Monday’s weekly results were delayed (say the activities didn’t finish syncing until Wednesday) and you were alerted on Wednesday, the following Monday’s results can alert you again — five days later, not seven.
- Editing the rule, pausing and resuming, switching between rolling and weekly, or the athlete briefly coming back into range and then out again do not reset the seven days.
- After seven days, you’re alerted again only if the athlete is still outside range in the latest period — never for an old period, and never as a catch-up.
The timer is per athlete and per component. So in one week you can easily get several alerts — Tuesday for one athlete’s resting heart rate, Thursday for another athlete’s missed workouts, Saturday for the first athlete’s form — each a single consolidated message for that check. There is no “one email a week” cap.
Choosing whether to get the emails
Under Delivery preferences on the Alert Rules page, Metric-alert emails is on by default. Turn it off to stop the emails; in-app notifications continue for as long as your rule is enabled. Turning email back on doesn’t send copies of alerts you already got in the app.
This is separate from the Compliance alert emails setting, and it’s personal to you.
History
Each check’s results are kept, and each stretch during which an athlete stays outside range for a component is recorded as one incident — opened when the component first breaches, and resolved on its own when a later check finds the athlete back within range (or when the athlete leaves your custom-plan roster, you exclude the component, or you change the rule). Resolution is silent: there is no “all clear” notification.
Late-arriving data can change an earlier result — a workout that syncs a day late, or a corrected reading. The history is updated to match, and an incident that no longer holds is resolved. An email you’ve already received isn’t recalled; the history simply shows that the incident was later resolved.
Weekly TSS compliance rules
Further down the Alert Rules page, head coaches still see the Weekly TSS compliance alerts section described under Compliance alerts. It now offers slots for off-the-shelf plans only: the custom-plan slots have been retired, because those athletes are covered by your athlete alert rule above and being alerted twice for the same athlete helps nobody. Its reports and emails are otherwise unchanged.
If you used a custom-plan weekly TSS rule
That rule has been replaced, not removed. What it measured — completed load against planned load — is now the Plan compliance component above, inside your own athlete alert rule.
Two differences are worth knowing before you set it up:
- Your old thresholds did not carry across, on purpose. The retired rule was one company-wide setting; this one belongs to each coach. Copying somebody else’s numbers into your rule would have alerted you on limits you never chose. To re-create the common 0.8 / 1.2 setting, include Plan compliance and enter 80 as the lowest completed and 120 as the highest — the new component takes percentages, not fractions.
- There is no split by sport. The retired rule could hold cycling to a different standard than everything else. Plan compliance covers every planned activity in the period together.