{
  "id": "OPS-068",
  "slug": "ops-068",
  "title": "STOP and HELP volumes are a standing report",
  "statement": "STOP and HELP response volumes must be monitored per campaign as an ongoing obligation.",
  "rationale": "Aggregate rates hide the campaign that is going wrong. A brand running six programmes sees a healthy overall opt-out rate while one of them is generating almost all of it, and the per-campaign view is what makes that visible early enough to fix. It is also what the connectivity partner is expected to hold, so being unable to produce it is itself a finding.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "per-campaign keyword response metrics",
  "severity": "HIGH",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "T-Mobile"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Break STOP and HELP counts out per campaign rather than per account, and keep the series long enough to see a trend. Done when you can answer \"which campaign is driving this\" without an export.",
  "example": "Monthly: acme-marketing 0.4% STOP / 0.1% HELP; acme-orders 0.05% STOP / 0.3% HELP.",
  "notes": "Metrics from live traffic. What the user has to confirm is that their platform attributes inbound keywords to a campaign at all — where several campaigns share a number, many do not, and the attribution has to be rebuilt from the outbound history.",
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Can you answer \"which campaign is driving this\" without an export?",
    "howToCheck": [
      "Break STOP and HELP counts out per campaign rather than per account, and keep the series long enough to see a trend.",
      "Confirm the platform attributes inbound keywords to a campaign at all — where several campaigns share a number, many do not."
    ],
    "failureLooksLike": "A brand running six programmes sees a healthy overall opt-out rate while one programme generates almost all of it. Being unable to produce the per-campaign view is itself a finding."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-068/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-068.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
