Assume a tariff of $0.05 per SMS. Your invoice says you paid for 1,120,000 sends last month. Your dashboard says 920,000 one-time passwords reached a handset on the first attempt. Nobody in that chain lied, yet the figure that actually decides your messaging budget appears on none of those documents. That figure is the cost per delivered OTP: what you pay for every code that works, once you count the sends that didn't — and on these numbers it sits between $0.054 and $0.061, not at $0.05.
For PSP and VAS providers, the gap between price per sent and price per delivered is where the budget leaks. You pay for every message the vendor hands to a route. You only get value from the codes that reach the user before they expire. At BSG, we've seen that this gap is routinely two to four times larger than the difference between two vendors' rate cards — which is why the cheapest quote on the table so often becomes the most expensive contract.
This tutorial walks through the arithmetic: how the effective price per delivered message is calculated, the four traps that make a low-rate vendor expensive, and why a precise comparison needs real routes and per-carrier data. The worked example below focuses on messaging spend. To run the numbers on your own traffic, use the OTP overpayment calculator: it turns your tariff and first-attempt delivery rate into a cost per delivered OTP and a per-geo tariff comparison.
The rate on a price list is a price per attempt: what the vendor charges the moment your API call is handed to a route, regardless of what happens on the operator side. A delivery receipt (DLR) that never comes back does not trigger a refund.
That is why the cost per delivered OTP, not the tariff, is the number to negotiate on. The basic form is simple: tariff ÷ first-attempt delivery rate. At a $0.05 tariff on a route with 92% delivery, every code that works on the first try costs $0.054. Retries push the all-in figure higher: each repeat send is another billable attempt on the same route, and because the cause of the first failure usually persists, fewer of them land than the headline rate suggests.
There is a second layer most invoices hide. For a payment provider, an undelivered one-time password is not five lost cents; it is an authentication that failed and, frequently, a transaction that never completed. The messaging spend is the visible part; the rest sits in your authorization rate, merchant churn and support queue, where nobody attributes it to a route.
Consider a separate messaging-cost example: one million OTPs a month, an assumed tariff of $0.05 per sent SMS, 92% first-attempt delivery, and an average of 1.5 retries for every failed first attempt. These illustrative numbers show how delivery quality affects messaging spend; they are not the inputs or defaults of the overpayment calculator.
Worked example — effective cost per delivered OTP
| Line | Value |
|---|---|
| Monthly OTP volume | 1,000,000 |
| Tariff per sent SMS (assumed) | $0.05 |
| Vendor first-attempt delivery rate | 92% |
| Average retries per failed message | 1.5 |
| Undelivered on first attempt (8%) | 80,000 |
| Retry sends (80,000 × 1.5) | 120,000 |
| Total sends billed (1,000,000 + 120,000) | 1,120,000 |
| Total monthly spend (1,120,000 × $0.05) | $56,000 |
| Failed first-attempt spend (80,000 × $0.05) | $4,000 |
| Additional retry spend (120,000 × $0.05) | $6,000 |
| Total delivery-recovery cost per month | $10,000 |
| Total delivery-recovery cost per year | $120,000 |
| Effective cost per delivered OTP — first-attempt basis ($0.05 ÷ 0.92) | $0.054 |
| Effective cost per delivered OTP — all-in ceiling ($56,000 ÷ 920,000) | $0.061 |
Here is the logic behind each line. At 92% delivery, 80,000 of the million codes fail on the first attempt — and every one of them was billed, for $4,000. The retry flow then fires 120,000 additional sends on the same route, billed too, for another $6,000. Some of those retries will land, so the $6,000 is not pure loss; it is the price of recovering codes the first attempt should have delivered. Together, that is $10,000 a month, or $120,000 a year, spent on failed first attempts and the retries needed to recover them. Divide the tariff by the first-attempt delivery rate and the effective cost per delivered message is $0.054. Divide the full $56,000 spend by the 920,000 first-attempt deliveries and you get $0.061 — the ceiling if no retry lands. Your real figure sits between the two; where exactly depends on how many retries succeed, which only your delivery receipts can show.
Now put a competing quote next to it. A vendor at $0.046 per sent with the same 92% delivery looks 8% cheaper. A vendor at $0.052 with 98% first-attempt delivery has an effective cost of $0.053 per delivered code on the same basis — and generates a quarter of the retry volume. On this example the "more expensive" vendor is cheaper per working code and cheaper overall — an inversion that is invisible if you compare rate cards.
Based on what we observe in the tariff comparisons we run for PSP and VAS teams, a low quote almost always rests on one of four claims. Each sounds reasonable in a sales call; each has one question that exposes what it will cost you.
Trap 1 — "Our tariff is below the market." A low rate usually means grey or blended routes with low delivery — you save a cent on the send and lose the payments the codes were protecting. Ask: What is the effective price per delivered message for each of my geos — tariff ÷ delivery rate?
Trap 2 — "Our delivery rate is 95%+." A blended average hides collapses: 99% in Germany and 70% in Nigeria average out to a "respectable" 95%, and your losses sit in Nigeria. Ask: Show me per-carrier DLR statistics for my top-10 destinations, not the account average.
Trap 3 — "Retries show we care about delivery." A retry on the same SMS route is a second billable message with the same chance of failing — you pay twice for one non-delivery. Ask: Is there failover to another channel (Viber, Voice), and what does that channel cost?
Trap 4 — "A local vendor for every region." Three vendors mean three minimum commitments, three integrations, three dashboards and no negotiating position on any of them. Ask: What does an engineer-hour cost per year to maintain each extra integration?
Trap 1 has a mechanism. Grey routes are delivery paths that bypass the terminating operator, so it is never paid for the message; Mobilesquared estimated they still carried around 25% of global A2P SMS traffic in 2022 (Mobilesquared, 2023). Operators fight them with SMS firewalls, so a route that delivers acceptably this month can be filtered next month — a below-market rate tends to come with a delivery rate that drifts.
Trap 2 is arithmetic, and it catches experienced teams. In our experience working with payment providers across Europe and Africa, the account-level delivery figure is nearly always fine. The losses live in two or three corridors the average absorbs; you cannot see them without per-carrier data, and a vendor who will not share it is telling you something about its routes.
Trap 3 is the one the worked example priced: 120,000 retry sends at $0.05 is $6,000 a month of recovery spend, bought with no improvement in odds because the route and the failure cause are the same. Trap 4 is the quiet one: it never appears on a messaging invoice, because it is paid in engineering time and in the volume discount you never got on traffic you never consolidated.
The overpayment calculator gives a fast estimate from your tariff and first-attempt delivery rate. It does not calculate corridor-level messaging economics on its own. For that, three additional factors matter, and all three require live route and traffic data.
Real rates per destination. The global average international termination rate crossed $0.10 per message in the first quarter of 2025, with 93 markets priced above that average and 107 below it (Mobilesquared, 2025). A single blended tariff across that spread is a guess; the precise comparison is built corridor by corridor, against the routes actually available for your users' operators.
Real per-carrier delivery, from DLRs rather than a vendor's claim. What our clients have found is that a short look at their own delivery logs, split by operator, changes the conversation more than any benchmark, because it shows which two corridors drive most of the recovery spend.
Portability and dead numbers. Mobile number portability means a share of your OTPs is addressed to an operator the number no longer belongs to, and billed when it fails. An MNP lookup before the send costs a fraction of a cent; the undelivered SMS it prevents costs the tariff, the retry and the abandoned payment. None of that fits a form with four inputs, which is why the specialist calculation runs on your actual destination list and produces a number you can put in a procurement file.
The fix is not a lower tariff but fewer paid failures. At BSG, we've seen that four levers do most of the work: direct operator routes that deliver on the first attempt, MNP filtering before the send, cascade routing that fails over to a different channel instead of repeating the same SMS, and one contract for every region so the consolidated volume earns the rate. This is the setup on the OTP for PSP & VAS page: 200+ countries, 800+ carriers, and automatic failover to a cheaper channel — a Viber or voice retry instead of a second paid SMS, with SMS kept only as the final fallback.
The cascade lever is worth quantifying. In the message cascade case study, a fintech client running KYC verifications across Nigeria, Kenya and the Philippines moved from SMS-only to a cascade and cut OTP delivery failures from 11% to under 2%, while reducing per-OTP cost by roughly 30%. Across the OTP traffic we route, cascading typically cuts cost by 20–40%, depending on the destination mix. A retry that fires as a voice OTP or a Viber message is cheaper in many geos than a second SMS, and far more likely to land.
Worked example revisited — same volume, fewer paid failures (illustrative)
| Line | Current vendor (92%) | Direct routes + cascade (98%) |
|---|---|---|
| Undelivered on first attempt | 80,000 | 20,000 |
| Retry sends | 120,000 (same SMS route) | 30,000 (failover channel) |
| Failed first-attempt spend per month | $4,000 | $1,000 |
| Additional retry spend per month (illustrative, at base $0.05 tariff) | $6,000 | $1,500 |
| Total delivery-recovery cost per month | $10,000 | $2,500 |
| Total delivery-recovery cost per year | $120,000 | $30,000 |
Note: retry spend in the cascade column is shown at the base $0.05 SMS tariff for a like-for-like comparison. Real failover retries run over Viber or voice, priced differently and often lower, so the $2,500 monthly and $30,000 yearly recovery cost for the direct-routes-plus-cascade scenario is a conservative ceiling rather than the floor.
Put that back into the worked example. At 98% first-attempt delivery the undelivered pool drops from 80,000 to 20,000 and retry sends from 120,000 to 30,000, so the $10,000 monthly delivery-recovery cost shrinks to about $2,500 before any channel-price saving — and the remaining retries fire on a channel where the failure cause does not repeat. A PSP we worked with treated its account-level 95% as solved until the per-corridor split showed one market at 81%; moving that corridor to a direct route with a voice failover recovered most of that market's annual leak. Consolidating three regional vendors into one contract, the same principle behind our omnichannel setup guide, is what turned that recovered volume into a lower rate at the next negotiation.
Use the OTP overpayment calculator to turn your tariff and delivery rate into a cost per delivered OTP. Then bring us your top destinations, current rates and delivery data — we'll compare it corridor by corridor and show where the overpayment disappears.
Divide the tariff per sent message by the first-attempt delivery rate: $0.05 ÷ 0.92 = $0.054 per delivered message. For the all-in figure, divide total spend including retry sends by the number of codes that actually worked; retries are billed at the same tariff whether or not they arrive.
A lower rate often comes from grey or blended routes with weaker delivery, so more messages are billed without arriving and more retries fire. A vendor with a slightly higher tariff and higher first-attempt delivery can cost less per working code and less in total.
Not on its own. An account-level average can hide a corridor at 70%, and for payment authentication the losses concentrate there. Ask for per-carrier delivery statistics on your top destinations and judge each corridor separately.
Rarely. A retry on the same route faces the same failure cause, so you pay for a second message with roughly the same odds. Failover to Viber or a voice call changes the odds and, in many geos, costs less than the second SMS.