SMS length explained: 160, 153, 70 and 67
You pay per SMS part, so the length of a message decides its cost. Here is how the networks count characters, which characters change the count, and how to keep each message to one SMS.
GSM-7 and Unicode
Most SMS use GSM-7, a character set of 128 letters, digits and symbols that covers English, Kiswahili and most other languages written in the Latin alphabet. One GSM-7 SMS holds 160 characters.
Any character outside that set switches the whole message to Unicode (UCS-2), which holds only 70 characters per SMS. One emoji in a 100-character message turns 1 SMS into 2.
| Encoding | One SMS | Per part when longer | 2 SMS | 3 SMS |
|---|---|---|---|---|
| GSM-7 (standard) | 160 characters | 153 characters | 161 to 306 | 307 to 459 |
| Unicode (UCS-2) | 70 characters | 67 characters | 71 to 134 | 135 to 201 |
Long messages lose 7 characters per part (3 in Unicode) to the header that joins the parts, so two SMS hold 306 characters, not 320.
Characters that force Unicode
These are the usual culprits. Most arrive by copying text from Word, a website or WhatsApp, or from a phone keyboard that turns straight quotes into curly ones.
- Curly quotes and apostrophes: ‘ ’ “ ” (use straight ' and " instead).
- Long dashes and the ellipsis character: – — … (use - and three full stops).
- Emoji and symbols such as ✓ or ★. Most emoji take 2 of the 70 characters.
- Some accented letters, such as á, í, ó, ú, ê and ç. Others, such as é, è, à, ü and ñ, are part of GSM-7.
- Letters from other scripts, such as Arabic, Amharic or Chinese.
Kiswahili text normally stays in GSM-7, so a Kiswahili SMS gets the full 160 characters.
What each character costs
| Characters | Examples | Counts as |
|---|---|---|
| Letters and digits | A to Z, a to z, 0 to 9 | 1 character each |
| Spaces and line breaks | Space bar, Enter | 1 character each |
| Common punctuation | . , ! ? : ; ' " ( ) - / & % + = # | 1 character each |
| Some currency signs | $ £ ¥ | 1 character each |
| Accented letters in GSM-7 | é è à ù ì ò ä ö ü ñ | 1 character each |
| Extended characters | ^ { } [ ] ~ \ €, and the vertical bar | 2 characters each |
| Curly quotes, long dashes, ellipsis | ‘ ’ “ ” – — … | Whole message switches to Unicode |
| Emoji and other symbols | ✓ ★ and any emoji | Whole message switches to Unicode |
| Other accented letters | á í ó ú ê ç | Whole message switches to Unicode |
Extended characters count double
A few characters are in GSM-7 but are sent with an extra escape character, so each counts as 2: ^ { } [ ] ~ \ €, and the vertical bar. They do not switch the message to Unicode, but a handful of them can push a 158-character message into a second SMS.
Write KES or Ksh rather than a symbol, and use round brackets ( ) instead of square [ ] or curly { } ones.
How personalisation changes the length
A variable such as {{first_name}} is replaced with each person's own value before sending, so every recipient's message has its own length. Count with real values, not with the placeholder.
- Check the message with the longest name and the largest figure in your list.
- Leave 10 to 15 characters spare when a message is close to 160.
- A name typed with a Unicode character, such as á, switches that person's message to 70 characters per SMS.
- Each person is billed for their own message, so a few long names can raise the total cost.
Tips for keeping to one SMS
- Type the message in the portal rather than pasting it from Word or WhatsApp.
- Replace curly quotes and long dashes with straight quotes and hyphens.
- Leave out emoji. They cost more than they add.
- Cut padding such as "We would like to kindly remind you that".
- Use short forms everyone knows, such as Mon, 9am and KES, but not text-speak.
- Give one action and one deadline per message.