Scrub Before You Blast: A DNC + Litigator Workflow for Cold Lists

A cold list is a loaded question. You bought it, scraped it, or inherited it from a partner, and it's sitting in a CSV waiting to be uploaded. Most of those numbers are fine. A small slice of them belongs to people who will not just ignore your text — they'll screenshot it, note the timestamp, and forward it to an attorney who files TCPA cases for a living. That slice is the entire reason this post exists.

Full disclosure: I work for ReadySMS, and we sell a scrubbing add-on. I'm going to show you the math and the workflow honestly, including the parts where scrubbing doesn't save you, so you can decide for yourself.

Why cold lists are a different animal

When someone opts into your list — types their number into a checkout field, texts a keyword to your number — you have a consent trail. That trail is your defense. A cold or purchased list has no trail. You're messaging people who never asked, which in most of the US is already a problem under TCPA, and worse if they're on the federal Do Not Call registry or, worst of all, if they're a known serial litigator.

Serial litigators are a real, small population. They maintain phone numbers specifically to catch non-compliant senders. Some of them advertise the numbers to make sure marketers buy them. One text to the wrong number can trigger a demand letter with statutory damages cited at $500 to $1,500 per message. Send 200 messages to a list with three litigators sprinkled in and you've manufactured a five-figure problem out of a campaign that maybe earned you a few hundred dollars.

This isn't a reason to never touch cold lists — plenty of higher-risk verticals (real estate wholesaling, insurance, debt, B2B prospecting) run them successfully. It's a reason to scrub first.

What scrubbing actually checks

Two distinct lists, often conflated:

  • DNC (Do Not Call) data — numbers registered on the federal Do Not Call list, plus internal DNC and known complainer numbers. These are people who've formally asked not to be contacted.
  • Litigator data — numbers tied to known TCPA plaintiffs and the law firms that file repeatedly. These are the numbers that turn a mistake into a lawsuit.

A scrub runs each number on your list against both sets and flags or suppresses the matches before a single message goes out. ReadySMS's standalone scrub does both checks in one pass at $0.005 per contact, and matches are auto-suppressed so they never get queued. We dig deeper into what the litigator side covers in TCPA Litigator Scrubbing: What It Is and Why $0.005 a Contact Is Cheap Insurance.

The cost math, worked all the way through

Say you've got a 50,000-contact cold list and you want to send a single 1-segment message.

Scrubbing cost:

ItemCalculationCost
Scrub 50,000 contacts50,000 × $0.005$250.00

Send cost (Basic tier, $0.0074/segment + $0.0045 carrier, after scrub removes ~4% of the list):

ItemCalculationCost
Send to ~48,000 survivors48,000 × ($0.0074 + $0.0045)$571.20
Total campaign$250 + $571.20$821.20

The scrub is roughly 30% on top of your send cost for this list. That feels like a lot until you compare it to the downside. If even one litigator number survived an unscrubbed blast, the low end of statutory exposure ($500) is already double your entire scrub bill. Find two, and the scrub paid for itself several times over. We ran the full comparison in The Math: One TCPA Lawsuit vs Scrubbing Your Whole List — short version, the scrub almost always wins on expected value for cold traffic.

Note the asymmetry: on a clean, opted-in list, scrubbing matters far less because the consent trail is your defense. The $0.005 makes the most sense exactly where the risk is highest — cold and purchased data.

The step-by-step pre-send workflow

Here's the sequence I'd run for any cold list, in order.

1. Deduplicate and normalize first

Before you pay to scrub anything, clean the file. Remove duplicate numbers, strip landlines if your platform can detect them (you can't legally text most landlines anyway), and normalize formatting to E.164 (+1XXXXXXXXXX). Scrubbing a list with 8,000 duplicate rows means paying $0.005 eight thousand times for nothing.

2. Scrub against DNC + litigator data

Upload the cleaned list and run the scrub. With ReadySMS this is a single pass — both DNC and litigator checks — and you pay only for the contacts you scrub. Matches get auto-suppressed, so they're removed from the sendable pool rather than just labeled.

3. Review the match report

Don't just delete and move on. Look at the suppression rate. A cold list that comes back with a 1–2% match rate is probably reasonably sourced. One that comes back at 15%+ is telling you something about your data vendor. A high match rate is a signal to question the list's provenance entirely, not just to remove the flagged rows.

4. Confirm your 10DLC registration is live

Scrubbing is the who. Registration is the whether you deliver at all. Unregistered traffic gets carrier-filtered regardless of how clean your list is, so make sure your brand and campaign are approved before you send. If that's not done yet, start with our 10DLC explainer and the registration cost breakdown.

5. Layer quiet hours and consent attestation

The scrub removes the highest-risk numbers. Two more guardrails stack on top:

  • Quiet-hours enforcement holds sends outside permitted local hours based on the recipient's area, which is a common, easy-to-trip TCPA violation.
  • Consent / attestation capture records what you're attesting to for the bulk send, building an audit trail. On a cold list this matters because if you ever have to explain the campaign, "here's our process" beats "we just sent it."

6. Send, then honor every opt-out automatically

Inbound STOP and UNSUBSCRIBE get honored and propagated, so a contact who opts out of one campaign can't be messaged again across campaigns. On cold traffic you'll see opt-outs — that's expected and healthy. The important thing is that they stick. More on the mechanics in handling SMS opt-outs.

What to actually do with the matches

The flagged numbers are not a "maybe." Treat them as follows:

  • Litigator matches — suppress permanently. Add them to an internal do-not-contact list so they never reappear in a future upload of the same source.
  • DNC matches — suppress for cold/promotional sends. If you later obtain genuine express consent from one of these people through a legitimate opt-in, that changes the calculus, but don't assume it.
  • High overall match rate — push the problem upstream. Tell your list vendor, ask for a credit, or stop buying from them. A 15% litigator/DNC rate is a vendor problem you'll keep paying for.

The scrub is a filter, not a laundering service. It removes the people you definitely shouldn't text. It does not turn a cold list into a consented one — only an actual opt-in does that.

Where scrubbing stops helping (the honest part)

Scrubbing reduces the chance you hit a known litigator or a registered DNC number. It does not:

  • Make cold texting legal where it otherwise isn't. Consent is still the sender's responsibility.
  • Catch a litigator whose number isn't yet on any list.
  • Fix bad message content, missing opt-out language, or sending at 2 a.m. local time.

So position the scrub correctly: it's cheap risk reduction layered with registration, quiet hours, consent capture, and automatic opt-out handling. Together those make a defensible process. Any one of them alone is a partial measure. Nobody — us included — can sell you immunity from a lawsuit, and I'd be suspicious of anyone who claims they can.

The practical takeaway

For cold and purchased lists, the workflow is short and worth repeating every single send: dedupe, scrub against DNC + litigator data, review the match rate, confirm 10DLC is live, layer quiet hours and consent, send, and let opt-outs auto-propagate. The scrub costs $0.005 per contact and typically runs 20–30% on top of send cost for a cold list — a rounding error next to a single $500–$1,500 demand letter.

If you want to see what a scrub-plus-send actually costs for your specific list size, the cost calculator will run the numbers, and the pricing page has the full tier and add-on breakdown. Run the scrub before the blast, not after the letter arrives.