Why Least Cost Routing Is Quietly Destroying Your ASR (And How to Fix It)
Least cost routing is almost perfectly designed to fail you.
Not because it is wrong. Because it is right. LCR does exactly what you tell it to do: find the cheapest carrier that can complete the call.
The problem is that "cheapest" and "working" are not synonyms in the wholesale termination market. The gap between them opens widest at exactly the moment you need it closed. During peak traffic, carrier congestion, a destination where two of your three routes are reselling each other.
The cheapest route in your rate deck might be cheap because it runs through four softswitches. Or because it runs grey. Or because the carrier behind it is doing exactly what you are: sorting by price and hoping for the best.
The machinery is not the hard part. The policy is.
What Least Cost Routing Actually Does
An LCR engine has one job. For each call, at the moment it arrives, find the cheapest carrier that can complete it. It does this by holding rate decks from every active upstream, matching the destination number against them, and sorting results by price.
Rate decks from carriers arrive as spreadsheets or automated feeds, sometimes with thousands of rows covering every destination prefix a carrier supports.
Each deck carries per-minute prices, effective dates, billing increments, and sometimes jurisdiction codes for intrastate versus interstate US traffic. The engine normalises these into a single lookup table that updates continuously as new decks arrive.
The cheapest route gets the call first. If that carrier rejects the call or fails to connect, the engine moves to the next option. This cascade continues until a route completes the call or the ranked list runs out.
At its most basic, LCR is rational purchasing. You have eight carriers quoting the same destination, and you route to the cheapest one. The intelligence, and the danger, lies in the policy rules layered on top of the cost sort.
The rate deck shows you the price per minute. It says nothing about the route sitting behind that price. Before you can design a routing policy that works, you need to understand what actually happens between 'route selected' and 'call answered.'
How LCR Works Inside a Class 4 Softswitch
Modern LCR is not a routing table exported to a switch every morning. It is a real-time decision engine that operates between ingress and egress on every call.
When a call arrives, the switch queries the routing engine with the destination number. The engine runs a longest-match prefix lookup against every active rate deck. For US traffic, it also performs an LRN dip, checking the routing number of the actual serving switch rather than just the dialed digits.
That last step matters because roughly 40% of US calls go to ported numbers. Engines that skip the LRN dip misprice those calls against the wrong carrier and the wrong jurisdiction.
The difference between legacy and cloud architectures matters here. On a legacy PSTN switch, the routing table was a physical export that took hours to load and often crashed the switch under load. A cloud-based routing engine updates route tables dynamically, pushing changes in seconds without affecting the switch's signalling throughput.
LCR Pipeline Stages:
Every stage in that pipeline has a failure mode, and most are invisible until traffic starts misbehaving. The stage most operators underinvest in is the quality filter on route ranking. That omission is where cheap routes quietly become expensive ones.
The Hidden Cost of Cheap Routes
Here is what a rate deck does not tell you. The cheapest route is cheap for a reason. The reasons are rarely good for your answer rates.
In the wholesale termination market, price and quality correlate negatively. The cheapest routes tend to fall into one of three categories. Each one is cheap for a different reason, and each one degrades your traffic in a different way.
Grey routes terminate through SIM boxes or unauthorised gateways that bypass licensing and interconnect fees. They are cheap until the destination carrier blocks them, usually without notice and usually mid-shift. VoIP fraud often originates on the same infrastructure that powers the most aggressively priced routes.
Over-brokered chains are routes where the carrier selling to you is running an LCR engine that routes to another LCR engine. Your call may pass through three or four softswitches before reaching a genuine trunk to the destination. Every hop adds post-dial delay, a failure point, and another failover cascade layered underneath yours.
Call looping is the worst-case outcome of over-brokering. When several resellers all buy from each other, a call can circle the same switches for seconds before it escapes or fails. The symptoms are predictable: ASR sinks, ACD becomes erratic, and PDD climbs while audio degrades from transcoding on congested paths.
The scale of the problem is often hidden in aggregated metrics. Watching overall ASR across a destination masks route-level degradation, because healthy routes dilute the damage from poor ones. CDR analysis at the route level is what surfaces the problem early enough to act on it.
A five-point ASR drop on a major destination can consume an entire margin point on that route. Identifying a bad route after the fact is straightforward. Building a routing policy that catches the problem before it costs you is where the real craft lives.
Building a Routing Policy with Quality Floors
The antidote to pure LCR is quality-weighted routing. That is not a different system. It is the same engine with a smarter ranking function.
A quality-weighted routing policy does two things. First, it sets a minimum acceptable ASR or ACD that every route must clear before it qualifies for traffic. Second, it ranks eligible routes by cost, with the cheapest qualifying route receiving the traffic.
The thresholds that matter most in the Class 4 carrier environment:
Quality Metrics and Floors:
Routes that fall below the floor get demoted automatically. They stay in the system but receive no traffic until their metrics recover. Demotion is not deletion, and that distinction matters when a route recovers.
The other lever is traffic concentration. Routing all of a destination's traffic through a single carrier is not an optimisation, it is a concentration risk. A well-designed policy distributes traffic across two or three quality-passing routes, with the cheapest qualifying route receiving the largest share.
Setting the quality floor is the easy part. Keeping it calibrated against live traffic, as routes age and carriers adjust their capacity, is where routing policy becomes a live operational discipline.
Failover Depth: How Many Routes Are Enough?
Most LCR configurations set a failover cascade of three to five routes. The logic is intuitive: if the first carrier fails, the switch tries the second, then the third. But failover depth has a quality cost that operators consistently underestimate.
Every failed attempt adds post-dial delay to the call. A cascade through three failed routes before a fourth completes can add four to eight seconds of PDD. From a dialer or customer perspective, that delay is indistinguishable from a slow carrier, and it suppresses answer rates in exactly the same way.
The practical guideline is to limit live failover to two or three routes per destination. Beyond that, the cumulative PDD cost usually outweighs the completion rate benefit of a deeper route list. Routes that sit fourth or fifth in the ranking are better reserved for disaster recovery, not routine failover.
Failover depth is a tuning parameter, not something you configure once and ignore. The right depth for a high-volume domestic route differs from the right depth for a low-volume international destination with two viable carriers. Treating them identically is a form of routing policy laziness that shows up in your PDD averages.
Rate Deck Management: The Job That Never Stops
Rate deck management is the operational work that makes LCR decisions accurate. An engine producing perfect ranking logic on stale rates is worse than useless. It is confidently wrong.
Carriers push rate updates on irregular schedules, often with 24 hours' notice or none at all. A rate loaded late means the engine routes at a price that no longer exists. This is where quiet billing disasters start, and where upstream disputes become expensive to resolve.
The discipline required is straightforward, if not glamorous. Every new deck needs a normalisation check: consistent prefix format, valid effective dates, and billing increments parsed correctly. A prefix with an extra digit or a rate effective date in the wrong timezone will silently misprice every call that matches it.
Most cloud carrier switching platforms allow automated rate deck ingestion with exception alerts for anomalies. That capability is worth using. Manual deck management at volume is a reliable path to billing disputes with upstream carriers.
Rate decks are also a market signal. When a carrier cuts prices aggressively on a destination you monitor, check whether their ASR is moving in the same direction. Cheap and declining is a pattern, not a coincidence.
Ending With
LCR's machinery is not the hard part. The hard part is building a routing policy that stays honest about route quality when the pressure to cut costs is relentless. The question worth asking is not whether you route cheaply, but whether your cheapest routes are still the ones that actually work.












