Measured behavior

# Numbers with *boundaries*

A latency number without its start and end points is an adjective with digits. Every figure here says what was measured.

Live serving measurements

## What the homepage numbers mean

These figures describe different parts of the running system. They should not be added together or treated as one end-to-end fixture.

01 / EXPRESSION

### Turn state stays off the speech path

**0.65 ms *0.83 ms p95***

Expression inference on CPU, measured with a 25 ms causal analysis window and recurrent updates every 10 ms.

02 / VIDEO

### The rendered face reaches the call

**~155 ms *at 30 fps***

Source canvas to decoded WebRTC. This is the visual transport boundary, not speech-response latency.

03 / FULL TURN

### A warm conversation answers

**1.8–2.1 s *p50***

Microphone speech to first returned audio, stable from one to eight concurrent sessions. At two conversations per T4, p95 was 2.183 seconds. A native-live baseline was faster on the same fixture: 1.054 seconds versus 1.955 seconds.

04 / SPECULATION

### Silence is spent generating

**~1.2 s *when applicable***

Microphone speech to first returned audio when speculative endpointing applies. If speech resumes, the speculative work is discarded.

05 / ASYNC WORK

### Tools do not stall the turn

**22.1 s *and 9.7 s***

Two concurrent background think calls in the recorded homepage demo. Both returned while the conversation continued; neither blocked a turn.

Separate forty-turn fixture

## What happens on turn forty

One scripted conversation, forty turns, retained context verified at the end. The latency boundary is final speech sample leaving the client to first response-audio byte arriving.

SETTLED-STATE LATENCY **1,395 ms**

Presence p50. It was slower to first audio than both hosted realtime APIs in this run.

INTERRUPT A PENDING TOOL **2.6 s**

Presence answered while its long-running tool continued. The same probe took 5.8 seconds on one hosted API and remained blocked on another.

TURN 40 / TURN 1 COST **17.3×**

Measured on one hosted realtime API. The other measured 1.25×. Presence remained 1.0× because it bills occupied time.

[Read the full run](https://presence.bohita.com/posts/what-happens-on-turn-forty) [Reproduce it](https://github.com/virevolai/voice-benchmarks)

These are single runs on one fixture, not a universal ranking. Models, prices, caching, regions, and serving paths change. The public harness and raw per-turn data are the durable claim.

Feel the boundary

## Numbers explain it. A live session makes it obvious

[Try Presence free](https://presence.bohita.com/?try=1) [Agent-readable measurements](https://presence.bohita.com/llms-full.txt#measured-behavior)
