Twelve real calls, scored against one default configuration
We recorded 12 scripted phone calls on 2026-07-06 against a stock assistant running on a popular hosted voice platform, left on its default interruption settings, dual channel, then scored every moment offline with Hotato. This page is about what defaults do before anyone tunes them. It is not a vendor ranking, and the platform is not named here.
Recorded by the project maintainers as scripted calls: one human caller worked from a written script against a synthetic voice assistant. The labels (what the script called for at each moment) come from that script, not from a model. Hotato measures timing from the two audio channels only. The clips embedded below are MIT licensed, in the repository.
What the defaults did
- Backchannels take the floor in about 0.34 seconds. A soft acknowledgement stops the agent as fast as a real interruption does.
- A firm “Stop.” does not register. The agent talks 1.26 seconds past it, then restarts its whole answer 3.6 seconds later.
- A 4 second thinking pause loses the floor at 3.44 seconds. The agent jumps in while the caller’s sentence is still unfinished.
- The quiet interrupt is missed entirely. A half-volume attempt never crosses the default threshold; a louder retry on the same call yields in 0.60 seconds.
Every number above is a timing measurement, not an accuracy percentage. Full derivation per moment: manifest.json in the corpus directory linked below.
The measured results, one card per moment
Bounds, stated once and applied uniformly to every should-yield moment: 1.0 second to yield, 1.0 second of talk-over. Seventeen scored moments, nine pass, six fail, one latency-only reading, one baseline with no event to score. This replaces a table dump: every card below is the real timeline for that moment, drawn from the same real measurements a table would show. Caller on the left channel, agent on the right; the shaded band is measured talk-over.
Correctly handled: a real interruption or a backchannel, either way
Nine of seventeen. The default configuration is not broken all the time: rapid, loud, or ordinary interruptions mostly land, and one soft backchannel is correctly held through.
False yields: a backchannel mistaken for a bid to speak
Three of seventeen. “Mhm”, “right”, and “yeah” all took the floor in about a third of a second, the same reflex speed as a real interruption above. No timing threshold tells these apart from the real thing.
Missed or slow: a real interruption the default fumbled
Three of seventeen. These should have yielded fast; the default either missed the attempt outright or blew past the stated one second bound.
The other direction: the agent jumping the caller’s pause
One of seventeen, not a barge-in at all: a four second thinking pause, mid-sentence. The default treats a pause as a turn ending.
The baseline: a call with no interruption at all
One of seventeen. Sanity anchor: this call has no caller-during-agent onset anywhere, so no event exists to score. It is the clean floor every measurement above is a departure from.
The funnel verdict
The battery fails on both axes at once: it misses a genuine interruption (script 10) and false-yields on backchannels (scripts 4 and 5) in the same run. No single sensitivity threshold fixes both directions; raising it to hold through backchannels drops real interruptions, lowering it to catch interruptions yields to backchannels. Run against the real battery, hotato plan reports exactly that, and refuses to propose a threshold change:
hotato plan [stack] finding=threshold_funnel decision=do_not_tune_single_threshold config_only_safe=false production_apply=false (approval: manual) hypothesis: The battery missed a genuine interruption and also stopped for a backchannel. One sensitivity threshold cannot satisfy both: raising it to hold through backchannels drops real interruptions, lowering it to catch interruptions yields to backchannels. The failure class is discrimination, not calibration. recommended fix class: engagement-control platform mutation: performed=false (hotato plan is read-only)
Real output from the real battery, trimmed to the decision and hypothesis; the platform name is genericized here and the full untrimmed JSON (with per-event evidence) is in the repository linked below.
Everything else
All seventeen scored moments across twelve scripted calls are shown above; each card links back to the same real measurements shown in the funnel verdict below. The manifest with every onset derivation, the two disagreements between the measured binary and the operator’s own field notes (walked through frame by frame on the cards above, not smoothed over), and the full battery envelope live in the repository:
See the full corpus on GitHub →
These clips document one assistant, on one platform’s default interruption settings, on one recording date, called by one cooperative scripted caller on a clean connection. They are a measured portrait of a default configuration, not a benchmark of any vendor, and they carry no accuracy percentage. The labels come from the caller’s script; Hotato contributes the timing measurements only.