# OPS-031 — A plainly-worded opt-out counts even with no keyword in it

> Revocations phrased in ordinary language — "take me off your list", "please opt me out" — must be honoured even though they contain no declared keyword.

- **Rule ID:** OPS-031
- **Layer:** Operational (`OPERATIONAL`)
- **Checks:** `inbound message intent classification`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Falls due after approval, once you are live and sending
- **How it is detected:** Not knowable before submission — reported with its deadline
- **Fix type:** Wait on an external system or a required interval
- **Required by:** FCC, CTIA, T-Mobile, AT&T, Bandwidth
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/operational/ops-031/

## Why this rule exists

The federal rule is that a revocation is effective if a reasonable person would understand it as one, not if it matches a word list. So a consumer who writes "I never signed up for this, please remove me" has revoked, and a keyword-only handler files the message as an ordinary reply and keeps sending. It is the most common route to a complaint that the brand genuinely did not see coming, because the operator can point at a suppression list that never received anything.

## How to fix it

Route every inbound message that did not match a keyword through an intent check — a classifier, or a human queue if the volume is small — and suppress on anything a reasonable person would read as "stop". Done when a message with no keyword in it can still remove somebody from the list without an agent deciding to be helpful.

## Example of a compliant value

```text
Inbound "hi, I never signed up for these, can you take me off?" → no keyword match → intent = revocation → suppressed, and the raw text kept on the opt-out record.
```

## Check this yourself

**Who or what reads the inbound messages that matched no keyword, and how quickly?**

1. Name the classifier or the human queue. An unread inbox is the same as no handler.
2. Test it: send "take me off your list" with no keyword in it and confirm the number is suppressed without an agent deciding to be helpful.

*What wrong looks like:* "I never signed up for this, please remove me" is filed as an ordinary reply. The operator can point at a suppression list that never received anything, and the complaint is the first anyone hears of it.

## Notes

Undecidable before traffic exists and not settleable by configuration alone. What the user has to establish is who or what reads the non-keyword inbound messages, and how fast — an unread inbox is the same as no handler. OPS-056 covers keeping the raw text, which is what later shows the message was understood.
