Service

Contact Data Hygiene: What It Catches and What It Costs

What does contact data hygiene cost?

Short answer

Two rates, both per row, both with a $5 minimum. $0.20 validates the phone at carrier level and removes dead lines, wrong line types and known TCPA litigators. $0.55 does that and then grades what survives, adding a phone grade, an email deliverability answer, and whether the name on your record actually matches the phone and the email. No subscription either way, and nothing is owed between jobs.

On this page

Most lists are worse than the person holding them believes, and the damage is not evenly distributed. A file can be 90% deliverable and still be the wrong file to work, because the 10% is where the disconnected lines, the landlines you are texting, and the two people who sue telemarketers for a living all sit. Contact data hygiene is the pass that finds them before your team spends a week on them.

This page is about what that pass actually catches, what it hands back, and what it costs. For what the individual checks are, phone number scrubbing explained covers the mechanics.

What each check catches, and where it shows up

Defects caught by tier, and the column each is reported in
What is wrong with the recordTierColumn
Not a valid, dialable US numberBothscrub_status
Landline, VoIP or toll-free when you need a mobileBothline_type
Reports as mobile but the line is deadBothactivity_score
Known TCPA litigatorBothscrub_status
You do not know who the carrier isBothcarrier
The name on your record is not the person on that phoneGradedphone_name_match
Overall contactability of the phoneGradedphone_grade
The email will not deliverGradedemail_deliverable
The name does not match the email eitherGradedemail_name_match
Overall quality of the email recordGradedemail_grade

The scrub_status column carries one of five values: clean, litigator, disconnected, not_mobile, or lookup_failed. That last one matters more than it looks: a row whose lookup failed is reported as unknown rather than quietly passed off as good, and it is not billed.

Deliverable, not valid

The email column is email_deliverable rather than email_valid, and the distinction is not pedantic. A live test returned an address the provider considered structurally valid while the deliverability add-on said it would not deliver, on a record graded F. Reporting the "valid" answer would have printed "yes" next to a dead mailbox.

The two name-match columns are three-state for the same reason. Where there is no coverage for a record they come back blank rather than "no", because "we could not tell" and "the name does not match" are different findings and only one of them should stop you calling.

The two rates

Cost of each tier by list size
RowsScrub, $0.20/rowScrub and grade, $0.55/row
10$5.00 (minimum)$5.50
25$5.00$13.75
100$20.00$55.00
1,000$200.00$550.00
5,000$1,000.00$2,750.00

5,000 rows is the largest job priced automatically; larger files are quoted. There is no subscription on either tier and nothing is owed in a month you do not upload anything, which is the whole reason the floor is $5 rather than a monthly minimum.

Which tier a list actually needs

  1. A bare column of phone numbers can only be scrubbed. Grading needs a name to match against, so the $0.55 tier is not available to a file that has no name column -- this is a hard constraint of the underlying data, not a packaging decision.
  2. A purchased or skip-traced list with names is the case grading was built for. Those files fail in a specific way: the number is live, so a scrub passes it, but it belongs to someone other than the person named on the row. Only a name match catches that.
  3. A list you are about to text needs line type above everything else, which the $0.20 tier already gives you. Texts to landlines are billed and never delivered.
  4. A list with emails you also intend to use gets the email half of the grading for the same $0.55, so running the two hygiene passes separately across two vendors is usually the more expensive route.

If the list came from a skip trace, what to do with a skip-traced list covers the failure modes specific to that source. For how this compares to buying the checks from a compliance platform instead, see the vendor buyer's guide.

Frequently asked questions

What is contact data hygiene?

It is the practice of checking a list of people you intend to contact before you contact them: is the number live, is it the right kind of line, does the name on the record actually belong to it, is the email deliverable, and is anyone on the list dangerous to call. It is distinct from database hygiene in the CRM sense -- deduplication, field formatting, record merging -- which is about the tidiness of your data. This is about whether the data is true, which is a question you can only answer by looking the contact up against live carrier and identity sources.

What is the difference between the $0.20 and $0.55 tiers?

The $0.20 tier answers questions about the line: is it valid, what type is it, is it live, is it a known litigator. The $0.55 tier answers questions about the person on top of that: does this name match this phone, is this email deliverable, does the name match the email, and how contactable is this record overall on an A to F grade. They are two tiers rather than an upgrade path because the grading requires a name column in your file -- a bare column of phone numbers cannot be graded at all. One thing worth being precise about: grading only runs on the rows that survive the scrub, since there is nothing to learn about a litigator you will not receive, but the rate is charged per row processed rather than per row graded. A row whose lookup fails outright is not billed at all.

What columns do I get back?

Your original file, unchanged, with columns appended. Every job adds line_type, carrier, activity_score and scrub_status. A graded job adds five more: phone_grade, phone_name_match, email_grade, email_deliverable and email_name_match. An ungraded job's file keeps exactly the shape it always had, so nothing downstream of you has to change to accommodate a tier you did not buy.

Why does the $5 minimum kick in at a different row count on each tier?

Because it is a flat floor divided by two different rates, and the division is rounded up. At $0.20 a row the floor stops applying at 25 rows; at $0.55 it stops at 10, since $5 buys 9.09 graded rows and you cannot buy nine-tenths of one. Below those counts you pay $5 and no less. Above them you pay exactly the per-row rate with no minimum in play.

Does this include Do Not Call registry scrubbing?

No, and that is a scope limit rather than an omission. National DNC Registry access runs under the caller's own Subscription Account Number from the FTC, and no vendor can hold that for you. What is here is carrier-level validation, litigator screening and identity matching, none of which touch the registry or need a SAN. See what a SAN actually gates if you are unsure which of the two you need.

Can I see the output before paying?

Yes. The free contact assessment grades up to 300 rows of a file you upload and returns a real report, using the same grading the $0.55 tier uses. Duplicate and completeness statistics run over the whole file regardless of size, because that is plain CSV analysis and costs nothing to do.

Grade the list before anyone works it.
Upload a CSV and get every surviving row back with the columns below appended. $0.20 per row to scrub, $0.55 to scrub and grade, $5 minimum. No subscription.
Upload a list
Cameron Hoffman

Founder, NumberBroom · 10 years in telecommunications and marketing

Cameron Hoffman is the founder of NumberBroom and has spent 10 years working in telecommunications and marketing. He built NumberBroom after repeatedly watching outbound teams dial purchased lists that were full of dead numbers, landlines and TCPA litigators.