The Developer's Dilemma
Developers often receive vague feedback like "the call was choppy" or "the quality was bad." This subjective information is difficult to quantify, monitor, or debug. How do you measure an experience?
Vague Feedback
User complaints are subjective and lack technical detail.
No Clear Metric
Without a number, it's impossible to set quality targets or track improvements.
Difficult Debugging
Pinpointing the root cause of poor quality becomes guesswork.
The Solution: A Single, Actionable Score
`rtcscore` translates complex WebRTC statistics into one simple number: a quality score from 1 (Bad) to 5 (Excellent). This score, based on the Mean Opinion Score (MOS) model, provides a clear, objective measure of call quality.
This range makes quality tangible and easy to understand for everyone, from developers to support teams.
From Chaos to Clarity: The Scoring Process
Poll Raw Stats
The library periodically calls WebRTC's `getStats()` API to gather dozens of raw performance metrics.
Analyze Key Metrics
It focuses on the three most critical indicators of user-perceived quality: packet loss, jitter, and round-trip time.
Calculate Score
It starts with a perfect score of 5 and subtracts "penalty points" based on the severity of the metrics to produce the final score.
The Core Metrics That Impact Quality
`rtcscore` focuses on three primary factors that directly affect how a user perceives the quality of a call.
Packet Loss
Data packets that never arrive. Causes choppy audio and frozen video.
Jitter
Inconsistent packet arrival time. Leads to distorted, robotic audio.
Round-Trip Time (RTT)
The delay for data to travel to the other user and back. Causes lag and echo.
Visualizing Quality Score Degradation
This chart shows how a perfect score of 5.0 is reduced by penalties from poor network conditions.
Understanding the Score
Imperceptible issues. Crystal clear quality.
Minor issues, not affecting usability.
Noticeable issues, starting to impact experience.
Significant degradation, frustrating for users.
Powerful Use Cases Unlocked
Real-time User Feedback
Display a "connection quality" indicator in the UI, empowering users to understand their network conditions during a call.
Automated Quality Assurance
Integrate into end-to-end tests to automatically assert call quality under different simulated network conditions.
Smarter Analytics
Log scores to your backend to proactively identify users with poor experiences and correlate quality with regions or app versions.
Adaptive Applications
Automatically lower video resolution, switch to audio-only, or suggest network changes when the score drops consistently.