Connect your Garmin account
Paste your Garmin Personal API key (Garmin Connect on the web → Personal API Key). It's saved on this Mac only, readable just by you, at ~/.config/garmin/connect-personal-api-key.
Hello
In the 28 days to — you trained — hours across — sessions. Your latest overnight HRV status is —.
The 28 days to —, compared with the 28 days before. Green means better, red means worse. Small charts show the last 12 weeks, with this week highlighted.
Training totals
Recovery daily averages
Health check
Recent activities See all
Your A race
Tap a session for the full workout. Sessions tick off automatically when a matching Garmin activity syncs (same sport, at least half the planned time). Key sessions are the ones to protect if your week gets busy.
How to train well for this race
- Keep most of it easy. About 80% of your time should be in zones 1–2, where you can hold a conversation. Easy days build the engine; keep them easy so the key sessions can be quality.
- The long ride matters most. The bike is about half your race time. Protect the Sunday ride, and build to about 3h45 by early May.
- Consistency beats catching up. If you miss a session, let it go. Don't stack it onto the next day.
- Practise race nutrition. On every session over 90 min, eat and drink what you'll use on race day: 60–80 g carbohydrate an hour on the bike.
- Bricks and open water. Short runs straight off the bike from February, and wetsuit sea swims from late April, take the surprises out of race day.
- Respect recovery. Take the recovery weeks and your Saturday rest day, and aim for 7–9 hours of sleep. If the readiness check above says to take it easy, swap the hard session for an easy one.
- Pain isn't a training stimulus. Sharp or worsening pain, or illness below the neck, means rest. See a physio or GP if it lasts more than a few days.
Planned against done
Hours per week. Outlined bars are planned and filled bars are what you've done (from Garmin), coloured by phase. Click a week to open it above.
Your zones and paces
Enter test results
After the week-2 tests (or any time you re-test), enter your numbers here. The plan rebuilds straight away with your new zones and paces. Leave a box empty to keep using the estimate.
Race-day plan
How your plan has adapted
Each Monday (on the first sync of the week) the plan looks at what you did last week and how you're recovering: resting heart rate, HRV and sleep. It then eases, holds or progresses the week ahead. If you're clearly run down on a given day, that day's hard session is made easy too.
Kit checklist
Training guidance, not medical advice. If you have a heart condition, chest pain, dizziness or an injury, check with a GP before ramping up. The plan comes from make_plan.py in your garmin-dashboard folder: ask Claude to adjust hours, dates or zones.
Diagrams show the start and finish of each movement (the nearer arm and leg are solid). Stop any exercise that causes sharp pain. Sessions tick off when a matching Garmin activity syncs.
Weekly training hours
Activity time per week (Monday start), by sport.
- Cycling
- Running
- Swimming
- Other
By sport
Totals over the last 12 months. Load is Garmin's training load, summed.
| Sport | Sessions | Hours | km |
|---|
All activities
| Date | Activity | km | Minutes |
|---|
Each dot is one session and the line is the monthly median. Higher on the pace charts is always faster. Change compares the median of your earliest sessions this year with your latest ones (up to 10 of each). Distance per heartbeat is average speed divided by average heart rate: covering more ground for the same effort means your aerobic fitness is improving.
Running
Pace, min/km
Distance per heartbeat, monthly median, m
Cycling
Average speed, km/h (rides of 10 minutes or more)
Distance per heartbeat, monthly median, m
Pool swimming
Pace, min/100 m
Distance per heartbeat, monthly median, m
Each chart has a short guide to what good looks like. It is general guidance based on Garmin's own ranges and common health targets, not medical advice. Your own trend over time matters more than any single day.
Resting heart rate
Daily value and 7-day average, bpm.
- 7-day average
- Daily
- Above your usual range
On track. Your 7-day average is — bpm, — against your usual — bpm.
Running high. Your 7-day average is — bpm, — above your usual — bpm. Consider an easier day and prioritise sleep.
What good looks like: steady or slowly falling over months. Days when your 7-day average reached — bpm or more (— above your usual) are shaded; there were — in the last 28 days. A rise like that often follows fatigue, illness, stress, alcohol or poor sleep.
Steps
Average daily steps for each week.
- On target
- Below target
On track. You've averaged — steps a day over the last 28 days, — against the — target.
Below target. You've averaged — steps a day over the last 28 days, — short of the — target.
What good looks like: around — steps a day or more (dashed line), the level research links with clear health benefits. Weeks below it are highlighted: — of the last 12.
Body Battery and stress
Daily Body Battery range (lowest to highest) with average stress level. Both on Garmin's 0–100 scale.
- Body Battery range
- Average stress
- Low recharge or high-stress day
Recovering well. Over the last 28 days your Body Battery peaked at — on average and stress averaged —.
Recovery under strain. Over the last 28 days your Body Battery peaked at — on average, with — days peaking below —, and stress averaged —.
What good looks like: recharging to — or more overnight, with stress mostly under — (rest) or — (low). Days that peaked below — are marked along the top of the chart (— in the last 28 days) and days with stress above — are dotted (—).
Sleep stages
Average hours per night in each stage, by week.
- Deep
- REM
- Light
- Awake
- Week under target
On track. You've averaged — hours a night over the last 28 days, with —% deep sleep and —% REM.
Short on sleep. You've averaged — hours a night over the last 28 days, with — nights under — hours.
What good looks like: —–— hours a night, roughly —–—% deep and —–—% REM. Weeks averaging under — hours are marked above their bar; you had — short nights in the last 28 days.
Overnight HRV
Nightly average (dots), 7-day average (line) and Garmin's balanced range for you (band), ms.
- Balanced range
- 7-day average
- Nightly
- Outside your range
Balanced. Your 7-day average is — ms, inside your balanced range of —–— ms.
Below your range. Your 7-day average is — ms, under your balanced range of —–— ms. That often follows hard training, illness, stress, alcohol or short sleep.
Above your range. Your 7-day average is — ms, over your balanced range of —–— ms, which can also mean you're out of balance.
What good looks like: the 7-day average staying inside your shaded band. Days it left the band are dotted on the line: — in the last 28 days. HRV varies a lot between people, so only compare it with your own baseline.
Weight
Each dot is a day you weighed in (the average if you logged more than once), kg. The shaded span is the roughly 12-week period the status compares.
- Weigh-in
- Goal
- Compared period
Heading toward your goal. Your latest weigh-in was — kg on —, — kg since — and — kg from your — kg goal.
Holding steady. Your latest weigh-in was — kg on —, — kg since —, and — kg from your — kg goal.
Moving away from your goal. Your latest weigh-in was — kg on —, — kg since —, now — kg from your — kg goal.
Your trend. Your latest weigh-in was — kg on —, — kg since —. Set a weight goal in Garmin Connect to track progress against it.
What good looks like: a gradual trend toward your goal. When losing weight, about —–— kg a week is a commonly recommended pace; over the compared period you averaged — kg a week. Day-to-day swings of —–— kg are mostly water, so judge the trend over weeks.
Tip: you last weighed in — days ago and have — weigh-in days logged. Weighing in once or twice a week, at the same time of day, makes this trend much clearer.
Body composition
From your Eufy scale, synced to Garmin Connect by eufy-sync. One point per weigh-in day.
Body fat, %
Muscle mass, kg
Waiting for your first reading. No body composition readings have reached Garmin yet. Weigh in on your Eufy scale, let eufy-sync send it, then refresh the dashboard and this section fills in.
First reading in. Body fat is —% and muscle mass — kg. Trends appear after a few more weigh-ins.
Heading the right way. Body fat is —% (— points) and muscle mass is — kg (— kg) since —.
Holding steady. Body fat is —% (— points) and muscle mass is — kg (— kg) since —.
Worth a look. Body fat is —% (— points) and muscle mass is — kg (— kg) since —. If you're losing weight, keep protein up and strength training in to hold on to muscle.
What good looks like: body fat steady or trending down while muscle mass holds or rises. As a rough guide, healthy body fat is about —–—% for men and —–—% for women, and a BMI of —–— is the standard healthy range (it can read high for muscular people). For visceral fat, lower is better; the EufyLife app shows its own healthy band for your scale.
Tip: smart scales estimate body composition from a small electrical current, so readings shift with hydration, meals and exercise. Weigh in at the same time each day, ideally after waking, and judge the trend over weeks.
Data from your Garmin Connect account via the Personal API, up to —. Eufy scale readings arrive through Garmin via eufy-sync.