Proof that the channel earns its own budget line

Every campaign we run carries a permanent holdout, so the figures below are what the programme added rather than everything that happened to follow a send. Here are the numbers, the operator stories behind them, and the method we use to arrive at them.

2.1B

Messages delivered a year

Across every live client programme, rolling twelve months.

98.4%

Average delivery rate

Confirmed by carrier delivery receipt, never by send attempt.

190

Markets with direct binds

Europe, LATAM, Canada and Asia-Pacific, no grey routes in the mix.

340ms

Median handset latency

API accept to handset, median across tier-one binds.

Three programmes, rebuilt and measured

Each of these operators was already sending. What changed was the audience, the route or the measurement, and in every case the control group stayed in place so the difference could be read honestly.

Casino - Nordics

+31%

Reactivation lift

Opt-out rate
0.5%
Revenue per message
1.84 EUR

31% more reactivated players

A tier-two operator was mailing its lapsed list monthly and getting almost nothing back. We rebuilt the audience on session recency rather than registration date and moved the send to a lapse trigger. Opt-outs held at 0.5%.

How segments and lapse triggers work

Sportsbook - LATAM

4.6x

Return on spend

Median latency
290ms
Delivery rate
98.9%

4.6x return on send spend

Match-day traffic was arriving after kickoff on aggregator routes. Direct binds in Brazil and Mexico cut median latency to 290ms and let the pre-match window actually function. Volume tripled without a delivery drop.

How direct carrier binds work

Casino - Canada

18.4%

Deposits influenced

Holdout lift
+12.7%
Attribution window
7 days

18.4% of deposits touched by SMS

The operator could not tell which deposits SMS had earned, so the channel kept losing budget. Holdout groups and a seven-day attribution window settled it, and the programme took a permanent line in the plan.

How deposit attribution works

How we measure any of this

Three definitions do most of the work. Agree them before a campaign runs and the reporting stops being a debate about whose dashboard is right.

01

Holdout groups

A slice of every eligible audience is held back and receives nothing at all. It is redrawn at random on each send rather than fixed once, so the control never quietly settles into being your least valuable players. The gap between the exposed group and the held-back group is the only number we are willing to call a result. Anything that merely happened to occur after a send is not a result, it is a coincidence with good timing.

02

Attribution windows

A deposit counts against a message only if it lands inside the window agreed for that campaign, and windows run from one hour to thirty days. Reactivation programmes usually sit at seven days. Match-day sends sit at one hour, because a deposit made three days after kickoff had nothing to do with a pre-match reminder. The window is fixed before the campaign runs and it is not widened afterwards to make a chart look better.

03

Revenue per delivered message

Incremental net revenue inside the window, divided by the messages a carrier confirmed as delivered. Not messages sent, and not messages our API accepted. Undelivered traffic is not billed to you and it is not counted in the denominator either, so the figure sits on the same footing as your send cost and the two can be compared directly.

What lands in your report

  • Incremental deposits and incremental net revenue, exposed against holdout
  • Revenue per delivered message, broken out by segment and by market
  • Delivery rate and median handset latency for every carrier bind in your mix
  • Opt-out rate per campaign, alongside the cadence caps in force at the time
  • The raw event export, so your own analysts can rebuild every figure themselves

The same definitions govern the guardrails, so a suppressed player never enters an audience and never distorts a control group.

A worked example

This is the Nordic casino reactivation programme above, taken apart. A seven-day attribution window, one monthly send, and a holdout redrawn every time. The 31% reactivation lift is simply the gap between the two deposit rates, and the revenue figure follows from it without any further arithmetic.

Read the last line as the one that matters. It is the figure you set against your cost per delivered message, and that comparison either works or it does not.

Delivered to the exposed group
380,000
Held back as a holdout
20,000
Deposit rate, exposed group
4.2%
Deposit rate, holdout group
3.2%
Incremental deposits
3,800
Net revenue per incremental deposit
184 EUR
Incremental net revenue
699,200 EUR
Revenue per delivered message
1.84 EUR

Operators on what actually changed

Three of the people who had to defend the channel internally, on the part of it that made the argument for them.

Portrait of Geoff Moerans, Head of CRM, tier-two casino group01Geoff MoeransHead of CRM, tier-two casino group

We had spent two years being told SMS could not be measured properly. Six weeks after the holdouts went in we had a number the board could not argue with, and the channel got its own budget line.

Portrait of Carolina Reis, Retention Director, LATAM sportsbook02Carolina ReisRetention Director, LATAM sportsbook

Match-day messaging was useless to us because it arrived after kickoff. The direct binds fixed the latency, and the pre-match window became the best converting slot we have.

Portrait of Anders Falk, Compliance Lead, Nordic operator03Anders FalkCompliance Lead, Nordic operator

The part I did not expect to value was the guardrails. Knowing a campaign physically cannot go to a market we are not licensed in takes a genuine risk off my desk.

Want the same reporting on your own list? Start with the platform overview or go straight to pricing.

Ask us for the number, not the dashboard

Send SMSPro your markets and your list size and we will model the incremental revenue, the holdout you would need, and what the programme should return per delivered message.