TCPScore
18/100
Grade D 2 sample messages Audit c2f3f65d6f32

7 dimension scores

DimensionScoreBarPoints on the table
Consent language completeness 6/20
14 pts
Opt-out language in sample messages 0/18
18 pts
Use-case vs sample alignment 12/14
2 pts
Brand identification in messages 0/12
12 pts
Quiet hours / timezone handling 0/12
12 pts
Recordkeeping & suppression readiness 0/12
12 pts
10DLC registration readiness 0/12
12 pts
TCPScore18/100

Prioritized fixes (sorted by points gained)

  1. [Opt-out language in sample messages · +18] Only 0 of 2 sample message(s) contain opt-out language. This is the #1 rejection reason in 10DLC submissions — add 'Reply STOP' to every message.
  2. [Opt-out language in sample messages · +18] No HELP keyword found in any sample message. Add 'Reply HELP for help' to at least one.
  3. [Opt-out language in sample messages · +18] Opt-out language should be an explicit instruction ('Reply STOP to unsubscribe'), not just a mention of the word.
  4. [Consent language completeness · +14] No 'not pre-checked' language found. Pre-checked boxes are a classic TCPA liability — state explicitly that the box is unchecked by default.
  5. [Consent language completeness · +14] No message-frequency disclosure found (e.g. 'up to 4 msgs/month'). Carriers and courts expect subscribers to know how often they'll hear from you.
  6. [Consent language completeness · +14] No STOP/opt-out disclosure in the consent language. The consent itself should tell the subscriber how to stop ('Reply STOP to unsubscribe').
  7. [Consent language completeness · +14] No HELP disclosure in the consent language ('Reply HELP for help'). CTIA guidelines expect HELP as a standard keyword.
  8. [Consent language completeness · +14] No 'Msg & data rates may apply' disclaimer found. It's required by CTIA guidelines and expected in 10DLC sample campaigns.
  9. [10DLC registration readiness · +12] No EIN / tax ID mentioned. 10DLC brand registration requires a verified EIN that matches the brand — have it ready before you submit.
  10. [10DLC registration readiness · +12] No privacy policy / terms link detected. TCR requires a privacy policy reachable from your opt-in page — add one before submission.
  11. [10DLC registration readiness · +12] No opt-in URL on your own domain detected. TCR wants the opt-in hosted on a domain you control (not a third-party free form) — it's part of brand vetting.
  12. [10DLC registration readiness · +12] No campaign description / submission details found. Prepare: campaign name, narrowest accurate use case, and the exact sample messages you'll submit.
  13. [10DLC registration readiness · +12] No brand name provided. Brand registration is step 1 of the 4-stage 10DLC process — enter your brand so readiness can be checked.
  14. [Brand identification in messages · +12] No website/domain found in the sample messages. Recipients (and 10DLC reviewers) should be able to tell who is texting them — add your domain or brand name to every message.

Copy-ready rewrites

Template-based rewrites (no LLM, fully deterministic) — paste, personalize, ship. Preserves your brand and message intent.

✅ Rewrites unlocked — thanks.

Consent language

Rewritten consent language

Sample message 1

Original: Big sale this weekend! 50% off everything.
+ Reply STOP + Reply HELP
Big sale this weekend! 50% off everything. Reply STOP to unsubscribe. Reply HELP for help.

Sample message 2

Original: Dont miss out on our amazing deals!
+ Reply STOP + Reply HELP
Dont miss out on our amazing deals! Reply STOP to unsubscribe. Reply HELP for help.

Use-case description (recommended: Marketing (promos, offers, announcements))

This quotes your consent language verbatim, so reviewers see the opt-in matches the campaign.

Your Brand sends marketing (promos, offers, announcements) text messages to subscribers who have opted in via our website form. Consent is captured as follows, verbatim from our opt-in form: "By checking this box (unchecked by default) and submitting this form, you consent to receive marketing text messages from Your Brand at the phone number you provide. Consent is not a condition of purchase. Message frequency varies (up to 4 msgs/month). Reply STOP to unsubscribe, reply HELP for help. Msg & data rates may apply. You may opt out at any time. This consent is separate from our Terms of Service and Privacy Policy, and we keep a timestamped record of your consent." Each message includes our brand name and 'Reply STOP to unsubscribe' / 'Reply HELP for help' opt-out instructions. We honor STOP requests immediately and permanently, and we maintain timestamped consent records. Messages are sent during business hours in the recipient's local time zone.

10DLC pre-submission checklist

ItemWhere
must EIN matches your brand exactly (brand registration requires a verified EIN). Brand registration
must Opt-in form is on a domain you own (not a third-party free form). Brand vetting
must Privacy policy reachable from the opt-in page. Brand vetting
must Consent language: explicit affirmative action, unchecked-by-default box, frequency, STOP + HELP disclosure, 'Msg & data rates may apply'. Consent
must Every sample message contains 'Reply STOP to unsubscribe' (and HELP at least once). Campaign
must Use case is the narrowest accurate option — don't default to 'Marketing'. Campaign
good Sample messages identify the brand (brand name or domain in every message). Campaign
good Quiet hours stated and enforced (e.g. 9am–8pm recipient local time). Campaign
must STOP/HELP keywords are actually provisioned and functional in your SMS platform. Operations
must Timestamped consent record (form, IP, date, exact language) stored per subscriber. Operations
must Suppression list wired: STOP requests suppress permanently; numbers on the National DNC are excluded. Operations
good 10DLC fee budgeted: ~$4.50 brand registration + ~$41.50 vetting + ~$1.50–$10/mo campaign + carrier surcharges. Budget
⬇ Export PDF ⬇ Export CSV Audit another setup

Keep every audit unlocked

Free audits show score + fixes. Paid plans keep the full rewrite pack + history on every audit.

$9 single → $29/mo Starter → $49/mo Pro →