How to build a personal performance dashboard
A good dashboard turns raw data into clear training decisions. By combining power, heart rate, and simple subjective check-ins, you can spot trends, manage fatigue, and time your peaks without guessing. This guide shows you what to track, how to assemble it, and how to coach yourself with it.
What to track: core metrics and simple formulas
Start with a short list of inputs and a few derived metrics that explain fitness, fatigue, and readiness. Keep it simple and consistent.
Daily inputs
- Training load: session RPE x duration in minutes (sRPE). Use a 0–10 scale you apply consistently.
- Power: watts, time in power zones, and key intervals (e.g., 3×16 min at 95% FTP).
- Heart rate: average and max for steady rides, heart rate recovery (1-minute drop after finishing), resting HR on waking.
- Subjective: sleep quality, soreness, stress, motivation (each 1–5). One-minute check-in.
- Optional: HRV (morning, seated or supine, same time daily), body mass.
Derived training metrics
- FTP and power-duration curve: track 5 s, 1 min, 5 min, 20 min, and 60 min bests. Use them to see how your aerobic and anaerobic systems progress.
- Time in zones: distribution across endurance, tempo, threshold, VO2max. Check if training matches your plan.
- Efficiency factor (EF): normalized power divided by average HR on steady endurance rides (watts per bpm). Rising EF over weeks suggests improving aerobic economy.
- Decoupling (Pw:Hr drift): how much EF changes between the first and second half of a steady endurance ride. <5% drift is a sign you paced well and are aerobically ready for that duration/intensity.
- 7-day load (sRPE): sum of daily sRPE loads over the last 7 days.
- Ramp rate: percentage change of this week’s 7-day load versus last week. Keep increases moderate.
- Monotony and strain (Foster): monotony = mean daily load (7 days) / standard deviation; strain = 7-day load x monotony. Higher monotony signals too many similar days.
| Metric | How to calculate | Healthy range / flag |
|---|---|---|
| sRPE load | duration (min) x session RPE (0–10) | Contextual; compare week-to-week |
| Ramp rate | (7d load – prior 7d load) / prior 7d load | ≤10–15% weekly increase |
| Monotony | mean 7d daily load / SD 7d daily load | <=2.0; >2.0 caution; >2.5 high |
| Strain | 7d load x monotony | Use for trend; rising fast = watch fatigue |
| EF | NP / avg HR (steady Z2-Z3 ride) | Rising over weeks = good; compare like-for-like |
| Decoupling | ((EF 2nd half – EF 1st half) / EF 1st half) x 100 | <=5% on endurance rides |
| HR recovery | HR at stop – HR after 60 s | ≥25–30 bpm typical; lower may mean fatigue |
| HRV | Morning average; compare to 7-day mean | Drop >1 SD with poor feel = back off |
// Example formulas for a spreadsheet
SRPE_Load = Duration_min * RPE_0to10
SevenDayLoad = SUM(Load_Day1:Load_Day7)
RampRate = (SevenDayLoad - SevenDayLoad_Prev) / SevenDayLoad_Prev
Monotony = AVERAGE(Load_Day1:Load_Day7) / STDEV(Load_Day1:Load_Day7)
Strain = SevenDayLoad * Monotony
EF = NormalizedPower / AvgHR
Decoupling_pct = ((EF_SecondHalf - EF_FirstHalf) / EF_FirstHalf) * 100
Readiness_Simple = AVERAGE(Z(HRV), -Z(RestHR), -Z(Soreness), Z(Sleep), Z(Mood))
Tip: compare like-for-like. Evaluate EF and decoupling on similar routes, durations, temperatures, and fueling.
Build the dashboard: daily, weekly, and monthly views
A clean layout reduces noise. Use a simple spreadsheet or your preferred training platform’s custom charts. Aim for three stacked views.
Daily card (inputs)
- Today’s session: duration, type, target zone, interval details, average power, average HR.
- Session RPE and sRPE load.
- Subjective check-in: sleep, soreness, stress, motivation (icons or 1–5).
- HR recovery (1-minute), resting HR, HRV (if measured).
Weekly panel (progress and fatigue)
- 7-day sRPE load, ramp rate, monotony, strain with green/amber/red flags.
- Time in power zones vs plan (e.g., 70–80% endurance for a base block).
- Key bests from power-duration curve (5 min, 20 min, 60 min) with week-over-week change.
- EF trend and decoupling from your long ride.
Monthly view (outcomes)
- Rolling 28-day load and average monotony.
- FTP estimate updates and notable PRs across durations.
- Readiness simple index (z-score blend of HRV, resting HR, sleep, soreness, mood).
- Notes: illness, travel, heat, altitude, equipment changes.
Use traffic-light thresholds to keep decisions quick:
- Green: ramp rate ≤10%, monotony ≤2.0, decoupling ≤5%, normal HRV and mood.
- Amber: ramp rate 10–15%, monotony 2.0–2.5, decoupling 5–8%, slightly low HRV or poor sleep.
- Red: ramp rate >15%, monotony >2.5, decoupling >8%, HRV down >1 SD with high soreness.
Coach yourself with it: simple decision rules
Turn patterns into actions. The goal is fewer guesses and better timing of hard work and recovery.
When to push
- Green readiness, stable HRV, low soreness, ramp rate under 10%: proceed with planned intensity or add one extra quality set if you’re chasing FTP or VO2max gains.
- EF rising and decoupling ≤3% on long endurance: extend duration by 10–20 minutes or add tempo (sweet spot) next week.
- Power-duration curve improving across target durations with normal fatigue: schedule a low-stakes test (e.g., 20 min) to update FTP and zones.
When to hold steady
- Amber flags on ramp rate or monotony: keep volume steady for 5–7 days, vary intensity (one hard, one moderate, several easy).
- Decoupling 5–8%: maintain current long-ride duration, improve fueling (60–90 g carb/h) and hydration, then reassess.
When to back off
- Red flags: ramp rate >15% or monotony >2.5 plus poor mood/sleep. Swap intensity for endurance or rest 1–2 days, then rebuild.
- HR recovery unusually low and HRV down with high soreness: replace high-intensity with easy Z1–Z2, spin 45–60 minutes, reassess next day.
- Declining EF across similar rides despite normal power: check heat, illness, or under-fueling; reduce load until EF stabilizes.
Updating zones and targets
- Recalculate FTP after a meaningful improvement in 20–60 minute power or after a block intended to raise threshold. Adjust training zones for watts and heart rate.
- Use the power-duration curve to choose specific workouts: weak at 3–6 minutes? Add VO2 intervals; flat at 20–40 minutes? Prioritize threshold and tempo.
Keep the dashboard lightweight. Five minutes each morning for the check-in and five minutes each Sunday to review trends is enough. The aim is clarity, not more data.