{
  "id": "OPS-085",
  "slug": "ops-085",
  "title": "The programme must scrub deactivated numbers before sending",
  "statement": "The programme must describe checking carrier deactivation data before each send, and logging each ingest.",
  "rationale": "Around 100,000 US numbers change hands every day, and a consent record follows the number rather than the person. Messaging a reassigned number sends someone else's order details, or marketing, to a stranger who never opted in — the single largest source of complaints that look like consent failures and are not. The carriers publish daily deactivation files precisely so this is preventable, and a programme with no ingest described has not decided who runs it.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "campaign.message_flow + privacy policy",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "CTIA",
    "T-Mobile",
    "AT&T"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "State which deactivation feed the programme consumes — the carrier files through your provider, or the provider's own deactivation report — how often it runs, and that listed numbers are suppressed before the next send. Done when the flow names a source and a cadence rather than an intention.",
  "example": "Carrier deactivation lists are ingested daily through our messaging provider; listed numbers are suppressed before any send, and each ingest run is logged with its timestamp.",
  "pitfalls": [
    "Relying on delivery failures to find dead numbers does not work here — a reassigned number delivers perfectly, to the wrong person."
  ],
  "notes": "Registration-side twin. The daily ingest itself (OPS-083, OPS-084, OPS-086) is a scheduled job we cannot observe; what we judge is whether the programme has one.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/operational/ops-085/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-085.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
