Skip to main content
SMS

Messages (SMS) and their need for speed

by July 22, 2020#!31Thu, 23 Jul 2020 14:02:56 +0200+02:005631#31Thu, 23 Jul 2020 14:02:56 +0200+02:00-2Europe/Rome3131Europe/Rome202031 23pm31pm-31Thu, 23 Jul 2020 14:02:56 +0200+02:002Europe/Rome3131Europe/Rome2020312020Thu, 23 Jul 2020 14:02:56 +0200022027pmThursday=4159#!31Thu, 23 Jul 2020 14:02:56 +0200+02:00Europe/Rome7#July 23rd, 2020#!31Thu, 23 Jul 2020 14:02:56 +0200+02:005631#/31Thu, 23 Jul 2020 14:02:56 +0200+02:00-2Europe/Rome3131Europe/Rome202031#!31Thu, 23 Jul 2020 14:02:56 +0200+02:00Europe/Rome7#252 Comments

Let's be clear, we're not talking about how long a message to leave your phone and reach your friends; (although we know this is extremely important), we're talking about business-to-consumer messaging, e.g. when your bank sends you a fraud alert.

We thought about it and decided to write a blog post to explain how critical the delivery times of messages are.

First, we need to explain that the industry divides business-to-consumer messaging into two types: transactional and promotional. There's an implicit speed for each type; transactional messages need to be delivered quickly; promotional messages don't need to be that fast.

  • Transactional – balance alerts, hotel booking confirmations, one-time passwords, etc. – a one-time message is typically opted in and sent as needed. In some cases, messages are sent while the user is in session, e.g., online while making a reservation. Transactional messages should be delivered within a few minutes.
  • Promotional - vouchers, redemption codes, special offers etc. - usually opted for a "brand base" and will be sent until the user gives up. These types of messages are not as critical as transactional messages and should be delivered within 1 hour of posting

By far the most important transactional messages are those that send a PIN or password required to proceed to the next step in a process, such as logging in to an online account or resetting a password. For clarity, we'll group this subset of transactional messages together and call them "two-factor authentication" (2FA) messages.

It should be noted that message delivery speed or delivery times are often referred to as message latency. The true meaning of latency may require careful consideration in some contracts, as the definition can vary significantly from provider to provider and, in most cases, doesn't actually mean the time from when a user requests a message to when it arrives on their phone.

Our starting point in answering the question, “How important is the delivery time of a message SMS?”, was to look at other digital communications and see if there were any similarities. We started by looking at web page load times and the associated conversion abandonment.

We found this excellent infographic on the importance of web page load time on conversion. Kissmetrics found that 351 TP3T of surveyed users would abandon a page within 10 seconds of waiting. Intuitively, this sounded approximately like what most users would do if they hadn't received a 2FA message within the same time frame; but we needed proof.

Many companies implementing 2FA have this data on hand; but since CLX only carries 2FA messages and can't know exactly when a user actually enters the code, we need some other mechanism to determine the tipping point—the point at which the user becomes impatient and requests another message. After racking our brains, we realized that the most likely thing someone would do if the 2FA message was delayed was to do exactly that: request another!

We embarked on a journey of discovery to determine what the "repeated request" rate was based on delivery times. Since the 90% of CLX messages is delivered in less than 5 seconds; we had to look for times when there were rare, but notorious congestion peaks due to an interrupted support network or other problems.

When using 2FA, the need to immediately deliver the text message to the phone is not only required, but expected by the consumer. But how “immediate” does the message need to be? How long are people willing to wait to receive the text before making a follow-up request to resend the message?

To determine this threshold, we specifically examined a single request versus multiple requests for a unique mobile number. Before analysis, the data was cleaned, for example, for delivery failures; we ran an HLR on all handsets in the dataset and excluded those with any potential delivery issues. We then eliminated repeat requests from non-existent numbers, as this indicates that someone entered their mobile number incorrectly.

The first result of our analysis showed that multiple requests are infrequent; in fact, the 98% consisted of single entries, meaning the security code was sent to the phone once, while the remaining 2% made more than one request. This low percentage of total attempts can be explained by the fact that congestion on the CLX network is rare and transient. It is assumed that every 2FA message will receive a retry request if the message is not delivered within a reasonable and expected period of time.

Looking more closely at this data, we can see how important delivery latency is.

First, 10% of users asked for a repeat message if they didn't receive it within 3 seconds, a further 19% asked for a repeat message if they didn't receive it within 7 seconds, and 6% asked for a repeat message within 11 seconds. In total, that's a staggering 35% of users who will ask for a repeat message if their first one isn't delivered within 11 seconds. This is very similar to Kissmetrics' finding, which shows that 35% of users will abandon a web page within 10 seconds of waiting.

We also noticed that the average number of repeated requests was 1.2 in the dataset, meaning that for these users the enterprise will pay at least double, if not more than double, per user than necessary – this can be directly attributed to latency.

We conclude that a 2FA message should be delivered within a maximum of 10 seconds, ideally it should be in less than 3 seconds.

There are several issues that can affect delivery speed:

  1. The speed at which your SMS provider can accept messages must be sufficient to ensure that even in peak periods they are able to accept the message within 100ms
  2. The ability your SMS provider has to both deliver messages and perform a Mobile Number Portability (MNP) lookup, both are equally important.
  3. Your messaging provider's ability to split between low-latency and high-latency traffic, i.e., split and prioritize messages based on whether they are transactional or promotional
  4. The routing algorithm used by the messaging provider. Some less expensive providers will queue messages to send them along the cheapest route, regardless of congestion or latency.
  5. Multi-hop connections make latency control very difficult, so using direct connections will always lead to better performance and visibility. Gray routes, SIM farms, or other routes that may be blocked can also cause latency issues, as various filters can impact delivery.
  6. SMSC operator setup, ideally operators should split A2P and P2P messaging, so retrying algorithms within SMSC can be more aggressive
  7.  Backup connectivity in case of a primary route failure or direct connection is essential. Using SS7 connectivity (although much more expensive) can be helpful.

Tips for optimizing delivery speed

  1. Make sure your messaging provider is able to offer an SLA and provide regular reports against those SLAs
  2. Choose a messaging provider that has direct connections and SS7 backups to the destinations you are sending to, as this will provide the most reliability and speed.
  3. Check that your messaging provider is constantly analyzing and monitoring the delivery latency of end-to-end messages, i.e. over the phone, to ensure that problems within the operator's networks can be proactively detected
  4. Make sure your messaging provider can split traffic based on message priority at the message provider level and send high priority messages before lower priority messages to carrier networks if capacity/congestion is detected
  5. Make sure your app only allows a repeat request after 10 seconds, this will prevent some users from getting overly happy

CLX has over 100 direct connections worldwide. We proactively monitor our system performance and message delivery times. As part of our monitoring process, our system continually performs tests, some of which are outgoing to courier networks and partners to measure message delivery times and notify us of any latency changes. Timely detection allows us to warn and accelerate collaboration with couriers and partners to correct performance.

252 Comments

Leave a Reply