Connect via MCP →

Enter Calculation

Formula

Advertisement

Results

SMS Segments Required
1
message will be sent
Character count 34
Encoding GSM-7
Characters per segment 160
Characters left before next segment 126

What is the SMS Message Count Calculator?

This tool tells you how many SMS segments your text message will use, how it will be encoded (GSM-7 or UCS-2/Unicode), and how many characters remain before a new segment is added. Carriers bill per segment, so a single visible "message" can cost the price of several SMS if it spills over the limit.

How to use it

Paste or type your message, then pick an encoding mode. Auto-detect chooses GSM-7 if every character belongs to the GSM-7 alphabet, otherwise it falls back to UCS-2. You can also force either encoding to preview the cost difference.

The formula explained

A single-segment message holds 160 characters in GSM-7 or 70 in UCS-2. Once you exceed that limit, segments must carry a concatenation header, reducing capacity to 153 (GSM-7) or 67 (UCS-2) per segment. The number of segments is ceil(length / per-segment-limit).

$$\text{Segments} = \begin{cases} 1 & L \le 160 \\[4pt] \left\lceil \dfrac{L}{153} \right\rceil & L > 160 \end{cases} \qquad L = \text{GSM-7 length of }\text{Message}$$$$\text{Segments} = \begin{cases} 1 & L \le 70 \\[4pt] \left\lceil \dfrac{L}{67} \right\rceil & L > 70 \end{cases} \qquad L = \text{length of }\text{Message}$$
Diagram showing GSM-7 single segment limit of 160 and concatenated segment limit of 153, versus UCS-2 limits of 70 and 67
Per-segment character limits differ by encoding: GSM-7 fits more characters than UCS-2, and concatenation reserves space for header bytes.

Worked example

A 200-character GSM-7 message exceeds the 160 single limit, so multipart applies: \(\lceil 200 / 153 \rceil = 2\) segments. Total capacity is \(2 \times 153 = 306\) characters, leaving \(306 - 200 = 106\) characters before a third segment would be needed.

A long message split into three numbered SMS segments with a small header on each
A long message is divided into multiple segments, each carrying a small header so the phone can reassemble them in order.

FAQ

Why does my message split at 153, not 160? Multipart messages reserve 7 bytes per segment for the header that lets the phone reassemble them.

What forces UCS-2 encoding? Any character outside the GSM-7 alphabet — common emoji, curly quotes, or many accented letters — switches the whole message to UCS-2, cutting the limit to 70/67.

Do GSM-7 extended characters cost extra? Characters like {, }, [, ], |, ^, ~, \ and € take two units each in GSM-7 because they need an escape character.

Last updated: