Every validation provider claims high accuracy on their pricing page. That number tells you almost nothing. What matters is how the database performs on the cases that are hard: a number ported last week, a Google Voice line, a block of area codes allocated three months ago. I’ve run the same test set through several APIs side by side and watched the carrier field disagree on a third of the ported numbers. That gap is where your failed deliveries and missed fraud signals come from, and it’s invisible until you go looking for it.
This is how I’d actually compare providers, and why the metrics on the marketing site aren’t the ones that decide it.
Why a few points of accuracy is a lot
A validation database feeds your communications, your fraud checks, and your reporting. When it’s wrong, the failures stack up:
- Messages go to disconnected numbers, wasting spend and dragging down your engagement metrics
- Stale carrier and line type data leaves gaps that fraudsters walk right through
- Valid customers get rejected on a false positive and abandon the transaction
- SMS campaigns hit invalid numbers and return nothing
At high volume, a 2-3% accuracy difference is thousands of failed deliveries. That’s not a rounding error, it’s a line item.
The metrics that actually separate providers
Data freshness
North American numbering changes every single day: porting, carrier mergers, new allocations. The single most important question about a database is how often it updates. Daily or real-time is the bar. A provider refreshing weekly or monthly is already behind on ported numbers, which in some markets are over 60% of mobile lines.
CheckThatPhone keeps real-time connectivity with carrier databases, so our validation API reflects each number’s current state, recent porting included.
Line type precision
Telling mobile from landline from VoIP from toll-free sounds trivial. It isn’t:
- A number first assigned as a landline may now route to a mobile device through a VoIP service
- Mobile numbers get ported to VoIP providers
- Some databases lazily classify every ported number by its original assignment, which is just wrong
Test this directly. Throw ported numbers, Google Voice lines, and freshly allocated blocks at each provider and see who gets them right. The spread between providers here is wider than anywhere else.
Geographic reliability
Area codes stopped guaranteeing location years ago, thanks to porting and VoIP. Real geolocation has to account for:
- Original allocation: rate center, state, city
- Current carrier routing
- The difference between where the number is billed and where it’s actually used
If you route by region or have a regional compliance requirement, confirm the provider clearly separates original allocation geography from current service location. A provider that conflates the two will quietly route calls to the wrong place.
Test it yourself before you commit
Vendor benchmarks are marketing. Run your own.
Build a test set
Put together 100 to 200 numbers that mirror your real traffic:
- Recently ported mobile numbers (30-40%)
- VoIP numbers from major providers (15-20%)
- Landlines across different markets (20-25%)
- Invalid or disconnected numbers (10-15%)
- Edge cases: newly allocated blocks, rural carriers (10-15%)
Run it through several APIs
Push the same set through 3-4 providers and compare:
- Do the carrier results match the real carrier?
- Does line type detection match real behavior?
- Are disconnected numbers actually caught?
- How far apart are the results on recently ported numbers?
Check against ground truth
The only honest accuracy test uses numbers where you already know the answer. Call or text them and confirm they behave the way the API says. It’s tedious. It’s also the only step that can’t be faked, so don’t skip it.
What to look at beyond basic validation
Portability history
Porting patterns carry signal. A number ported several times in quick succession is worth a second look. CheckThatPhone’s API returns detailed portability status, which you can fold into fraud scoring.
Carrier detail
Knowing the exact carrier, not a generic bucket, lets you:
- Route messages for better deliverability
- Pick carrier-specific formatting and protocols
- Cut cost by routing through preferred partners
Favor providers that give you specific carrier names over vague categories.
Real-time or batch
Some flows need an answer at the point of entry; others are fine processing in bulk overnight. Check whether a provider supports both, and whether accuracy holds across the two. Real-time lookups usually carry the freshest data at the cost of some latency.
How to choose
When you line up the candidates, weigh:
- Update frequency: daily or real-time is the floor
- Data sources: multiple authoritative sources beat a single feed for coverage
- Accuracy guarantees: serious providers publish metrics and SLAs you can hold them to
- Documentation: clear API documentation is a decent proxy for how mature the service is
- Pricing fit: a pricing model that matches your usage without forcing a trade-off on accuracy
Keep measuring after you pick
Accuracy isn’t a one-time bake-off. Once you’re live:
- Track false positive and false negative rates month over month
- Watch deliverability metrics before and after validation
- Re-run your edge cases quarterly, because the numbering rules keep shifting
- Compare real customer feedback against what the API told you
The point is that accuracy moves your numbers directly: better deliverability, fewer fraud losses, less friction for real customers. Build a test set that looks like your traffic, run it against a few providers including CheckThatPhone, and verify the hard cases against ground truth. The API documentation and pricing options are there when you’re ready to set it up.