Most people scrub on a calendar. "We re-scrub every 30 days," someone says, and they say it about every list they own — the one they built themselves with double opt-in, the one a partner handed them, and the 40,000-row CSV they bought from a broker who wouldn't tell them where it came from. Same cadence for all three. That's the mistake.

DNC status and litigator flags don't drift at the same speed across lists. They drift by source and by age. A list you grew organically picks up flags slowly. A purchased list arrives with flags already baked in and adds more fast. Treating both the same means you either over-scrub the clean list (fine, just wasteful) or under-scrub the dirty one (not fine — that's the one that gets you a TCPA letter).

Full disclosure: I work for ReadySMS, and we sell standalone litigator/DNC scrubbing at $0.005 per contact. So I have a reason to talk about scrubbing. But the point of this post is the cadence logic, not the sale — you can apply the same schedule wherever you scrub.

Why flag rate depends on where the list came from

A phone number's DNC and litigator status changes for a few independent reasons:

  • The person filed a complaint or joined a DNC list — this happens continuously, and faster on lists that get hammered by aggressive senders.
  • The number got reassigned — carriers recycle disconnected numbers, and the new owner may already be on a DNC list or be a known litigator.
  • A known litigator acquired the number — professional TCPA plaintiffs seed numbers into broker databases on purpose.

Here's the thing: a list you built through real opt-in starts near-clean. The people asked to hear from you. Reassignment still happens (numbers churn regardless of consent), but you're not importing pre-existing complainers. A purchased list is the opposite — you inherit whatever the previous senders earned, plus the seeded traps brokers can't fully filter out.

We covered the raw hit-rate gap in Purchased Lists Flag 5x More Litigators Than Opt-In Lists. The short version: same size, same industry, the purchased list flags roughly five times as many litigators on the first pass. That's the starting rate. The drift rate on top of it is also higher.

Age matters as much as origin

Even a clean, self-grown list decays. Numbers disconnect and get reassigned at a steady clip. By the 12-month mark, a meaningful chunk of any list is pointing at someone who never opted in — I walked through the ~30% reassigned-or-disconnected figure in A 12-Month-Old List Is ~30% Reassigned or Disconnected Numbers.

So you've got two dials:

  1. Origin — how dirty the list was on day one.
  2. Age — how much it's drifted since you last touched it.

A purchased list six months old is bad on both dials: high starting flag rate and real drift. A self-grown list you scrubbed last week is good on both. A source-based cadence just weights the two dials instead of pretending every list is average.

A DNC scrub result expires anyway

Worth stating plainly: a scrub is a snapshot, not a permanent stamp. Federal DNC guidance generally treats a scrub as valid for about 31 days — after that, numbers may have been added and you're relying on stale data. I wrote about the calendar side of that in Your DNC Scrub Expires in 31 Days.

The 31-day expiry is your ceiling for a well-behaved list. Source-based cadence is about deciding which lists need to be scrubbed more often than that ceiling, not less.

The source-based scrub schedule

Here's the cadence I'd run. Treat it as a starting point you tighten based on the flag rate you actually observe.

List sourceStarting riskScrub before every send?Baseline re-scrub cadence
Self-grown, double opt-in, <6 mo oldLowNoEvery 31 days (the ceiling)
Self-grown, 6–12 mo oldLow-moderateNoEvery 21 days
Self-grown, 12 mo+Moderate (decay)Yes if reactivatingScrub-then-reengage, then 21 days
Partner / co-reg listModerate-highYes on first useEvery 14 days while active
Purchased, freshHighAlwaysEvery 7–10 days while dialing
Purchased, 6 mo+Very highAlwaysEvery 7 days, minimum

The pattern: the dirtier the origin, the shorter the cadence, and the more you scrub right before a send rather than trusting a batch scrub from last week. The row that matters for this post's title — purchased and six months old — lands at roughly a 7-day cadence versus 21–31 days for a list you grew. That's the "3x more often" claim in concrete terms.

The one non-negotiable

Never send to a purchased or partner list without scrubbing immediately before the send. It doesn't matter how recently you scrubbed if you bought more rows in the meantime, or if the campaign is going out three weeks after the last pass. Freshly-acquired-and-old is the worst-case combination.

The cost math, per source

At $0.005 per contact, the source-based cadence is cheap enough that the "am I over-spending?" worry mostly evaporates. Let's price a 20,000-contact list over one month under each cadence.

Self-grown, 31-day cadence: roughly 1 scrub/month. 20,000 × $0.005 × 1 = $100/month

Purchased, 6 mo+, 7-day cadence: roughly 4 scrubs/month. 20,000 × $0.005 × 4 = $400/month

So the dirty list costs you $300 more a month in scrubbing than the clean one. Now weigh that against what it prevents. A single TCPA violation runs $500–$1,500 per text. One flagged litigator you didn't catch on a 20,000-message blast — one — and you're past a year of scrub budget for that entire list. Scrubbing the six-month-old purchased list four times a month to catch the handful of litigators it accretes is not a close call financially.

You can run your own numbers on the cost calculator if you want to plug in your real list sizes and send frequency.

Why not just scrub everything weekly?

Because it's wasteful and you'll resent it, which means you'll eventually stop. Scrubbing that clean 20,000-contact self-grown list weekly instead of monthly takes you from $100 to $400/month for almost no additional catches — the list barely drifts. Spend the difference on scrubbing the dirty lists more. A cadence that matches effort to risk is one you'll actually keep running.

Scrubbing is one layer, not the whole wall

I want to be honest about what this buys you. Scrubbing removes known litigators and DNC-listed numbers before you send. It does not create consent you never had, and a clean-scrubbed purchased list is still a purchased list — the people on it didn't ask to hear from you, and DNC status is not the same as consent.

A number can pass DNC and still belong to someone who'll sue, which is exactly why litigator databases exist alongside DNC — I broke that distinction down in A Number Can Pass DNC and Still Sue You. And scrubbing sits inside a bigger risk-reduction stack: consent capture, quiet-hours enforcement, and honoring STOP. That full picture is in The Three Layers of TCPA Risk Reduction.

ReadySMS bundles quiet-hours enforcement and automatic STOP handling into every send, and the standalone scrub at $0.005/contact plugs into the front of that — you can scrub whether or not you send your traffic through us, which is the whole point of the standalone scrub product.

The practical takeaway

Stop scrubbing on a flat calendar. Sort your lists by two questions — where did this come from and how old is it — and set the cadence from there:

  • Self-grown, recent: scrub monthly, at the 31-day ceiling.
  • Aging or partner lists: tighten to every 14–21 days.
  • Purchased, and especially purchased-and-old: scrub before every send, roughly weekly, and accept it'll cost 3–4x the clean-list rate. It's still an order of magnitude cheaper than one missed litigator.

If you're sitting on a purchased or aging list right now, run one scrub before your next send and look at the flag rate. That number tells you your real cadence better than any table I can write. You can start with 2,500 free credits and no card, and price the ongoing scrub on the pricing page once you've seen what your own lists flag.