> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://myoperator.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How is SMS length calculated—and what are the character variable limits in MyOperator SMS templates?

|| Info ⚡ Quick answer: SMS length depends on two encodings: GSM-7 (160 chars per single part) and Unicode/UCS-2 (70 chars per single part). When you exceed those limits—or use characters that trigger Unicode—your text is split into shorter segments (153 chars for concatenated GSM-7, 67 chars for concatenated Unicode). Each segment is billed as a separate SMS.

## When should I use this guide?

Read this article before sending bulk or transactional texts so you can keep costs down, avoid unexpected multi-part billing, and ensure every handset reassembles long messages correctly.

---

## 1. Encoding rules at a glance

* GSM-7 (default for basic Latin letters, digits, standard punctuation).
  * 1 segment = 160 chars.
  * Concatenated = 153 chars per part.

* Unicode / UCS-2 (auto-selected when any non-GSM-7 character appears: Hindi, 中文, emoji, €, etc.).
  * 1 segment = 70 chars.
  * Concatenated = 67 chars per part.

---

## 2. Segment sizes & billing table

| Encoding | Single-segment limit | Multi-part size | 2-part max | 3-part max |
| --- | --- | --- | --- | --- |
| GSM-7 | 160 chars | 153 chars/part | 306 chars | 459 chars |
| Unicode | 70 chars | 67 chars/part | 134 chars | 201 chars |

Cost impact: A 320-char GSM-7 text (3 parts) is billed as 3 SMS; a 135-char Unicode text is billed as 3 SMS.

---

## 3. Practical examples

1. GSM-7: “Your OTP is 123456” → 20 chars → 1 SMS.
2. GSM-7 with escapes: “Hello {user}” → braces `{}` each count as 2 chars → may exceed 160 sooner.
3. Unicode script: “आपका ओटीपी 123456” (Hindi) → Unicode selected → 1 SMS if ≤ 70 chars.
4. Emoji: “Party 🎉 at 7 pm!” → single emoji flips entire text to Unicode → now only 70 chars fit.

---

## 4. Flip-side: Hidden reasons a message grows

* Escape characters in GSM-7 (`^ { } \ [ ] ~ | €`) consume 2 char slots.
* Invisible whitespace or copy-pasted non-breaking spaces switch to Unicode.
* Mixed language: even one emoji triggers Unicode for the whole text.
* Some older handsets fail to reassemble 4+ concatenated parts—keep messages short.

---

## 5. Best-practice checklist

* Stay within 160 GSM-7 / 70 Unicode characters whenever possible.
* Avoid emojis or special symbols unless brand-critical.
* Shorten URLs (bit.ly) but remember they still count as characters.
* Use an SMS length calculator before launching a campaign.
* Test concatenated messages on target devices/carriers.

---

## 6. Troubleshooting quick fixes

| Issue | Likely cause | Fix |
| --- | --- | --- |
| Billed for 2 parts at 160 chars | Escape characters or hidden Unicode | Remove the special character or rewrite |
| Emoji spiked cost | The entire message switched to Unicode | Replace emoji with plain text |
| Segments reassemble poorly | Very long (4+) concatenated parts | Split into two shorter messages |
| Still unclear | - | Capture the text, run it through MyOperator’s SMS length calculator, or contact Support |

---

## 7. Variable limits in DLT SMS templates

### Can we increase the number of variables in one SMS?

* Yes, you can use more than one variable in a single SMS template.

||| Warning Important: The length of each variable is fixed at 30 characters—this limit cannot be increased.

### Why the 30-character cap?

* DLT requires a fixed placeholder size so you can safely change dynamic content in the future without re-submitting the template for approval.

---

Keywords: SMS length calculation, GSM-7, Unicode, 160 characters, 70 characters, SMS segments, escape characters, emoji cost