WebRTC Metrics
A comprehensive overview of WebRTC statistics, derived indicators, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats
Back
candidate-paircandidate-pairnetwork
currentRoundTripTime(ms)
Latest round trip time computed from STUN connectivity checks
Description
Real number; in milliseconds
Latest round trip time computed from both STUN connectivity checks STUN-PATH-CHAR, including those that are sent for consent verification.
Interpreting Values
| Range | Description |
|---|---|
| <50ms | Excellent. Typical for peers in the same region or data center |
| 50-150ms | Acceptable for most calls. Cross-continent but still workable |
| 150-300ms | Noticeable delay in conversation. Users start to talk over each other |
| 300-500ms | Difficult to hold a natural conversation. Clear lag in responses |
| >500ms | Essentially unusable for interactive communication |
For TURN relay paths, expect an additional ~20-50ms overhead compared to direct connections
Common Causes
- Geographic distance between peers (speed of light is real)
- TURN relay adding extra network hops
- Network congestion along the path
- VPN routing adding detours
- ISP routing inefficiency or suboptimal peering
- WiFi latency and retransmissions at the link layer
User Experience Impact
- High RTT causes conversational "stepping on each other" - both parties start talking, then stop, then wait
- Makes natural turn-taking in conversation impossible
- Video appears to lag behind audio at very high RTT values
- Interactive use cases (screen sharing with remote control, collaborative editing) become frustrating above 150ms
Troubleshooting
- Check
candidateTypeon both local and remote candidates -relay(TURN) adds latency compared tosrflxorhost - Estimate geographic distance between peers - transcontinental calls inherently have higher RTT
- If using TURN, check whether a direct (peer-to-peer) connection is possible by reviewing ICE candidate gathering, also validate the user is routed to the correct TURN server geographically
- Compare with remote-inbound-rtp.roundTripTime for consistency - large differences may indicate measurement issues
- If RTT is unexpectedly high for the geographic distance, investigate VPN, proxy, or unusual ISP routing
See also
- candidate-pair->totalRoundTripTime
- candidate-pair->responsesReceived
- WebRTC Statistics Specification

Notes
- WebRTC getStats() returns totalRoundTripTime in seconds. For the purpose of visualization, we convert it to milliseconds in rtcStats