Measuring Hit Rate and Cost per Verified Contact
Outcome: a verified hit rate and a cost per verified contact for your own list, broken down by segment so you can act on the number rather than just report it.
- Surface
- App and MCP server
- Level
- Beginner
- Uses
check_credits- Credits
- 0
- Prerequisite
- One completed enrichment and verification run
The two numbers
Verified hit rate = rows with a valid address ÷ rows attempted.
Cost per verified contact (CPVC) = total credits spent on contact enrichment ÷ rows with a valid address.
Everything else — cost per row, credits per column, provider list prices — is bookkeeping. These two are what you compare across runs, across segments, and against alternatives.
The denominator is where these numbers get inflated. “Rows attempted” means rows sent to the waterfall, not rows in the table. And the numerator is verified hits, not found addresses. Getting either wrong produces a flattering number that leads to scaling something that does not work.
Worked example
1,200 people sent to the waterfall.
| Step | Rows | Credits each | Credits |
|---|---|---|---|
| Find work email | 1,200 | 1.0 | 900 (found on 900) |
| Verify | 900 | 0.3 | 270 |
| Personal fallback (eligible only) | 120 | 1.0 | 60 |
| Verify fallback | 60 | 0.3 | 18 |
| Total | 1,248 |
Results: 780 valid, 90 catch-all, 30 invalid, 300 not found.
- Verified hit rate = 780 ÷ 1,200 = 65%
- CPVC = 1,248 ÷ 780 = 1.6 credits
If you count catch-alls as contactable, the hit rate becomes 72.5% and CPVC drops to 1.44 — which is why the catch-all policy from lesson 03 has to be decided before you report anything.
Break it down by segment
An aggregate hit rate is nearly useless for action. The same number split by segment tells you what to change.
| Segment | Attempted | Valid | Hit rate | CPVC |
|---|---|---|---|---|
| Enterprise, 1000+ | 200 | 160 | 80% | 1.4 |
| Mid-market, 200–1000 | 400 | 300 | 75% | 1.5 |
| SMB, 50–200 | 400 | 240 | 60% | 1.8 |
| Micro, under 50 | 200 | 80 | 40% | 2.6 |
Now you can decide something: micro accounts cost nearly twice as much per contact and convert at whatever rate they convert. Either they justify it or they should be reached by phone instead.
Break down by country too. Coverage varies enormously by market, and an aggregate number hides it completely.
Diagnosing a bad number
| Hit rate | Cause | Fix |
|---|---|---|
| Under 30% | Input errors — domains, name splitting, wrong entity | Fix the Find stage first |
| 30–50% | Hard segment | Change channel, not provider |
| 50–70% | Broad list | Tighten targeting, or accept it |
| Over 90% | Counting unverified as hits | Recompute with verified only |
And for CPVC specifically: a rising CPVC with a stable hit rate means you are spending more per attempt — usually a fallback column running too widely. A falling hit rate with stable CPVC means targeting drift.
Comparing against alternatives
The number becomes useful in a budget conversation when it is compared:
- A list vendor’s price per contact, adjusted for their verification rate and their staleness.
- An SDR’s hourly cost against how many contacts they can research manually.
- Cost per meeting: CPVC ÷ (reply rate × meeting rate). That is the number an executive actually cares about.
Do this now
Get the real credit total
From consumption, not an estimate.
Count valid rows
Verified only.
Compute hit rate and CPVC
With the honest denominator.
Break both down by size band and country
Two tables.
Find the worst segment
Decide whether to change channel, tighten targeting, or accept the cost.
Compute cost per meeting
Using your sequencer’s reply and meeting rates.
Write it down
Both numbers, dated, so the next run has something to compare against.
Check your work
- Denominator is rows attempted, numerator is verified valid
- Catch-alls are counted per your written policy, consistently
- Segment breakdowns exist for size and geography
- You have a cost per meeting with assumptions labelled
- The numbers are recorded with a date
Where this breaks
Comparing hit rates across runs with different denominators produces conclusions that are exactly backwards. A run that “improved” from 60% to 75% may simply have been gated harder, sending only the easy rows to the waterfall — the underlying coverage did not change at all. Record the denominator alongside the rate, every time, or the series is not comparable.
Further automation
Log hit rate and CPVC on every run into a sheet. The trend catches targeting drift weeks before reply rates do, because coverage falls as soon as your list shifts toward segments the providers cover badly — long before anyone notices fewer meetings.
Next lesson
08 — Refresh cadence and decay, keeping contact data current without re-buying it.
Reference for this lesson: Credits, check_credits, Verify email, GTM Engineering — unit economics.