Skip to content

Waterfall email enrichment

10,000 rows in, 8,315 mailable contacts out, $302.97 spent

waterfall.summary 10,000 rows
rows in10,000
contacts found8,975
survived verification8,315
total spend$302.97
Cost per mailable contact $0.0364

A waterfall is a queue of providers where each one only sees the rows the ones before it could not resolve. It works because coverage in this market is uneven in a way that is uncorrelated between vendors. The rows Apollo misses are not the hard rows, they are a different set of rows, and somebody else has them.

Order decides your bill. Run your cheapest provider first and it absorbs the easy majority at a rate nothing else can match. Run your most expensive first and you pay premium rates for rows a cheap provider would have found. The providers are the same either way. The invoice is not.

The one rule

Sort by cost per successful lookup, ascending, and only ever pass along the misses. Everything else on this page is refinement.

Five steps, 10,000 rows, $302.97

Starting from a list of 10,000 names with company domains. Target is a verified work email. Every rate below is the provider's published entry-plan rate.

1

Apollo people enrichment · 10,000 attempts

The cheapest credit here by about one percent, and it charges nothing on a miss, which is what actually earns it the first slot. Finds roughly 5,500.

$107.80$0.0196 each
↓ 4,500 unresolved
2

Findymail · 4,500 attempts

Verifies at find time, so these rows skip step 5 entirely. Strongest on European data, which is exactly where Apollo thins out. Finds roughly 2,250.

$44.55$0.0198 each
↓ 2,250 unresolved
3

Prospeo · 2,250 attempts

A different index again, and also EMEA-strong. By this depth the rows are genuinely hard, so expect a lower hit rate. Finds roughly 787.

$19.28$0.0245 each
↓ 1,463 unresolved
4

FullEnrich · 1,463 attempts

A waterfall inside your waterfall, reaching 25+ sources in one call. Expensive per row and worth it only on the residue. Finds roughly 438.

$24.09$0.055 each
↓ 5,500 unverified from step 1
5

ZeroBounce · 5,500 validations

Only Apollo's results need this. Findymail and Prospeo verify at find time and FullEnrich bundles verification free. Roughly 88% survive.

$107.25$0.0195 each
Where the money actually went

Verification is 35% of this bill, and it is the line most teams leave out of the forecast entirely. It is also the one you should not cut: a 12% bounce rate on 5,500 unverified addresses does more damage to a sending domain than $107 of anything can fix.

Marginal cost, step by step

The column that decides how deep your waterfall should go is the last one.

StepRows inFoundHit rateSpendMarginal cost
1 · Apollo10,0005,50055%$107.80$0.0196
2 · Findymail4,5002,25050%$44.55$0.0198
3 · Prospeo2,25078735%$19.28$0.0245
4 · FullEnrich1,46343830%$24.09$0.055
5 · ZeroBounce5,5004,840 pass88%$107.25$0.0222
Total10,0008,315 mailable83%$302.97$0.0364
About these hit rates

The prices on this page are verified from vendor pricing pages. The hit rates are not, because no provider in this category publishes a match rate you can hold them to. The percentages above are our modeling assumptions, drawn from client work, and they will differ on your list.

Substitute your own before you use this to make a decision. The shape of the curve holds regardless of the numbers you put in it.

When to stop adding providers

There is an actual answer to this, and it takes one division.

01

Work out what a contact is worth

Take last quarter's closed-won revenue, divide by the number of contacts you enriched to produce it. It does not need to be precise, it needs the right order of magnitude. Call that number V.

02

Compare V against the marginal column, not the average

The average cost of this stack is $0.0364 a contact, which looks cheap against almost any V. The marginal cost of the fourth provider is $0.055, which is 2.8 times the first. At V of $2.00 all four steps clear easily and you should add a fifth. At V of $0.04 only the fourth fails to clear, so stop after Prospeo.

03

Count the meters a hit runs

Every provider in the stack above charges nothing on a miss and one credit price on a hit, which is why the arithmetic is clean. Clay does not charge for a miss either, but a hit there runs two meters: an action for Clay's work, $0.0036 on annual Launch, and the data credits that provider charges, $0.0452 each. Bring your own provider keys and the data credits drop out, so the ledger above holds and Clay's actions sit on top of it.

04

Re-run the numbers when your segment changes

These curves are segment-specific. A US mid-market list resolves mostly at step 1. A European list inverts that: Apollo thins out, Findymail and Prospeo carry more, and the stack costs more per contact while finding a similar share. If you sell into both, run two stacks with different orders rather than one compromise.

The same job, optimized differently

The stack above optimizes for cost per contact. These two optimize for something else.

Cheapest workable

One provider, one verification pass. For teams where a contact is worth well under a dollar.

1
Findymail alone Verified at find time, so nothing needs a second check. Roughly 62% coverage.
$122.766,200 contacts

$0.0198 per mailable contact, against $0.0364 for the full stack. 46% cheaper per contact, and 2,115 fewer contacts.

Maximum coverage, phone included

Ask Apollo for the phone in the same call and you save a second pass, but not money. A row costs 1 credit when only an email comes back and 9 when a mobile does, so at $0.0196 a credit a mobile is $0.1764.

1
Full email waterfall All five steps exactly as modeled above.
$302.978,315 contacts
2
Apollo phone reveal Set reveal_phone_number on step 1: 15,392 extra credits, and around 35% of the 5,500 rows return a number.
$301.681,924 mobiles

$604.65 total. Apollo is no longer the cheap way to buy a mobile: the same 1,924 numbers cost $190.48 at LeadMagic, and $380.95 at Findymail and $1,058.20 at FullEnrich. Route the phone pass to LeadMagic and keep Apollo for the email.

Four ways teams lose money on this

Running the expensive provider first

Usually because it was the first one bought, and the waterfall got built around it. Reordering is a config change and it is the cheapest optimization available here. In the model above, putting FullEnrich first instead of last would take the bill from $303 to roughly $417, buying 5% more mailable contacts for 38% more money.

Verifying rows that were already verified

Findymail and Prospeo verify at the moment they find. Pushing their output through a separate verifier again is a pure loss, and it happens constantly because the verification step gets bolted on at the end of the pipeline rather than per source. Route it per source.

Enriching the whole list before qualifying it

The cheapest lookup is the one you do not make. Filter by firmographics and signal data first, which costs almost nothing, then enrich what survives. A list cut from 10,000 to 4,000 before enrichment costs 60% less and usually converts better.

Not capping the budget

Every overspend we have been called in to look at came from a loop rather than from volume: a retry that did not back off, a scheduled job that ran twice, an agent that worked a list four times because nobody told it the first pass had succeeded. Set a hard credit ceiling per workspace before any of this runs unattended.

Build it with an agent

This stack ships as a skill file: the API surface of every tool in the chain, the build order, the limits that break it and how to check it worked. Point an agent at it and it has what it needs without reading 5 sets of vendor docs first.

waterfall-email-enrichment/SKILL.md agent skill
---
name: waterfall-email-enrichment
description: Build a cheapest-first email enrichment waterfall across
  Apollo, Findymail, Prospeo and FullEnrich, with verification...
---

# Waterfall email enrichment

## What you are building
## Prerequisites                    → 7 rows
## The tools, and how to call them  → Apollo, Findymail, Prospeo, FullEnrich, ZeroBounce
## Build it                         → 5 steps
## Gotchas                          → 5
## How to verify it works           → 5 checks
## What this costs to run
markdown Verified 2026-10-19
Drop it into Claude Code

mkdir -p .claude/skills/waterfall-email-enrichment curl -o .claude/skills/waterfall-email-enrichment/SKILL.md https://frontal.so/gtm-apis/skills/waterfall-enrichment.md

For Codex, Cursor, or anything else that reads a file or fetches a URL, hand it https://frontal.so/gtm-apis/skills/waterfall-enrichment.md directly. It is plain markdown with YAML frontmatter and no tool-specific syntax, so nothing in it depends on which agent is reading it.

This page is the model. Frontal builds the pipeline.

Provider order, routing by region, per-source verification, credit ceilings that stop a retry loop emptying a balance overnight, and the write-back that puts a verified contact in front of a rep the same day.

See all 10 enrichment providers

Worked with 300+ companies. A senior operator runs your account.

The other three stacks on this site are costed the same way, so the numbers are comparable: hiring signal to outbound at $0.13 a unit, inbound speed to lead at $0.0587 a lead and agent-driven account research at $0.09 an account. Every provider in them is in the directory.

Questions we get

How deep to go, and what it costs to get it wrong.

How many providers should a waterfall have?

Three or four for most teams. The first absorbs the majority, the second picks up a different index, the third and fourth work the residue at rising cost. Whether a fifth pays is the same division as the one above: its marginal cost against your V. Run it on your numbers rather than copying this page's.

Do I need Clay to build this?

No. Clay makes it much faster to build and change, and it charges for that work in actions on top of the data. If your waterfall is stable and you have someone who can write the orchestration, going directly against the APIs means paying the providers' own rates with no actions on top. If the logic changes weekly and non-engineers need to change it, Clay earns its money.

Why not just use FullEnrich, since it is already a waterfall?

You can, and for a small list it is the simplest option by a distance. At $0.055 a work email it is nearly three times Apollo's rate, which stops mattering at 500 rows and matters a great deal at 50,000. The stack above uses FullEnrich for exactly what it is best at: the hard residue nobody else could resolve.

Where do mobile numbers fit?

After the email waterfall, on the contacts that survived verification, and only if you are actually going to call them. Every provider charges a multiple for phone: 8 extra credits at Apollo, 5 at LeadMagic, 10 at Findymail, Prospeo and FullEnrich. In cash that is $0.099 a number at LeadMagic and $0.55 at FullEnrich, a 5.6x spread, and Apollo's own call lands at $0.1764 in the middle of it.

How often should the stack be re-tested?

Quarterly, and whenever you enter a new segment or region. Coverage moves as providers refresh their indexes, and prices in this category change quietly. Re-running the 500-row bake-off takes half a day and has changed the provider order for about a third of the teams we have run it for.

Published by

Frontal

Frontal is the go-to-market partner for B2B tech companies past product-market fit. It publishes this directory. Every price, tier requirement and rate limit on this page was read from the vendor's own pricing page, developer documentation or knowledge base on the date below. Nothing on it is restated from a press release or a third-party listing.

Where a vendor publishes no public figure, this page says so rather than estimating. How we checked.