The engine proposes. A human edits.
A workout-decoding engine, proven on real per-second data. It reads a session, finds the structure, classifies the workout, and scores how sure it is. Then a person checks it.
From raw activity to a decoded verdict
Normalize the activity — summary, laps, and per-second streams — and scrub the start and finish for privacy.
Break the run into blocks: straight from laps, or from the velocity stream via mean-shift changepoints.
Split work from easy at the speed threshold, cluster the repeats by duration, and capture each recovery float.
Run the cascade — intervals, race, long run, tempo, fartlek, easy, progression — over the shape and the stats.
Set a confidence from the data tier, then adjust for rep cleanliness, auto-laps, heart rate, and the athlete's label.
Pick a session, see the read
What the engine saw
- 10 clean work reps detected between recovery floats.
- Rep pacing is tight (low rep-to-rep variation).
- Matches the athlete's own session label.
How it decides what a workout is
How sure it is, and why
Confidence — the base
It starts from how much data the source gives us.
Then it adjusts
Signals push it up or down, clamped to 0.10–0.98.
The engine proposes. The eval gates keep it honest.
Every change runs against a labeled set before it ships. Two gates are non-negotiable: it has to classify accurately, and it must never invent intervals on a run that has none.
See it on a real session
The flagship decode, engine read and all, end to end.