Skip to content
Nishchit
TOOLS

How many segments
is this message?

SMS is billed per segment, not per message. Paste a body below and this counts it with the same engine that bills Nishchit traffic — not an approximation of it.

An SMS carries 140 bytes. English packs into GSM-7 at seven bits per character, so one segment holds 160 characters. Bangla has no GSM-7 representation, so a single Bangla character moves the whole message to UCS-2 at sixteen bits per character — one segment holds 70 characters. That is why the same notification costs about three times as much in Bangla.

Every character here exists in the GSM 03.38 table, so the message packs into GSM-7 at 160 characters per single segment and 153 per segment once it splits. The characters ^ { } \ [ ~ ] | € each cost two.

ENCODINGGSM-7
Characters
27
Septets billed
27
Per segment
160
Segments
1
Credits per message
1
Recipients
1,000
TOTAL CREDITS
1,000
AT ৳ 0.35 / CREDIT 350.00

This is the same segment engine used by POST /v1/pricing/preview, which is authoritative at send time. A calculator that disagrees with the invoice would be worse than no calculator at all.

THE LIMITS

Four numbers,
and they are not 160 and 70.

Once a message splits, each part carries a six-byte header identifying its position, so the per-segment capacity drops. These are the numbers that actually apply.

ENCODINGUSED FORSINGLE SEGMENTPER PART WHEN SPLIT
GSM-7English, digits and common punctuation160153
UCS-2Bangla, emoji, and any character outside GSM-77067
WORKED CASES

Eight messages,
counted by the engine.

Every number in this table is computed at build time by the same function the API calls. None of them is typed in by hand.

CASEENCODINGCHARSBILLED UNITSSEGMENTS
Short English passcode
Every character is in the GSM 03.38 table.
GSM-716161
160 English characters
Exactly the single-segment limit.
GSM-71601601
161 English characters
One character over, so it splits — and the limit drops to 153 per part.
GSM-71611612
159 English characters plus €
The euro sign costs two septets, so 160 visible characters bill as 161.
GSM-71601612
Short Bangla passcode
Same character count as the English passcode, same one segment.
UCS-216161
70 Bangla characters
Exactly the UCS-2 single-segment limit.
UCS-270701
71 Bangla characters
One character over, so it splits at 67 per part.
UCS-271712
English sentence with one emoji
A single emoji moves an English message to UCS-2 and cuts capacity to 70.
UCS-224251

Why billed units can exceed the character count

Nine characters live in a GSM-7 extension table and cost two septets each rather than one: ^ { } \ [ ~ ] | €. A message of 160 visible characters that contains one of them bills as 161 units, which splits it into two segments. This is the most common reason a message costs twice what its author expected while looking like it fits.

UCS-2 counts the same way for a different reason. Most characters, Bangla included, cost one unit — but anything outside the Basic Multilingual Plane, which is most emoji, is stored as a surrogate pair and costs two. That is why the emoji row above shows one more billed unit than it has characters.

WHAT THIS DOES NOT TELL YOU

Segments are a cost,
not a delivery promise.

This tool counts what a message will cost. It says nothing about whether it arrives. The primary Bangladesh route returns no delivery receipts, so messages sent over it end at sent with delivery_status: unknown, permanently — and no segment calculator anywhere can change that. It is worth knowing before you design a delivery screen.

NISHCHIT / SMS INFRASTRUCTURE

Your product has something to say.

Give it a reliable way to say it.

NO KYC

Self-serve signup, live immediately. Content checked instead of paperwork.

PAY PER SEGMENT

One credit per segment at ৳0.35. No contract, no minimum.

TEST FIRST

An nk_test_ key never reaches a carrier or spends a credit.

BANGLADESH ONLY

One country, done properly — Bangla pricing, observable delivery.