Blog

Interval VS. Event-Triggered Coaching

Posted 2026-08-23

AudioRun’s voice coach used to speak on a schedule. Every kilometer, or every few minutes, whatever you set. That works when the run is uneventful. It fails exactly when you need a coach most, because the moments that matter in a run don’t arrive on a timer.

The interval callouts are still there. But the coach now also reacts to what the telemetry shows: heart rate climbing into a new zone, heart rate going critical, a sustained hill, a fading pace, being on PR pace. Each trigger carries a plain-language reason that goes into the prompt — “heart rate has climbed into zone 4 and stayed there” — so the model responds to a concrete moment instead of producing commentary from a stats snapshot.

A run that shows the difference

Yesterday I recorded a test session where I started out way too hard, straight up a hill. The route climbs steeply over the first 1.6 km, No goal set, just a free run. The messages below are from the event-triggered coach.

Heart rate and elevation over the first seven minutes of the test run Two panels over a shared time axis. Top: heart rate climbs from 106 into the zone 4 threshold band within four minutes and stays there, peaking at 166 bpm. Bottom: the elevation profile climbs steadily from 382 to about 405 meters. Two numbered markers show when the event-triggered coach spoke, at 3:36 and 4:36; a dashed line at 6:44 marks the 1 kilometer point, where a distance-only coach would have spoken first. HEART RATE · BPM ELEVATION · M 100 120 140 160 ZONE 4 · THRESHOLD 380 400 0:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 1 KM 166 405 1 2
The first seven minutes. The numbered markers are the coach’s first two messages; the dashed line at 1 km is the first time a distance-only coach would have said anything.

Three and a half minutes in, 500 meters covered, my heart rate is 163 — 86% of max, and I’m barely warmed up. The zone trigger fires:

“Your heart rate has settled into threshold early, so ease your effort on this climb and let your breathing become relaxed and controlled.”

A minute later the hill trigger picks up the terrain itself — 21 meters of gain over the previous 400 meters:

“This climb is demanding, and threshold effort is already high; shorten your stride, keep your torso tall, and ease the pace to protect the run.”

I didn’t ease off. At 7:36, still in zone 4, the coach notices I ignored it:

“Your heart rate is still in threshold early, so ease back another notch and settle into a sustainable effort for this open-ended run.”

And at 10:55, with the climb still going and my pace now slowing on its own, it switches to form advice — the effort argument has been made twice already:

“This climb is still demanding; keep your torso tall, shorten your stride, and use light, quick steps to reduce strain.”

The run ended at 2.3 km, just under fifteen minutes, me completely gassed. The coach had told me to back off three times by then.

What a pure interval coach would have said

I exported the run and replayed it with the old distance callouts only. The first message lands around 6:45, when I pass 1 km. By then I’d been at threshold for over three minutes and the steepest part of the climb was behind me. And the message would have been about my split — a number that looked unremarkable, because the problem was never the pace. A distance-based coach can’t see the difference between a relaxed 6:36 on the flat and a threshold 6:36 up a hill. The heart rate trigger can, and it fired three minutes earlier, while easing off could still save the run.

Keeping it from nagging

The obvious risk with event triggers is a coach that won’t shut up. Every hill has a hundred GPS samples that look like a hill. So triggers have per-type cooldowns, there’s a global minimum gap between spoken messages, and each trigger carries an urgency level that decides whether it speaks ahead of queued stats announcements or waits its turn. The coach also gets told what it already said, so the second heart rate warning builds on the first instead of repeating it. If nothing eventful happens, the coach falls back to the interval callouts which are user-defined.