Free
For athletes who want to see the numbers.
- Up to 100 workouts
- CTL / ATL / TSB chart
- FIT / TCX / GPX upload
- Mock AI coach (offline)
- CSV / JSON export
The training-load math your coach uses, the AI you already pay for, and the data you already have. In one platform that doesn't charge per token. Free for the first 100 workouts.
87
75
+12
Three numbers. The same math every endurance coach uses. Computed from your raw FIT files in real-time, no server delay, no API rate limits. Just the training impulse and the time elapsed since it happened.
CTL · Fitness
87
+5 vs 7d
ATL · Fatigue
75
-3 vs 7d
TSB · Form
+12
Peak form
Consistency
69%
62 of 90 days
Open any day. See the workout, the zone distribution, the recovery, what the coach would say. Every FIT file is parsed, every metric is computed, no black boxes.
Every workout, parsed.
FIT, TCX, GPX. Power, HR, cadence, elevation. Computed locally, no upload delay.
Zone distribution, week over week.
Z1 to Z5, in real time. The polarized training myth dies when you see your own numbers.
The coach sees the same data.
Same math, same chart, same conclusions. No "premium features" paywall.
Every chart has a story. Here's how a 6-month training block actually reads — taper, peak, race day, and the recovery that follows. Annotations are what your coach would draw on a clipboard.
Base building
Jan–Feb. Slow Z2 volume. CTL creeps up at 0.3–0.5 TSS/day. Patience is the whole game.
Overreached
Early Apr. TSB drops to -18. The chart screams stop. Two days off, one easy spin, back to the plan.
Taper
Apr–May. Volume drops 40%. CTL barely moves, TSB climbs to peak. The week before the race: Z1 only.
Banister, E.W. (1965). "Theoretical aspects of endurance training."
The same model. The same chart. The one TrainingPeaks charges €240/year for.
Ask "should I rest tomorrow?" The coach has your last 30 workouts, your current load, your zones, your goals. It reasons with the AI you already pay for.
Your key. Your data. Your AI.
AES-256-GCM at rest. We never see your Claude or ChatGPT key. Ever.
Zero per-token meter.
Your existing $20/month subscription covers unlimited coaching. No AI credits. No surprises.
Switch models mid-conversation.
Claude for nuance, GPT-4o for speed, Gemini for breadth. You're not locked to one vendor.
Should I rest tomorrow? Race on Saturday.
Yes, rest. TSB is +12 — peak form. Saturday's race will hurt if you push today.
30 min Z1 spin tomorrow to keep the legs turning. Thursday Z2. Friday off or shakeout.
And pace targets for Saturday's 40k TT?
TrainCurve on iOS. Native, fast, offline-first. Your CTL, ATL, and TSB on your wrist after every ride. Ask the coach from the saddle, on the climb, mid-Z2.
Live ride tracking. Watch the chart draw in real time. CTL updates within seconds of saving the workout.
Coach in your pocket. Voice-to-text. Ask between intervals. "Should I push the next one?" — real answer, real data.
Offline-first. No signal on the climb. No problem. Sync when you're back at the cafe.
Widgets. Today's TSB on your home screen. Race countdown. CTL trend. One tap to the chart.
Everything you need before you pin the number. Readiness score, target pace zones, weather, course profile, fueling plan — all on one screen, all from your last 90 days of data.
Readiness 87 · green to race.
TSB +12, 38h sleep last 3 nights, HRV trending up. You're fresh.
Target: 285W · 4.2 W/kg.
Based on your 90-day CP curve and Saturday's 18°C, 12km/h wind forecast.
Fueling: 80g carbs/hour.
Gel every 25 min. Bottles at km 30 and 55. Sip to thirst.
Course: 1,180m climbing, 3 categorized climbs.
Pace the first 60% conservatively. Last 40% — your form, your call.
Drop a FIT file. Sync Strava in two clicks. Pull from Garmin, Wahoo, Coros, Polar, Suunto. Export the full database as JSON, CSV, or FIT whenever you want. No lock-in. The core platform is open source (AGPLv3) — self-host for your club.
Banister 1965. Real-time CTL/ATL/TSB. The chart a coach would draw on a clipboard.
The paper · 1965
"The performance impulse, or fitness, is a positive function of both the quantity of training and the time elapsed since training occurred."
— Eric W. Banister
Numbers, not adjectives.
CTL, ATL, TSB, TSS, IF, NP, FTP zones — calculated from your raw FIT files. The Banister 1965 impulse-response model. Free on the free plan. The same one TrainingPeaks charges €240/year for.
BYOK. Period.
Your key, your data, your AI. We charge zero per token. AES-256-GCM at rest. Switch between Claude, GPT-4o, Gemini mid-conversation. Your existing $20/month covers unlimited coaching.
Open source.
The core is AGPLv3. Self-host if you want. Your training data, in formats you control. Export the full database as JSON, CSV, or FIT. No lock-in. Your data outlives us.
EU. GDPR. Local-first.
Data in Frankfurt. Never sold. Forgotten on request. Built in Barcelona for European athletes who care about where their data sits. No third-party trackers, no analytics resale, no ads.
GitHub-style heatmap. Every square is a day. Darker = harder. Empty = rest. The shape of a season — the consistency that wins races.
214
Days trained
412h
Total time
38
Day streak
59%
Consistency
96
Avg TSS
+8
vs 2025
A weekly recap delivered every Sunday morning. Total volume, intensity distribution, recovery, the workouts that mattered, the ones that didn't. No algorithm decides what's important — the data does, and you read it like a coach.
Total volume vs. plan.
12h 30m vs. 13h planned. Close enough. Don't chase it on Tuesday.
Intensity distribution.
72% Z2, 18% Z3-Z4, 10% Z5+. The 80/20 is intact.
The one that mattered.
Thursday's 4h Z2 with 4x8min surges. Theerobic work that bought Saturday's race.
Next week, in plain English.
"Two intensity days, one long Z2, three easy spins. Sunday off. Trust the form."
For athletes who want to see the numbers.
For serious training blocks and race prep.
For coaches managing multiple athletes.
The math, the money, the privacy, the devices. If something's missing, our WhatsApp button is at the bottom of the page.
CTL (Chronic Training Load) is your Fitness — a ~42-day exponentially-weighted average of your TSS. ATL (Acute Training Load) is your Fatigue — a ~7-day average. TSB (Training Stress Balance) is your Form: CTL minus ATL. The same model Banister published in 1965. The one TrainingPeaks charges €240/year for.
Training Stress Score combines a workout's duration and intensity. One hour at your threshold (FTP) equals 100 TSS. CTL, ATL, and TSB are exponentially-weighted averages of your daily TSS. Computed locally from your FIT files — no upload, no server delay, no API rate limits.
No per-token fee. BYOK — bring your own key for Claude Pro or ChatGPT Plus. Your $20/month subscription covers unlimited coaching. We never see your key, never store it in plaintext, never share it. Switch models mid-conversation if you want.
Yes. Free forever for your first 100 workouts. No credit card, no trial, no auto-conversion. Pro is €9/month for unlimited workouts and the BYOK AI coach. Team is €29/coach/month for managing multiple athletes.
Drop a FIT, TCX, or GPX file. Sync Strava in two clicks. Pull from Garmin, Wahoo, Coros, Polar, Suunto. Open formats in, open formats out: JSON, CSV, FIT. No lock-in. The core platform is open source (AGPLv3) — self-host for your club.
Yes. EU-hosted in Frankfurt. GDPR-compliant by design. AES-256-GCM for your AI provider key. Right to be forgotten on cancel — 30-day purge from production and backups. No third-party trackers, no analytics resale, no ads. Ever.
No credit card. No per-token meter. Just the math your coach uses, the AI you already pay for.
Made in Barcelona · EU-hosted · AGPLv3