TCPScore
33/100
Grade D 1 sample message Bright Dental Audit 70575261992f

7 dimension scores

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

Prioritized fixes (sorted by points gained)

  1. [Use-case vs sample alignment · +14] Service / transactional messages face lower scrutiny, but every message must still be consent-based and include an opt-out. Good — this is the narrowest accurate pick if your texts are operational.
  2. [Quiet hours / timezone handling · +12] No quiet-hours commitment found (e.g. 'We only text between 9am–8pm local time'). Consumers and carriers expect texts only during reasonable hours — state yours in the consent.
  3. [Quiet hours / timezone handling · +12] No timezone handling found. Messages should go out in the recipient's local time zone — state it (e.g. 'local time') or your platform must handle it automatically.
  4. [Recordkeeping & suppression readiness · +12] No recordkeeping commitment found. TCPA defense requires proof of consent: timestamped records of what each number agreed to (form, IP, date, exact language). State that you keep them.
  5. [Recordkeeping & suppression readiness · +12] No suppression/DNC handling found. You must honor STOP requests permanently and suppress numbers on the National DNC registry — mention your suppression list in the consent or checklist.
  6. [10DLC registration readiness · +9] No EIN / tax ID mentioned. 10DLC brand registration requires a verified EIN that matches the brand — have it ready before you submit.
  7. [10DLC registration readiness · +9] No privacy policy / terms link detected. TCR requires a privacy policy reachable from your opt-in page — add one before submission.
  8. [10DLC registration readiness · +9] 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.
  9. [10DLC registration readiness · +9] No campaign description / submission details found. Prepare: campaign name, narrowest accurate use case, and the exact sample messages you'll submit.
  10. [Consent language completeness · +9] 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.
  11. [Consent language completeness · +9] No HELP disclosure in the consent language ('Reply HELP for help'). CTIA guidelines expect HELP as a standard keyword.
  12. [Consent language completeness · +9] No 'Msg & data rates may apply' disclaimer found. It's required by CTIA guidelines and expected in 10DLC sample campaigns.
  13. [Brand identification in messages · +6] 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.
  14. [Opt-out language in sample messages · +5] No HELP keyword found in any sample message. Add 'Reply HELP for help' to at least one.

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: Bright Dental: hello. Reply STOP to unsubscribe.
+ Reply HELP
Bright Dental: hello. Reply STOP to unsubscribe. Reply HELP for help.

Use-case description (recommended: Service / Transactional (appointments, orders, status))

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

Bright Dental sends service / transactional (appointments, orders, status) 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 service updates and reminders from Bright Dental 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 →