SMS checks that people do not learn to ignore
A pre-send check that fires on everything gets muted in a week. What to block on, what to warn on, and what to leave to a human.
The failure mode for any automated SMS check is not missing things. It is training the team to click past it. A tool that flags sixty trivial items per message ends up ignored on the five that carry campaign risk. An SMS pre-check has to earn its place on every run, which means being deliberate about what it blocks on, what it merely warns about, and what it refuses to judge at all. The design constraint is attention, not coverage — and with a 160-character medium, the ratio matters even more than in email.
Block on what is certainly wrong
Some constructions are facts, not opinions. A marketing text with no opt-out instruction is missing the element the TCPA rule at 47 CFR 64.1200 and the MMA text-messaging rule at 64.1208 are built around — prior consent means little if the recipient cannot exercise it, and the STOP-keyword pattern is how the whole regime operationalizes opt-out. A message whose vocabulary is indistinguishable from known scam traffic ("claim your prize", "wire transfer", "you are a winner") is not a style choice; it is the exact string-cluster aggregators are documented blocking, per the CTIA mobile marketing guidance. These checks never produce false positives about whether the pattern is present; the only honest uncertainty is how a given carrier will weigh it. Block here, before the send, because these are the factors that escalate into campaign-level consequences.
Warn on what is probably wrong
Patterns that carrier guidance agrees on, but that sensible marketers sometimes break on purpose, belong in the middle tier. ALL-CAPS clusters are the classic one: shouting case inside a brand's own campaign is legible; shouting case mixed with prize vocabulary is the spam fingerprint the same guidance warns about. A shortened link is not a violation — it is a reputation question the machine cannot see the answer to. Exclamation stacking, urgency density, and multi-link pile-ups behave the same way: delivery-limiting signals in bulk traffic, not crimes. Segment budget deserves a warning slot for a rarer reason — it is math, not judgment: one emoji flips the message into UCS-2 encoding and halves the per-segment character budget, a fact of the SMS technical specification that no compose box shows you. Warn, show the count, let a human decide — context the machine cannot see often justifies what the pattern alone condemns.
Leave alone what cannot be decided mechanically
Whether your A2P 10DLC brand and campaign are actually registered and in good standing — that lives in carrier registries, outside the pasted text, and an honest text checker refuses to pretend otherwise. SmsPrecheck never queries them; it lists registration as a checklist advisory and stops there. Whether the list was permission-built — invisible from a draft. Whether the STOP keyword actually silences the number in your platform — a wiring question, not a wording question. Whether a claim is substantiated — the evidence lives outside the text. A tool that pretends otherwise produces confident noise, which is worse than silence: it burns the credibility you need for the checks that genuinely know things. This is also why an honest pre-check refuses to output a "deliverability probability." Nobody can compute it — carrier filtering models are private — and pretending otherwise is the check becoming the deceptive pattern it flags.
A workload that stays sane
Teams that keep an SMS check alive run it on a fixed, boring cadence: one scan per draft, before the first schedule, never after the campaign calendar is committed. The scan is fast precisely because it is mechanical — pattern-match the published factors against the text and it takes seconds and produces the same ranks every time. What the cadence protects is the marketer's attention: if the block tier is already cleared by the time a human reads the draft, the human spends their effort on the judgment calls the tool deliberately refused to make. That division — machine on patterns, human on intent and evidence — is the only arrangement that has held up in practice. Teams that reverse it (humans hunting missing STOP lines, tools pronouncing on list quality) produce exhausted marketers and untrustworthy scores.
What to measure instead of compliance theatre
A single pass/fail verdict is the enemy: it hides the one finding that matters behind fifty that don't, and it invites bargaining ("it sent fine last time"). Named, tiered findings survive disagreement — someone can argue with a rank, but nobody can argue with a quoted sentence and a named factor. If you must report a number, report the count of open HIGH findings, because that is the only figure with an obvious action attached: zero, or the draft does not send. Dashboards and "campaign health scores" sound like governance and function as decoration; the fix checklist, closed line by line, is the actual control.
Tiering is the product
What teams actually want from an SMS check is not more findings; it is a trustworthy ordering of them. Severity tiers — consent and scam-vocabulary gaps first, phrasing- and format-sensitivity warnings second, tone noise last — are what keep the check on the desk instead of on the mute list. SmsPrecheck separates these tiers rather than collapsing them into one verdict, because a single undifferentiated signal is what gets muted. And every tier stays reviewable: quoted evidence, named factor, suggested edit — nothing silently rewritten, nothing sent on your behalf.
Decision-support only: findings quote your text and published carrier guidance. You make the call before anything sends, and the carriers make the final one.