Skip to Content
CoursesGTM Engineering04 Waterfalls and hit rate

Waterfalls and Why Hit Rate Beats Provider Choice

Outcome: you can read a waterfall result, state its hit rate and cost per found record, and tell the difference between a bad provider and a bad input.

Surface
App and MCP server
Level
Beginner
Uses
find_work_email · verify_email
Credits
~10 for a 10-row test
Prerequisite
Lesson 03's stage map

Why one provider is never enough

Contact data is not one database that everyone resells. Each provider builds coverage from different sources — hiring pages, resume flows, email signatures, partner exchanges, community submissions — so their gaps are in different places.

The practical consequence, which surprises people the first time they measure it:

  • Any single provider finds a verified work email for roughly 40–60% of a normal B2B list.
  • Two providers stacked reach 70–80%.
  • Four or five reach 85–90%, and the curve flattens hard after that.

Nobody is at 95% alone. A vendor claiming it is quoting coverage on their own best-covered segment, which is rarely the segment you sell to.


What a waterfall does

Ask the first provider

Send the identifier — a name plus a domain, or a LinkedIn URL. If it returns a result that passes the quality bar, stop.

Fall through on a miss

No result, or a result that fails validation, and the row moves to the next provider. Same input, different coverage.

Bill only where it lands

You pay for the result, not for every attempt. That is what makes stacking five providers cheaper than it sounds — the expensive-but-thorough one only ever sees the rows the cheap ones missed.

Verify at the end

The waterfall returns an address. Verification says whether it will bounce. These are two separate steps and skipping the second is how a good list burns a sending domain.

Sync GTM runs this for you inside a single action — see Find work email and the waterfall course for provider-level control.


The two numbers that matter

Stop comparing provider names. Compare these.

NumberHow to computeWhat good looks like
Hit raterows with a usable result ÷ rows attempted70–85% on a clean B2B list
Cost per found recordtotal credits spent ÷ rows with a usable resultCompare across runs, not against a benchmark

Cost per attempted row is the vanity metric. A provider that is half the price and finds a third as many people is more expensive on the only measure that matters.

Always compute hit rate against rows attempted, not rows in the table. If your gate sent 400 of 2,000 rows to the waterfall, the denominator is 400. Mixing these up makes a healthy waterfall look broken.


Reading a bad result

A low hit rate has four causes and they need different fixes.

Hit rateLikely causeFix
Under 30%Bad input identifiers — wrong domain, parent company, personal LinkedIn missingFix the Find stage, not the provider list
30–50%Hard segment: SMB, non-English markets, non-corporate email culturesAdd mobile or LinkedIn as the primary contact path
50–70%Normal for a broad listTighten targeting, or accept it
Over 90%SuspiciousCheck you are not counting unverified guesses as hits

That last row is the one that costs money later. Pattern-guessed addresses (first.last@domain) inflate hit rate and bounce at a rate that gets your domain flagged. If a result did not pass verification, it is not a hit.


Catch-all domains

Some domains accept mail to every address, so verification cannot say whether a specific mailbox exists. These come back as catch-all or accept-all, not as valid or invalid.

Three defensible policies, in order of caution:

  1. Drop them. Safest, and you lose real people.
  2. Route them to a separate, low-volume sequence on a secondary sending domain. Best default.
  3. Send them normally. Only if your total catch-all share is small and your sender reputation has headroom.

Do not mix policies within one sending domain, and do not let catch-alls into a cold campaign on your primary domain. Verify email explains the status values.


Do this now

  1. Take 10 people you can verify by hand — colleagues, customers, anyone whose real address you know.
  2. Run find_work_email across all 10, then verify_email on the results.
  3. Compute hit rate and cost per found record. Write both down.
  4. Count the statuses: valid, catch-all, invalid, not found.
  5. For every miss, check the input. Was the domain right? Was it the parent company rather than the subsidiary? Most misses on a test set of people you know are input errors, and that is the lesson.
  6. Decide your catch-all policy now, before there is volume riding on it.

Check your work

  • You have a hit rate computed against rows attempted
  • You have a cost per found record, in credits
  • Every miss has been checked for input error before blaming coverage
  • You have written down a catch-all policy

Where this breaks

Counting unverified addresses as found is the failure with the longest fuse. The list looks 90% covered, the campaign launches, bounce rate lands above 5%, and the sending domain’s reputation takes weeks to recover — during which every campaign you run underperforms for reasons that look like copy. Verification is not an optional final step. It is the step that defines what counts as a hit.


Further automation

Log hit rate per run rather than computing it ad hoc. A waterfall that quietly drops from 78% to 55% is telling you your targeting drifted into a segment the providers cover badly — and that is worth knowing before the quarter ends, not after. Lesson 08 turns these numbers into a cost model.


Next lesson

05 — Attributes versus signals, the distinction that decides whether a workflow is a list or a pipeline.

Reference for this lesson: Find work email, Verify email, find_work_email, Waterfall Enrichment.