Built for cycling coaches

An analyst for
every athlete you coach.

Upload each athlete's Garmin Connect export. Chainstay opens a tab per athlete with an analyst that answers in plain English and cites the rides behind every number.

Request early access Early access is open to a small group of coaches.

The problem

Twenty athletes, twenty Garmin histories.

Before a block review you dig through each athlete's calendar by hand. A general chatbot gives a confident number for their best 20 minutes with no way to check it.

Chainstay keeps each athlete in their own tab and keeps arithmetic out of the model. Typed tools compute every figure from the raw FIT files, and each answer links to the sessions behind it.

Why it works

Numbers you can click through to

One tab per athlete

Every athlete gets their own analyst, session table and dashboard. Switch tabs and the conversation for that athlete is still there.

Cited, not guessed

Answers cite rides as id and date, checked against what the tools returned. Click one to open the session and see the file data.

Twelve typed tools

Volume, best efforts, CTL and ATL, consistency and period comparisons return finished figures, so the model reads numbers instead of computing them.

A dashboard that agrees

Each athlete's dashboard calls the same tools the analyst uses, so chat and charts never disagree. No GPS or profile data is indexed.

Every athlete in their own tab.
Every number linked to the ride.

How it works

From athlete export to answer in three steps

  1. 01

    Collect the exports

    Each athlete requests their data export in Garmin Connect and sends you the zip Garmin emails them. Send them this guide.

  2. 02

    Upload, one per athlete

    Click Add athlete, enter a name and drop the zip. Three years of training indexes in about a minute.

  3. 03

    Ask in plain English

    Open the athlete's tab and ask. Check any figure in their session table or dashboard beside the chat.

Proof

Measured against the raw files

36/36eval questions passed, checked against ground truth computed by separate code
34/36for the rejected design: a 45k token fact sheet in the prompt, no tools
716sessions indexed from one real athlete's three years

What is my best 20 minute power ever, and on which ride?

Your best 20 minute power is 313.9 W, set in a road race 19632560226 2025-07-03. Next best is 308.5 W on an indoor session 18346224296 2025-02-22.

Real answer from an uploaded export. Every cited id was returned by a tool.

FAQ

Questions coaches ask first

What happens to my athletes' data?

Each export is read only and indexed separately for that athlete. No GPS coordinates or profile data are indexed.

What do I need from my athletes?

The zip Garmin Connect emails them after they request a data export in their account settings. They send it to you and you upload it. Here is a guide to send them.

How long does indexing take?

About a minute for three years of training, roughly 6,800 FIT files.

Why should I trust the numbers?

The model never does the arithmetic. Twelve typed tools compute every figure, and answers cite the session ids those tools returned. On a 36 question eval checked against the raw files by separate code, it answered all 36 correctly.

What does it cost?

Pricing is shared with early access users first.

Why do my numbers differ from Garmin Connect?

Chainstay computes bests from the second by second records in each ride file, drops accidental starts under five minutes, and counts overlapping indoor recordings once.

I train myself. Can I use it?

Yes. Add yourself as the only athlete.

Does it work for running or swimming?

Training load and volume include all sports. Power curves and most of the eval focus on cycling, which is what it was built and tested on.

An analyst for
every athlete you coach.

Join early access and add your first athlete in minutes.

Request early access