A coach that
read every ride.
Not another dashboard for you to interpret. Kondya reads each session the way a coach would — what it cost, what it built, what it means for the next one — and tells you in a sentence.
Free while in beta. No card. Your history imports in a couple of minutes.
You blew through today’s plan — 136 minutes and 166 TSS against a planned 120, and you dropped a 10-minute PR at 325 W on top. That is solid. You clearly went hard on the climbs and did not back off when the legs answered.
The flip side: TSB is at −17, so you are properly in the hole now. You were at −7 the day before yesterday; you have just added 260 TSS in two days. Good for fitness, but it is a lot this close to Sunday.
Tomorrow is genuine rest or an easy Z1 spin — not negotiable. You need to come to the line fresh.
Reads your training through intervals.icu — which already syncs Garmin, Wahoo, Coros, Polar, Suunto and Zwift. Nothing new to install on your watch.
It shows up before you ask.
Most tools wait for you to open them, then hand you a chart. Kondya works the other way round: it reacts to what you did, then stays available for what you want to know.
After every session
A debrief lands when your ride syncs — what stood out, how it compares to the same effort three months ago, and whether it changes the plan.
Every morning
One readiness note built from your HRV, resting heart rate, sleep and accumulated load. Not a traffic light: a sentence about what today can carry.
Whenever you ask
The chat has your actual history in hand — every ride, every metric, your calendar and your races. It answers with your numbers, not general advice.
10-minute record at 325 W, Girona on fire
Road cycling · Girona
Duration
Average
Heart rate
TSS
We are not going to Banyoles today, we are staying in Girona. What do you suggest? We already did Els Àngels yesterday.
TSB +3 — you are fresh despite the slight dip in HRV and sleep. Green light for today.
Since you are staying in Girona and Els Àngels is done, take Rocacorba for the threshold block: 6 km at 8% average, steady, ideal for your reps at 98% FTP. Then move to the Gavarres on the Sant Miquel de Cruïlles side for the VO2 work — shorter, punchier ramps at 9–10%, so you get 3-minute efforts at 115% without a 45-minute ride between each climb.
That gives you the full structure without repeating yesterday’s roads.
It says “I don’t know”.
A coach is only as good as the numbers underneath it, and training data is messy — dropped straps, short rides, indoor sessions where heart rate never moves. Most apps quietly fill the gap with an estimate. Kondya refuses, by design.
1.44
W/beat at 146 bpm
- fit quality (r²)
- 0.71
- stable samples
- 1,284
- HR span used
- 96–158 bpm
HR_RANGE_TOO_NARROW
Your heart rate never moved enough on this ride to fit a line through.
No estimate. No “approximately”. No zero standing in for a missing value — the record is stored empty, and the chart skips this ride.
A missing input is a result
When a metric cannot be computed, the answer is a named reason, not a number. Nothing is rounded up from nothing, and a blank is never stored as a zero that later gets plotted.
Built to survive bad data
The engine fit uses a robust regression, so a handful of chest-strap spikes cannot drag the trend. Warm-up is excluded, heart-rate lag is realigned, and unstable stretches are dropped before anything is measured.
Enforced, not promised
This is not a policy in a blog post. There is a test in the codebase whose job is to fail the build if any calculator ever returns an invented physiological value.
Is the engine actually bigger?
Weekly hours tell you what you spent. FTP moves for reasons that have nothing to do with fitness. Kondya tracks the watts each heartbeat buys you at the same relative effort — measured at the same point on your own heart rate curve, every time, and corrected for the heat and fatigue that would otherwise flatter or punish a session.
Aerobic Engine
1.44 W/beat@ 146 bpmIndex 131+22.2% / 90dPower your heart delivers per beat at endurance effort — cleaned of sensor artefacts, heat and deep fatigue
Indoor rides read −0.01 W/beat vs outdoor on your data — compare like with like using the filter.
Because the reference point never moves, a change over months is a change in you: not the route, not the weather, not how hard you went that day. Rides that cannot support the measurement are shown hollow and left out of the trend. Read how it is computed →
Your fitness,
with a face.
Kondy is a mitochondrion, which is the least sentimental way of saying it is literally your aerobic engine. It watches four vital signs — consistency, recovery, volume and how your intensity is distributed — and its mood follows them.
Your level climbs with your condition and falls when you stop, so it is never a participation trophy. Your highest ever is kept separately and never drops. The ladder is anchored on real riders rather than invented tiers, and the top rung is Pogačar — you are not going to reach it.

« All four green. This is exactly it. »
9 h/wk · building
THRIVINGAll four vitals green at once. Rare, and worth noticing.
WARMING_UPYou have started again. Nothing to read into yet.
VOLUME_HIGHMore load this week than your own recent normal.
OVERLOADEDWell past what you have been absorbing. Back off.
RUNNING_HOTRecovery is slipping while the load keeps climbing.
GREY_ZONEEverything at the same middling intensity. Neither easy nor hard.
TOO_FLATNothing has been genuinely hard for a while.
PATCHYThe weeks do not look like each other.
PARTIAL_VIEWNot enough data to judge. It says so instead of guessing.
Nine of the sixteen states Kondy can be in. It never picks one to be nice — the four vitals decide, and PARTIAL_VIEW is what you get when they cannot.
The climbs you
actually ride.
Kondya finds the climbs in your own rides — gradient, length, where they bite — and keeps every attempt you have made on them. You can see whether you are getting faster on the roads you actually train on, not on a stranger’s sprint sector.
Where several athletes share a climb, there is a leaderboard. E-bikes and virtual rides are excluded, ties share a rank, and you only appear if you asked to.
Three minutes, once.
- 1
Have an intervals.icu account
Free, and already connected to your watch. If you are reading this from the intervals.icu forum, you are done with this step.
- 2
Paste your key
Copy the athlete ID and API key from your intervals.icu developer settings into Kondya. One-click sign-in is on its way.
- 3
Let it read your history
Kondya imports your last two years, works out your thresholds from your own rides, and has your first debrief waiting.
Where this actually is
Kondya is in beta, built by one person. Things will break, and some will break on a weekday when nobody is watching. It is worth knowing that before you connect.
Everything is free during the beta. The AI features cost real money to run, so each account gets an allowance you can see in the app; when it runs out, the coach pauses and everything computed on our own servers keeps working exactly as before.
Your training data stays yours, it lives in the EU, and you can delete the account — and everything in it — from inside the app, in one click, without emailing anyone.

Let something read it all.
You already have the data. Give it to something that will actually go through it.