An LRN (Location Routing Number) is the network’s address for the switch that now serves a phone number. It looks like a phone number — ten digits, starting with a prefix that belongs to that switch — but nobody dials it. Once a number has been ported, or sits in a thousands-block pooled to a carrier other than the prefix holder, the industry stops trusting the dialed digits and routes and rates calls to it on the LRN instead.
If you buy or sell voice termination at any volume, the LRN is not trivia — it is the key your invoice is computed on. Two calls to the same dialed prefix can carry different rates because one of those numbers was ported years ago, and operators who miss this spend hours disputing bills that are, in fact, correct. SIPNEX is an FCC-licensed carrier providing wholesale voice termination, so this is the operator’s explanation, not the textbook’s.
Why LRNs exist: porting broke the dialed number
Before number portability, the numbering plan doubled as a routing table. Every NPA-NXX prefix (area code plus the next three digits) belonged to exactly one carrier and, in practice, one switch. The first six digits told you which network to hand the call to. Routing and billing were both driven by the dialed digits, and the dialed digits never lied.
Local Number Portability (LNP), introduced in the late 1990s, deliberately broke that assumption. A subscriber now keeps their number when changing carriers, so the prefix no longer tells you who serves it. The number keeps its original rate center, but it may now live on a competitor’s switch. Thousands-block number pooling, which the FCC phased in during the early 2000s, loosened the link further: one prefix can be split into blocks of 1,000 numbers held by different carriers. The industry needed a routing key decoupled from the dialed digits, and the LRN is that key.
The mechanism is simple. Each switch that serves ported or pooled numbers is assigned an LRN — a 10-digit number whose prefix is native to that switch. When a number is ported, the NPAC (the Number Portability Administration Center database) records a mapping: this dialed number is now served by the switch identified by this LRN. A pooled thousands-block gets an NPAC record the same way, carrying the block holder’s LRN, even if no number in it was ever ported.
So only numbers with no NPAC record — never ported, and not in a block pooled to a carrier other than the prefix holder — still route natively on their prefix. Everything else routes on its LRN. The NPAC’s own public glossary (npac.com) lists pooled numbers as a record type of their own, alongside ports. The operational side of moving a number — LOAs, FOC dates, and the delays that eat weeks — is covered in our number porting guide. This post is about what happens to routing and billing after the port completes.
How an LRN dip works in the call path
An LRN dip is a query against the number portability database, performed before a call is routed. In the call path it works like this:
- A call is placed. The originating or intermediate carrier must decide where to send it.
- The carrier dips the portability data. The query asks one question: does this number have a portability record, because it was ported or sits in a pooled block? If yes, the response returns the LRN of the switch that now serves it. If no, the call routes on the dialed digits as usual.
- The signaling carries both numbers. The call routes toward the LRN while the dialed number rides along so the terminating switch can deliver it to the right subscriber. In SIP, this appears as the
rn(routing number) parameter on the called number, plus annpdiflag telling downstream carriers the dip is already done; RFC 4694 defines both. - The terminating switch completes the call. It recognizes its own LRN, discards it, and delivers the call to the dialed number.
By industry convention, the network one hop before the terminating carrier is responsible for making sure the dip has happened. In practice, wholesale carriers dip early — at ingress — because least-cost routing depends on the answer. A call that never gets dipped default-routes to the donor network (the carrier that originally held the prefix), which no longer serves the number: best case an inefficient forward, worst case a failed call rated against the wrong network.
Dips are also not free — portability data access is usually billed per query or by subscription — which is why carriers cache results and why “who pays for the dip” is a real line item in wholesale interconnect economics.
Why termination billing follows the LRN, not the dialed number
Here is the part that matters for your invoice. Termination rate decks are keyed to prefixes: each NPA-NXX (or finer breakout) carries a rate reflecting what it costs to deliver a call to the network behind it. After decades of portability, the dialed prefix no longer identifies that network — the LRN does. So wholesale termination is typically rated on the LRN, which the industry calls LRN billing, as opposed to rating on the dialed digits.
The consequences are concrete:
Your cost per call depends on where the number lives, not what you dialed. Dial a number in a cheap metro prefix that was ported to a network with expensive termination, and you pay the expensive rate. Across a lead list heavy with ported numbers, your blended cost drifts away from what the dialed-digit math predicted.
Rate deck comparisons must be like-for-like. An LRN-rated deck and a dialed-number-rated deck are not comparable line by line. A vendor quoting attractive rates on dialed digits while their upstream bills them on LRN is either eating the spread or planning to recover it from you. Ask every termination vendor which basis the deck is rated on before you compare a single prefix.
CDR reconciliation has to be LRN-aware. When you audit an invoice, your CDRs need the LRN (or the data to derive it) or you are reconciling against the wrong key. Serious traffic analytics start here too: rating and per-carrier performance breakouts hang off the LRN. When a route’s ASR craters, the LRN tells you which terminating network actually serves those numbers, so you can localize the problem instead of blaming the whole deck.
Resellers leak margin without it. If you resell termination and rate your customers on dialed digits while your carrier bills you on LRN, every ported number is a small pricing error. The errors do not cancel out; they accumulate against you.
LRN lookup tools
You do not need SS7 access to work with LRNs. The tooling falls into a few categories:
Real-time dip services. API-, ENUM-, or SIP-based queries that return the LRN per number on demand. Evaluate them on data freshness (how quickly NPAC changes propagate), query latency if the dip sits in your call path, and per-query pricing at your volume.
Batch scrubbing. Bulk LRN lookup against an entire number list — how dialer operations forecast real termination costs on a lead list instead of discovering them on the invoice.
Carrier-provided dips. Many carriers handle the dip inside the network, so the LRN work is invisible to you and the deck is simply rated correctly. Ask whether the LRN appears in the CDRs you receive, because that is what makes your own reconciliation possible.
We deliberately name no vendors: the right choice depends on your volume, latency tolerance, and whether you need the data in-call or in-batch.
Frequently asked questions
What is an LRN?
An LRN (Location Routing Number) is the 10-digit routing address of the switch that now serves a ported or pooled phone number. It exists because number portability and thousands-block pooling broke the old rule that a number’s prefix identified its carrier. The NPAC maps each ported number, and each pooled block, to the serving switch’s LRN, and carriers route and rate calls on that LRN instead of the dialed digits.
What is an LRN dip?
An LRN dip is a query against the number portability database asking whether a dialed number has a portability record — because it was ported or sits in a pooled block — and, if so, which LRN now serves it. Carriers perform dips before routing so the call goes to the correct network, and before rating so the call is billed against the correct prefix. In SIP signaling, the result travels as the rn parameter with an npdi flag showing the dip was already done.
Why is my call billed to a different rate center than I dialed?
Usually because the number was ported or pooled. The number itself keeps its original rate center — a port never changes that — but wholesale termination is typically rated on the LRN, and the LRN’s prefix belongs to the serving switch, which can sit in a different rate center with a different deck rate. So the call is rated where it is actually delivered. This is standard LRN billing, not an invoicing error, though you should still verify the LRN in your CDRs matches what you were charged.
How do I look up a number’s LRN?
Three routes: a real-time dip service (API, ENUM, or SIP query) for per-call or on-demand lookups; batch scrubbing services that append LRNs to an entire number list, which is the right tool for forecasting campaign termination costs; or your carrier, if they expose LRN data in CDRs or their portal. A number that was never ported and is not in a block pooled to another carrier has no LRN mapping, so it routes on its native prefix; a never-ported number in a pooled block still returns the block holder’s LRN.
SIPNEX terminates US traffic on published wholesale rates with 12/6 billing (a 12-second minimum, then 6-second increments) and no setup or per-channel fees. If your current invoice does not reconcile against the LRNs in your CDRs, test a route against your current deck.
Keep reading.
The carrier built by operators, for operators.
FCC-licensed carrier with its own STIR/SHAKEN SP certificate. Operator-owned. SIP trunks built for operators who dial at volume.