NYSE: IDT
Stay ahead with IDT Express
Products

Discover how our products can revolutionize the way you communicate and collaborate.

Voice

Explore our advanced voice solutions designed to optimize your communication workflows.

Diverse range of DID number solutions designed to enhance your communication capabilities.

Experience unparalleled communication efficiency with our advanced SIP Trunking Solutions.

Cutting-edge technology to proactively detect and neutralize spam flags on your DID Numbers.

Enable your customers to connect with your business by dialing a toll-free number.

AI voice agents that handle calls, capture leads, and provide customer support automatically, anytime.
Messaging

Wherever your audience is, our platform ensures seamless messaging across diverse channels.

Build customer journeys by fostering interactive conversations, all within the framework of your app. 

Connect with your audience in a simple and effective way through our cutting-edge SMS platform. 

BYOC

Harness the power of IDT as your chosen carrier while leveraging your platform’s advanced features and services.

Integrate Twilio with our robust carrier routing platform to achieve unparalleled Voice termination system.

Experience reliable and high-quality communication services while leveraging the advanced capabilities of Genesys. 

Integrate IDT with the collaborative strength of MS Teams, unlocking efficient and feature-rich communication. 

Experience the power of our carrier network seamlessly connected to Plivo through our cutting-edge BYOC solution. 

Tools

Experience the power of our online voice tools, designed to simplify communication management. 

Ensure the authenticity and integrity of outbound calls with our STIR/SHAKEN Verification Check tool. 

User-friendly tool to verify the reputation of your business number, ensuring that it remains trusted. 

Compare and gain insights into outbound call expenses, optimize budget, and make informed decisions. 

Easily estimate and compare the costs associated with different DID numbers providers. 

Compare inbound VoIP rates among top CPaaS providers and optimize your inbound call costs. 

Generate custom SMS templates. 

Resources

Empower yourself with the resources you need to thrive in the dynamic landscape of communication.

Articles covering a wide range of topics.

Discover our video guides.

Get answers to common queries.

Find instructions to make the most of our products.

Stay informed with today's most important news stories

Discover telecom insights and trends.

Find definitions of popular telecom terms.

Discover the upcoming events on our calendar
Company

A global telecom partner built to meet your needs. 

Discover the story behind our commitment to delivering innovative solutions to connect people and businesses worldwide. 

Learn about our robust network infrastructure that spans across the globe, ensuring reliable and secure connectivity. 

Got a question, feedback, or need assistance? Our dedicated team is here to help!

Find partners or sign up for partnership programs.

NYSE: IDT
Learn / Blog

Reading ASR, ACD and PDD: A Route Quality Playbook for LCR Buyers

|
|  8 min
|
In this article

ASR is the share of call attempts that get answered. ACD is the average duration of answered calls. PDD is the time from call setup to the far end ringing. Those are the three numbers every wholesale buyer watches.

The governing principle: none of them means anything alone, and none of them means anything without a baseline for the destination. A 35% ASR can be excellent on one destination and a route failure on another. A short ACD can be normal traffic or fraud. You read these metrics in pairs, against history, and against other routes to the same place. That’s the whole playbook. The rest is detail.

This is written for people running least-cost routing across several carriers. It assumes you have CDRs and a query tool.

Definitions you can compute

Get the definitions exact and consistent first. Half of all quality disputes between carriers turn out to be two teams computing ASR differently.

ASR (answer-seizure ratio): answered calls divided by attempts sent to the route. Define “attempt” explicitly. Include calls that failed on the route (4xx, 5xx, timeouts). Exclude calls your own switch rejected before routing. Count calls cancelled by the originator (487) as attempts; the route didn’t fail, but they’re part of the denominator the carrier sees.

ACD (average call duration): total billable seconds of answered calls divided by answered calls. Use the billable duration, from answer to disconnect.

PDD (post-dial delay): time from sending INVITE to receiving the first 180 or 183. Report median and a high percentile, not the mean. PDD distributions have long tails, and the mean hides them.

NER (network effectiveness ratio): the share of attempts that the network delivered to the called party’s side, whether the person answered, was busy, didn’t answer, or rejected the call. It strips out user behavior. If ASR is “did someone pick up,” NER is “did the network do its job.” This is the metric that separates route problems from destination behavior.

Computing them from CDRs

A minimal query, assuming a CDR table with setup, first-ring, answer and end timestamps plus the final SIP response code:

SELECT
  route_id,
  dest_prefix,
  COUNT(*)                                              AS attempts,
  SUM(CASE WHEN answer_ts IS NOT NULL THEN 1 ELSE 0 END) AS answered,
  1.0 * SUM(CASE WHEN answer_ts IS NOT NULL THEN 1 ELSE 0 END)
      / COUNT(*)                                        AS asr,
  SUM(CASE WHEN answer_ts IS NOT NULL
           THEN EXTRACT(EPOCH FROM end_ts - answer_ts) END)
      / NULLIF(SUM(CASE WHEN answer_ts IS NOT NULL THEN 1 ELSE 0 END), 0)
                                                        AS acd_seconds,
  PERCENTILE_CONT(0.5) WITHIN GROUP
      (ORDER BY EXTRACT(EPOCH FROM ring_ts - setup_ts)) AS pdd_p50,
  PERCENTILE_CONT(0.9) WITHIN GROUP
      (ORDER BY EXTRACT(EPOCH FROM ring_ts - setup_ts)) AS pdd_p90,
  1.0 * SUM(CASE WHEN answer_ts IS NOT NULL
                   OR final_code IN (486, 480, 603) THEN 1 ELSE 0 END)
      / COUNT(*)                                        AS ner,
  1.0 * SUM(CASE WHEN answer_ts IS NOT NULL
                  AND end_ts - answer_ts < INTERVAL '6 seconds'
                 THEN 1 ELSE 0 END)
      / NULLIF(SUM(CASE WHEN answer_ts IS NOT NULL THEN 1 ELSE 0 END), 0)
                                                        AS short_call_share
FROM cdr
WHERE setup_ts >= NOW() - INTERVAL '24 hours'
GROUP BY route_id, dest_prefix
HAVING COUNT(*) >= 300;Code language: PHP (php)

Adjust the NER code set to your switch’s mapping; 480 (temporarily unavailable) is sometimes a network failure in disguise. The short-call share is not a standard metric. Add it anyway. It’s the cheapest fraud and audio detector you’ll ever build.

The HAVING clause matters. More on that below.

Read them in pairs

Single metrics generate false alarms. Pairs point at causes. This table covers the patterns that come up most:

PatternLikely causeFirst check
ASR down, NER stableRecipients not answering: CLI, list quality, time of dayWhat number arrived on test calls
ASR down, NER downRoute or upstream failureSpike in 5xx, 408, or 503 responses
ASR up sharply, ACD down, short-call share upFalse answer supervisionListen to short calls; check answer before ring
ASR stable, ACD down on one route onlyAudio problems causing hang-ups: one-way audio, jitter, codec mismatchRTP stats, test calls on that route
PDD up, ASR stableExtra transit hops or upstream route changeTest CLI and audio on the route
404 / 484 spike on one prefixNumbering plan change or bad prefix mappingDestination numbering updates
ASR down on all routes to a destinationDestination-side event: outage, holiday, regulationCompare routes; check destination news

The last row is the one that saves you from dropping good routes. If every route to a destination falls at once, the routes aren’t the problem.

False answer supervision deserves its own section

False answer supervision is the far end signaling “answered” when no human has answered. It shows up as an ASR that looks better than any competing route, with a cluster of calls lasting a few seconds, often answered faster than a phone could plausibly ring.

It’s costly in two ways. You pay for calls that never connected to a person. And coarse billing makes each one expensive; the billing increments breakdown shows how a 60/60 route turns a four-second fake answer into a billed minute.

Detection that works: flag routes where the gap between first ring and answer is often under a second or two, where answers arrive with no 180/183 at all, or where short-call share runs well above other routes to the same prefix. Then sample the audio. Ringback tones or silence after “answer” confirm it.

Sample size and time windows

Small samples lie. A route with 40 attempts in an hour can swing ten points of ASR on noise alone.

Set a minimum attempt count before any metric triggers an action. The 300 in the query above is arbitrary; pick a floor from your own volume and stick to it. For low-volume destinations, widen the window to a day or a week instead of alerting on hourly data.

Compare like with like on time. ASR on consumer mobile destinations has a strong daily shape: people answer differently at 10 a.m. and 9 p.m. local time. Compare a route’s evening performance with its own evenings, or with other routes over the same hours. Week-over-week is a better baseline than hour-over-hour.

Watch for mix shifts. If a customer moves a campaign onto a route, the route’s ASR changes because the traffic changed, not the route. Break metrics down by customer or traffic tag where you can.

Baselines per destination, not per network

There is no universal “good ASR.” Destinations differ in mobile share, calling culture, spam filtering and a dozen other things. Any benchmark number applied across destinations will be wrong for most of them.

Build a baseline per destination prefix from your own history across all routes. A reasonable approach: rolling 28-day median ASR, ACD and PDD per prefix, weighted by volume. Then evaluate each route relative to that baseline and relative to the best route on the same prefix.

At scale, this is the only method that holds up. Across a footprint like IDT Express’s 160+ termination countries, the destinations behave too differently for any global threshold to mean anything. Per-prefix baselines are what make the comparison fair.

Alerts that don’t page you for noise

An alert should fire on a pattern that implies a cause, not on a single metric crossing a line. Otherwise the NOC learns to ignore it.

Three rules keep alert volume sane. Alert on deviation from the prefix baseline, not on absolute values. Require the deviation to persist across two consecutive windows above the sample floor. And encode the pairs from the table above as the alert conditions themselves: “ASR down and NER down on one route while other routes hold” is a page; “ASR down on every route to a prefix” is a notification to check the destination, not a route incident.

Send FAS-pattern alerts to a different queue from quality alerts. They need a billing and commercial response, and whoever handles route quality usually isn’t the person who disputes invoices.

Review alert history monthly. Any alert that fired repeatedly without leading to an action should be retuned or deleted.

When to drop a route

Deciding to pull a route is a judgment call, but the judgment gets easier with rules.

A defensible sequence:

  1. Confirm it’s the route. Other routes to the same prefix are holding steady. If they aren’t, stop; it’s the destination.
  2. Confirm it’s not noise. The drop holds above your sample floor for at least two comparable windows.
  3. Classify the failure. Network (NER down), recipient (ASR down, NER steady), audio (ACD down), or fraud (FAS pattern). Each has a different response.
  4. Reduce weight before removing. Shift a share of traffic to alternates and watch whether the route’s metrics recover at lower load. Some routes degrade only under volume.
  5. Open a ticket with evidence. Call IDs, timestamps, SIP codes, test results. Carriers fix documented problems faster than complaints.
  6. Remove if it doesn’t recover within the window you’ve agreed internally. Put it back into testing, not production, when the carrier reports a fix.

For FAS, skip straight to removal and dispute. That’s not a quality issue. It’s billing for service not delivered.

Quality metrics are a routing input, not a report

The payoff for all of this is routing that responds to quality, not just price. Feed per-prefix quality scores into your LCR as a constraint: a route below baseline by some margin drops out of the eligible set regardless of cost. If you sell tiered products, this is how you keep premium traffic on routes that behave like premium; see our guide to reselling voice termination in tiers.

It’s also where CLI testing belongs. ASR and NER can tell you recipients aren’t answering. Only a test call tells you whether the number they saw was yours, which we cover in CLI versus non-CLI routes.

For destinations where metrics behave strangely for reasons nobody can see in CDRs, such as regulatory blocking of certain caller IDs, see our country playbook guide. And sudden traffic spikes to unusual prefixes paired with odd duration patterns can indicate fraud rather than quality problems; our SIP trunking security guide covers that side. Our guide to how voice termination works end to end connects the rest.

Frequently asked questions

What is ASR in voice termination?

ASR, or answer-seizure ratio, is the share of call attempts sent to a route that were answered. It reflects both network performance and recipient behavior, so it should be read alongside NER to tell the two apart.

What is the difference between ASR and NER?

ASR counts only answered calls as successes, while NER also counts calls where the network reached the recipient but they were busy, didn’t answer or rejected the call. A drop in ASR with stable NER usually means recipients aren’t answering, not that the route is failing.

How is ACD calculated?

ACD, or average call duration, is total billable seconds of answered calls divided by the number of answered calls. A sudden drop on one route can indicate audio problems or false answer supervision.

What is a good PDD for voice calls?

There’s no single good value, because PDD varies by destination and route type. Compare a route’s median and 90th-percentile PDD with other routes to the same destination and with its own history.

What is false answer supervision?

False answer supervision is when a route signals that a call was answered although no person picked up, which makes the call billable. It typically shows up as unusually high ASR, many calls lasting a few seconds and answers arriving faster than a phone could ring.

Request a rate deck

Evaluating routes for your LCR? Request an IDT Express rate deck for the destinations you’re benchmarking.

Share this article

Leave a Reply

Required fields are marked *

Rate this article


Tags

Meet our wholesale voice routing

Fulfill all your voice calling needs with our category leading wholesale A-Z Voice Termination.
Try IDT Express for a $25 Credit

Get $25 Free Trial Credit

Get IDT Express articles in your inbox

The best source of information in the telecom industry. Join us.

    Most Popular

    porting-customer-numbers-in
    |
    |  7 min
    Porting a number in means moving an existing phone number...
    number-rotation-is-hurting-your-outbound-program
    |
    |  7 min
    Number rotation gets sold as the fix for spam labels....
    local-did-vs-toll-free-for-customer-support
    |
    |  7 min
    A toll-free number tells your customers you’ll pay for their...