Training
Strava + Apple Health → GPT-4.1 coach. Everything self-hosted.
YTD
| Sessions | Distance | Time | Elevation | Calories |
|---|---|---|---|---|
| 243 | 8220.7 km | 371h 31m | 21412 m | 237238 kcal |
Gear
| Bike | Sessions | km |
|---|---|---|
| Hoops | 46 | 2244.2 km |
| Canyon gravel | 13 | 1038.3 km |
| HoneyBadger | 1 | 85.4 km |
| TheMule | 2 | 62.7 km |
| Commuter | 1 | 52.0 km |
| Holly Grail | 1 | 44.0 km |
HR & HRV — last 90 days
Resting heart rate and HRV (SDNN) with daily training load overlay.
Weekly training — 12 months
km per week with average heart rate and HRV trend lines.
Fitness — CTL / ATL / Form
Chronic Training Load (42d), Acute Training Load (7d) and Form (TSB = CTL − ATL). Computed from suffer score.
This week
| This week | 12-mo avg | vs avg | |
|---|---|---|---|
| Sessions | 4 | 8.1 | -50.6% |
| Distance | 76.9 km | 237.4 km | -67.6% |
| Time | 3h 05m | 10h 42m | -71.2% |
| Elevation | 170 m | 519 m | -67.3% |
| Avg HR | 116 bpm | 116 bpm | -0.2% |
| Avg HRV | 42.1 ms | 38.6 ms | +9.1% |
| Load | 44 | 390.8 | -88.7% |
| Avg Power | 173 W | 158 W | +9.1% |
AI coaching insights
-
**Today's Activity (15000m BikeErg, Virtual Ride)** - This was a light session compared to their typical rides; much shorter distance, lower power, and easier effort. - HR (98.9) is well below average (112.4), power (115.9W) is low, cadence (52.8) is also below typical outdoor ride rates, and suffer score (5) is very minimal vs recent averages. - Positively, this looks like a solid recovery or maintenance ride, with no signs of overexertion; no concerns. **Weekly Load & Trends** - This week’s load (83) is low vs recent trends (28-day suffer score: 4281, 7-day: 183), suggesting a drop-off from previous intensity. - They are clearly in a recovery or unloading week; there are no spike or drop concerns, just a reduction in volume and intensity. **Recovery Recommendation** - Resting HR (51) and HRV (42.1) are in a normal range, with no distress signals. - Recommend another easy session or full rest tomorrow—no need to go hard, continue to recover and absorb previous training.
-
**Today's Activity** - This session (VirtualRide, 17.3 km, 2,111 sec) was shorter and less intense than their typical rides. - Avg HR (120.8) slightly above weekly avg (112), power (203.9W) and cadence (57.7) a bit below their usual sustained long-ride values; suffer score (8) is very low vs recent avg. - Positive: Controlled intensity, good aerobic maintenance. Concern: Very low volume and intensity may indicate fatigue or intentional deload. **Weekly Load & Trends** - Current weekly load (83) is low compared to the prior 28-day average (approx. 153/week based on 4281/28d); weekly ride count (10 sessions) is below their high-activity norm. - Athlete appears to be reducing or maintaining volume, not building; trending toward recovery or a taper week. - No concerning spikes, but there’s a notable drop in both intensity and total load. **Recovery Recommendation** - HRV (42.1) is on the lower side with elevated resting HR (51 vs. their normal baseline); combined with reduced load, this suggests mild strain or accumulated fatigue. - Recommended: Easy session or full rest tomorrow, avoid high-intensity work until HRV rebounds and resting HR drops.
-
**Today's Activity (Rowing: 10,000m in 42:37, avg HR 123.5, avg watts 166.1, cadence 21.5, suffer score 10)** - This rowing session was low-intensity compared to the athlete's typical cycling efforts (relative suffer score much lower than recent rides). - HR, power, cadence, and suffer score all indicate a controlled, steady aerobic session—heart rate is below their weekly average (123.5 vs 112 avg, but for cycling, this is likely under threshold), power and cadence are moderate. - Positive: Good aerobic work with no signs of overreaching. No concerns—session appears recoverable and serves as a good cross-training stimulus. **Weekly Load & Trends** - Weekly load at 83 is steady, lower than the recent 28-day average (suffer score 4,281 in 28d = ~153/wk), indicating they are easing off this week. - The athlete is maintaining or entering recovery, with no concerning spikes or drops in load detected. **Recovery Recommendation** - HRV (42.1) and resting HR (51) are both stable and healthy; given the moderate weekly load, recommend either another easy/moderate session or a rest day, but avoid a hard effort tomorrow.
-
This week, your training load decreased versus last week (sessions: 7 vs 11, total km: 280.2 vs 322, hours: 12.1 vs 13.1), while recovery signals are stable or improved (resting HR and body fat are down compared to 4-week baselines), indicating you are maintaining fitness without signs of overreaching. For next week, focus on increasing daily activity outside of training—aim for at least 7,500 steps per day to halt the recent drop in non-exercise movement.
-
**Today's Activity** - Today's ride (34.6 km, 4,264 sec, 170m gain) is shorter and less intense than their typical recent sessions (avg. 49 km/ride, 240m gain), and well below their long ride and climb bests. - Avg HR (122.9) was above weekly avg (112), but power (205.5W), cadence (78.6), and suffer score (21) are all below recent averages (wattage data not fully available for all rides); session was easy-moderate. - Positive: Kept it controlled, low stress. Concern: None; session serves as active recovery. **Weekly Load & Trends** - Weekly load is 83 (7d Suffer Score: 240), much lower than last 28 days (avg 1,070 per week); ride frequency and total volume are both down. - Athlete is in a recovery/maintenance phase right now, not building; trend is downward, indicating deloading. **Recovery Recommendation** - HRV (32.5) and resting HR (46) are appropriate for this athlete and consistent with recovery; combined with low session load, suggest easy/recovery or rest tomorrow—avoid high intensity until training load increases again.
Activities this week
W33 4× · 76.9 km · 3h 05m · 44 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
34.6 km
205.5w
|
Row
10.0 km
166.1w
V.Ride
17.3 km
203.9w
V.Ride
15.0 km
115.9w
|
All activities 114 sessions · 4877.2 km · 252h 00m · 6910 load
W33 1× · 34.6 km · 1h 11m · 21 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
34.6 km
205.5w
|
W32 3× · 236.0 km · 10h 00m · 188 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
71.1 km
139.4w
|
Ride
113.4 km
132.3w
|
Ride
51.5 km
101.5w
|
W31 4× · 237.2 km · 8h 53m · 137 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
85.4 km
137.9w
|
Ride
32.6 km
146.6w
|
Ride
59.6 km
160.2w
|
Ride
59.6 km
141.5w
|
W30 4× · 245.6 km · 10h 08m · 161 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
102.5 km
160.9w
|
Ride
54.7 km
149.0w
|
Ride
60.7 km
158.4w
|
Ride
27.7 km
106.4w
|
W29 8× · 489.6 km · 19h 53m · 416 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
64.9 km
127.3w
Ride
10.4 km
177.3w
Ride
39.6 km
164.6w
Ride
29.5 km
167.0w
|
Ride
35.8 km
165.6w
|
Ride
95.9 km
151.8w
|
Ride
50.4 km
130.5w
|
Ride
163.1 km
140.7w
|
W28 6× · 298.7 km · 12h 01m · 180 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
60.7 km
147.9w
|
Ride
35.8 km
149.8w
|
Ride
60.7 km
169.4w
|
Ride
57.5 km
182.1w
|
Ride
40.0 km
227.1w
|
Ride
44.0 km
110.6w
|
W26 8× · 435.1 km · 17h 30m · 293 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
54.2 km
201.0w
Ride
54.7 km
168.1w
|
Ride
54.2 km
170.7w
Ride
5.0 km
81.9w
Ride
54.3 km
158.9w
|
Ride
35.8 km
137.7w
|
Ride
94.5 km
156.1w
|
Ride
82.4 km
149.4w
|
W25 6× · 193.6 km · 8h 33m · 79 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
34.3 km
168.5w
|
Ride
0.8 km
80.8w
Ride
25.0 km
80.3w
Ride
35.0 km
126.5w
Ride
36.3 km
217.5w
|
Ride
62.2 km
159.3w
|
W23 2× · 106.0 km · 4h 35m · 239 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
35.8 km
185.3w
|
Ride
70.2 km
128.0w
|
W22 7× · 140.0 km · 6h 47m · 169 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
0.9 km
163.3w
Ride
1.1 km
102.5w
Ride
4.0 km
135.1w
|
Ride
7.4 km
288.4w
Ride
52.0 km
99.0w
Ride
38.8 km
71.6w
|
Ride
35.8 km
172.6w
|
W21 2× · 71.7 km · 3h 07m
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
35.9 km
122.0w
|
Ride
35.8 km
153.4w
|
W20 1× · 35.8 km · 1h 42m
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
35.8 km
155.9w
|
W18 1× · 198.9 km · 8h 02m · 352 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
198.9 km
145.3w
|
W17 1× · 52.7 km · 2h 05m · 61 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
52.7 km
164.8w
|
W16 1× · 161.7 km · 6h 23m · 574 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
161.7 km
178.7w
|
W15 3× · 188.1 km · 7h 39m · 451 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
79.4 km
184.4w
|
Ride
54.2 km
191.8w
Ride
54.5 km
172.4w
|
W14 1× · 35.9 km · 1h 15m · 106 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
35.9 km
213.4w
|
W11 2× · 28.0 km · 40h 00m
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
10.0 km
|
Ride
18.0 km
|
W10 6× · 387.4 km · 15h 32m · 1027 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
58.6 km
Ride
58.4 km
|
Ride
54.2 km
Ride
53.9 km
183.2w
|
Ride
35.9 km
|
Ride
126.4 km
174.4w
|
W9 2× · 125.2 km · 5h 08m · 406 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
56.4 km
|
Ride
68.8 km
|
W8 1× · 52.8 km · 2h 03m · 217 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
52.8 km
|
W7 1× · 19.7 km · 47m · 101 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
19.7 km
|
W3 1× · 52.4 km · 2h 21m · 182 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
52.4 km
|
W49 1× · 35.6 km · 1h 17m · 167 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
35.6 km
|
W46 4× · 130.3 km · 5h 38m · 375 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
3.9 km
Ride
35.5 km
Ride
55.1 km
|
Ride
35.8 km
|
W44 1× · 51.4 km · 2h 34m · 46 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
51.4 km
|
W43 1× · 3.9 km · 9m · 13 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
3.9 km
|
W42 1× · 100.0 km · 4h 33m · 334 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
100.0 km
|
W41 2× · 154.2 km · 6h 57m · 198 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
35.8 km
|
Ride
118.4 km
|
W38 1× · 54.3 km · 2h 22m · 50 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
54.3 km
|
W37 1× · 71.9 km · 3h 59m · 55 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
71.9 km
|
W36 3× · 135.5 km · 9h 20m · 97 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
38.0 km
Ride
26.7 km
|
Ride
70.8 km
|
W35 8× · 20.5 km · 1h 05m · 12 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
4.2 km
Ride
1.0 km
Ride
1.1 km
Ride
4.0 km
|
Ride
4.0 km
Ride
1.2 km
Ride
1.0 km
Ride
4.0 km
|
W34 1× · 1.1 km · 4m
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
1.1 km
|
W33 1× · 11.1 km · 1h 07m · 13 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
11.1 km
|
W32 1× · 33.1 km · 1h 51m · 20 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
33.1 km
|
W31 1× · 44.0 km · 3h 52m · 37 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
44.0 km
|
W30 3× · 15.0 km · 40m · 5 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
3.3 km
Ride
6.3 km
|
Ride
5.4 km
|
W29 1× · 45.2 km · 2h 53m · 29 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
45.2 km
|
W28 2× · 2.2 km · 9m
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
1.0 km
Ride
1.2 km
|
W27 5× · 81.1 km · 4h 01m · 70 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
22.8 km
Ride
1.1 km
Ride
1.0 km
Ride
4.1 km
|
Ride
52.1 km
|
W37 2× · 48.6 km · 2h 54m · 24 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
36.4 km
Ride
12.2 km
58.8w
|
W36 2× · 11.5 km · 39m · 5 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
5.7 km
105.7w
Ride
5.8 km
74.4w
|