Training
Strava + Apple Health → GPT-4.1 coach. Everything self-hosted.
YTD
| Sessions | Distance | Time | Elevation | Calories |
|---|---|---|---|---|
| 367 | 11032.0 km | 485h 04m | 27879 m | 317916 kcal |
Gear
| Bike | Sessions | km |
|---|---|---|
| HoneyBadger | 40 | 2480.6 km |
| ErgBike C2 | 74 | 1513.3 km |
| Hoops | 33 | 1294.4 km |
| Holly Grail | 15 | 1195.7 km |
| TheMule | 2 | 62.7 km |
| Commuter | 2 | 62.4 km |
HR & HRV — last 90 days
Resting heart rate and HRV (SDNN) with daily training load and sleep 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 | 8 | 8.7 | -8.0% |
| Distance | 70.7 km | 253.6 km | -72.1% |
| Time | 3h 09m | 11h 06m | -71.6% |
| Elevation | — | 585 m | -100.0% |
| Avg HR | 118 bpm | 115 bpm | +2.2% |
| Avg HRV | — | 37.2 ms | |
| Load | 147 | 385.0 | -61.8% |
| Avg Power | 129 W | 158 W | -18.6% |
AI coaching insights
-
**Today's Activity** - Today's 15,008m BikeErg was short and easy, well below your average session for distance, duration, and difficulty. - Average HR (105.3), power (111.1W), cadence (70.9), and suffer score (8) were all lower than weekly (~112 bpm avg HR, ~83 WL), showing clear active recovery status. - Positive: Kept effort light, suggesting good discipline for recovery. No concerns—just ensure you're fueling and hydrating well. **Weekly Load & Trends** - Current weekly load (83) is moderate and aligned with your recent pattern; no sharp spikes or drops in intensity. - You're in a maintenance phase, not ramping up or dropping volume—appropriate for late-season or post-peak block. **Recovery Recommendation** - HRV (26.3) is low and resting HR (56) is a touch high for you, indicating accumulated fatigue. - Take an easy/recovery day tomorrow; avoid high intensity or big volume. Focus on rest and supportive recovery habits.
-
**Today's Activity** - This 3x20min interval on the BikeErg (29.6 km, 198 W avg, 129 bpm avg HR, 58 rpm avg cadence, Suffer Score 64) is at the higher end of your average effort (avg ride HR: ~112 bpm; avg watts, cadence not available for all rides), indicating a solid threshold session with sustained intensity. - HR (129 vs 112 avg), power (198.3 W), and Suffer Score (64 vs avg per session ~41) are all elevated; cadence is in a typical endurance range. - Standout: Strong, consistent effort above average intensity; no concerning max HR. Slightly lower cadence may indicate fatigue or focus on power. **Weekly Load & Trends** - Weekly load is 83 so far, within your 7-day (416) and 28-day (4281) Suffer Score trends; typical for you (~10 sessions/week). - Trend is maintaining/building, with no major spikes or drops; volume is steady and controlled. **Recovery Recommendation** - HRV is slightly low (26.3), and resting HR is at baseline (56); coupled with a hard session today, this suggests you should take an easy aerobic or rest/recovery day tomorrow.
-
**Today's Activity** Today's BikeErg session was very short and low intensity (28s, 237.9m), with HR (100.7), power (223.7W), cadence (62.6) all below your average, and a suffer score of 0. This is far lighter than your normal efforts—no concerns, but this looks like a technique or warm-up drill, not a training load contributor. **Weekly Load & Trends** Weekly load is 83, much lower than typical (recent 7d: 352 suffer score, 10 sessions), showing a drop compared to recent workload (4281 over 28d). You're clearly in a recovery or down week—no spikes, just a notable reduction. **Recovery Recommendation** HRV (26.3) and resting HR (56) are both within normal range given the decreased load; you're recovering well. Suggest one more easy or moderate session tomorrow—no need to go hard yet, let the body soak up recovery benefits.
-
**Today's Activity** - This 30-min BikeErg session (13.4 km, 110 avg HR, 149W, 74 cadence, suffer score 8) is below the athlete's typical ride intensity and duration. - HR (110.1) is slightly below recent average (112.4), power moderate, cadence typical, and suffer score much lower than weekly (avg 35/session). - Positives: Kept effort very aerobic, showing good control. Concern: Session does not add much training stimulus; may be a recovery or maintenance ride. **Weekly Load & Trends** - Weekly load (83) is in the maintain/recovery range, much lower than recent 28d average weekly suffer score (~1070); 7d (352) is also low. - The number of sessions (10) and step count (7975) indicate moderate activity; overall, the athlete is in a light training week with no concerning spikes. **Recovery Recommendation** - HRV (26.3) and resting HR (56) are normal; with low training load, athlete is likely adequately recovered. - Recommendation: Easy or moderate session tomorrow is appropriate—can resume build if feeling fresh, but ensure gradual ramp-up.
-
**Today's Activity (Rowing: 2,337m, 848s, 59.9W, 23.1 cadence, 117 kcal)** - This rowing session is a light cross-training effort compared to your usual cycling volume and intensity. - No HR data recorded; power and cadence are moderate, but suffer score is not available, so likely low impact given your usual bike work. - Positive: Good to see cross-training and easy aerobic work; no concerns, just keep HR/wattage logged for better analysis. **Weekly Load & Trends** - This week’s load (83) is below your recent 28-day average (1,074 weekly), showing a marked drop; you are in a recovery phase. - No load spikes; trending lighter, likely by design or enforced downtime. **Recovery Recommendation** - HRV (26.3) is below baseline; resting HR (56) is typical, but lower load supports recovery. - Recommend another easy/recovery day or rest; avoid hard training until HRV rebounds.
Activities this week
W46 8× · 70.6 km · 3h 09m · 147 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
7.2 km
180.5w
Row
1.2 km
34.8w
Row
1.7 km
77.4w
Row
2.3 km
59.9w
|
V.Ride
13.4 km
149.4w
V.Ride
0.2 km
223.7w
V.Ride
29.6 km
198.3w
V.Ride
15.0 km
111.1w
|
All activities 133 sessions · 5989.0 km · 297h 29m · 7983 load
W45 1× · 59.4 km · 2h 16m · 96 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
59.4 km
103.7w
|
W44 1× · 34.4 km · 1h 14m · 52 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
34.4 km
146.2w
|
W40 2× · 20.9 km · 1h 02m · 35 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
10.6 km
101.5w
Ride
10.3 km
100.6w
|
W39 2× · 67.5 km · 2h 42m · 51 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
33.3 km
80.1w
|
Ride
34.2 km
81.0w
|
W38 2× · 134.5 km · 5h 34m · 160 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
34.3 km
166.8w
|
Ride
100.2 km
122.7w
|
W37 3× · 249.3 km · 10h 58m · 177 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
60.2 km
156.2w
|
Ride
110.4 km
110.9w
|
Ride
78.7 km
116.7w
|
W35 3× · 191.9 km · 7h 14m · 201 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
54.2 km
164.6w
Ride
54.5 km
143.5w
|
Ride
83.2 km
127.8w
|
W34 4× · 196.7 km · 7h 23m · 94 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
38.4 km
173.7w
|
Ride
59.4 km
160.2w
|
Ride
11.9 km
|
Ride
87.0 km
151.5w
|
W33 2× · 191.8 km · 8h 12m · 228 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
34.6 km
205.5w
|
Ride
157.2 km
129.9w
|
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
|