Why a 161-character message becomes two messages
A single SMS carries 140 bytes of payload. With the 7-bit GSM alphabet that is 160 characters. When a message is longer, the sending platform splits it into parts and adds a small header (the User Data Header) to each part so the receiving phone can stitch them back together. That header uses 6 bytes, which leaves room for 153 GSM-7 characters per part instead of 160. For Unicode messages, where each character takes 2 bytes, the limits are 70 for a single message and 67 per part.
That is why 160 characters is one segment but 161 is two, and why 306 characters still fits in two segments while 307 needs three. Most platforms bill per segment, not per message, so the segment count is the number that matters for cost.
GSM-7 versus Unicode (UCS-2)
GSM-7 is the original SMS alphabet defined in the GSM 03.38 standard. It covers the Latin letters, digits, common punctuation, a handful of accented letters (such as é, ü and ñ) and a few Greek capitals. Nine characters live in an extension table and cost two units each: the caret, curly braces, backslash, square brackets, tilde, pipe and the euro sign.
If your message contains even one character that is not in GSM-7, the entire message is sent as UCS-2, where every character costs 2 bytes. The usual culprits are emoji, curly quotes and dashes pasted from a word processor, accented letters outside the GSM set (á, í, ó, ú, ç in lowercase, ő and many more), and invisible characters such as non-breaking spaces. The counter lists each one with its Unicode code point so you can find and fix it.
Common mistakes that quietly inflate your bill
- Pasting from Word or Google Docs. Both replace straight quotes with curly ones and double hyphens with em dashes. One apostrophe in "don’t" is enough to switch a whole message to Unicode.
- An emoji in the signature. A single emoji at the end halves your per-segment capacity, which often doubles the segment count of a message that was already near 160.
- Long tracking links. A full URL with UTM parameters can take 60 to 90 characters. Use a short link domain so the link costs 20 to 25.
- Personalisation fields. {FirstName} looks short in the template but "Christopher-Alexander" is 21 characters. Test with your longest real values, not with "Sam". Note that the braces themselves are extended characters in GSM-7 and count double if they are sent literally.
- Counting characters instead of units. Spreadsheet LEN() functions count code points, not septets, so they miss the double cost of extended characters and the switch to UCS-2.
Tips for staying inside one segment
- Write the message first, then cut. Leading with the action ("Reply YES to confirm") usually lets you drop a sentence elsewhere.
- Use straight quotes and plain hyphens. The replace button does this in one click.
- Spell out or drop the emoji unless the campaign is clearly worth 2 to 3 times the cost.
- Keep the opt-out text short and standard: "Reply STOP to opt out" is 21 characters and satisfies most carrier requirements.
- Leave 10 to 15 characters of headroom for personalised fields that vary in length.
If you are building a sign-up form for your messages, the SMS opt-in disclosure generator produces the consent language carriers expect. For longer copy such as email or social posts, the word and character counter covers platform limits.
How the cost estimate works and what it leaves out
The estimate multiplies the segment count by your price per segment and the number of recipients. The default price of $0.0079 reflects a typical US list price for application-to-person SMS, but rates vary by country, carrier, message type and volume, so enter the figure from your own provider. The estimate does not include monthly number fees, carrier pass-through surcharges, registration fees for 10DLC campaigns or taxes. Treat it as a planning figure for comparing message drafts, not an invoice.
One more detail: a few carriers and handsets deliver concatenated parts as separate bubbles instead of one long message. The segment count here follows the standard calculation used by major messaging platforms, so it will match what you are billed even where the display differs.