Capacity & traffic
| Metric | What it means | Healthy range | Why it matters |
|---|---|---|---|
| CPS (Calls Per Second) | Origination rate. | Whatever the trunk’s contracted CPS is, headroom ~30%. | Carriers throttle past contracted CPS; sustained overshoot = 503 rejections. |
| Concurrent channels | In-flight calls at any instant. | < 80% of trunk channel cap. | Hitting 100% drops new call attempts. Steady state = CPS × ACD. |
| Erlangs | Channel-hours of traffic. 1 Erlang = one channel busy continuously for one hour. | Capacity-planning unit. | Carriers and PBX vendors size hardware in Erlangs, not CPS. |
| Trunk utilisation | Concurrent / channel cap. | 60–80%. | < 40% = over-provisioned (cost). > 90% = blocking risk. |
Connection & answer rates
| Metric | Formula | Healthy | Why it matters |
|---|---|---|---|
| ASR (Answer-Seizure Ratio) | answered / attempted | 30%–70% (campaigns), > 90% (transactional) | Low ASR = dialing bad numbers, blocked caller-ID, or trunk health issues. |
| ACD (Average Call Duration) | Σ duration / answered | depends on use case | Sudden ACD drop = audio failure; sudden spike = stuck calls not hanging up. |
| ABR / NER (Answer/Network Effectiveness Ratio) | (answered + busy + no-answer) / attempted | > 95% | Excludes “user-busy” from your fault attribution; isolates network failures. |
| CCR (Call Completion Ratio) | answered / not-blocked-attempts | > 50% on outbound campaigns | Carrier-facing version of ASR. |
| PDD (Post-Dial Delay) | dial → ringback start | < 3 s | High PDD = caller hangs up before ringback. Often driven by carrier routing. |
Audio quality
| Metric | What it means | Healthy | Why it matters |
|---|---|---|---|
| MOS (Mean Opinion Score) | Subjective 1.0–5.0 quality estimate. | ≥ 4.0 toll, ≥ 3.6 acceptable | Single-number summary of perceived audio quality. |
| R-factor | ITU E-Model 0–100. Converts to MOS. | ≥ 80 = MOS 4+ | Catches problems MOS-only smooths over (delay, codec, jitter). |
| Jitter (ms) | StdDev of inter-packet arrival times. | < 30 ms | Above 30 ms triggers de-jitter buffering, raising latency. |
| Packet loss (%) | RTP packets dropped. | < 1% | 1–3% audible; > 3% degraded. |
| One-way latency (ms) | Mouth → ear. | < 150 ms ideal, < 300 ms acceptable | ITU G.114. Above 400 ms conversation falls apart. |
| Round-trip time (ms) | Symmetric round trip. | < 300 ms | Diagnostic; one-way latency is the user-perceived number. |
| Echo Return Loss (ERL, dB) | Echo suppression measure. | > 20 dB | < 10 dB and the caller hears themselves. |
WebRTC-specific metrics
When the leg in question is WebRTC (browser, LiveKit, Daily, Chime, Twilio Media Streams, Vapi), there’s a second tier of numbers everyone expects:| Metric | What it means | Healthy | Why it matters |
|---|---|---|---|
| ICE gathering time (ms) | Time to enumerate candidate paths and pick one. | < 1 s | High values mean STUN/TURN issues; user hears a long “connecting” pause. |
| DTLS handshake time (ms) | SRTP key negotiation duration. | < 200 ms | Adds to PDD on WebRTC legs. |
| Selected candidate type | host / srflx / relay. | Mostly host or srflx. | High relay % = lots of TURN traffic; expensive and adds 30–80 ms one-way. |
| REMB / TWCC bandwidth estimate | Live link estimate from the WebRTC bandwidth controller. | matches connection speed | Drops in estimate predict upcoming loss/jitter. |
| NACK / FIR rate | Retransmit and full-frame requests. | low and stable | Spikes = receiver detecting loss; sustained spikes = action needed. |
| Audio level | Per-direction loudness. | speech-shaped, with silences | Flat or zero levels = mic/route issue. |
| PLI/PLC events | Packet-loss-concealment fires. | sparse | Frequent PLC = loss is masking but quality is degraded. |
getStats() standard, so any
existing observability tooling that consumes WebRTC stats will
recognise them by name.
Outbound campaign metrics
| Metric | What it means | Healthy | Why it matters |
|---|---|---|---|
| Connect rate | answered / dialed | 30–60% (cold), > 80% (warm) | Bottom-of-funnel conversion driver. |
| Pickup rate | ”human answered” / dialed | varies | AMD (answering-machine detection) classifies calls as human vs voicemail. |
| Abandon rate | answered → agent unavailable / answered | ≤ 3% (TCPA) | TCPA caps US predictive-dialer abandon at 3% — a legal requirement, not a target. |
| Drop rate | dropped mid-call / answered | < 0.5% | High drops = trunk instability or codec mismatch. |
| DNC hit rate | suppressed / dialed | ideally 0% | Anything > 0 means your DNC hygiene is broken. |
Inbound / contact-centre metrics
| Metric | What it means | Healthy | Why it matters |
|---|---|---|---|
| AHT (Average Handle Time) | talk + hold + wrap-up | varies by industry | Operations efficiency. |
| ASA (Average Speed of Answer) | queue time before agent picks up | < 30 s most industries | SLAs are usually written against ASA. |
| Service Level | ”% answered within X seconds”. e.g. 80/20 = 80% within 20 s. | varies | The dominant SLA shape in contact-centre RFPs. |
| Abandonment Rate | callers who hung up before agent | < 5% | Above 5% = under-staffed or routing issues. |
| First Call Resolution (FCR) | resolved / answered | > 70% | Predicts CSAT better than AHT. |
| Occupancy | (talk + hold + wrap) / scheduled | 80–85% | > 90% burns out agents. |
Cost metrics
| Metric | What it means | Why it matters |
|---|---|---|
| CPM (Cost Per Minute) | Carrier rate per minute. Varies by destination prefix. | Foundation of LCR. |
| CPC (Cost Per Call) | All-in cost per attempt: minutes + AI + recording storage. | Standard unit-economics figure for voice workloads. |
| Margin per minute | Revenue – (carrier + AI + infra) per billed minute. | Determines whether per-minute pricing is sustainable. |
| Bill increment | Carriers bill in 1/1, 6/6, or 30/30-second increments. | First number = setup minimum, second = increment after. 6/6 vs 1/1 changes a 7-second call from 12-sec to 7-sec billing. |
Reliability
| Metric | What it means | Healthy | Why it matters |
|---|---|---|---|
| Uptime / availability | % of time service answered new calls. | ≥ 99.95% (3-nines plus). | Voice SLAs hover here; below 99.9% triggers credits. |
| MTTR (Mean Time To Repair) | Avg outage length. | < 15 min for carrier-grade voice. | More operationally meaningful than MTBF for voice. |
| Cutover RTO/RPO | Time-to-recover / data-loss window for failover. | RTO < 1 min, RPO ~0 for voice. | Active-active vs cold-standby decision. |
Which metrics matter for which workload
| Workload | Primary metrics |
|---|---|
| Outbound predictive dialer | ASR, abandon rate, CPS sustained. |
| Contact-centre / ACD | ASA, service level, MOS. |
| Carrier interconnect | CPS, NER, MOS, CPM. |
| AI voicebot | One-way latency, transcoding overhead, concurrent channels. |
| Browser / WebRTC | DTLS handshake time, ICE gathering time, % relay candidates, MOS. |
| Regulated (health / finance) | DTMF masking, recording encryption, retention controls. |
| Cost / unit-economics | CPC, margin per minute, billing increment. |