How to Check a Lead List's Quality Before You Pay For It
To check a lead list before you pay for it, verify every email address and hand-check a random sample of the other fields, then compare both against pass marks you agreed with the vendor in advance. Email checks are cheap and objective, so run them on 100% of the file. Names, titles and company fit need a person, so sample 100 to 200 records and read the result as a range, not a single number.
This is an acceptance test for lists you commission: from a freelancer, a research agency or a data provider building a custom file to your brief. If you are thinking of buying a ready-made consumer list, read verifying a purchased email list first. Verification cannot make that kind of list safe.
Agree the pass marks before the work starts
A quality check without agreed thresholds becomes an argument. Put these in the brief or the contract before the vendor builds anything.
| Criterion | How it is measured | A typical pass mark |
|---|---|---|
| Invalid email rate | Every address verified by SMTP | At most 2 to 3% |
| Catch-all / risky share | Every address verified | Counted toward the quota only up to an agreed cap, for example 15% |
| Duplicates | Exact matches after lowercasing and trimming | 0% |
Role addresses (info@, sales@) |
Every address | Only if the brief allows them |
| Person exists at the company in that role | Hand-checked sample | At least 90% correct |
| Company fits the brief (industry, size, location) | Hand-checked sample | At least 90% correct |
| Source recorded for every row | Every row | 100% |
| Replacement rule | Contract | Records failing any check are replaced free, within N days |
The numbers are examples to adjust, not industry standards. Two of them deserve a reason.
The invalid email limit should come from your sending limits. Amazon SES, for example, says in its reputation metrics documentation: "If your bounce rate is 5% or greater, we automatically place your account under review." Our bounce rate limits by platform collects similar thresholds. A list that arrives 5% invalid uses up the whole margin before any other problem.
The catch-all cap exists because catch-all addresses cannot be confirmed. A vendor can fill a quota with guessed addresses on domains that accept everything, and no verifier can prove them wrong. Read what a catch-all domain is if this is new.
Check 1: verify every email address
Run the whole file through a verifier. It takes minutes and leaves nothing to argue about.
- Normalise: lowercase and trim every address.
- Count duplicates, by address and by person (same name and company with two addresses).
- Verify the full list. You get valid, risky (catch-all, role or unverifiable) and invalid.
- Break risky down by reason, so catch-all and role addresses are counted separately.
- Tag each address by mail platform (Google Workspace, Microsoft 365, gateway, other) from the MX record. A high catch-all share on gateway-protected domains is expected. See verifying emails behind Proofpoint, Mimecast and Barracuda.
Cost is not a reason to skip this. On SimpleVerifier, a 5,000-row delivery fits in two $9 pay-as-you-go packs of 2,500, or one $19 pack of 10,000, and the credits never expire. See pricing.
What the verification result tells you about the vendor
| Pattern | Likely cause |
|---|---|
| Low invalid, low catch-all | Addresses found on real sources or confirmed against a mail server |
| Low invalid, very high catch-all | Many addresses guessed from a pattern on domains that cannot be checked |
| High invalid on a few domains | A wrong email pattern applied to whole companies |
| High invalid spread evenly | Old data. People have left and mailboxes have closed |
| Many duplicates of the same person | Merged sources without deduplication |
Our Email List Health Report 2026 found that 27.5% of the 54,463 domains it checked accepted mail for a made-up address. A B2B file with a sizeable catch-all share is normal. A file where nearly everything is catch-all deserves questions.
Check 2: hand-check a random sample
Email checks cannot tell you whether the person still holds that job, or whether the company fits your brief. For that, a person has to look.
How to draw the sample
- Use a random sample, not the first 100 rows. Vendors often put their best records first. In a spreadsheet, add a column of
RAND(), sort by it, and take the top N rows. - Sample from the whole delivery, including the risky records.
- Decide the checks before you look. For each record: does the person exist, at this company, in this role (or one that fits the brief)? Does the company match the brief on industry, size and location?
How many to sample
Sample size decides how much the result can tell you. The table shows 95% confidence intervals (Wilson method, as described in the NIST Engineering Statistics Handbook) for some sample results. We calculated them for this post.
| Records checked | Errors found | Observed error rate | True error rate is likely between |
|---|---|---|---|
| 50 | 3 | 6% | 2.1% and 16.2% |
| 100 | 5 | 5% | 2.2% and 11.2% |
| 200 | 10 | 5% | 2.7% and 9.0% |
| 400 | 20 | 5% | 3.3% and 7.6% |
| 100 | 0 | 0% | 0% and 3.7% |
| 200 | 0 | 0% | 0% and 1.9% |
A sample of 50 cannot separate a good list from a bad one. A sample of 200 usually can. Doubling to 400 narrows the range, but takes twice the reviewer time. For most deliveries, 200 is the right trade-off.
The decision rule
Use the top of the interval against your pass mark:
- If the top is below the threshold, accept.
- If the bottom is above the threshold, reject or invoke the replacement rule.
- If the threshold sits inside the range, check another 200 records and recalculate on the combined sample.
This is a standard acceptance-sampling idea. NIST's handbook files it under the question "Does the proportion of defectives meet requirements?"
Worked example: a 5,000-lead delivery
A SaaS company commissions 5,000 leads: heads of operations at logistics companies with 50 to 500 staff in the US. The contract sets a 3% maximum invalid rate, a 15% catch-all cap, 90% minimum role and company accuracy, and free replacement within 10 days. The figures below are illustrative.
Email verification (all 5,000 records):
| Result | Count | Share |
|---|---|---|
| Duplicates removed first | 85 | 1.7% |
| Valid | 3,690 | 75.1% of 4,915 |
| Risky: catch-all | 905 | 18.4% |
| Risky: role address | 40 | 0.8% |
| Invalid | 280 | 5.7% |
Hand check (200 random records): 14 records had the wrong person, a person who had left, or a company outside the brief. That is 7% observed, with a 95% range of 4.2% to 11.4%.
Reading the result against the contract:
| Criterion | Pass mark | Result | Verdict |
|---|---|---|---|
| Duplicates | 0% | 85 records | Fail: replace 85 |
| Invalid rate | 3% maximum | 5.7% | Fail: replace 280 |
| Catch-all share | 15% maximum | 18.4% | Fail: about 170 over the cap |
| Role addresses | Not allowed by the brief | 40 | Fail: replace 40 |
| Role and company accuracy | 90% minimum, so at most 10% errors | 4.2% to 11.4% errors | Inconclusive: the 10% line sits inside the range |
The email results are clear-cut, because every record was checked. The accuracy result is not, so the buyer checks another 200. If the combined 400 show, say, 26 errors (6.5%), the Wilson range is about 4.5% to 9.4%. The top is under 10%, so accuracy passes.
The buyer then sends the vendor a file of the 85 duplicates, 280 invalid addresses, 40 role addresses and the 170 lowest-sourced catch-all records, and asks for 575 replacements. The replacements go through the same verification before they are accepted.
Red flags in the delivery file itself
Some problems show before you verify anything. Open the file and look for:
- Identical email patterns across very different companies, for example every address as
first.last@regardless of company size. That suggests guessing, not finding. - Job titles that are too tidy, such as every record titled exactly "Head of Operations". Real titles vary.
- Missing or uniform company sizes and locations on a brief that specified them.
- Many records per company when the brief asked for one decision-maker per account.
- Free-mail addresses (
gmail.com,yahoo.com) on a B2B brief, unless you allowed them.
None of these alone fails a delivery. Each one tells you where to aim the hand-check sample.
Ask for a source column
Every row should say where it came from, for example "company website, team page", "LinkedIn profile", "conference speaker list" or "pattern confirmed by published address".
A source column lets you:
- spot which sources produce the invalid and catch-all records, and ask the vendor to drop them;
- rank catch-all records by source when deciding which to send. Our catch-all decision framework does exactly this;
- answer a recipient who asks where you got their data. In the EU and UK that duty applies to you, not just the vendor.
A vendor that will not provide sources is asking you to accept the list on trust. The acceptance test exists so that you do not have to.
Re-check before you send, not just on delivery
A list that passed on delivery decays from that day. People change jobs and mailboxes close. If the campaign starts weeks after delivery, verify again first.
Before import, also run the new list against your suppression list, so people who opted out of earlier campaigns do not come back through a new vendor.
Checklist
- Pass marks, catch-all cap and replacement rule written into the brief
- Source column required for every row
- Delivery normalised and deduplicated
- Every address verified, results split by valid, catch-all, role and invalid
- Random sample of 200 hand-checked for person, role and company fit
- Result read at the top of the confidence range
- Failing records returned with reasons and replacements re-verified
- List screened against your suppression list before import
- Re-verified if more than a few weeks pass before sending
For the full cleaning process once you accept a list, see how to clean an email list.
The short version
Do not pay for a lead list on the vendor's word. Agree pass marks first. Verify every address, because it is cheap and objective. Hand-check a random sample of 200 for the things software cannot see, and judge the result by the top of its confidence interval. Send back what fails, re-verify the replacements, and keep the source column so the next delivery is easier to audit.
Common questions
How do I check the quality of a lead list?
Run two checks. First, verify every email address with an SMTP-based verifier and count invalid, risky and duplicate records. Second, take a random sample of 100 to 200 records and check by hand that the person, job title and company are correct and fit your brief. Compare both results against pass marks agreed with the vendor before the work started.
What invalid email rate should I accept from a lead vendor?
Set it from your sending limits, not from the vendor's promise. If your sending platform reviews accounts at a 5% bounce rate, as Amazon SES documents, a list that is 5% invalid leaves no margin. Many buyers set a maximum invalid rate of 2 to 3% after verification, and remove the invalid records themselves anyway.
How many records should I sample to check a lead list by hand?
At least 100, preferably 200. With 200 records, an observed 5% error rate has a 95% confidence range of roughly 2.7% to 9%. With 50 records the same rate could be anywhere from about 2% to 16%, which is too wide to accept or reject anything.
Should catch-all emails count as valid in a lead list delivery?
Agree that in the contract. A catch-all address cannot be confirmed by any SMTP check, so it is not proof of a working mailbox. A common approach is to accept them only up to an agreed share of the delivery, and only when the vendor can show a source for the address.
Is it legal to email a list I paid someone to build?
That depends on where the recipients are and how the data was collected, not on whether you paid for it. Check the rules for each country you will email, and avoid lists of consumers bought from third parties: most email platforms forbid them.
Verify unlimited addresses for $29.99/month
Real SMTP mailbox checks. No credits, no per-email fees.
Get Started