# EOT value leads to around 30% of e2e latency, Tried reducing min/max endpointint in turn delay plugin but no luck

**URL:** <https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450>\
**Category:** Getting Started\
**Tags:** stt, plugin, turn-detection, livekit-cloud\
**Created:** [June 17, 2026, 11:33am UTC](https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450 "2026-06-17T11:33:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kaushal\_Shah](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/kaushal_shah/32/1237_2.png) [@Kaushal\_Shah](https://community.livekit.io/u/Kaushal_Shah)\
**Post date:** [June 17, 2026, 11:33am UTC](https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450/1 "2026-06-17T11:33:24Z")

</div>

We are usually having llm ttft + tts ttfb around 1.2 seconds on avg. But stil e2e latency is much higher. i suspect it was because of end of turn delay as its mostly around 500ms on an avg.

I tried reducing

```auto
turn_handling=TurnHandlingOptions(

            turn_detection=MultilingualModel(),

endpointing={

"mode": "fixed",

"min_delay": 0.2,

"max_delay": 1.2,

            },

interruption={

"enabled": True,

"resume_false_interruption": True,

"mode": "adaptive",

"min_words": 2,

            },

preemptive_generation={"enabled": true},

```

I expect end of turn delay to reduce by 200-300ms but it still same around 500ms.  
These settings are passed on agent session and i am using vad silero with value min\_silence\_duration = 0.2

One of the chat merics data for user turn  
“end\_of\_turn\_delay”: 0.5877835750579834,

“started\_speaking\_at”: 1781695592.438063,

“stopped\_speaking\_at”: 1781695593.151138,

“transcription\_delay”: 0.5335736274719238,

“on\_user\_turn\_completed\_delay”: 0.00003577399979803886

One of the chat merics data for ai turn after it

“e2e\_latency”: 1.832134485244751,

“llm\_node\_ttft”: 0.8538708429998678,

“tts\_node\_ttfb”: 0.38110785300000316,

“playback\_latency”: 0.00008678436279296875,

“started\_speaking\_at”: 1781695594.9832726,

“stopped\_speaking\_at”: 1781695596.3034112

i am using deepgram nova STT,

Am i missing anything or what should i do to make e2e latency as lower as possible as from what i see if i reduce end of turn delay it will signifcantly reduce e2e but not sure why above changes not work.

i am using livekit-agent, turn detector with version 1.6.0

---

<div class="post-metadata">

**Author:** ![Kaushal\_Shah](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/kaushal_shah/32/1237_2.png) [@Kaushal\_Shah](https://community.livekit.io/u/Kaushal_Shah)\
**Post date:** [June 17, 2026, 11:51am UTC](https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450/2 "2026-06-17T11:51:29Z")

</div>

Adding few session details

RM\_PGWcYFqCAcFT, RM\_8Lnc83ntTuz8, RM\_adPKQsMe3D3d

---

<div class="post-metadata">

**Author:** ![Muhammad\_Usman\_Bashir](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/muhammad_usman_bashir/32/1149_2.png) [@Muhammad\_Usman\_Bashir](https://community.livekit.io/u/Muhammad_Usman_Bashir)\
**Post date:** [June 17, 2026, 9:19pm UTC](https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450/3 "2026-06-17T21:19:03Z")

</div>

@Kaushal_Shah, Your metrics explain it: `end_of_turn_delay` (`0.588`) and `transcription_delay` (`0.533`) are both measured from stop-speaking [[livekit/agents voice/audio\_recognition.py](https://github.com/livekit/agents/blob/main/livekit-agents/livekit/agents/voice/audio_recognition.py) ], so only ~55ms separates them. That `~55ms` is all the turn detector and `min_delay`/`max_delay` control; the `0.53s` underneath is the wait for Deepgram’s final transcript, which `TurnHandlingOptions.endpointing` can’t touch.

The EOT lever is the STT side, not turn handling:

```auto
from livekit.plugins import deepgram
stt = deepgram.STT(model="nova-3", endpointing_ms=25, no_delay=True)

```

`endpointing_ms` already defaults to `25` [[livekit/agents deepgram stt.py](https://github.com/livekit/agents/blob/main/livekit-plugins/livekit-plugins-deepgram/livekit/plugins/deepgram/stt.py) ], so if you’re on it, most of that `533ms` is Deepgram’s own finalize plus network RTT, a closer region or faster STT beats any knob. And note `llm_node_ttft` (`0.85`) is your biggest e2e slice anyway, ahead of EOT.

---

<div class="post-metadata">

**Author:** ![Kaushal\_Shah](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/kaushal_shah/32/1237_2.png) [@Kaushal\_Shah](https://community.livekit.io/u/Kaushal_Shah)\
**Post date:** [June 18, 2026, 1:27pm UTC](https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450/4 "2026-06-18T13:27:20Z")

</div>

Ah makes sense, silly me  
Yeah so EOT is composes of both STT finalization and turn detector time.

Thanks for clarification

---

<div class="post-metadata">

**Author:** ![system](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/system/32/26_2.png) [@system](https://community.livekit.io/u/system)\
**Post date:** [June 20, 2026, 1:27pm UTC](https://community.livekit.io/t/eot-value-leads-to-around-30-of-e2e-latency-tried-reducing-min-max-endpointint-in-turn-delay-plugin-but-no-luck/1450/5 "2026-06-20T13:27:42Z")

</div>

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
