Skip to content
ColdTexting

SMS Compliance Checker for Sales and Marketing Texts

An SMS compliance checker reviews a text message for the issues that break TCPA, state law or carrier rules. ColdTexting scores your text from 0 to 100, flags a missing brand name, missing opt-out language, URL shorteners, restricted content, quiet-hours risk and segment count.

Merge tags like {first_name} work too

0 chars, GSM-7, 1 segment

Recipient state
Allowed sending window
Texts on one subject
Rule set

Messages that would land outside this window wait for it to open in the recipient time zone.

  • STOP honored on every number
  • Consent proof on every contact

How the score works

One number from 0 to 100 with every deduction shown

A compliance score is a measure of how safe a text is to send, built from fixed rules rather than guesses.

Every message starts at 100. Each rule returns pass, warning or fail, and each warning or fail subtracts its weight. The checker runs the same way every time on the same text, with no network calls and no AI model, so a reviewer can trace any score back to the rules below.

  • Blocking issues cap the score at 49. No consent on a marketing text, SHAFT content or a send time inside quiet hours means the message cannot go out at all.
  • Ready to send means 85 or higher with no fail. A text at 88 with one failed rule still waits for a fix.
  • Grades follow the number. A from 90, B from 80, C from 70, D from 50, F below that.
Marketing coordinator rewriting a promotional text message on a laptop

The rule set

Every rule the checker tests and the source behind it

Eighteen rules run on each draft. Weights are the points a fail or a warning removes from 100.

Rules of the ColdTexting SMS compliance checker with what each looks for, its weight and its reference
RuleWhat it looks forWeightReference
ConsentA consent record for the contact, written consent for sales and promo use casesFail 30, warn 10, blockingTCPA 47 CFR 64.1200(a)(2) and (a)(3), CTIA Messaging Principles and Best Practices
Restricted contentSex, hate, alcohol, firearms and tobacco terms (SHAFT), plus cannabis, CBD and kratomFail 25, blockingCTIA Messaging Principles and Best Practices, carrier 10DLC prohibited content
Brand nameYour business name in the text so the recipient knows who is writingFail 15CTIA sender identification, carrier 10DLC policy
Opt-out languageA clear way to stop, such as Reply STOP to opt outFail 15, warn 6CTIA Messaging Principles, 47 CFR 64.1200(a)(10)
High risk financialLending, payday, debt relief, crypto, forex, gambling and easy money wordingFail 15Carrier 10DLC restricted content
Purchased list wordingPhrases such as we got your number, you were selected or dear homeownerFail 15TCPA 47 CFR 64.1200, CTIA (consent is not transferable)
Quiet hoursA planned send time outside the window for the recipient stateFail 15, blockingTCPA 47 CFR 64.1200(c)(1) and the state law
URL shortenerPublic shortener domains such as bit.ly, tinyurl.com, t.co or rb.gyFail 12Carrier 10DLC content policy, CTIA
All capsWords in capitals, mostly capitals fails, STOP and HELP exceptedFail 12, warn 8Carrier spam filtering, CTIA
Spam phrasesUrgency and money bait such as act now, winner or click hereWarn 4 per phrase, up to 12Carrier spam filtering, CTIA
PunctuationRepeated exclamation or question marks, or three or more exclamation marksWarn 6Carrier spam filtering
First message contextA reason for the text, such as following up on your quote requestWarn 6CTIA (expected messages)
LengthMore than 3 segmentsWarn 6SMS segment billing, carrier delivery
Encoding costEmoji or curly quotes that switch the text from GSM-7 to UCS-2Warn 5GSM 03.38 character set
State rulesA recipient state with stricter sales text rulesWarn 4Fla. Stat. 501.059, Oklahoma and Maryland Acts, Tex. Bus. and Com. Code ch. 301 and 302, RCW 80.36.390, Conn. Gen. Stat. 42-288a
Phone number in bodyA phone number other than the sending lineWarn 3Carrier 10DLC policy (content matches the campaign)
PersonalizationA merge tag such as {first_name}Warn 3Deliverability best practice
HELP keywordReply HELP for help in the first text of a campaignWarn 2CTIA (HELP keyword)

Content rules

SHAFT stands for sex, hate, alcohol, firearms and tobacco, the content classes carriers block on standard 10DLC campaigns. Cannabis and CBD sit in the same list. High risk financial wording does not block outright, but carriers only allow it on a campaign registered for it.

Form rules

Brand, opt-out and HELP lines tell the recipient who is texting and how to leave. Capitals, repeated punctuation and spam phrases are what carrier filters score first, so they cost points even when the offer is lawful.

Context rules

Consent, quiet hours and state rules depend on who receives the text, so they read the use case and recipient state you pick. Our page on TCPA compliance explains the consent types in detail.

Example input and output

A quote follow-up before and after two fixes

Same offer, same recipient in Florida. Adding the brand and an opt-out line and replacing the shortener moves the score from 52 to 94.

Before

52 /100
Compliance score 52 out of 100.

Fix 3 issues before sending

After

94 /100
Compliance score 94 out of 100.

Ready to send

The remaining 6 points come from two warnings: Florida limits sales texts to 8 am to 8 pm and three per subject per day, and the first text of a campaign should mention HELP. The scheduler applies the Florida window on its own, so neither warning stops the send.

Encoding and segments

Why one curly apostrophe can triple the cost of a send

GSM-7 is the standard SMS character set, and a single GSM-7 message holds 160 characters.

Longer texts split into segments of 153 characters each. One character outside GSM-7, such as an emoji or a curly quote pasted from a document, switches the whole message to UCS-2, where a segment holds 70 characters, or 67 when the text is split. In the example a single curly apostrophe turns one segment into three for every contact on the list. Every segment is billed, so the counter under the composer shows encoding and segment count as you type.

The same counter feeds the confirm screen of a campaign, which is where bulk SMS sends show the total before anything leaves. Carrier review also reads your sample messages, so passing drafts make good samples for 10DLC registration.

FAQ

Questions about the SMS compliance checker

It checks brand name, opt-out language, URL shorteners, restricted SHAFT content, all caps, spam trigger words, quiet hours by recipient state, consent status and the number of segments.

Score every text before it reaches a phone

Paid plans run unlimited compliance checks on every draft, campaign and sequence step. Starter begins at $24 per month billed yearly.