{
  "id": "POL-097",
  "slug": "pol-097",
  "title": "The policy must carry opt-out instructions of its own",
  "statement": "The privacy policy must give opt-out instructions inside the policy itself.",
  "rationale": "The policy is where someone looks when the last message has scrolled away and they want out, so pointing at the messages rather than restating the route leaves them where they started. It costs one sentence and it removes the most common reason a consumer complains to the carrier instead of to the brand.",
  "layer": "POLICY_PAGE",
  "layerSlug": "policy-page",
  "object": "privacy policy body",
  "severity": "HIGH",
  "detectability": [
    "CRAWL"
  ],
  "failureClass": "TERMINAL_POLICY",
  "artifact": "privacy_policy",
  "authorities": [
    "Twilio",
    "Ringover",
    "Sakari",
    "MessageDesk"
  ],
  "codes": [
    {
      "provider": "Twilio",
      "code": "30908",
      "remediable": true,
      "generation": "gen1"
    }
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Add the keyword and one other route to the messaging section of the policy. Done when a reader who has never received a message still knows how to stop them.",
  "example": "Reply STOP to any Acme Coffee message to unsubscribe, or email support@acmecoffee.com and we will remove you.",
  "notes": "Naming one route as the only one fails POL-117 — list the keyword and say other reasonable requests are honoured too.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/policy-page/pol-097/",
  "markdown": "https://ekas.io/rules/10dlc/policy-page/pol-097.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
