Key Takeaways
- Operator airtime and the gateway service fee are separate ledgers. Mixing them is how “cheap SMS” quotes go wrong.
- Monthly operator cost is (accepted sends + retries) × parts-per-message × the SIM’s tariff — not the number of rows in a CSV.
- UCS-2 (emoji, many Indic scripts) splits earlier than GSM-7. One “short” OTP can still bill as two parts.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit. Free is 300 SMS lifetime; Developer is 25,000 SMS per year. Starter from $19/mo meters 2 devices.
- Budget failed OTP loops. A 12% retry rate on login codes is a finance line, not a rounding error.
- Name who tops up the SIM before you promise a unit cost to finance.
Teams searching android sms gateway app how to estimate monthly operator cost usually have a spreadsheet with one column labelled “SMS” and a finance lead asking why last month’s prepaid pack vanished. The Android app does not sell carrier credit. It sends on your SIM. The monthly number you owe the operator is therefore a radio bill, not a line item we invoice.
Service pricing is based on device count and total SMS sent through the gateway. You need a working Android phone with a SIM and SMS credit from your mobile operator. Operator message costs are yours—we do not sell carrier SMS balance. Keep those two sentences taped above the worksheet. This spoke sits under the Android SMS gateway app guide. It does not replace device and SMS volume pricing or the prepaid-versus-postpaid ops piece. It is the arithmetic.
If your unit cost assumes every login code is one SMS and never retried, you are quoting a demo, not a month of production.
Two ledgers, not one invoice
Aggregator quotes train people to think in $0.00x per message all-in. That model bundles a rented number, the vendor’s SMSC, and their margin. An Android SIM gateway splits the world: we meter devices and platform send volume; the mobile operator meters the airtime that actually left the handset. Comparing “our plan” to Twilio’s per-segment price without adding the SIM is how you pick the wrong architecture.
Read the operator tariff the way finance reads a cloud bill. Prepaid packs have a face value and a validity window. Postpaid invoices hide SMS inside a bundle, then jump to out-of-bundle rates. Fair-use clauses can throttle a SIM that behaves like an A2P originator even when you paid. None of that appears on the gateway invoice.
The monthly worksheet
Build four rows. Do not merge them. The table is the whole method; the rest of this article is commentary on each cell.
| Ledger | Who bills you | What to count | Typical miss |
|---|---|---|---|
| Operator airtime | Your carrier | Accepted sends × concatenated parts × (1 + retry rate) | Counting CSV rows as SMS |
| Gateway plan | SMS Gateway | Devices on the plan + platform volume tier | Treating Starter unlimited platform volume as free carrier SMS |
| Hardware | You | Phones, chargers, spare SIMs, a UPS if the site browns out | One personal handset “for now” |
| Staff | You | Top-up, OEM battery exceptions, on-call when last-seen goes stale | Assuming the intern will notice a dead phone |
Export a month from the panel or delivery reports. Split lanes. OTP on a dedicated SIM should not subsidize a campaign in the same average.
Parts, encoding, and retries
GSM-7 gives you 160 characters in one part, 153 once you concatenate. UCS-2 (needed for many emoji and a lot of Indic and CJK copy) drops that to 70, then 67. A “short” OTP with a brand name and a checkmark can still bill as two parts. Your app’s text field is not a promise about operator segments.
Retries are the other silent multiplier. If 10% of login codes expire and the user taps resend, that is a 10% airtime tax on the OTP lane. Idempotency keys stop duplicate submits when HTTP times out; they do not stop a user who never received the first radio send. Budget the resend rate you measure, not the rate you wish for.
GSMA and operator billing still treat concatenated SMS as multiple submits. For a plain-language primer on why encoding changes length, see GSM 03.38 character encoding— then verify against your actual bodies, not a Wikipedia example.
Worked example: 8,000 OTP
Suppose a SaaS sends 8,000 login codes a month on one domestic SIM. Average body is GSM-7, one part. DLR shows 8% failed or expired, and the app resends once. Operator tariff is 0.04 in local currency per part (use your invoice).
- Accepted first sends: 8,000
- Resends: 640
- Parts: 8,640 × 1 = 8,640
- Operator line: 8,640 × 0.04 = 345.60 in local currency
Now change one assumption: the template adds a Unicode hyphen and a brand emoji. Average parts become 2. Operator line doubles. The gateway plan did not change. That is why encoding belongs on the worksheet, not in a footnote.
Add the service fee on a separate row. One production phone on Starter is $19/month for up to 2 devices with uncapped platform send volume — still not carrier airtime. Professional is $39/month, Business $77/month. Free (300 SMS lifetime) is for canaries. Developer (25,000 SMS per year) is for a single-device build, not an 8,000-code month if you would exhaust the yearly cap.
Where the gateway plan fits
Device count is the other meter. If 8,000 OTP need two phones for peak, you are not on a one-device story. Peak hour, not monthly average, sizes the fleet. A lunch-rush restaurant and a 24/7 login API have different peaks with the same monthly total.
When platform volume on Free or Developer is exhausted, sends pause. Upgrade or ask for a custom allowance. Do not model silent overage. Starter / Professional / Business uncap platform send volume and still meter devices; carrier fair-use remains.
Prepaid pack vs postpaid invoice
Prepaid is easy to explain and easy to empty at 2 a.m. Automate a balance check (USSD or operator app) and a calendar. Postpaid looks cheaper per part until a spend cap hits and the SIM dies like prepaid on zero. Treat a cap as an outage. The longer prepaid-versus-postpaid spoke covers billing type; here you only need the number that goes in cell B2 of the worksheet.
Costs that do not show on a quote
Overnight OEM battery killers, a phone that falls off Wi-Fi, and a SIM that roaming-registers in a border town all create retries you will pay for. So does a bulk campaign that shares the OTP radio. Isolate lanes. A filtered promotional blast that retries is an operator cost and a reputation cost on that MSISDN.
Staff time is real. Someone owns top-up. Someone watches last-seen. If that is “whoever notices Slack is quiet,” put a cash number on it or admit the SLA is decorative.
How to estimate this month
- Pull 30 days of accepted sends. Export gateway history. Split OTP, transactional, and promotional lanes. Count accepted submits, not CSV rows.
- Measure parts per message. Sample 50 bodies. Note GSM-7 vs UCS-2. Record average concatenated parts for each lane.
- Add retries. From DLR, count failed and expired codes that your app resent. That volume still burned airtime.
- Apply the SIM tariff. Prepaid pack price ÷ pack size, or postpaid per-SMS from the last invoice. Include VAT if finance needs landed cost.
- Add the gateway plan. Device count on the plan plus platform volume tier. Keep that number off the operator line.
- Name the recharge owner. Write who tops up prepaid or pays the postpaid bill before you publish a unit cost.
Confirm send and DLR shapes in the SMS API documentation. Pair hardware against the device setup guide. Compare the architecture to aggregator per-message billing on Twilio vs Android SMS gateway.
Checklist
- Operator ledger and gateway ledger are separate rows.
- Accepted sends, not CSV rows.
- Average parts measured on real templates (GSM-7 vs UCS-2).
- Retry / resend rate from DLR, not a guess.
- OTP isolated from promotional SIMs.
- Peak-hour device count, not monthly average.
- Recharge or invoice owner named.
- Free/Developer pause behaviour understood if you are still on those SKUs.
Next steps
Return to the app guide, open pricing, and keep a spare funded SIM. The worksheet is only honest if the phone stays on a charger.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy
- download the Android gateway appGet the APK





