Training
Strava + Apple Health → GPT-4.1 coach. Everything self-hosted.
YTD
| Sessions | Distance | Time | Elevation | Calories |
|---|---|---|---|---|
| 201 | 6310.9 km | 293h 47m | 11709 m | 190576 kcal |
HR & HRV — last 90 days
Resting heart rate and HRV (SDNN) with daily training load overlay.
Weekly training — 12 months
km per week (bars) with average heart rate and HRV trend lines.
This week
| This week | 12-mo avg | vs avg | |
|---|---|---|---|
| Sessions | 7 | 8.1 | -13.6% |
| Distance | 352.9 km | 211.9 km | +66.5% |
| Time | 13h 59m | 9h 48m | +42.8% |
| Elevation | 1224 m | 379 m | +222.3% |
| Avg HR | 116 bpm | 116 bpm | -0.3% |
| Avg HRV | 43.1 ms | 38.1 ms | +13.1% |
| Load | 246 | 376.4 | -34.6% |
AI coaching insights
No insights stored yet.
Activities this week
W26 7× · 352.7 km · 13h 59m · 246 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Ride
54.7 km
Ride
54.2 km
|
Ride
54.3 km
Ride
5.0 km
Ride
54.2 km
|
Ride
35.8 km
|
Ride
94.5 km
|
All activities 100 sessions · 1072.5 km · 77h 28m · 3872 load
W23 1× · 10.0 km · 42m · 59 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W22 1× · 10.0 km · 42m · 55 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W21 2× · 20.0 km · 1h 24m · 71 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W20 1× · 10.0 km · 41m · 66 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W19 3× · 41.1 km · 2h 57m · 106 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
21.1 km
|
Row
10.0 km
|
Row
10.0 km
|
W16 1× · 10.0 km · 43m · 51 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W14 1× · 10.0 km · 41m · 57 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W13 1× · 10.0 km · 42m · 37 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W12 3× · 63.3 km · 4h 36m · 219 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
21.1 km
|
Row
21.1 km
|
Row
21.1 km
|
W11 2× · 31.1 km · 2h 16m · 114 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
21.1 km
|
W9 2× · 20.0 km · 1h 26m · 113 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W8 2× · 20.0 km · 1h 28m · 115 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W7 2× · 20.0 km · 1h 29m · 67 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W52 4× · 11.1 km · 46m · 72 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
0.5 km
Row
0.5 km
Row
0.1 km
|
W51 3× · 30.0 km · 2h 07m · 181 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W50 2× · 20.0 km · 1h 24m · 137 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W49 2× · 20.0 km · 1h 24m · 146 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W46 2× · 20.0 km · 1h 24m · 132 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W45 2× · 20.0 km · 1h 24m · 162 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W44 2× · 20.0 km · 1h 24m · 147 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W43 1× · 10.0 km · 42m · 64 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W42 2× · 20.0 km · 1h 24m · 132 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W41 2× · 20.0 km · 1h 23m · 58 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W40 1× · 10.0 km · 43m · 41 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W39 1× · 10.0 km · 43m · 23 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W38 2× · 20.0 km · 1h 25m · 54 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W37 1× · 10.0 km · 41m · 43 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W36 3× · 41.1 km · 2h 58m · 93 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
21.1 km
|
Row
10.0 km
|
W35 3× · 30.0 km · 2h 06m · 129 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W34 2× · 20.0 km · 1h 23m · 63 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W33 3× · 27.1 km · 1h 54m · 68 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
7.1 km
|
W32 2× · 20.0 km · 1h 29m · 31 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
W31 2× · 23.7 km · 1h 42m · 54 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
13.7 km
|
W30 4× · 54.9 km · 3h 58m · 115 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
21.1 km
|
Row
10.0 km
|
Row
13.8 km
|
W29 3× · 33.4 km · 2h 26m · 86 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
13.4 km
|
Row
10.0 km
|
W28 3× · 41.1 km · 2h 58m · 99 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
21.1 km
|
Row
10.0 km
|
Row
10.0 km
|
W27 3× · 30.0 km · 2h 07m · 98 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W26 1× · 10.0 km · 44m · 23 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W43 2× · 31.1 km · 2h 21m · 90 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
21.1 km
|
Row
10.0 km
|
W42 3× · 30.0 km · 2h 13m · 57 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W41 3× · 30.0 km · 2h 15m · 58 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W40 1× · 10.0 km · 46m · 10 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
W39 4× · 40.0 km · 2h 56m · 104 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W38 3× · 30.0 km · 2h 13m · 66 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W37 3× · 30.0 km · 2h 13m · 67 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
10.0 km
|
Row
10.0 km
|
W36 3× · 23.5 km · 1h 43m · 39 load
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
|
Row
10.0 km
|
Row
6.9 km
|
Row
6.6 km
|