Training

Strava + Apple Health → GPT-4.1 coach. Everything self-hosted.

#MihiContraMe →

YTD

Sessions Distance Time Elevation Calories
296 9855.6 km 439h 12m 26925 m 282011 kcal
1.25 ACWR
Optimal training zone Acute 31.9 · Chronic 25.5 (daily avg suffer score)

Gear

BikeSessionskm
HoneyBadger 36 2342.1 km
Hoops 33 1294.4 km
Holly Grail 15 1195.7 km
ErgBike C2 25 533.7 km
TheMule 2 62.7 km
Commuter 1 52.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 week12-mo avgvs avg
Sessions68.1 -25.9%
Distance193.9 km247.5 km -21.7%
Time7h 33m10h 54m -30.7%
Elevation224 m571 m -60.8%
Avg HR116 bpm116 bpm -0.8%
Avg HRV27.9 ms38.0 ms -26.6%
Load105399.2 -73.7%
Avg Power 152 W 158 W -4.3%

AI coaching insights

  • activity 2026-09-25

    **Today's Activity** - Today's 33.3 km ride (5400s, avg HR 108.3 bpm, avg watts 80.1, cadence 67.1, suffer score 22) is lower intensity and volume than your typical ride (avg ~21 km/ride, avg HR 112, suffer score ~159 per ride). - HR, power, cadence, and suffer score all below your usual averages; this was an easy session. - Positive: Good adherence to an easy ride; no concerning metrics. Negative: None, unless you were targeting intensity. **Weekly Load & Trends** - Weekly load is 83, which is slightly higher than your recent average (~76/week), but in line with a gradual build; no major spikes or drops. - You're trending upward, building load moderately. **Recovery Recommendation** - HRV is on the low side (31.5), and resting HR is typical (52), but with a higher weekly load and lower HRV, recommend easy or rest tomorrow for optimal recovery.

  • activity 2026-09-23

    **Today's Activity** Session was a typical steady-state effort: 2 hours at 171.8W, 117.6 bpm, 71 rpm. All metrics (HR, power, cadence, suffer score 27) were below your recent averages, indicating a moderate session with low strain—good aerobic work, no concerns. **Weekly Load & Trends** Current weekly load (83) is steady, not unusually high or low; 7-day (243) and 28-day (4,281) Suffer Scores show consistent training. No sharp spikes or drops—you're holding a maintenance pattern, not building or tapering. **Recovery Recommendation** HRV (31.5) and resting HR (52) are typical and not suppressed, but the moderate load and today's low strain indicate you're handling volume well. Go easy or consider active recovery tomorrow—no need to push hard.

  • activity 2026-09-22

    **Today's Activity** - This 15,000m BikeErg (VirtualRide) was well below your typical ride efforts in both volume and intensity. - Average HR (109.9 bpm), power (146.9 W), cadence (65.8), and suffer score (6) were all lower than your 28-day averages (avg HR ~112, suffer score ~153). - Positives: Good aerobic session with no signs of excessive fatigue; no concerns. **Weekly Load & Trends** - Your weekly load (83) is significantly lower than your recent 28-day average (4281/4 ≈ 1070), indicating a substantial drop this week. - You are in a clear recovery phase with no concerning acute spikes. **Recovery Recommendation** - With HRV (37) and resting HR (51) in typical ranges plus low weekly load, you can choose an easy aerobic session or a rest day; avoid a hard effort tomorrow.

  • activity 2026-09-22

    **Today's Activity** Today's session (Virtual Ride/Erg) was shorter and lighter than their norm, with a suffer score of 11 vs a recent ride average of ~148, lower power (185.9W) and cadence (56.2) than typical real-ride efforts, and avg HR of 120.3 vs recent 112.4. Positive: maintained good aerobic control; Concern: effort was well below recent averages—could indicate intentional recovery or low motivation. **Weekly Load & Trends** Weekly load (83) is typical, with 10 sessions and no signs of big spikes or sudden drops—athlete is maintaining rather than building or recovering. 7-day suffer score (222) is much lower than 28-day (4281), confirming a steady week. **Recovery Recommendation** HRV (37) and resting HR (51) indicate moderate recovery; since load and HR responses are mild, recommend an easy to moderate session tomorrow, not full rest, unless more fatigue is felt.

  • activity 2026-09-22

    **Today's Activity (Rowing: 10,000m, 42:54, Avg HR: 125, Avg Power: 162.7W, Cadence: 21.7, Suffer Score: 15):** - Effort was steady and submaximal, well below typical bike session intensity; lower HR, power, and suffer score indicate an easy/recovery focus. - HR (125, 77% of weekly avg), low power, and cadence all conservative; suffer score (15) far below ride averages (219+). - Positive: Good aerobic flush and cross-training stimulus; no red flags. **Weekly Load & Trends:** - Weekly load at 83 is slightly below recent averages (down from a 28-day suffer score average of ~153/wk); trending towards maintenance or slight deload. - No concerning spikes or drops; load is consistent and manageable. **Recovery Recommendation:** - With HRV at 37 (on the low end) and resting HR at 51, plus low session intensity, recommend an easy to moderate session tomorrow—avoid maximal efforts to allow full recovery.

Activities this week

W39 6×  ·  193.9 km  ·  7h 32m  ·  105 load
MonTueWedThuFriSatSun
V.Ride 56.4 km 167.5w
Row 10.0 km 162.7w
V.Ride 22.3 km 185.9w
V.Ride 15.0 km 146.9w
V.Ride 56.9 km 171.8w
Ride 33.3 km 80.1w
All activities 128 sessions · 5840.1 km · 291h 43m · 7771 load
W39 1×  ·  33.3 km  ·  1h 30m  ·  22 load
MonTueWedThuFriSatSun
Ride 33.3 km 80.1w
W38 2×  ·  134.5 km  ·  5h 34m  ·  160 load
MonTueWedThuFriSatSun
Ride 34.3 km 166.8w
Ride 100.2 km 122.7w
W37 3×  ·  249.3 km  ·  10h 58m  ·  177 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 34.6 km 205.5w
Ride 157.2 km 129.9w
W32 3×  ·  236.0 km  ·  10h 00m  ·  188 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 35.8 km 185.3w
Ride 70.2 km 128.0w
W22 7×  ·  140.0 km  ·  6h 47m  ·  169 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 35.9 km 122.0w
Ride 35.8 km 153.4w
W20 1×  ·  35.8 km  ·  1h 42m
MonTueWedThuFriSatSun
Ride 35.8 km 155.9w
W18 1×  ·  198.9 km  ·  8h 02m  ·  352 load
MonTueWedThuFriSatSun
Ride 198.9 km 145.3w
W17 1×  ·  52.7 km  ·  2h 05m  ·  61 load
MonTueWedThuFriSatSun
Ride 52.7 km 164.8w
W16 1×  ·  161.7 km  ·  6h 23m  ·  574 load
MonTueWedThuFriSatSun
Ride 161.7 km 178.7w
W15 3×  ·  188.1 km  ·  7h 39m  ·  451 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 35.9 km 213.4w
W11 2×  ·  28.0 km  ·  40h 00m
MonTueWedThuFriSatSun
Ride 10.0 km
Ride 18.0 km
W10 6×  ·  387.4 km  ·  15h 32m  ·  1027 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 56.4 km
Ride 68.8 km
W8 1×  ·  52.8 km  ·  2h 03m  ·  217 load
MonTueWedThuFriSatSun
Ride 52.8 km
W7 1×  ·  19.7 km  ·  47m  ·  101 load
MonTueWedThuFriSatSun
Ride 19.7 km
W3 1×  ·  52.4 km  ·  2h 21m  ·  182 load
MonTueWedThuFriSatSun
Ride 52.4 km
W49 1×  ·  35.6 km  ·  1h 17m  ·  167 load
MonTueWedThuFriSatSun
Ride 35.6 km
W46 4×  ·  130.3 km  ·  5h 38m  ·  375 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 51.4 km
W43 1×  ·  3.9 km  ·  9m  ·  13 load
MonTueWedThuFriSatSun
Ride 3.9 km
W42 1×  ·  100.0 km  ·  4h 33m  ·  334 load
MonTueWedThuFriSatSun
Ride 100.0 km
W41 2×  ·  154.2 km  ·  6h 57m  ·  198 load
MonTueWedThuFriSatSun
Ride 35.8 km
Ride 118.4 km
W38 1×  ·  54.3 km  ·  2h 22m  ·  50 load
MonTueWedThuFriSatSun
Ride 54.3 km
W37 1×  ·  71.9 km  ·  3h 59m  ·  55 load
MonTueWedThuFriSatSun
Ride 71.9 km
W36 3×  ·  135.5 km  ·  9h 20m  ·  97 load
MonTueWedThuFriSatSun
Ride 38.0 km
Ride 26.7 km
Ride 70.8 km
W35 8×  ·  20.5 km  ·  1h 05m  ·  12 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 1.1 km
W33 1×  ·  11.1 km  ·  1h 07m  ·  13 load
MonTueWedThuFriSatSun
Ride 11.1 km
W32 1×  ·  33.1 km  ·  1h 51m  ·  20 load
MonTueWedThuFriSatSun
Ride 33.1 km
W31 1×  ·  44.0 km  ·  3h 52m  ·  37 load
MonTueWedThuFriSatSun
Ride 44.0 km
W30 3×  ·  15.0 km  ·  40m  ·  5 load
MonTueWedThuFriSatSun
Ride 3.3 km
Ride 6.3 km
Ride 5.4 km
W29 1×  ·  45.2 km  ·  2h 53m  ·  29 load
MonTueWedThuFriSatSun
Ride 45.2 km
W28 2×  ·  2.2 km  ·  9m
MonTueWedThuFriSatSun
Ride 1.0 km
Ride 1.2 km
W27 5×  ·  81.1 km  ·  4h 01m  ·  70 load
MonTueWedThuFriSatSun
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
MonTueWedThuFriSatSun
Ride 36.4 km
Ride 12.2 km 58.8w
W36 2×  ·  11.5 km  ·  39m  ·  5 load
MonTueWedThuFriSatSun
Ride 5.7 km 105.7w
Ride 5.8 km 74.4w