TriCoo
All sections
Overview

Start here

Data and connections

Where your workouts come from, what the platform computes itself, and what happens when data doesn't arrive.

8 min read

A session reaches TriCoo by one of four routes, and none of them counts as more real than the others. The platform works out all its numbers itself, and a connected service is a way of delivering data, not a participant in the calculation. Which leads to something simple: you don't have to connect anything, and if what you did connect one day stops working, your training won't stop with it.

Who does the maths here

TriCoo calculates and stores everything: the plan, load scores, thresholds, fitness with fatigue and form, and the day's readiness. External services bring the raw material — the fact that a session happened, plus the heart rate, power and pace traces — and give you somewhere to cross-check.

One requirement keeps this honest: the same session, whether it came from Strava, from intervals.icu, as a file or typed in by hand, must produce the same load score. If the answers differ, that's a bug, not a quirk of the source.

Four routes in

Strava brings the session itself and its detailed traces, and it does so soon after the session appears, without waiting for a scheduled sync. Strava doesn't hand over the planned calendar or wellness metrics at all — that's a limit of the service itself, and we won't pretend there's a way round it.

intervals.icu brings the same, plus two more things: wellness metrics — sleep, resting heart rate, variability (without saying whether it was taken overnight by a watch or in the morning by an app: the source does not pass that on) — if you've allowed them to be imported, and it can receive a copy of your plan so the session ends up on your watch.

A file — FIT, TCX or GPX, exported from your watch or from another service. Good both for bringing your history across and for the one-off session that didn't sync anywhere.

By hand — the sport, the duration and an effort rating on a scale of 0 to 10. That's enough for the session to get an honest score: a swim without a watch, strength work in the basement and a day hiking in the mountains are all counted exactly this way.

One session, even with two sources

With both Strava and intervals.icu connected, a single run will arrive twice. The platform merges such records: first by the service's own session id, then by ours, and if there's neither — by fingerprint: the same sport, a start within two minutes and a duration within 5%. Matching records become one, load isn't doubled, and the full provenance is kept — you can see who brought what.

Data completeness: all, some, none

Every record is marked with how complete it is. “All” — there's enough data for the chosen method of calculation. “Some” — not all of it is usable, so the calculation steps down a rung: from pace to heart rate, for instance. “None” — nothing whatsoever is known about that day.

The third state matters most. “Unknown” is not a missed session and not zero load: a silent sync says nothing about whether you trained, and the plan mustn't be redrawn because of it. Rest that you've confirmed is another matter entirely: that's a real fact with zero load.

When an external service goes quiet

An outage at the service, access revoked, a session that went missing — all of these give “unknown”, not zero. The plan keeps working, and fitness and fatigue hold their values instead of collapsing. If the silence stretches to a week or more, the platform still won't declare that you missed anything, but it brings you back to load more carefully — as it would after a confirmed break.

A session deleted in an external service doesn't count as missed either, until you confirm it. And an edit made outside is accepted as your decision, but it goes through the same checks: you can't push volume past the guardrails or get round a medical restriction by going through an external service. More on that in How the plan adapts to life.

You can bring your history, or leave it behind

Past sessions come across as a file or from a connected service — then the platform can see your background straight away. Handy, but not required.

Without a history, the first two weeks run a calibration: volume is set at around 70% of your usual weekly hours, hard zones aren't prescribed at all, and sessions are run by feel. A beginner gets easy work only; an experienced athlete gets no more than one controlled moderate session a week. While data is thin the platform says exactly that — calibrating — rather than passing a rough guess off as a precise estimate.

Why other people's numbers are a second opinion

An external threshold estimate, someone else's load score, someone else's recovery status and someone else's heart-rate-to-pace decoupling: we store them and can show them, but we don't let them into the calculation.

It isn't pride. Someone else's load score was worked out from someone else's threshold with someone else's formula, and dropping it into our model would mix two scales. A discrepancy is useful as a reason to re-check your threshold, not as a ready-made number. For the same reason, only the raw measurements are taken from watches, rings and bands — their branded readiness scores are not.

Notifications

Every uploaded workout and everything the coach puts in the thread while you are away can reach your phone or browser as a notification: the workout with how it went, a plan suggestion, a request to rate an effort, a receipt for a skip or an overshoot, the week review, the morning check-in, an updated threshold, team and follower events. The title names the reason, the text gives the gist: “There’s a plan suggestion — For Thursday”, “Skip recorded — Yesterday: 45 LU not completed, the plan stays”, “Week review is ready — 7–13 September”. For a workout the title is a short encouraging line (no reward for overshooting the plan) and the text reads like the Strava caption: “🏃 Threshold run — done on plan ✅, load ≈95% of planned. Fitness 52 ↗, race in 41 days 🏁”; tapping opens the workout. It never carries medical states, readiness or the reasons behind a suggestion: the notification sits on the lock screen where others can see it. The text itself is encrypted all the way to your device — Apple’s and Google’s servers only see that a message exists. A notification arrives as soon as the reason appears in the thread, at any hour of the day; at night, before 07:30 in your time zone, nothing rings — whatever piled up overnight comes at 07:30 as one message. The exception is a workout finished no more than two hours ago: it is announced right away, even at night. On a day when the medical layer has stopped the plan, nothing is sent. Permission is asked once, after the first published week; you can switch it off in your profile. On iPhone, notifications work only for the app added to the Home Screen.

Stroke count from the file

If a swim arrives as a file from your watch, the platform keeps every pool length: time, stroke style and the stroke count with its counting unit — Garmin watches count a full cycle of the arm wearing the watch. The metric is built only from the control block — freestyle without equipment inside a narrow pace band — and only with eight or more usable lengths; otherwise you see “usable lengths so many of so many”, and that is all. A number typed in by hand after the pool is stored separately and never mixed with the watch. Stroke count has no effect on load, readiness or thresholds.

What goes out, and what never does

One thing can go out: a copy of your plan, to intervals.icu, if you connected it yourself. What travels is the training plan itself: no health questionnaire, no wellbeing answers, no readiness status. By default we write nothing back to Strava. If you switch the caption on in your profile yourself, a short note is added to the activity description — what the plan was, how it went, load as a percentage of planned and in points, fitness and days to your race; nothing about health, readiness or the reasons behind plan changes. It can be switched off in the same place; captions already added stay on Strava. To others, your followers included, the public page of a Strava activity shows only the sport, the date, our load estimate and a link to Strava — Strava's terms require it; you yourself see everything.

Medical and personal data never leave our database and are never passed to a language model — including anything derived from them, such as the colour of your readiness light, signs of illness, cycle and pregnancy. The AI coach sees only anonymised, non-medical training context. Details are in Privacy and the AI coach.

Terms in this article

What to read next