If you are old enough to remember, you'd recognize this: MSG 1 of 2: "Lorem Ipsum dolor sit amet...". MSG 2 of 2: "consectetur adipiscing elit.". This is due to the technology in place that SMS operates on. Each segment is 140 bytes. That can mean different things for the length of your message depending on which encoding is being used. Think of an encoding as a box used for shipping, and the message as the stuff inside the box. Different characters in your message determine which "box" to use. See this example below.
"Julio's yard and lawnmowing 🏡 is having a 15% discount on all bookings placed by 3PM. Reply to get started."
So while this message is only 107 characters it is still considered two segments and will be billed as such. This is because the emoji in the message is complicating the message and demands a bigger box to ship the message. Consider removing the emoji, or keeping the emoji in place and shortening the message down to 70 characters, or leave it as is knowing it is two segments. The encoding we need to use to send a message with emojis is called UCS-2 which means two bytes per character, even though there is only one emoji that is being used, there is only one type of encoding allowed per SMS. In turn, that single emoji makes every single character in the message weigh just as much as the emoji.
The other type of encoding is called GSM-7, which is 7 bits per character and it supports a more limited character set. See the character set below.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ¡ ¿ ! " # ¤ % & ( ) ' * + , - . / Ä Ö Ñ Ü § ä ö ñ ü à @ £ $ ¥ è é ù ì ò Ç Ø ø Å å Δ _ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Æ æ ß É
The following characters are also supported by GSM 7 but these cost 2 GSM 7 Characters:
€ ^ { } [ ] ~ |
This means that if you stick to these characters in your messages your limit will be 160 characters per segment.
User Data Headers: Let's assume your message is GSM-7 compatible. If your message is greater than one segment, the carriers need to concatenate your messages into one big message so the end user does not receive a broken message. That concatenation takes up 6 bytes or 48 bits, meaning that the first segment is always 160 characters unless it's more than one segment, and if it is greater than one segment each segment becomes 153 characters. Lets assume a length of 310 characters, 310/160 is less than two. Which would mean in theory that the message is two segments, however since the message needs to be concatenated, it's really 310/153, which is ~2.02, and we always round up when calculating SMS segments, so this 310 character message would be billed as 3 segments.
All of our segment math is calculated after the variable interpolation which means if you write "Hey {name}" the variable will be interpolated first, then the calculations will be preformed. Meaning that someone with a name of Ty or Ben will have a smaller message than Alessandro which might be the determining factor in how many segments are being used.