What an SMS pre-check cannot see

SmsPrecheck flags text that trips published filtering and consent factors. It cannot see your registration, your list, or the carrier filter. The honest boundary between risky copy and a blocked campaign.

It is worth being precise about what this class of tool does, because the gap is where expectations break — and in SMS, broken expectations get measured in campaigns that quietly stop arriving.

What it catches

Patterns that published guidance can be quoted against: scam-filter vocabulary with token-precise matching, shortened-link detection, ALL-CAPS clusters with keyword exemptions (STOP and HELP are allowed to shout), exclamation density, multi-link pile-ups, missing opt-out guidance, missing help paths, missing rate disclosures, absolute promises and quantified outcome claims that escalate in marketing context, and the encoding math — GSM-7 at 160/153 characters per segment versus UCS-2 at 70/67, with newlines counted as a single character. These are checkable against the pasted text, so they are checked against the pasted text — deterministically, with quoted evidence for every finding, and the same result every run. The reference lists are derived from the factors documented in the TCPA subpart (47 CFR Part 64, Subpart L), its MMA text-messaging rule, the CTIA guidance, and the messaging-platform documentation teams actually build against, snapshot-dated in the engine version rather than claimed to be live-synced.

What it cannot catch

  • Clean text and an unregistered campaign. A draft can trip zero factors and still be blocked — because filtering is per-sender-standing. A brand whose 10DLC campaign is unregistered, under review, or burning through its trial volume buries perfect copy. No phrasing makes an unregistered sender trusted again.
  • The registration layer. Brand registration, campaign vetting status, and number pool health decide most of A2P delivery. None of it lives in the pasted text, and none of it is looked up: SmsPrecheck never queries the 10DLC registry or any carrier. An honest pre-check lists these as advisory checklist items and explicitly refuses to claim it measured them — pretending to check registries you cannot see is how tools become noise.
  • The list itself. Whether numbers opted in with recordable consent, whether the STOP list is actually honored at the platform level, whether half the list has not engaged in a year — consent and hygiene are invisible from a draft. The TCPA and MMA rules regulate solicitation and opt-out; the carriers punish audience.
  • The rest of the program. Send cadence, quiet hours, volume ramps, and the sending platform's own shared-pool reputation sit in the delivery path, outside the paste. A plain-text scan of what you typed cannot see what the aggregator actually observed.
  • The filter's private mind. Every major carrier and aggregator runs an internal model nobody publishes. Published guidance describes the neighborhood; the exact weighting is proprietary. Enforcement is personalized in ways the guidelines do not admit — the same sentence delivers for a mature campaign and blocks a new one. Nobody — least of all a word-list engine — gets to promise what the final filter will do.

Why the boundary matters

A tool that claimed guaranteed delivery would be claiming something nobody can deliver, and senders would find that out at the worst possible moment — mid-campaign, with the promotion live. Stating the limit up front is what lets the check get trusted for the things it genuinely knows: that the sentence matches a published factor, that the factor is the kind that escalates, and that the fix is a rewrite, not a resend dice-roll. The honest claim is narrower and more useful than the fake one: a scored pre-check moves the odds, per sentence, before the send. The human sender stays exactly where an SMS check should leave them — holding the context the machine cannot see: the list, the registration, the history, the offer.

How to use the boundary productively

A pre-check is the first layer of a sending stack, not the whole stack. Layered deliberately, each layer covers what the one before it cannot: the mechanical scan catches published filtering and consent-text factors at draft speed; the registration check — run by you, in your CPaaS console, because this tool deliberately never does it — confirms brand and campaign vetting are live and in good standing; the opt-out pass confirms that a "Reply STOP" you wrote is a number-level suppression that actually fires; the list pass owns consent records, recency and pruning cadence; the legal pass owns TCPA/MMA/PECR interpretation for your jurisdictions, including the consent regimes documented by authorities like the UK information commissioner. Buying these layers separately is how most teams already operate — the mistake is treating any single layer as covering the others. The scan's job is to make sure you never bring a known, mechanical, avoidable problem into the expensive layers.

The correct mental model

Treat a pre-check the way pilots treat the before-takeoff checklist. It does not make the flight safe; it catches, mechanically and repeatably, the handful of items whose omission turns a routine departure into an incident. The judgment — is this list, this registration, this offer a good send today — remains entirely human. An SMS pre-check is a filtering-factor scan with memory: every draft gets the same published patterns applied, every time, at paste speed, and every finding cites the sentence it came from. It is decision support, not a decision. Anyone selling the decision is selling something that does not exist. The teams that get the most from a bounded tool keep the boundary visible: scan early, escalate what the scan flags, and hold the judgment the scan deliberately declines to make.

Heuristic pre-check only — not a delivery or compliance guarantee and not legal advice. Delivery depends on carriers, aggregators, and recipients; regulated-messaging questions belong to a lawyer.

← Back to blog

Was this result helpful?Feedback