How message character counts are calculated in text messages

The cost of messages that you send to subscribers is based on the number of message segments that you send. The first message segment is composed of 160 total characters, including your brand’s name, which is always prepended to all messages you send. If your message includes more than 160 characters, it will be 2 segments; more than 320 characters will be 3 segments, and so on.

As you compose messages in Attentive, note the numbers in the lower-right corner of the message composer:

View of estimated remaining characters and number of SMS segments when unsubscribe preview is toggled on.

  • a: The estimated remaining characters: How many characters remain before your message segment count increases by one. 
  • b: Message segments: The total number of message segments, as well as the message type, that'll be sent to subscribers. Messages will either be 1 or more SMS (text only), 1 MMS (media with up to 160 characters of text), or 1 MMS + 1 or more SMS.

Text characters in messages

How each character in messages is counted is based on GSM 7-bit encoding. Most – but not all – characters count as a single character:

  • Letters, numbers, and most punctuation marks count as 1 character
  • Extension characters count as 2 characters and include the following: | ^ € { } [ ] ~ \
  • Simple emojis like :) count as 2 characters (one for each symbol)
Note: When copying and pasting text from another source into the message composer, review the character and message segment count carefully. Pasted text may contain additional encoding that can increase character counts. To minimize this, we recommend pasting text using Cmd + Shift + V (Mac) or Ctrl + Shift + V (PC) to paste without formatting. If you see question marks (or other characters) replace special characters in the message, delete the text and enter it again.

Message encoding

Before a message is sent, it's encoded into data bits that carriers transmit to individual handsets. SMS messages are typically encoded in two formats:

  • ISO (default):
    • Allows up to 160 characters
    • Doesn't support special characters
  • UTF:
    • Supports special characters
    • Limited to 70 characters per message

Most standard characters (Latin letters, digits 0-9, some Greek letters, and common symbols) use the GSM-7 character set. These characters typically count as 1 character each.

Special characters, including many accented letters and Unicode characters, use a different encoding (UCS-2) which affects character count and potentially increases the number of message segments.

Note: Changing the case of some letters can affect their classification. For example, é is part of GSM-7, but É is a UCS-2 character.

Unicode emojis in messages

Unicode emojis like 😍 have a significant impact on message segment length, as they change the way that sent messages are encoded. While unicode emojis help make your messages more friendly and visually appealing, you should use them sparingly. If you want to use unicode emojis in messages, here are some things to keep in mind:

  • The character counter can be trusted as a source of truth when using unicode emojis. If the message composer says 1 SMS, you’ll only be billed for 1 SMS message. Here's a short message that includes an emoji:
    Using the character counter in the campaign message composer to see billable message segments with an emoji
    And the same message without an emoji:
    Using the character counter in the campaign message composer to see billable message segments with an emoji
    Note that in this example, the actual text is short, but the inclusion of a single emoji requires two message segments to send instead of one.
  • Character counts for each emoji may differ, so make sure to check characters and segments before sending your message
  • Unicode emoji have a bigger impact on messages with multiple message segments, so you may want to avoid using them with long messages
  • Different emojis may have varying impacts on character count. Always check the message segment count when using emojis

Personalizations in messages

If you use personalizations in messages – and you should! – the number of characters billed is based on the personalized copy for each subscriber, not the number of characters in the variable.

For example, if you include the {{subscriber.firstName}} personalization, and the subscriber’s first name is Kate, that counts as only 4 characters.

How the firstName personalization appears for a subscriber named Kate

However, if you don’t have subscriber information for a particular personalization, then a default value is used instead. For example, if you include {{subscriber.firstName}} but you don’t have the subscriber’s first name on file, then you’ll send the default value there instead, which counts as 5 characters.

How the firstName personalization appears if we don't know the subscriber's first name

You can optionally customize the default value used for this and other personalizations when writing messages:

How the fallback value appears in the Insert variable modal in the message composer

Note: The character counter in the message composer can’t see the value the personalization will send to subscribers, and instead counts each character in the personalization itself – but you’ll only be billed for what is actually sent to the subscriber.

Media in messages

You can also add media, like images, GIFs, or videos to your messages, which changes the message from an SMS message to an MMS message. MMS messages are billed at different rates from SMS messages. MMS messages can include one media file and up to 160 characters of text. If you include more text or emojis and exceed one message segment, the same guidelines above apply here, too. You can see the total number of messages by type that you’ll send in the lower-right corner:

The character counter in the message composer highlighting characters on the left and segments on the right

Opt-out language

If you’re using a toll-free number, all text messages that you send to AT&T subscribers are automatically appended with opt-out language. If a subscriber replies to a message from you with an opt-out term, they're unsubscribed from messages from you. Including opt-out language is a requirement from AT&T and can’t be removed from messages you send to AT&T subscribers. You can customize the opt-out language appended to messages.

An illustration showing where the counter updates when the Unsubscribe preview is enabled

When opt-out language is appended to your messages, each character is added to the existing character count for your text message. When enabled, the Unsubscribe preview updates the character counter for AT&T subscribers. If the appended opt-out language increases the number of message segments of your message, the cost of sending your message may increase.

Note: Unsubscribe previews are unavailable for messages that will be sent outside of the United States. If you’ve chosen to auto-append unsubscribe language to any of your non-US regions, keep in mind that the character count (and potentially segment) count will increase for billing purposes.

Short links

Short links appear without https:// or http:// in the message to save character space. Our link shortener still requires all links to your website start with https:// or http://, maintaining link security while giving you more room for message content.

Articles in this section

Was this article helpful?
5 out of 6 found this helpful