ENGINEERING NOTE 05 / 50 · SMS

Measure SMS waiting time beyond the average

OPEN RAMBO ·

Averages hide the long waits that customers notice. Measure time to receipt alongside expired orders and clearly state which orders enter the latency distribution.

Published by OPEN RAMBO. The engineering patterns and pseudocode illustrate designs, not a documented product API. Numerical examples are illustrative.

Choose the starting event

Order creation and number allocation are different timestamps. Track allocation latency separately from waiting-for-message latency. If the customer triggers the target SMS later, your system may not know that time; do not call the whole interval carrier delivery latency.

Keep failures beside percentiles

A p95 based only on successful receipts says nothing about expired orders. Show the successful-sample count and expiry count beside it. Compare the same service, country and mature time window so changing traffic composition does not look like an improvement.

Use the tail to decide

If the median is stable while p95 rises, inspect queueing, polling gaps and delayed callbacks before increasing timeouts. A longer timeout may simply move failures later. Keep a timeline of configuration changes to distinguish a real improvement from a reporting change.

Illustrative implementation

latency = received_at - allocated_at
report = {"received_n": n, "expired_n": e,
          "p50_seconds": p50, "p95_seconds": p95}

Acceptance check

Verify clock units and missing timestamps. Do not replace missing receipt times with zero; that makes the service appear faster.

Read next