Treat a waterfall as a routing rule for missing data. Query providers in sequence until a result meets an acceptance rule, then stop for that field.1 Stacking providers fills more rows than any single provider, and coverage is the only benefit a waterfall guarantees.2 Build a quality gate and source tracking into the workflow before adding providers.
Workflow stages
- Define
- Order
- Run
- Verify
- Review
Use these stages to keep the workflow clear as a record moves from lookup to review.
| Stage | What you are trying to learn | Example question |
|---|---|---|
| Define | Which field is required and what counts as usable | What must be present before this record can move on? |
| Order | Which provider gets each attempt | Which source should try this field first? |
| Run | Whether the current provider returns an acceptable value | Did the result meet the rule? |
| Verify | Whether the value passes a separate check | What must happen before this value enters the record? |
| Review | What the run delivered and what it cost | Which fields were filled, duplicated, or rejected? |
Define the target and acceptance rule
Behavior for each field
- If rule is clear, Use the first option
- If quality needs another check, Compare returned values
Start with the field that blocks the next action. The workflow needs to know what it is filling and how to distinguish a usable result from a returned value.
Waterfall enrichment is used mainly to find and verify email addresses.3 If the workflow also handles phone numbers, give that field its own acceptance rule and provider order. A provider response is not sufficient by default. Decide what the field must satisfy before the run begins.
A workflow can stop at the first accepted value or compare several returned values before selecting one.4 Choose the behavior for each field. Use the first option when the acceptance rule is clear and verification is reliable. Compare returned values when source quality needs another check.
Write the rule in language the workflow can apply. It should show whether the value is complete, passes the required check, and lets the record move to the next step. If the rule cannot make that decision, another provider will only create more values to sort through.
Set the provider order
Provider order controls where the workflow spends its lookup effort. Set it before the run and keep it visible so you can inspect an unexpected source.
Use a primary provider for most records, then send the remaining misses to secondary providers that are often cheaper.5 Assign the order by field when sources perform differently across email, phone, or other data. Keep the acceptance rule beside the order so each provider has a clear handoff condition.
A provider that supplies one field does not need to supply every field. Each field can use the provider with the strongest value, so an email and a title can come from different sources.6 Preserve that source information with the field. It helps you inspect a value that is later rejected or duplicated.
Run the record through the waterfall
Execution should be mechanical. Each record follows the defined sequence, and each field stops when it meets the rule.
For each record, query providers in priority order, stop when the field fills, and then verify the result.7 Keep the stop condition at field level, so a missing phone number can continue through the sequence after an email address has passed.
If the workflow gathers lead information from public pages, let it check different URLs until it has enough information for the lead.8 Apply the same acceptance rule to that output. A page visit is an input to the workflow, not proof that the resulting field is ready to use.
Record the provider that supplied each accepted value and the reason the workflow stopped. This lets you review the record later without running it again. It also shows where the sequence helps and where it adds lookup cost without improving the result.
Verify before release
Verification is the checkpoint between a filled field and one you can use. Keep it separate from lookup so the workflow can reject a value that exists but fails the check.
Add an email validation source or a phone validation source as an extra verification layer when the workflow retrieves those contact fields.9 Decide where the check sits in the sequence and apply the same rule every time. If the value fails, send the field to the next provider when another attempt is allowed, or leave it unresolved for review.
Keep the accepted value, its source, and its verification outcome together. The reviewer then has a reason for the decision instead of a field with no history. This also prevents a later provider from overwriting a value without a clear reason.
Review coverage, quality, and cost
A filled record shows what the waterfall found. Review the outcomes separately to see whether the sequence produces dependable data at a sensible cost.
The trade-offs in accuracy, consistency, and price become clear after the workflow has been used for a while.10 Check where accepted values fail verification, where providers return conflicting values, and where the workflow keeps querying without improving the record. Use those patterns to change the acceptance rule, reorder providers, or remove a step.
Compare the total cost with the number of accepted fields that survive verification. Waterfall enrichment is intended to provide better total coverage at a comparable or lower total cost.11 A lower lookup cost does not make up for values that fail the rule or create duplicate records.
Review the outcome by field and provider. This shows whether a secondary provider is filling genuine gaps or returning another version of a value already available. Adjust the workflow before expanding it to more records.
What not to do
These mistakes make a waterfall look more productive while hiding its operating cost or data quality.
- Sending every record to every vendor can result in paying multiple times for the same data.12
- A workflow needs clear source and routing rules, along with tests for fill rate and duplicate rate.13
- One provider does not need to supply every field. A waterfall can take the strongest value for each field from different providers.6
Write the acceptance rules and provider orders into the workflow before the next run. After it finishes, inspect each accepted field by source, verification outcome, duplicate rate, and cost before adding another provider or widening the run.

