The scoring model most sellers never see
A buyer receives 10,000 phone leads from an affiliate network. They run every number through a validation API before the lead even touches their CRM. About 2,200 come back VoIP, 800 show an IP-to-state mismatch, and 140 flag as known TCPA litigators. Those 3,140 records either get priced down to near zero or hard-rejected before anyone pays out. The seller, meanwhile, has no idea why their fill rate dropped.
This is the actual day-to-day of performance lead buying in insurance, home services, and financial products. Buyers have been doing real-time phone validation for years. Sellers are often still operating like it’s 2018, submitting whatever the form accepted.
Here’s how the scoring actually works, and what to do about it if you’re on the supply side.
What buyers are checking at the moment of ping
Most serious buyers hit a validation API synchronously, during the ping-post handshake or immediately after a lead is accepted. The fields they care about cluster into three categories.
Line type. The nanpType field tells you whether a number is mobile, landline, or something else. Mobile is the only tier that qualifies for full price in most SMS-driven verticals. A landline gets discounted or filtered outright depending on the use case. “Not-mobile” is essentially a reject in any flow that plans to send a text.
Carrier and connection type. dipCarrierType and dipCarrierSubType are where VoIP gets caught. A number can look like a mobile number from the NANP prefix but resolve as VoIP on a live carrier DIP. dipCarrierSubType will surface values like voip that the top-level type field might soften. Buyers building quality tiers treat confirmed VoIP as either a steep discount or a reject. It’s not arbitrary: VoIP numbers are trivially easy to generate at scale, which is why they correlate heavily with fraud and arbitrage traffic.
dipCarrier (the actual carrier name, like T-Mobile or Verizon) matters too. Premium buyers in regulated verticals sometimes filter by carrier, not just type, because certain MVNOs and resellers carry higher fraud rates historically.
dipPorted flags whether a number has been ported from its original carrier. A ported number isn’t bad by itself, but when you combine it with a VoIP dipCarrierSubType and an IP mismatch, the picture gets ugly fast.
IP and geo consistency. ipResult compares the IP address submitted with the lead against the phone number’s geographic registration. geoState gives you the state tied to the number. If someone claims to be in Texas but their IP resolves to Romania and the number is a Montana landline, that lead is worthless. Buyers score IP match as one of the cleaner fraud signals because it’s hard to fake all three consistently.
Litigator status. This is the hard stop. If a buyer calls or texts a known TCPA litigator, the downside is a demand letter or worse. Running litigatorFilter: true on a CheckThatPhone lookup returns litigator, litigator_type, and litigator_name. A positive here is a zero-payout reject in virtually every compliant buying program. There’s no tier for it. It’s a discard. See TCPA litigator scrub for how buyers integrate this into real-time flows.
Deliverability flags. blackList, deliverable, and reason round out the picture. A number on a known spam or complaint list, or one that has been deactivated (check deactivationDate), is stale inventory. Paying for a deactivated number is paying for nothing.
The three tiers in practice
Premium tier: nanpType returns mobile, dipCarrierSubType is not VoIP, ipResult matches, litigator is false, blackList is false, deliverable is true. In a $40-CPL insurance vertical, this lead might command full price or close to it.
Discount tier: VoIP subtype, or an IP mismatch, or a ported number with a suspicious carrier chain. Buyers who accept these at all might pay 40 to 60 cents on the dollar. Many don’t accept them at all once they’ve burned enough budget on bad contact rates.
Hard reject: any litigator flag, deactivated number, or a combination of mismatch signals that crosses the buyer’s fraud threshold. No payout. Sometimes a chargeback.
The gap between premium and reject can be 100% of revenue on a given lead. That’s not a rounding error.
What sellers can do about it
The core problem for most lead sellers is that they’ve optimized their forms for conversion rate without thinking about what’s on the other side of the post. High form conversion often means low friction, which often means accepting whatever phone number a user types. That’s a recipe for VoIP pollution and fat-finger errors.
A few things that actually move the needle:
Validate at form submission, not after. Calling POST https://api.checkthatphone.com/v1/lookup (with Authorization: Bearer <key>) in real time during the form flow lets you reject or re-prompt before the lead is even submitted. If nanpType comes back as not-mobile or dipCarrierSubType comes back as VoIP, you can prompt the user to enter a valid cell number. You capture fewer submissions, but the ones you capture actually pay out.
Scrub your existing list before you pitch it to a new buyer. If you’re sitting on 50,000 unsold leads, don’t batch-post them and wait for rejection reports. Use Bulk CSV verification from the CheckThatPhone dashboard (Dashboard, then Bulk CSV) to run the whole file, get carrier type, line type, litigator status, and deliverability back for every row, and pull the junk before the buyer ever sees it. Files and results are deleted within 24 hours, which matters for data handling. For ongoing real-time checks on individual submissions, the /v1/lookup endpoint handles that row by row as leads come in.
Know which traffic sources produce which tier. Paid search on branded terms tends to produce real mobile numbers from real people. Incentivized traffic (sweepstakes, reward offers) produces VoIP and burner numbers at a much higher rate. Co-registration from broad display tends to sit in the middle. If you’re running a source that produces 30% VoIP on validation, that source is probably costing you more in chargebacks and rejects than it makes on payouts. Cut it or clean it.
Portability isn’t automatically a problem, but it’s a signal worth tracking. If dipPorted is true and the carrier chain looks unusual, flag that cohort separately and watch its contact rate. Sometimes it’s fine. Sometimes it’s a pattern.
For sellers in KYC-adjacent verticals (identity verification, financial onboarding), the phone number is also a fraud indicator independent of lead quality. Phone verification for KYC is a different but related read.
The practical next step
If you don’t know your current VoIP rate, litigator rate, or IP match rate across your active lead sources, that’s the first thing to fix. Pull a sample of 500 to 1,000 recent leads, run them through CheckThatPhone’s Bulk CSV tool, and look at the breakdown. Most sellers who do this for the first time find that one or two sources are responsible for the majority of their discount-tier and reject-tier volume. Killing or fixing those sources tends to improve net revenue faster than any other optimization. Pricing is here if you want to check the cost before running the numbers.
Buyers already have this data. The sellers who understand it too are the ones who hold their fill rates when everyone else’s are dropping.