The pitch for RCS is straightforward: the same address, richer rendering, verified sender. The delivery reality is that a meaningful share of your audience will receive SMS anyway, because their operator has not deployed it, their handset is old, or the capability check failed.

Design the fallback first#

Write the SMS version of the message before the rich one. If the SMS version does not stand alone, the rich version is carrying meaning that part of your audience will never receive.

This is the same discipline as writing the plain-text part of an email first, and it fails for the same reason when skipped: the fallback gets written last, by someone in a hurry, and it shows.

RCS is not a channel you migrate to. It is a capability that some of your recipients have on some of their devices at some moments, and the programme has to work identically for everybody else.

One send, two possible renderings

  1. 01Compose once

    Write the message as SMS. Everything richer is an enhancement layered on top, never a rewrite.

  2. 02Check capability at send

    Not at import. A device that supported RCS last month may not today, and the reverse is more common.

  3. 03Render rich, or render plain

    Same content, same call to action, same tracking. If the plain version is worse, the design is wrong.

  4. 04Reconcile the receipts

    RCS returns read receipts, SMS does not. Two different evidence models in one report.

  5. 05Measure separately

    Never blend the two into an average. The average describes nobody.

If you cannot delete the RCS branch and still have a working programme, you have built two programmes and are maintaining both.

Capability checks are a runtime decision#

Whether a given number can receive RCS is a lookup, and the answer changes over time. Two consequences:

  • Do not cache it forever. A number that could not receive RCS last quarter may be able to now.
  • Do not block on it. If the check is slow or fails, send the SMS. A rich message that arrived late is worth less than a plain one that arrived.

Storing "this contact supports RCS" is the mistake that produces the worst failure mode: a rich message that silently does not arrive.

Capability changes when someone changes handset, changes carrier, moves country, or turns the feature off. A cached flag is stale within weeks. Check at send time, accept the extra call, and treat an unknown answer as no.

What genuinely benefits#

Anything with a next action. A delivery notification with a tracking button, an appointment with reschedule and cancel, a payment with a pay-now action. The rich render collapses a multi-step journey into one.

Anything where identity matters. A verified sender badge is the closest thing to solving the phishing problem SMS has never solved. If your messages are the ones criminals imitate, that alone can justify the work.

Message typeGains from RCSWhy
Delivery trackingSubstantiallyA map, a live status and a branded sender do real work here
Appointment managementSubstantiallyReply buttons remove a whole step; confirmation becomes one tap
Boarding and ticketsYesCarousels and images carry information a text link cannot
One-time codesNoThe message is six digits. Everything else is latency you added
Fraud alertsNoReach and speed beat presentation, and the plain path is the reliable one
Bulk promotionMarginallyBetter rendering does not fix an unwanted message
The pattern: RCS pays where the message replaces an interaction. It does not pay where the message is the interaction.

What does not#

One-time codes. A code is six digits. Rich formatting adds nothing, the recipient wants it fast, and OTP is a large share of A2P volume — which is why the transition to RCS looks slower in aggregate than it does in any individual use case.

Anything you send at broadcast volume. Richer format does not make an unwanted message wanted; it makes it more conspicuous.

Measuring the difference honestly#

Do not compare RCS recipients against SMS recipients. They are different populations — RCS reach skews toward newer handsets and better-served markets, and that difference alone will produce a flattering result.

The honest comparison is a randomised split within the RCS-capable population: capable users who get rich, against capable users who get plain. Anything else measures your audience, not your message.

The operational cost nobody quotes#

Two content variants per message, two sets of previews to review, two failure modes to monitor, and a capability lookup in the send path. It is not a large cost, but it is not zero, and it recurs for every message you add.

Budget for the second programme, because you are running one.

What to take away#

Design the SMS version first and completely. Check capability at send time. Apply RCS where the message replaces an interaction. Measure with a holdout inside the capable population. And price the two-variant maintenance, because that is the real cost.

Sources

Every claim worth checking, with somewhere to check it.

  1. RCS Now in iOS: a New Chapter for Mobile MessagingGSMA