Getting started
Welcome to TEMPO. Three steps and you're training:
- Connect your Garmin or Strava account.
- Add your races and goals for the season — triathlon, running (road, trail or ultra), cycling (road, gravel, mountain bike or time trial), swimming, swimrun, duathlon, and HYROX all get their own periodization, taper, and session mix.
- Follow your plan. TEMPO adapts it as life happens.
Signing in
TEMPO is built around your training history, so everything sits behind your account. Opening the app without being signed in takes you to the sign-in screen; Create account on that screen sets up a new one, and you're signed in straight away.
A brand-new account starts genuinely empty — no races, no zones, no plan, no connected wearables — so your first run through the steps above is what fills it in. Nothing carries over from anyone who used the same browser before you.
If you followed a link to a particular page while signed out, signing in takes you to that page rather than dropping you on the home screen. Sessions last until they expire, after which TEMPO asks you to sign in again.
Your light/dark preference follows you between the TEMPO website and the app, so the two always look the same.
Connecting Garmin and Strava
The gear icon in the header opens the Settings page, with everything grouped into four areas down the left side: Athlete (your profile, goals, plan & availability, zones and nutrition), Coach (how the AI coach connects and behaves, its knowledge, and your plan history), Data (wearables, sync and the coach's tools), and Account (sign-in, privacy and data).
Open Settings → Wearables & apps. Each service that isn't connected yet shows one button — Connect Garmin or Connect Strava — and one line telling you what, if anything, it is waiting on.
- The first time you connect, TEMPO asks for your permission to sync your training data — one tap on Allow & connect, right there on the card. You can withdraw that permission any time in Settings → Privacy & data → Data & consent (withdrawing erases the synced data immediately).
- Strava opens a small Strava window asking you to approve access; approve it and the card flips to connected on its own. Approving the write permission there is what later lets TEMPO title your Strava activities (see below) — it's optional.
- The moment a service connects, TEMPO starts your first sync by itself — no extra button to find. After that, syncs run on a schedule and you can Force sync whenever you like.
- A scheduled sync looks for new activities every time, so a finished workout shows up within one cycle of your chosen interval. Your slower-moving numbers — sleep, HRV, stress, body battery, readiness, VO2max, FTP — are refreshed at most every half hour, because your watch only updates them a few times a day and asking more often just makes every sync slower. If you want everything refreshed right now, Force sync always pulls the lot.
- A connected card also offers Test (a quick health check of the connection) and a quiet Disconnect — disconnecting stops future syncing but keeps what's already synced.
Once at least one service is connected you can pick your Main data source just below the card — that's the service TEMPO pulls from automatically.
Your dashboard shows readiness, fitness and your next race the moment data syncs. Readiness now also reflects your all-day stress (from your watch) alongside sleep and HRV.
Until last night's sleep has synced from your watch, the Readiness card says Pending and tells you why ("last night's sleep hasn't synced yet"). That is deliberate: before the night is logged, the numbers on your watch are still last night's — the body battery you went to bed with, no sleep score, no HRV — and they say nothing about today. The coach waits for the night too: its morning check-in holds for up to three hours after your morning hour until the sleep record lands, and it never changes a session on pending data.
Your plan is built around you
The plan isn't a stock template — TEMPO starts from a library of proven base plans and tailors one to you, using what you tell it. The three settings below are the ones worth getting right:
- Your races (Settings → Goals & races). Add every race, not just the big one, and mark each A, B or C — or leave it on Auto and TEMPO picks for you (your first upcoming race is the A, later ones B, sprints C; an "auto" hint shows where it chose, and your own pick always wins). Two A-races less than two weeks apart get a note here: they're planned as one peak. Your A-race decides what the season is for; B-races get their own small cutback week, C-races just get noted so you're not surprised. Two A-races months apart? You'll get two peaks with a rebuild between them, not one. No A-race on the list yet? Your next B-race becomes the season's target — full build, peak and taper — until you add one. Adding, say, a marathon in the middle of a triathlon season shifts the plan toward running for a while — but it won't quietly drop your bike and swim. That only changes if you change your main goal. Each race also takes links — the start list, the course map, live tracking, the hotel booking — and they're waiting for you on race day itself, so you're not digging through email on the start line (the event site and the start list are also where TEMPO looks for your bib number and the schedule). If you already know your bib or your start time, type them on the race and the briefing uses yours.
- Your weekly hours (Settings → Plan). Tell TEMPO how much time you actually have and your weekly targets scale to it — set eight hours and you get eight hours' worth of sessions, split across your sports.
- Your zones (Settings → Zones). Your FTP, threshold pace and swim CSS get written straight into every session, so you read Key bike 105-120 min · Z2 (150-199W) — your numbers, not a generic "ride easy", and the same range reaches your watch. Typed a number yourself? It always wins. Left a sport blank? TEMPO fits one from your own recent training instead, and says so ("Z4 · 310-358 W, from your training, 5 Sep") — and if that estimate is missing, unsure of itself, or getting old, a real test session (a 20-minute bike effort, a 30-minute run, a short swim) appears on your plan in place of a normal key session, so the numbers stay honest.
- Your targets and ambition (Settings → Goals & races → Performance targets). Tell TEMPO a number you're chasing — an FTP, a threshold pace, a race time, and by when — or just say it in chat, or write it in your goals text ("reach 410 W FTP, 3:25/km threshold run, 1:20 CSS") and TEMPO reads those as targets until you type your own — and your coach works out the real gap: how far you have to go, the rate a focused block can actually close, and an honest read on whether your date is realistic. It will tell you plainly when a target is a stretch, or when the date needs to move. Raising your ambition (finish → improve → compete → podium → elite) can bump your plan up a level; it changes what you're asked to do, not what you're actually capable of today.
Whatever the gap to your next race, the season is built as a sequence of blocks rather than one week repeated. After a race you get an easy week to come down, then a general-preparation block that rebuilds the engine, then development blocks that each concentrate on one sport at a time — your coach names it your limiter: whichever sport sits furthest from your own target and furthest behind what your race distance asks of it — while the other two hold a maintenance dose so nothing goes backwards. Closer to the race the work turns specific, then a short sharpening peak, then the taper and race week. You can see which block you are in on the home banner and on the Plan page; the chip over a week and the sessions inside it always say the same thing.
Each block starts a little bigger than the one before, up to the weekly ceiling you set in Settings → Plan, and rises and falls inside itself — three weeks building, one lighter. Each also decides how many hard sessions your week carries and what kind they are (sweet spot early, threshold and VO2 in a development block, race-pace work and bricks near the race), and it ends with a short test so the numbers your plan is written from stay honest. Whether the next session on a progression is harder than the last is decided by what you actually did: complete them, in your bands, at an effort you could survive, and you move up; miss or blow up on two and you drop back a step. And if a week's easy-versus-hard split drifts away from what the block is for, the coach says so in a note — it will not quietly rewrite your week.
The numbers behind the plan — how long your taper is, how often a deload week comes, how fast your load may grow, what a low HRV or a low readiness score is allowed to change, when a run of missed sessions means the plan should be rebuilt — are set by the science, automatically. Your taper follows the length of your race (a sprint gets about six days, a full-distance race three weeks), a deload week arrives every fourth week, or every third once you are past fifty, or past forty with your recovery lagging, and your HRV is judged against your own recent baseline rather than a fixed number. Each session is sized by what it is for. A threshold or tempo workout keeps its own length, and a bigger week makes your easy sessions longer instead. No run is planned more than 10 % longer than your longest run of the last four weeks, and no ride or swim more than 20 % longer than your longest ride or swim. If you haven't done a real session of that sport lately, an easy workout is never stretched past twice its own length. If a week can't reach its target without breaking those limits, it comes out short rather than padding a session. The coach tells you how short, and may suggest adding a second easy session that day or another day. Whether you add it is up to you. If a session on your plan is still longer than its limits allow, including one you added yourself, the coach points it out. It shortens only the sessions it wrote. You don't have to touch any of it. If you know why you want something different, Settings → Coaching rules lists every one of those numbers with the doctrine card it comes from and its evidence grade, and lets you change it — at your own risk. The coach will then say a number is set by you instead of citing the card. A few limits stay put whatever you type (you can make the plan more cautious, never less safe), and leaving a field blank returns that rule to the science. One race that needs a different taper? Set it on the race itself in Goals & races, and the rest of the season keeps the default.
TEMPO also reads your recent training to pick the right base plan for you: it estimates your level — beginner through pro — from your weekly volume and your longest recent ride or run, and picks a plan length that matches how much runway you have to your A-race. That level adjusts automatically as your training history grows, and every session scales to match your fitness while your zones stay exactly yours. If you come back from a break, your plan starts from the volume you have actually been training and builds back up week by week — it does not stay small, and it does not jump. If you'd rather set it yourself — say you're coming back from a break and know you're not where your volume suggests — Settings → Plan → Athlete level lets you pick a fixed level (Beginner through Pro) instead of the automatic one; leave it on Auto (recommended) to keep letting TEMPO infer it.
Starting a brand-new plan? In Settings → Plan you'll find "Start a new plan with a recovery week (Recommended)", on by default — it eases you in with one lighter, active-recovery week before training ramps up, instead of dropping you straight into week one.
Every session in your plan can also carry a ready-made structured workout, not just a text description — so when it pushes to your Garmin, it sends the exact intervals TEMPO intended, not an approximation. Strength, mobility and HYROX sessions show you exactly what to do: each movement with its sets, reps (or seconds held), the load — a weight, an RPE, "bodyweight", or a percentage of your one-rep max — and how long to rest between sets. Open any session from the plan, the calendar or the home feed to see the full list.
Your gym work follows the same season your endurance training does. Early on it builds general strength; later it turns into a real max-strength block; closer to your race it converts to short, explosive power work instead of heavy sets; in the two weeks right before a race it drops to light maintenance only, whatever else is going on. Log your sets on your watch and TEMPO works out your own current one-rep max per lift from your best recent set, so a prescription reads in your kilograms — not a guessed effort — the moment you've given it something to learn from; until then it prescribes a clear effort level instead of inventing a number. Building muscle for its own sake is something you opt into (Strength is for → Building muscle in Settings → Goals & races) — left alone, gym work supports your endurance season rather than adding bulk you didn't ask for.
Every session in your plan comes with its full workout, not just a line of text. Open any day and you will see what it is in plain language, then the steps themselves — warm-up, the main set with your own paces, powers or heart-rate ranges, and the cool-down. Gym and mobility sessions list the actual movements, sets, reps and loads. The same structure is what "Download .FIT" gives you, so the file on your watch is the session you read here.
Every session, of any sport, can also be saved as a .FIT file: open it and choose Download .FIT (next to "Resync to Garmin") to load it onto your watch or head unit, or into any other app that reads FIT. The file carries the session's structure and your own heart-rate, power or pace targets already in it — the same numbers TEMPO would push to Garmin. One file holds one session, so download the ones you want rather than a whole week.
Change any of these and your plan catches up on its own, usually within a minute or two. There's no "regenerate" button to hunt for.
When a race date passes, the plan re-anchors to your next target race by itself — race week honors the plan's own taper volumes, race day shows the race, and the days right after stay easy.
Race day doesn't look like a training day, because it isn't one. On the Plan tab it takes the whole row of the weekly grid, and the whole square in the month calendar — one block, not four sport cells. Tap it and you get the whole race briefing, kept fresh for you:
- Overview — a countdown, whether it's an away race (from your home base: distance, a drive estimate, whether you'll sleep there) and the race-day weather at the start hour, with the day before and after — refreshed every day from about two weeks out.
- Targets — a predicted time for each leg with the pace it works out to (min/100m for the swim, watts and km/h for the bike, min/km for the run), the intensity band the coach's science cards give for that distance (for example "90–100 % of FTP · 317–352 W" for a sprint), a heat correction when the start will be warm, and pacing notes. These come from your own activities of the last three months; your own target splits stay alongside them.
- Nutrition — the day before, breakfast (with a clock time once the start time is known), the last 15 minutes, what to take on each leg, salts, caffeine, and what to eat after — sized to your weight, your gel and bottle sizes and your fueling preference.
- Packing and Rack — tickable lists that adapt to the discipline, the weather and the trip (rain adds clear lenses and a wet bag, cold adds gloves, an overnight adds toiletries and spare underwear), from "can't start without" to the three-minute check before you leave, T1, T2, what's on you before the swim and the last thirty seconds. Ticks are remembered per race.
- Logistics — your bib number, start time and wave, the schedule (bib pickup, check-in, transition open/close), parking, road closures, the rules and the facilities, read from the race's own pages: TEMPO checks them once a day from a week before the race (and whenever you tap Refresh), and tells you when it last looked and when it will look again if the start list isn't out yet. Add the event site and the start list under the race's links in Settings → Goals & races so it knows where to look; if you already know your bib or start time, type them there and they win. What the organiser has published — the edition's date, the start time of your format, your bib, plus bib pickup, the briefing and when transition opens and closes — is looked up the moment you add a race, then weekly, then daily in race week, and filled into the race for you with a "found on …" note under the field; the bell tells you what was found. If the page disagrees with something you typed, yours stands and the panel says so. Once the race is done, the start time becomes the clock your recording started at ("from your recording of the race").
- Stay — for an away race, hotel searches near the start already filled in with the dates (Booking.com, Google Maps, Airbnb).
- Race morning — for an away race the panel works the morning backwards from the official start: when to be at transition, how long the drive is on real roads (with typical traffic for that hour, or live traffic data when your admin has configured a TomTom key), when to leave home and when to wake up. It recommends stay the night before when the alarm would be before 04:30 or the drive is over two and a half hours, drive the morning when you can wake after 05:30 and be there in under two hours, and shows both cards otherwise — with the organiser's parking notes, a parking search on Maps and a route link. If the start isn't published yet it assumes 09:00 and says so; the plan updates the day the organiser posts the time.
- Registration — the panel reads when registrations open and close and whether your name is on the start list, and checks every day until you're on it. The bell reminds you the day registrations open and every day after while you're not registered (the sign-up link is in the message), tells you once when your name or bib appears, and — if you said you're registered but a readable start list still lacks your name — sends a weekly heads-up. Under the race in Settings → Goals & races you can tick I'm registered, turn Remind me to register off, or type the Registration opens date yourself (your values always win). In chat, "I've registered for Wallisellen" stops the reminders (the check continues) and "stop notifying me about this registration" mutes that race entirely. Start lists that only render in a browser (Datasport's, for instance) can't be read — the panel says so, and you check by hand.
- Warm-up and race week — the start-line protocol for that discipline and the race-week rules.
Chat with the coach on the panel opens the coach with all of this as context, so "what do I bring?", "what do I eat tomorrow morning?" or "what watts on the bike?" are answered from the briefing and tailored to you — and asking those questions in the chat directly works the same way.
Once you've raced it, that same block shows your finish time right on the calendar, next to the goal — the way every other day shows the session you actually did. Open it and the target splits become target vs actual: what you aimed for, what you did, and the gap, leg by leg, transitions included. Tap any leg to open that activity with its full graphs. For a triathlon your watch uploads as one multisport activity, TEMPO puts the swim, T1, bike, T2 and run back together for you — you don't have to bind anything by hand.
If your watch hasn't synced in a while, the Home screen tells you so — with a one-tap Sync now — because a coach working from week-old numbers will quietly under-prescribe.
After your race
You don't have to bind the race yourself any more: once the activity syncs, TEMPO binds the race to it (the whole multisport upload, or the swim · bike · run it finds on the day) and the race day on your Plan tab shows what a finished session shows — time, distance, heart rate, effort, the leg chain — and opens onto the same per-leg breakdown with zones and transitions you get on the home race panel. If it picked the wrong activity, Remove binding on the race panel undoes it and TEMPO will not re-bind that race on its own; bind the right one by hand.
Your last race isn't the end of the plan. The days after it are planned too, and they step back up on their own:
- The rest of race week is a proper unload — roughly a third of your usual volume, and nothing hard.
- The week or two after that stay light — endurance and technique only, easing back toward normal — sized to how big the race actually was: a sprint clears in days, a full-distance race takes a couple of weeks.
Sessions that would have been hard aren't deleted, they're eased down to a comfortable aerobic pace, so your week keeps its usual shape and rhythm while you recover.
From there, with no next race on the calendar, your season becomes exactly the same chain of development blocks described above under "Your plan is built around you" — never a flat percentage held forever. It picks up your limiter, builds it, and opens each new block a little bigger than the last, right up to the weekly ceiling you've set — so time between races is still progress, not a pause.
Add your next race whenever you're ready and the plan re-anchors around it: the development chain gives way to a real build toward the new date. And if you have no race on the calendar at all, you still get a full, progressing plan — TEMPO never leaves the Plan tab empty, and it never leaves it stalled either.
Show your training on Strava (optional)
If you train with Garmin but like your feed on Strava, TEMPO can title your Strava activities for you. In Settings → Wearables & apps, set your main data source to Garmin, pick Strava as your social app, and (if asked) reconnect Strava allowing the write permission. After each sync — the automatic one on your polling schedule as much as a manual Force sync — activities that match a planned session get the workout's real name — "Threshold run 62 min · 4 × 6' @ Z4" instead of "Morning Run" — with the minutes you actually did and the main set in the title, plus a short description that shows the planned session next to how it went ("Planned: Threshold run 68 min · Z4 / Followed the plan / Performance: 62 min · 15.1 km"). Cut a session short or run long and the title says so; the plan stays in the description.
TEMPO also checks whether you actually did the session before naming it. Skip the threshold reps and jog it easy, or turn a planned Z2 ride into a Z1 coffee spin, and the title says what happened — "Endurance run 55 min · 12.1 km", "Easy ride 205 min · 74.6 km" — while the description keeps "Planned: …" and adds "Not as planned: …" so you and the coach can see the gap. The check is deliberately generous: a hilly endurance ride that climbs in Z3, or a set where you stopped one rep short, still counts as the planned session. Only a session of a different kind — easy where hard was planned, hard where easy was planned — gets renamed for what it was. For runs, pace and heart rate are read together: a quick-looking flat stretch run at an easy heart rate is still an easy run, so an easy day you executed well is never called "Tempo" or "not as planned" on pace alone. Garmin's own verdict on the session (its Aerobic Base / Tempo / Threshold label) is read the same way — a base run stays a base run however big the training effect number was.
Sessions you didn't plan get named too. Ride instead of the swim on the schedule, add an extra easy run, go out on a rest day — TEMPO reads what Garmin recorded (how long, how far, how much time you spent in each heart-rate zone) and names it for what it was: "Endurance ride 55 min · 22.06 km". These never say "Planned", because they weren't. Very short activities are left untouched, and so is anything older than a month — TEMPO names what you're training now, it doesn't go back and rewrite your history. You can customize the title and description templates on the same card (those apply to planned sessions), and choosing Off as the activity destination stops it immediately (your choice is remembered). TEMPO writes each activity once, and only when it still carries Strava's own default title ("Morning Ride", "Evening Run"): anything you named or described yourself — before or after — is left alone for good. It only ever edits the title and description of your own activities; the workout data itself is never changed.
Race day works too. Garmin records a triathlon as one multisport activity, but Strava shows it as five — swim, T1, bike, T2, run. TEMPO recognises the five as one race and names each leg after it: "Ironman 70.3 Cervia · Swim 1.9 km", "· T1", "· Bike 90.0 km", "· T2", "· Run 21.1 km", each with its own performance line. The same goes for a brick, a duathlon or a swimrun you recorded as a multisport on the watch: the legs take the session's name ("Brick 25-35 min · Bike 20.0 km", "· Run 3.0 km"). Give the race a name in Goals & races and that's the name the legs get; ask the coach to title the race day and every leg follows.
You can also let the coach name a session for you. Tell it in chat — "tomorrow I'm doing a big hike with friends up Monte Generoso" — and it puts the session on your plan under that name (adding one if the day was empty). When Garmin uploads it to Strava, the activity gets exactly that title and, if you gave one, your description. Already on Strava? It is renamed on the spot. Depending on your autonomy setting the change either applies immediately or waits for your approval on the plan.
Tell your coach how it went
Open any completed session in Latest and you get three quick answers next to the comment box: how it felt (five faces, awful to strong), RPE (1–10, how hard it actually was), and a set of tags for the things a number never shows — pain, illness, poor sleep, stress, fuelling, heat, cold, equipment, mental, travel, race. Tap what applies and press Send to coach. You do not have to write anything: the faces alone are a complete answer, and the words are there for what the tags can't say ("knee grumbled on the descents").
Your coach sees it straight away rather than at the next overnight pass, so a rough session or a pain tag can change what it asks of you next.
You may have already answered this. If you rate a workout on your watch — Garmin's How did you feel? and its perceived-effort slider — or set a perceived exertion or write a description on Strava, TEMPO picks that up automatically on the next sync and shows it here, marked from Garmin or from Strava. Anything you set yourself in TEMPO always wins: a later sync fills in what you left blank, it never overwrites your own answer.
Your answers change what comes next. This is not a diary. If two sessions in a week come back feeling poor, or you tag pain or illness, your coach closes the door on the next hard session and eases it — unless your watch is emphatically saying you are fresh, in which case it asks you about it instead. Tag pain and say where it hurt ("knee grumbled on the descents") and it holds that kind of session — high-impact running, in that example — for a week, then lets it go on its own. Nothing to switch off later.
It also learns how you find a given workout: three sessions in a row on the same progression that came back brutal and the next one drops a rung; three that were easy and well executed and it steps up. And if you mark a gym session as intense with a body region on the activity, a hard run in the next few days comes back easier and says why, while your next strength session favours the part of you that has rested.
If you say nothing, nothing changes — your plan stays exactly as written.
One thing works without your answers: a very big day. After a session heavy enough to need absorbing, your coach won't add hard work to the next two days. Ask it "can I go hard today?" and it answers from the same picture it plans with (your recent sessions, this morning's readiness and anything you told it), whichever screen or app you ask from.
One session, recorded twice. Ride MyWhoosh and record the same trainer session on your Garmin, run with your phone's Strava and your watch, or let MyWhoosh send its own copy to Garmin Connect — TEMPO sees one session, not two. Two recordings of the same sport that overlap in time are merged: your Garmin recording wins (its power and heart rate are the ones that count — a trainer app's virtual power never overrides your power meter), its start is the earlier of the two starts and its end the later of the two ends (so if you remembered to start the watch twenty minutes in, the session is still the full length), and a comment you left on either copy stays with it. Stop and start again — a hard solo ride, then an easy one with friends — and they stay two sessions, because they never overlap.
A session that shouldn't be there at all. A drive that your watch recorded as a ride, a session you started by mistake — those aren't worth explaining to your coach, they're worth removing. Open the session's View graphs window and scroll to the very bottom: there's a quiet Delete activity underneath everything else. It asks twice more before anything happens — first showing you what disappears, then asking you to type DELETE — because there is no undo. Once it's gone your coach forgets it completely — its load and effort stop counting, and so do the notes it had made about that session, your rating of it and anything you wrote on it. Re-syncing Garmin or Strava will not bring it back. A triathlon goes as one race, legs included.
When life gets in the way
Add a constraint (travel, illness, injury, a broken bike) with the dates and what you can still do, and TEMPO reworks the next few weeks around it. Heading somewhere with a pool and running routes but no bike? Your easy rides become runs or swims, any ride that can't be swapped moves to another day that week, and a session that truly has nowhere to go leaves the week with its reason kept — it is never left sitting on a day you said no to. When the window passes, the plan goes back to normal and the session comes back.
For a trip specifically, Settings → Plan & availability → Away / travel dates is the fastest way in: add the dates and, optionally, tick which sports you'll have there. Leave the tick-boxes alone and the window only follows you for the forecast; tick them and the plan reworks itself around the trip the moment you save, the same as above. Two small choices make the boundary days honest: say whether you leave in the afternoon of the first day and whether you're back during the last day, and the free half stays open — the ride lands the morning you leave, or the evening you're back, marked morning / evening on the calendar. The note field stays free text for your coach, not a second way to set the sports.
That's for a dated trip or setback. If something about your week is just always true — no bike on Wednesdays, the pool only works Monday and Thursday, Saturday is wide open — set it once in Settings → Plan & availability → Where each sport can land and every week honors it automatically, no re-adding it each time.
It is one grid: a row per sport, a column per weekday, a tick where that sport may be scheduled. "I swim Mondays and Thursdays" is the Swim row with only Mon and Thu ticked; a day off is a whole column unticked (the Whole day row does it in one click). The line under the grid reads your rule back in plain words — Swim only on Mon, Thu. Day off: Wed. — so you can see exactly what you told the plan. Everything on this part of the page is marked must: a session that can't fit is moved onto one of your ticked days, or leaves the week; it is never left on a day you closed, and never quietly turned into a different sport when the sport was the point. Usual training hours underneath is just context for the coach — roughly when you train — and never blocks anything on its own. A dated trip always takes priority over the grid for the days it covers, so a one-off exception never needs you to edit your standing week first.
Both live on the same page as Plan, and that is deliberate: "two swims a week" and "I can swim Monday and Thursday" are one decision. The numbers you set under Plan are now real limits, not a wish list — set two swims a week and the plan holds each full week to two, trimming the spare session or repeating your easiest one on a day you allow. Your weekly run kilometres, bike hours and session counts also size the plan's volume directly, so raising them raises the training you actually get. Set a maximum weekly running distance or a minimum weekly bike time and the plan respects those too — it won't schedule more running than your max, or less riding than your minimum.
You don't have to add it as a form, either — just tell your coach in the chat. Say "in two weeks I'm in Sardinia for a fortnight, no bike but I can swim and run every day" and it works out the actual dates, records the trip, and notes which sports you still have. It will tell you what it saved and when it expires, so you can correct it if it got something wrong. Mentioning it in passing is enough — you don't need to remember any special wording.
Anything you move yourself stays moved. Regeneration never overwrites your own changes, your coach's changes, or a week that's already been and gone.
Your plan re-examines itself. Skip a session, wake up with a red readiness score or a bad night's sleep, move a workout, sync a session you cut short, or add/remove a race — and the coach automatically re-checks the week. While it does, the Plan tab shows "Plan re-examination in progress…" with what triggered it; when it's done you'll see the verdict (on track, adjusted, or re-planned) and what changed — and when it's "on track", it now tells you why: readiness, adherence and training load all checked out, so it's sticking with the plan rather than just going quiet. One bad week alone earns a note, not a rewrite — it only rebuilds the block when a whole month of weeks has genuinely slipped. Whether a change is applied for you or only proposed depends on your coach autonomy setting (Settings → Coach): safe proposes everything, auto applies the low-risk tweaks (an easier day, a moved session) and proposes the rest, greedy applies everything auto does and also the bigger changes the coach is confident about — never less than auto. A bigger change that comes without a confidence — like these automatic re-checks — waits for you exactly as under auto. Dismiss the banner once you've read it.
Ordinary training data arriving doesn't count as news, though. Your sessions sync through the day, and the coach re-examines the plan on the first sync of your day and then sticks with that verdict — so you get one clear answer instead of the same one repeated every hour. Anything that genuinely changes the picture still gets an immediate look: a session you cut short or overcooked, a training-load warning, an injury getting worse, a red morning, a workout you moved, a race added or removed.
Your Monday development report. Once a week your coach looks back at the week that just closed and tells you, plainly: how many hours you did against what was planned, sport by sport; which key sessions you completed and which you missed; whether your effort landed in the numbers it prescribed; whether a test was due or done; and where that leaves you against your own target. It reads back its own earlier reports rather than guessing at a trend — so "your FTP estimate has been flat for three weeks" is something it actually checked, not a feeling. A quiet week is reported as a quiet week, never dressed up.
Set your timezone so the coach talks at the right time. In Settings → Athlete → Profile, pick your timezone. It's what "today" means to your coach — and it's also when your coach speaks: the morning check-in and the note waiting for you when you open the app land in your morning (around 6am local), with a midday and an evening pass after it, and the weekly wrap-up on your Monday. Change it when you travel for a race and everything moves with you. Leave it on Server default and TEMPO uses Central European time.
Keep your watch in sync. In Settings → Wearables & apps, turn on Auto-push workouts to Garmin and TEMPO keeps your Garmin calendar in step with your plan — the real warm-up, intervals and cool-down at your own zones, with the coach's note in the description. Race days are never pushed as workouts. Two choices sit under the switch:
- How often. Continuous sends every change as it happens (a session the coach moves is on your watch within a minute or two). Daily, Every N days (you pick 2–14) or Weekly collect the changes and send them on that rhythm instead — handy if you'd rather your calendar didn't shuffle mid-week.
- How much. This week keeps the next seven days current; Whole plan keeps the entire season on your watch.
On any rhythm other than Continuous, a change the coach makes today reaches your watch at the next scheduled send — or straight away if you push it yourself.
Pushing it yourself. Settings → Sync & tools gives you four buttons: Push today, Push training week, Push whole plan, and a From–To date pair with Push range. Each one replaces only the TEMPO workouts inside that window, so pushing this week never disturbs sessions you already sent for next month — and your own native Garmin training plan is never touched. Leave Dry-run ticked to see exactly what would be sent without writing anything. To send a single session, open it and tap Resync to Garmin — that replaces just that workout and nothing else on the same day, even a different sport's session.
Re-sync a whole day, week or month. Wherever you look at your plan there is a Sync to Garmin button (the circular-arrow icon): next to each day on Home's Upcoming list and in the weekly Gantt's day column, on the week header of the Gantt, in the day popup of the Plan calendar, and at the top of the calendar for the whole month. It asks you to confirm, then deletes every TEMPO workout on your Garmin calendar for that day, week or month and sends every planned session again, fresh. Workouts you created on Garmin yourself stay, and days already past are left alone — use it when your watch calendar looks out of step with the plan. The icon spins while it works and a message tells you when it's done; tap several days in a row and they simply run one after another.
That button carries a small dot telling you where things stand: green means it's on Garmin exactly as you last sent it, yellow means the plan (or an edit you made on Garmin itself) has moved on since — resync to catch it up — and red means it isn't on Garmin at all. Not sure the dot is current? Tap Check on Garmin right next to it and TEMPO asks Garmin directly instead of trusting the last push. After a resync the button keeps spinning until TEMPO has actually seen the workout land on your calendar — not just been told it was sent.
When the dot is yellow, the Workout section gains a small Plan / On Garmin switch: flip it to see exactly what your watch holds right now (the version you last sent, or the one you edited on Garmin) instead of the plan — the zone graph and the step list, with the exact targets the watch has.
TEMPO also notices if you move, edit or delete one of its workouts on Garmin itself. By default the coach reviews the edit and suggests what to do with it, and automatic pushes leave that session alone until you resolve it or the plan changes underneath it. If you'd rather such edits applied straight away, turn on Adopt it into the plan under Settings → Wearables & apps → Read back edits you make on Garmin — a moved session moves, a deleted one is marked skipped, and edited steps are taken over, then the coach reviews the week. Either way, pushing it yourself (Settings → Sync & tools, or a session's Resync to Garmin) always sends TEMPO's version.
That's all for what you can't do. If it's more of a preference than a rule — you'd just rather your long run land on Sunday, or you want more brick sessions — set it in Settings → Plan & availability → Preferred days, the block marked could. Add a row for the session (sport, type, and preferred day) and the coach moves it there automatically whenever that day is actually free; if it isn't, your session stays where it was rather than double-booking the day. A preference never overrides the grid or a dated trip — the must rules always come first. For a general steer like "more bricks" or "less intensity", use the Emphasis chips instead; the coach factors it into what it suggests, but it isn't a guaranteed schedule change the way a day preference is.
When the coach proposes a change to a workout, you'll see a short "Why this changed" note on that workout — and, when it's waiting on you, one-tap Accept or Decline buttons right there (also in the "why this week changed" popover on the Plan tab). Anything still waiting on you is never hidden: the Adjust plan button (bottom-left, every screen) carries a red count of how many proposals are waiting, and opening it shows View coach proposals — expand it to read and decide them, close it to leave them for later. On the Plan tab you also see them exactly where they land: a small floating sport icon sits on the affected session in the weekly grid, and on the day's chip in the month calendar — tap either to read the reason and Accept or Decline right there, and now you'll also see the actual replacement session it's proposing, not just a one-line reason. If the coach keeps seeing the same reason to change a session, it updates the suggestion you already have instead of piling on a new one — you'll see how many times it's come up and when it was last raised — and declining a suggestion means it won't ask again for that day. Your choice is applied instantly: the panel closes itself once saved, a short confirmation appears in the corner listing which sessions changed, and every view updates in place — no refresh. This covers every kind of change the coach can propose — moving or editing a session, adding a brand-new session to your week or removing one entirely, and now also editing or removing one of your races, and lifting a travel/illness/injury constraint early — always with your review first, never a silent rewrite. The coach can also leave you a note — it shows up right in your notes feed alongside your own, no approval needed since it's just a message, not a plan change. Every proposal now spells out exactly what it touches — each session, what happens to it and why, the replacement's steps — and a Details link on the row opens the whole account in a window in the middle of the screen with the same Accept and Decline, so you always know what you are saying yes to. You're not stuck with a suggestion exactly as written either: tap Adjust before Accept and change what that kind of change allows — a suggested edit or a brand-new session lets you set its duration, zone and date; a suggested move lets you pick a different day (a move only changes the day — edit the session itself afterwards if you want it longer or easier). A suggestion that changes several sessions at once is accepted or declined as a whole. It's your adjusted version that gets applied. If the coach's safety check can't allow the change — say it breaks a health limit you set — its reason shows right under the buttons and the suggestion keeps waiting for you, unchanged. A suggestion can also disappear from the list on its own: a newer one about the same session replaced it, that session changed or was removed, or its day simply passed — nothing is lost, you can always see what happened to it in that session's own History.
See a workout's history — and put it back
Every planned workout remembers its own past. Open its detail sheet and look for History: every version it's been through — created, edited, moved, removed, restored — newest first, with who made each change and when. Found an earlier version you'd rather have? Restore this version puts the workout back exactly as it was, right there. Restoring the version the plan wrote hands the session back to the plan: from then on it follows your training again — resized and re-planned with the weeks around it — instead of staying fixed as your own. Restoring one of your own (or your coach's) versions keeps it yours.
A whole week keeps the same kind of history. Open the week's header on the Plan tab's grid for Week history, and Restore the week to this moment puts every session in that week back to how it looked at that point — anything added since is removed, anything removed then stays removed.
You don't have to wait for the coach to make a change, either: open a planned workout and edit its duration, zone, title or date yourself. It's your calendar — restoring or editing this way is recorded exactly like any other plan change, so you can always see it later, and your watch updates to match. A session you edited or moved is yours from then on: when the plan re-flows (a new race, a changed routine, a new plan version) it works around it and never overwrites it. Want the plan to take it over again? Restore the plan's version from its History.
Build or pick a workout
Open any planned session and tap Edit — beside the basics (title, date, an optional reason for the change) you'll find two tabs.
Build is for writing the session yourself, step by step. Add a warm-up, work, recovery or
cool-down step, or a repeat block, with the buttons along the top; drag a step by its handle (or
select it and use the arrow keys) to reorder it. Set each step's time — just type 8, 8:00 or
8m and it's understood — or, for a run or swim, switch it to a distance instead. Give it a zone
(Z1 to Z6, or Custom for your own heart-rate, power or pace band) and an optional label, wrap
a step into a repeat block with the ×N button, and copy or delete any step from its row. A
running total at the bottom always shows the workout's true time and zone mix, and it's this
total — not a number you type separately — that becomes the session's planned duration. Happy
with what you built? Save to my library keeps it under a name of your choice for next time.
From library is for picking a workout that already exists — TEMPO's own catalog, or one you saved earlier. Search by name, filter by sport, category, phase or duration (or switch to Mine to see only your own), and preview its steps before you commit. If it doesn't quite match today's planned length, turn on Fit to my planned N min to have it scaled to fit. Then either Use as is, or Edit first to open it on the Build tab and adjust it before saving.
Either way, Save workout sends your changes; if something about the workout isn't valid, the reason appears right there so you can fix it, and closing without saving (or pressing Escape) asks first if you have unsaved changes.
Every step remembers who put it there. A step you typed yourself or changed carries a small "you" next to it, and if you only touched part of a session the coach built, its chip in the sheet reads "Edited by you · 2 of 6 steps" instead of claiming the whole thing — write or accept every step yourself and it reads "Built by you".
The workout detail sheet is organized into sections now, so you can jump straight to what you need: Workout (the steps and targets), Coach notes, Fueling, Changes (if the coach has proposed any), History, and, on today's session, Log this session. Tap a section's header to open or close it — TEMPO remembers which ones you like open.
Your coach can do all of this too, right from chat: ask it to "put the 4×8 threshold session from the library on Thursday", or describe a session in your own words ("give me 40 minutes easy then 4 times 5 minutes hard on Friday"), and it builds or finds the same workout you would have.
What you tell the coach stays told
The four places you can say something — the daily check-in on Today, the tell the coach box, dragging a session, and your Settings — are read together. Answering "how did today feel?" no longer pushes your goal, your weekly targets or your health notes out of view: your coach holds the most recent version of each, side by side.
The daily check-in is now a note your coach keeps. Write what happened, tap how it felt, say whether you finished and where anything hurt — it reaches your coach straight away, and it is still there at the next overnight pass instead of being read once and forgotten. A pain you mention is picked out automatically and treated the way a health note is.
Research links get read. When you save a link under Research, TEMPO now fetches the page and adds it to your coach's library, so the coach can quote it back at you. If the page cannot be opened, the link is still saved — you will just see that it could not be read.
"Coach remembers" tidies itself. The little chips above the chat show what your coach is currently holding on to. Anything you gave an end date to — a trip, a week the pool is shut — disappears from the row on its own the day it is over, and something you have settled ("all healed, stop asking") drops off after a day. If a chip is just in your way, hover it and press the ×: it leaves your screen for good. That is only the display — your coach still remembers it, which is the point when what it remembers is don't bring this up again.
Give your coach a brain (optional)
Once a model is connected, the questions that get the most precise answers are the ones the coach has a purpose-built tool for: how did yesterday's ride go? (done vs what was prescribed), how did my race go? (your result against your target, plus a debrief you can dictate), should this week change? (compliance, readiness and training load in one verdict), what would change if I added a race on the 20th? (a preview — nothing is written until you say so), and can you undo that / put last week back the way it was (it reads the same history your workout's History panel shows, and proposes the rollback like any other plan change — reviewed the same way, never applied silently). The coach uses those tools right inside the chat, always within what you consented to in Settings → Privacy & data: reading your plan and activities needs AI coaching turned on, and remembering things or changing the plan for you needs private memory as well — without it the coach still answers, it just doesn't keep anything.
The plan works out of the box. To unlock the conversational AI coach, open Settings (the gear icon) → AI connection and pick how it reaches a model: bring your own API key, run on TEMPO credits with zero setup, or drive it from your own agent over MCP — generate a token on that same AI connection section and paste one ready-made snippet into Claude Code, Codex, or any MCP client, no setup beyond that. Full walkthrough: Connect your coach.
Bringing your own key means picking one of the recipients listed on the Connection card — each one a provider + model + endpoint your operator has already verified — and pasting your key for it; your key only ever reaches that pre-verified endpoint, never a host you typed yourself.
Every connection you set up is remembered. A Saved connections list appears at the top of the AI connection section once you've bound at least one — switch back to any of them with a single tap, no re-entering a key. A saved key-based connection needs its key just once; a saved Local CLI connection needs nothing at all to reconnect. If a saved connection's key was ever removed, that row offers Add key instead of a one-tap switch. A key-based row also has Re-check: it asks your model server again what it can do right now (its context size, whether it can call the coach's tools) — useful after you load a different model locally.
Model limits. Every limit the coach applies to a turn — how long an answer can run, how long it waits on a slow model, how many tool calls it can make, how much of a tool's result it keeps (with a tighter setting just for bulky Garmin/Strava reads, which it can always fetch again), how much plan/activity history and context it pulls in, how many messages pass before it compresses older chat history to make room, after how many quiet hours your next message first saves what the coach learned from the earlier part of that conversation (the conversation itself never ends on its own) — is yours to set, right on the AI connection section under Model limits. They are yours, not the connection's: the panel sits below the cards and stays there whichever way in you picked — your own key, TEMPO credits, your agent over MCP, or the Local CLI — because the same limits shape every coaching turn. Leave any field empty to use the sensible default (shown right in the field); bigger numbers mean deeper, more thorough answers but a slower response on a local model. Reset to defaults clears every override back to the default in one tap. Two rows say so inline when they don't apply — the Local CLI has no answer-length or endpoint-JSON setting of its own, so the coach ignores those there.
Not sure where to start a conversation? Open the Coach tab — an empty chat offers ready-made starters like "Review this week's plan" or "I'm traveling — adjust my plan", and the Adjust plan button (bottom-left, on every screen) walks you through the same common situations: feeling ill, an injury, travel, adding a race, a changed weekly commitment, or a plan review. The little chip in the chat header always shows which model your coach is actually running on — and says "No AI connected" honestly when none is, with one tap taking you to the AI connection settings.
Keep as many conversations as you like. The Coach tab works like the chat apps you already know: your conversations are listed on the left — anything you pinned first, then Today, Yesterday, Previous 7 days and Older — and the one you're reading is on the right. New chat starts a fresh one; the search box finds a conversation by its title or by something said in it. Each row's ⋯ menu lets you Rename it (type the new name and press Enter), Pin it to the top, Archive it out of the way (the Archived button at the bottom of the list brings it back), or Delete it. Deleting asks first and removes the conversation for good — but what the coach learned from it stays in its memory, where you can review or forget it. Every conversation has its own address, so a bookmarked one opens straight to it. On a phone, the list sits behind the Conversations button at the top of the chat.
Several conversations can answer at once. Ask about your taper in one conversation, switch to another and plan next week while the first is still thinking — each keeps working on its own, and you can leave and come back to either. A small pulsing dot marks a conversation that's answering right now, a plain dot one with something new you haven't seen yet. Up to three answer at the same time (change it in Settings → Coach → AI connection → Model limits → Conversations answering at once); send one more and it says "Waiting for a free slot" and starts by itself as soon as one finishes. Each conversation has its own Stop, queue and edit/regenerate, and a "yes" or "ok" only ever applies the change your coach proposed in that conversation.
Temporary chats. Turn on Temporary chat in an empty new chat (before you send anything) for a conversation the coach won't learn from: nothing from it goes into its memory, it's never summarized, and the coach can't search it later. It stays in your list, marked Temporary, until you delete it.
Chats that didn't start here. If you connect an outside assistant (ChatGPT, Claude) to TEMPO, its chats land in one conversation called External assistant. If you work with a human coach, the conversations they start in your AI appear in your list marked Coach — they can see only those, never your own.
The side panel. The Coach button in the bottom-right corner opens the same conversations beside whatever you're looking at. Drag the panel's left edge to make it wider or narrower (or focus that edge and use the arrow keys; double-click it to go back to the standard width) — TEMPO remembers the width on that browser. The conversation's name at the top of the panel is a switcher: search, jump to another conversation, start a new chat, or open the full list. The expand button beside it (Open in full page) opens the conversation on the Coach tab.
Keyboard shortcut. Press ⌘⇧Space on a Mac (Ctrl+Shift+Space on Windows or Linux) anywhere in TEMPO to open or close the coach; on the Coach tab it jumps to the message box. ⌘⇧Enter (Ctrl+Shift+Enter) starts a new chat. If a password manager already uses ⌘⇧Space (1Password's Quick Access does by default), change one of the two.
Your coach keeps working when you leave. Send a message and close the chat — or the whole app — and the coach keeps thinking on the server. When you come back, the conversation is exactly where it should be: your message, the coach's live reasoning, every step and check it ran while you were away, and the answer — either still streaming in or already finished. Nothing is ever lost mid-thought, and you never need to keep the tab open.
Stop it mid-answer, or keep talking while it works. A Stop button replaces Send while the coach is answering — tap it to cut a tool call, a calculation, or the prose short and keep whatever it had written so far (marked stopped, with a Retry right there). You don't have to wait to say something else: a Queue | Steer toggle next to Stop lets you pick what a new message does. Queue holds it, visible above the composer so you can edit or remove it before it goes out, and sends it the moment the current answer finishes. Steer drops it straight into the answer that's still running, the way you'd interrupt someone mid-sentence — it shows up inline as part of that same reply. Your last pick is remembered next time you open the chat. Some connections can't take a message mid-answer (the Local CLI is one): there the toggle offers Queue only and says so, and your message runs as soon as the current answer finishes.
Edit a message and the coach answers again from there — without losing what it first said. Editing something you sent forks a small branch: a ‹1/2› arrow next to the message switches between your edit and the original, and only whichever one you're looking at feeds the coach's memory or the rest of the conversation, so trying out an edit can't quietly change what it remembers. The same arrow shows up on the coach's own answers once you Regenerate one, or pick Retry with… to have a different connected recipient answer the same question. Every message — yours or the coach's — has a one-tap Copy.
If the coach can't reach its model, you see a failure, not a fake answer. When the connection fails before the coach says anything — a CLI that needs logging in again, a provider outage — the reply shows as failed with the reason and a Retry button. Nothing from that attempt stays in the conversation or in the coach's memory, and a Retry with… that fails this way leaves the answer you already had in place. Your question isn't lost either: reload the page and it's still there, with the reason it failed and Retry. Plan changes the coach makes in chat follow your autonomy setting (Settings → Coach) exactly like the plan's automatic re-examination does: on safe, every change waits for your approval.
For a question that needs real arithmetic over your own training — for example, your average pace across a block or a what-if weekly-load calculation — the coach can run a bounded calculation over your recent activities, health, plan, zones and races. It is read-only, quota-limited, and off by default; any suggested plan change still comes back to you for the usual review.
For a larger audit, the coach can queue one background analysis instead of blocking the chat. It works through a bounded sequence of read/calculation steps, then follows up in the same coach conversation. Safe mode asks before enqueueing; auto and greedy modes enqueue this read-only job immediately. Read/calculation steps require a tool-capable connected model; the current Local CLI door is text-only for background analysis.
Redeeming a credit code. If you have a credit code — from a coach, a promo, or the TEMPO team — open Settings → AI connection, pick TEMPO credits, and paste it into the Redeem a credit code box. Your balance goes up right away, and that credit is used before you fall back to the deterministic engine. If a code doesn't work you'll see why (already used, expired, or not valid) right under the box. You can't buy credit yourself yet — codes and grants are how you top up for now.
Running your own TEMPO? Use your Claude or Codex subscription. If you self-host
TEMPO on your own machine, there's a fourth way in: Local CLI. Instead of an API
key or credits, the coach runs through the claude or codex command-line app
already signed in to your subscription on that machine — no key to paste, no
per-message billing. To turn it on: install and log in to the Claude or Codex CLI on
the server, set COACH_CLI_DOOR=1 (in your .env or from the creator admin panel),
then open Settings → AI connection and pick the Local CLI card — it only appears
once the server can see the CLI, and you choose Claude or Codex and a model right on
the card. Like every other way in, the CLI has to be listed as a recipient in the
server's registry and consent policy before the card can be saved (the card tells you
when it isn't — that's the operator's step, done once, before anyone consents); you
then consent to it exactly as you would to any other AI recipient. The model list
shows exactly the models your server has registered — one registered recipient per
model, so if you want Opus as well as Sonnet the operator registers both. On this door
the coach uses its tools too: it can look up your plan, races and readiness and write
to its memory mid-answer, the same set it gets on every other connection. Its answers
stream in as it writes them (Claude word by word, Codex a message at a time), and asking
for a format works here too — "one line", "just the numbers", "no lists". A message you
send while it's answering is queued and runs right after: Steer isn't available on this
connection. This is a self-hosted, local-only option: it's off by default and never
shows up on the hosted tempo.zepoch.io app. One thing to know if more than one
athlete uses your server — everyone's coach then spends your personal
subscription, so it's really meant for a single-user or trusted setup.
Settings → Knowledge → Library lets you feed your coach extra context — paste text, add a link, or upload a file (PDF, txt, or md). Anything you add here is personal: it only informs your own coach, never anyone else's. Re-uploading a document simply updates your coach's copy — it always reads the latest version, and History next to a document shows the earlier versions it replaced. TEMPO separately curates a global science library every athlete's coach draws from automatically — you don't manage that one, you just benefit from it. And if you work with a human coach on TEMPO, the material they upload shows up here too for as long as your contract runs; it disappears from the list when the contract ends.
A new document shows Indexing… for a moment, then Ready with its chunk count. It's saved and searchable by keyword straight away; Indexing… only means the coach's meaning-based search hasn't caught up yet, and it finishes on its own — the row updates without a reload. If an upload can't be used, the page tells you why: an empty or unreadable file, a file over 5 MB, or a link that isn't a public page.
Your coach names its sources. When an answer leans on something from the Library, it says which document — "per your Fueling and Hydration guide" — so you can go read the same page, disagree with it, or decide it doesn't apply to you. Everything in the list carries a small badge saying whether it's yours, your coach's, or TEMPO's.
The coach cites its sources when it changes your training. TEMPO's global library is a set of doctrine cards — one topic each (tapering by race distance, deload weeks, HRV-guided readiness, run load progression, fueling, heat, masters athletes…), written from published sports-science with every study checked. Whenever your coach prescribes a session, cuts one, moves one or replans a block, it tells you which card the call rests on — "per Tapering by race distance: 70.3 taper is two weeks, volume down, intensity kept" — and when no card covers your case it says so plainly: that's coaching judgement, not evidence. Each card also says when it does not apply (a beginner, an illness, a hot race), and the coach checks that against you before using it.
Reading a doctrine card in the Library. Open one and you'll see its evidence grade — A (meta-analyses and consensus statements), B (controlled trials and cohorts) or C (coaching practice) — the sources behind it with links, the situations it applies to, and the ones it doesn't. The grade tells you how hard to lean on it; a B or C card is a good default, not a law.
Mute anything that isn't yours. Global and coach documents have a Mute for my coach toggle where a delete button would be. Muting doesn't delete anything and doesn't affect anyone else — it just stops that document reaching your coach. Your own uploads don't have it: delete those instead. Muted rows stay in the list, dimmed, so you can un-mute in one click whenever you change your mind, and they keep getting TEMPO's updates in the meantime.
Your coach is told that a document is muted, never what's in it — so it can say "you've muted the fueling guide, want it back?" instead of quietly answering without it. That's the point: mute the sources that don't fit you (a nutrition approach you don't follow, a discipline you're not training), and the coach leans on what's left — your own uploads first, then your coach's, then TEMPO's.
Uploads are capped at 5 MB per file, and pasted text at 200,000 characters — plenty for a training article or a PDF guide, not for an entire book. If something can't be added because your AI connection needs reconnecting or isn't authorized yet, you'll see a clear message saying so instead of the page just failing.
In the chat panel, below the conversation, a small "Advanced context view" toggle is collapsed by default. Open it to see how much of the coach's working memory the current conversation is using — a token count and a "% full" meter against the model's own limit, plus how fast it's responding (tokens per second).
It also shows what your coach was actually holding in mind for that answer:
- prompt … chars — how big the briefing was, split into the parts that rarely change (who your coach is, what it can do), the parts that change daily (your season, zones, standing constraints), the live picture (today's plan, readiness, recent training) and the conversation itself.
- recalled N facts, N trends, M episodes, K skills — how many things it remembered about you and pulled in: durable facts (an injury, your home pool, your FTP), directions your numbers are moving in, recent training moments, and the coaching playbooks it knows. If some of what your coach has stored can't be searched right now — usually because you changed the model that indexes it — the line says so, and your coach will tell you its memory was incomplete instead of answering as if it had everything.
- view trimmed to fit — occasionally the live picture is bigger than the model's limit, so the coach drops the least important parts first (history rollups before this week's plan, always). When you see this, your coach will also say out loud that its view was incomplete rather than answering as if it saw everything.
It's read-only diagnostic info, not something you need to manage: the coach compresses older turns on its own well before the meter fills up, so your plan, recent training, and health data are never dropped to make room.
Once connected, your coach reacts when you change your plan — drag a session to a new day, add a travel/illness constraint, leave a note, or edit a race, and the coach re-checks your plan within about a minute or two instead of waiting for its next scheduled check-in. A quick burst of changes (moving a few sessions in a row) is treated as one update, not several. This is on by default.
If you tell your coach about an injury — the body part and how it feels, like "my left knee is sore" — it checks in on it once a day, asking how it feels and adjusting based on your answer. Check-ins are only ever about a body part you mentioned; a travel plan or a pool closure never becomes one. Say it's getting worse two days running and it steps in to rethink the week (and suggest seeing a professional); say it's easing and it eases off to every few days; say it's healed or pain-free and it stops. Ask your coach to forget the injury any time to end the check-ins.
Your coach's proactive messages appear as a banner on your home screen. When several things are worth flagging at once, they stack (up to a few) with the most important first — a promised check-in, then an injury, then a constraint, then a plan change. Dismiss one and the next appears. The banner updates through the day, not only in the morning: when your coach changes or proposes a change to your plan after a sync, a workout or a note of yours, the banner tells you right away (one line — the full reasoning is in the chat), and the midday and evening passes can add a note too. A line you have already read doesn't come back the same day.
In Settings → Privacy & data you'll find Data & consent: three separate switches for what TEMPO may do with your data — sync your Garmin and Strava activities, let the AI coach read your training, and remember your conversations between sessions. Each is independent, and each says what you lose by leaving it off. Turning one off erases the data held for it straight away — not after a wait, and it doesn't come back if you turn the switch on again — so TEMPO asks you to confirm first.
It is worth knowing how much that takes. Turning off remember our conversations or let the AI coach read my training deletes your whole chat history with the coach and the running notes it keeps about you, so the next conversation genuinely starts from nothing. Either of those, and turning off sync my activities, also removes the numbers TEMPO worked out from your training — your fitness curve, your fitted thresholds and strength maxima, and the record of how the plan has been built week by week — so your next plan starts fresh rather than continuing the season. What you entered yourself stays: your races, your zones, your profile and your training rules are yours and are never touched. If you switch a permission back on, TEMPO starts again from that moment — it does not restore what was erased, though anything it can work out again from your synced activities will come back on the next sync.
Next to "Remember our conversations", a Rebuild memory index button restores the coach's ability to recall what it remembers about you — use it after turning that memory back on, or after switching AI provider, so nothing it already learned becomes unreachable.
At the top of the home screen, Coach is your running feed of what TEMPO has been doing: every plan change it made, in its own words — "Prime race-pace feel without repeating the near-maximal surge" — with who did it (you or the coach) and when. Your own edits appear there too, so the plan never changes without you being able to see why.
The card's top-right corner tells you when the coach last ran on its own (Analyzed 2h ago) and when it last changed anything (Last change 3d ago); hover either for the exact time. The ⓘ button beside them explains its schedule: three passes a day at the hours you set in Settings → Location & time (the morning one waits for last night's sleep to sync), a reactive pass about a minute and a half after anything changes — a synced workout, how a session felt, a missed session, a race or goal you edited, a session you moved — and a weekly memory clean-up. When there is nothing to change the card says so, so you always know it is running.
When TEMPO is watching a niggle it checks in on the home screen — "how's the knee today?" — with four one-tap answers: All better, Improving, Same, Worse. Tap one and the coach acts on it: All better stops the check-ins and lifts the training limits it had put in place for that niggle, Worse twice in a row makes it rethink the week. Use the ✕ only to hide today's message — that tells the coach nothing, so it will ask again tomorrow.
Two more ways to answer: Resolved — stop asking closes the thread for good — the coach will not bring that one up again, whatever it notes about it later, until you report it hurting again — and the text box under the buttons lets you answer in your own words ("it's the shoe, not the foot"); either reaches the coach exactly like a button does.
In Settings → Privacy & data you'll also find "Help improve TEMPO's coach" — an optional, off-by-default toggle. Turning it on stores your coach conversations so they can help train future versions of the coach; leaving it off still lets you use the AI coach normally, it just isn't retained afterward. Turning it off again deletes whatever was stored, and GDPR account erasure deletes it the same way it deletes everything else. If TEMPO asks you to declare your age band first, that's the same one-time step the consents above it need — do it once and come back.
In Settings → Privacy & data, above Danger zone, Your data has one button: Export my data. It downloads a zip with everything TEMPO holds about you — your plan, activities, health snapshots, coach memory, chats, races, notes, and consent history — as plain JSON files you can open in any text editor, plus a short README explaining what each file is. The raw second-by-second files your watch or Strava send TEMPO aren't included (that's provider data, not something you wrote or told the coach); neither are any keys, tokens, or passwords. You can export again after a short wait if you need a fresh copy.
Fine-tune your coach
A few extra dials live in Settings → Coach → AI connection, under Model limits: how much of your training history the coach keeps in view each turn, how many past conversations and notes it recalls, and after how many quiet hours it saves a summary of a conversation's earlier part to its memory (the conversation stays open — you keep talking in it). Conversations answering at once sets how many of your conversations may be answering at the same time (1–10, default 3). Leave them blank to use the sensible defaults — they only matter if you want the coach to remember more (or less) than usual. There's also a Coach tone field in the same panel — a short style note like "direct, numbers first" that the coach keeps in view every turn. And in Settings → Profile, two fields — Morning check-in hour and Evening check-in hour — set what time of day your two daily coaching passes fire, in your own timezone (defaults: 6am and 8pm).
Choose how the coach writes
Settings → Coach → AI connection opens with Writing style — three dials that shape every message the coach writes to you (chat answers, the morning and evening check-ins, nudges), saved the moment you change them:
- Language — Italiano, English, Deutsch, Français or Español. "Follow app language" (the default) uses the language you set for the app. Sport terms and units stay as your watch shows them (Z2, FTP, W, /km).
- Length & format — Concise (default): the fewest sentences that carry the numbers. Balanced, Detailed (full reasoning, every number, the doctrine applied) or Bullet points. Asking the coach to "explain" or "walk me through" always gets the long form, whatever you picked.
- ADHD-friendly answers — on by default. The first line is the action; multi-step advice comes numbered; lists stop at five; no preamble, no recap, and anything left open ends with one concrete next step. It also makes every answer shorter. Turn it off if you prefer the coach's default prose.
A line under the dials tells you what is in effect right now — e.g. "writes in Italian (from your app language) · concise · ADHD shaping on".
Read why a change was made
Every change the coach makes or proposes carries a Why this changed row — on the workout sheet, the week popover, the month calendar and the Adjust plan list. Details opens the full account mid-screen: the coach's reasoning, the evidence it was decided on (each number drawn against its threshold — readiness against the red line, training load against its ceiling, an execution score, sleep, HRV, the recovery gate — with the concerning side tinted), the change in numbers (duration, target zone, hard minutes, intensity, a new date — for a brand-new session, the day it goes on — each with what it was and the difference; a suggestion that changes several sessions lists each day with its own numbers), current versus proposed time in zone, the two prescriptions side by side, and Accept / Decline at the bottom for a pending proposal. A change that carries no numbers says so plainly rather than hiding it.
Let the coach look things up online
By default your coach only knows what is inside TEMPO — your training, your settings, and the coaching library. Turn on Let the coach look things up online (Settings → Coach → Connection) and it can also search the web and read a public page: a race start list, a course profile, an event's cut-off times, a link you paste into the chat. When you ask something it looked up, it tells you the address it read.
What leaves TEMPO when it is on: the words your coach searches for go to the search service, and the site it opens sees that TEMPO asked for the page. Your training data is never sent, and your coach is told not to put your name into a search unless you asked it to look something up about you. It is off until you turn it on, and turning it off again stops every lookup immediately. If it is off and you ask for something only the web can answer, your coach will say so instead of guessing.
Nothing to set up. Search works out of the box — no account, no key, no quota to watch — so the only switch that matters is yours. Whoever runs the app can point it at a different search engine, but that changes where the lookup goes, not whether you allowed it.
Coaching (optional)
TEMPO isn't only for training on your own — any account can also coach other people, and any account can be coached.
If someone wants to coach you, their offer shows up in Settings → Coaching: what they're proposing, exactly what they'll be able to see and change, and whether it's free or paid. Accept it and they can see your training, keep your plan on track, and even talk to your own AI coach on your behalf — always attributed and visible in your own chat history, never behind your back. Decline it, or end an active coaching relationship whenever you like, and their access stops immediately.
Once you're being coached, the notification bell in the header is where your coach's messages and any contract updates — a new offer, an acceptance, a payment — show up, with an unread count right on the bell. Open it, pick your coach's thread, read the full conversation, and reply right there — new messages show up on their own, no refresh needed, and they see yours in their own inbox immediately.
Read that list of accesses before you accept — one line in it is new and deserves a second of thought. Read my coach memory lets the coach's assistant read the private notes YOUR AI coach keeps about you: the injuries it recorded, the constraints, the things it worked out from your chats. It is never ticked for you, so an offer that says nothing about it doesn't grant it. Tick it if you want your coach working from the full picture; leave it off and that memory stays yours alone — everything else in the contract still works.
The other direction is worth knowing too: while a coach works with you, their
own assistant keeps notes about you. Those notes are yours. They're in your
data export (coaching_memory_about_me.json), they're deleted with your
account, and they close the moment the contract ends.
To become a coach yourself: coaching is in closed beta, so you can't turn it on yourself — ask the TEMPO team and we'll enable it for your account. Once it's on, open your account menu (top right) and you'll find a Training ↔ Coaching switch there. Flip it and Propose contract invites anyone by email: what you're offering, for how long, and exactly what you'll be able to see and do. Contracts are free during the beta. Your roster shows every athlete you coach, as cards or a table, with their readiness, fitness, upcoming sessions and plan compliance at a glance. A chat dock lets you just type "@Andrea, how did yesterday go?" or "reschedule Marco's week, he's traveling" and it acts on it for you. Like your own coach chat, the dock keeps separate conversations — the name next to SuperCoach switches between them or starts a new one — and when you talk to an athlete's own coach from their card, you see only the conversations you started there.
Full walkthrough — proposing and accepting contracts, groups, bulk actions, and exactly what a coach can (and can't) see of your data: Coaching.

