Providers charge per segment, not per message. A one-line reminder can bill as three segments because of a single curly apostrophe. Paste your message into the calculator to see its encoding, segment count and the exact characters responsible.
160 if every character is in the GSM-7 set, 70 if any character is not. Once a message is split into several segments, 153 and 67 fit in each, because a few bytes of every segment carry the join header.
Curly quotes and apostrophes, en and em dashes, the ellipsis character, non-breaking spaces, emoji and non-Latin letters. Plain straight quotes, hyphens and three full stops are all GSM-7.
The characters ^ { } \ [ ] ~ | and the euro sign are in the GSM-7 extension table and each counts as two characters, though the message stays GSM-7.
Compose the template in a plain-text editor, turn off smart punctuation in your word processor, and run the final text through this calculator before sending it to a provider.