{
  "id": "OPS-057",
  "slug": "ops-057",
  "title": "Log the sends you did not make",
  "statement": "Every send attempt suppressed because the number was opted out must be logged.",
  "rationale": "The suppression list proves what you intended; the suppressed-send log proves it worked. Without it there is no evidence that the check ran at all — an empty complaint file and a suppression list with a million entries are consistent with a suppression check that has been silently failing since a deploy, and an audit asks for exactly this.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "suppressed-send log",
  "severity": "MEDIUM",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "TERMINAL_EVIDENCE",
  "authorities": [
    "T-Mobile"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Log the number, the campaign and the timestamp each time a send is dropped for suppression, and retain it for the same period as the consent records. Done when you can show how many sends the list stopped last month.",
  "example": "suppressed_send: msisdn +14155550134, campaign acme-marketing, at 2026-03-04T14:22Z, reason=opted_out.",
  "notes": "A log inside the sending platform. What the user has to check is whether their platform exposes suppression events at all — several drop them silently, and where that is true the evidence has to come from a pre-send check they run themselves.",
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Can you say how many sends your suppression list stopped last month?",
    "howToCheck": [
      "Check whether your platform exposes suppression events at all — several drop them silently, and where that is true the evidence has to come from a pre-send check you run yourself.",
      "Log the number, the campaign and the timestamp on every dropped send.",
      "Retain it for the same period as the consent records."
    ],
    "failureLooksLike": "An empty complaint file and a suppression list with a million entries are equally consistent with a check that has been silently failing since a deploy. Without the log there is no evidence it ever ran."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-057/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-057.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
