Here's the whole argument in one sentence: scrubbing your entire 100,000-contact list against known litigators and DNC-complainers costs about $500, and a single text to one flagged number can cost you $500 to $1,500 in statutory damages. The breakeven isn't a lawsuit. It's one bad send.
Full disclosure: I work for Ready, and we sell a standalone litigator/DNC scrub at $0.005 per contact. So I have a stake here. But the math below doesn't need me to be right — it needs the TCPA to say what it already says, and it does. If anything, I'll spend most of this post telling you what the scrub doesn't do, because that's the part people get wrong.
The two numbers, side by side
The TCPA carries statutory damages of $500 per violation, trebled to $1,500 if the violation is found willful or knowing. There's no cap. Each text is a separate violation. A plaintiff who received four texts from you is looking at $2,000 to $6,000 before their lawyer opens a spreadsheet.
Now put the scrub next to that.
| Item | Cost |
|---|---|
| Scrub 100,000 contacts at $0.005 each | $500 |
| One text to a flagged litigator (base statutory damage) | $500 |
| Same text, ruled willful | $1,500 |
| Four texts to the same plaintiff, willful | $6,000 |
| Defense costs to make even a frivolous claim go away | often $10,000+ |
Scrubbing the whole list costs the same as one base-level violation. If the scrub catches a single litigator you'd otherwise have texted, it paid for itself and left you with 99,999 contacts checked for free. That's the framing that matters: the scrub isn't an expense you weigh against a budget line. It's a cost ceiling you're buying down against an uncapped downside.
What the scrub actually removes
A scrub is only "cheap insurance" if you know what it insures. Ready's standalone scrub checks each number against two categories and auto-suppresses matches before send:
- Known TCPA-litigator lists — numbers tied to people who have already sued or filed complaints over text or call violations. These are the serial plaintiffs. A hit here doesn't mean "this person once got a wrong-number text." It means this specific individual has a documented history of turning a text into a claim. We wrote a whole piece on what a litigator flag actually means, because people over-read it: A Litigator Flag Doesn't Mean 'Don't Call'.
- DNC-complainer lists — numbers associated with people who've filed do-not-call complaints.
Here's the trap: passing the federal DNC and passing a litigator database are two different tests. A number can be clean on the DNC and still belong to someone who's sued three companies this year. The DNC tells you who asked not to be called. The litigator list tells you who fights about it. If you only scrub one, you're missing half the risk. That distinction is worth understanding in full: A Number Can Pass DNC and Still Sue You.
Why the scrub has to run before the send, not after
The most expensive mistake I see: importing a list, texting it, then scrubbing to "clean it up for next time." By then the violation already happened. The scrub is a filter, not a mop.
The rule under the TCPA is simple and unforgiving — the send is the violation. If a flagged number receives one message, scrubbing it out afterward doesn't undo anything. It just means you won't hit them on the next blast. The first text already exists.
So the scrub belongs in the path between import and send, gating the list, not cleaning it retroactively. We go deep on the timing failure here: Scrubbing Litigators After You Import a List Is Too Late.
The scrub is one layer, not the whole wall
I'd be doing you a disservice if I let you walk away thinking a $500 scrub makes you lawsuit-proof. It doesn't. Compliance is still the sender's responsibility, and no vendor can take that on for you.
The scrub reduces risk on one axis: it removes people statistically likely to sue. It does nothing about the three other things that get you sued:
- Consent. If you didn't have permission to text these people, a spotless scrub doesn't cure the underlying problem. A cold list with no opt-in is a liability whether or not it contains litigators — you've just lowered the odds the recipient is a professional plaintiff.
- Quiet hours. Texting outside permitted local hours (generally before 8am or after 9pm the recipient's time) is its own exposure. Ready holds sends outside those windows automatically; more on why that also saves you opt-outs in SMS Quiet Hours.
- Honoring STOP. Every inbound STOP has to propagate so the contact can't be messaged again across any campaign. Ready does this automatically, but you still have to not override it.
Think of scrubbing, quiet hours, and consent as three separate layers — each catches a different failure. We laid out how they stack in The Three Layers of TCPA Risk Reduction. Scrubbing is the cheapest layer to add and the fastest to skip. Both of those are reasons to do it.
When to re-run it (and why a one-time scrub goes stale)
A scrub is a snapshot. Litigator databases grow. People file new complaints. A list you cleared in January isn't clean in March, and the difference isn't rounding error.
Aged and purchased lists degrade fastest. A list you bought six months ago can carry roughly three times the litigator density it had on day one — partly because those numbers were already circulating through other senders' campaigns, generating complaints the whole time. The scrub-timing math on aged lists is genuinely surprising: A List You Bought 8 Months Ago Now Has 3x the Litigators.
Because Ready's scrub is pay-per-contact — no subscription, no minimum — re-running is a variable cost you control. Practical cadence:
- Purchased / rented data: re-scrub before every major blast, or monthly at minimum. This is the highest-risk source.
- Skip-traced cold lists: same — treat as purchased data.
- Organically opted-in contacts: far lower churn, but a quarterly pass on your active-outreach segment is cheap peace of mind.
Re-scrubbing 100,000 contacts monthly costs $500/month at $0.005 each. If that sounds like a lot, compare it to the willful-violation math above — one $1,500 hit, once, wipes out three months of scrubbing. We broke down the refresh-vs-one-time tradeoff in dollars here: You Scrubbed the List in January and It's Dirty Again by March.
A worked example on a real segment
Say you're a wholesaler with a 40,000-number skip-traced list you're about to text a first-touch message to.
- Scrub cost: 40,000 × $0.005 = $200.
- Assume the scrub flags 0.5% as litigators (conservative for aged skip-traced data — it's often higher). That's 200 numbers suppressed.
- Had you texted those 200 and even ten of them filed, at the base $500: $5,000. At the willful $1,500 rate — and cold-texting skip-traced numbers with no consent points toward willful — $15,000.
You spent $200 to avoid a $5,000–$15,000 exposure from a fraction of the flagged numbers. And that's before defense costs, which routinely run five figures even when you'd eventually win. The consent problem on that list is still yours to solve — the scrub doesn't fix cold outreach — but it removes the people most likely to make you pay for it. More on that specific scenario: One Cold Text to a Skip-Traced Number Can Cost $500 to $1,500.
The practical takeaway
The number that should stick: a full 100,000-contact scrub costs the same as one base TCPA violation. You are buying down an uncapped liability with a fixed, tiny, per-contact fee — and you only pay for the contacts you actually check.
It isn't a substitute for consent, quiet hours, or honoring STOP. It's the cheapest of the layers and the one people skip first, which is backwards. If you're sending any volume of cold or purchased outbound, run the scrub before the send, re-run it on a cadence tied to how dirty the source is, and keep the other layers in place around it.
If you want to try it against a live list, Ready's standalone scrub is $0.005 per contact with no minimum, and the full compliance stack — automatic STOP handling, quiet-hours enforcement, consent capture — sits alongside it. You can see how it fits on the product page, or sign up and scrub a segment before your next blast.