Phone Number Verification for Outbound: HLR and Number Health

Phone Number Verification for Outbound: HLR and Number Health

Phone number verification checks that a number is correctly formatted, active on a network and what type of line it is. It does not tell you that the right person will answer. Use it to remove dead dials before they cost you a calling slot, and use call outcomes to verify everything else.

What verification actually checks

Verification is a stack of layers, and each one answers a different question.

  • Format and country. Is the number structured correctly for its country? This catches typos, missing digits and wrong prefixes. In France, 01 to 05 are geographic lines, 06 and 07 are mobiles, and 09 numbers are usually internet-box or VoIP lines.
  • Line type. Mobile, landline or VoIP. This helps you decide who to call first and how.
  • Live status (HLR). A Home Location Register lookup queries the mobile network to see whether a mobile number is currently active. It catches disconnected SIMs, and it only works for mobiles.
  • Carrier lookup. Tells you which operator the number sits with. Because of number portability, the prefix alone no longer tells you.
  • Ownership. Proving a number belongs to a specific person usually needs an interaction, such as a one-time code. That is rarely practical in cold outbound.

What it misses

A number can pass every check and still be useless to you. Verification confirms the line exists, not who is holding it.

  • Reassigned numbers. The prospect left, the company phone went to a new hire, and the line is perfectly live.
  • The wrong kind of number. A valid switchboard is not a mobile for your VP of Sales.
  • Personal lines. A live personal mobile is a live number, but it may not be the one the person wants business calls on.
  • Unknown results. Live-status lookups do not return a clean answer on every network and country. Treat "unknown" as its own category, not as valid.

So verify in two stages. Lookups remove what is clearly dead, and your calls tell you what is right.

Also be careful with the word "verified" on a vendor page. Ask what exactly was checked, on which date, and whether the result was a live network answer or an inference from the prefix. A number verified last year is a number that has not been verified this year. Number portability and SIM recycling mean the answer changes, and a status without a date is hard to trust.

The cost of a dead dial

Price a verification check against the value of the dial it saves. Use your own numbers, but here is the arithmetic with ours.

From our analysis of 1,000,000 B2B cold calls in France, the average connect rate is 11.3%. So an average dial is worth about 0.11 conversations. Now assume 10% of the numbers on your list are dead, which is an illustration, not a benchmark. On 1,000 dials, that is 100 dials that cannot connect, about 11 conversations you did not have because the slot went to a dead line.

Compare the price of checking those 1,000 numbers with what eleven conversations are worth to you. For most outbound teams that is not a close call. The harder question is where to check, since checking everything every week is its own waste.

The cost is not only the lost conversations. A rep who hits three dead lines in a row loses rhythm, and a sequence that burns attempts on a dead number gives the live contact fewer real chances. Ask vendors whether you pay for "unknown" results, and whether repeated lookups on the same number are charged again.

Where to verify in the workflow

We recommend three moments, and no more.

  1. At enrichment. Run format and line-type checks before a number is written to your CRM. Bad numbers never get in.
  2. Before a campaign launches. Re-run live status on numbers that have not been dialed recently. In our experience, anything older than a quarter deserves a re-check.
  3. After every call. This is the check that proves ownership. A wrong-person or disconnected outcome tells you more than any lookup.

The third moment is the one most teams skip, and it is free. It also scales with your volume: the more your reps dial, the faster you learn which sources produce dead or wrong numbers. After a month you can rank your data sources by dead-dial rate, from your own calls, and cut the weakest ones without a vendor audit.

How a dialer should suppress bad numbers

The key rule is to suppress the number, not the contact. A dead mobile does not mean the person is gone, and a wrong-person result does not mean the account is a bad target.

  • Disconnected or invalid. Suppress that number, keep the contact and send the contact back for re-enrichment.
  • Wrong person. Suppress that number for this contact, and flag the record, since the person may have left.
  • Switchboard. Keep it at account level. It is a fallback, not a failure.
  • No answer. Do not suppress after one attempt. One unanswered call says almost nothing about a number, so rotate to the contact's next number and try another slot.

Store the reason with the status. A number suppressed as disconnected on a given date is information. A number that just disappeared is not.

How Sonik approaches number health

We treat number health as a connect-rate input, not as a goal. Connect rate is an input, not an outcome, and clean data only matters if it ends in conversations. Our connect rate analysis shows how much timing and persona move the number before data quality is even in play.

Because we sit on the calling side, every dial outcome is data. Dead, wrong and right numbers are visible as soon as reps call them, and the aim is for those outcomes to flow back to the contact record. Parallel dialing also changes the math: reps reach about 5x more conversations, so a bad list wastes capacity faster, and clean numbers matter more, not less.

Conclusion

Verification is cheap insurance against dead dials, but it never replaces a call. Run lookups at the door, re-check before a launch and let outcomes do the rest. This week, export your last 100 dial outcomes, count how many were disconnected or wrong-person, and note which data source each number came from.