Everything worth knowing, nothing that isn't.
Where the delay accumulates
Three places. Per-SMSC queuing (each SMSC has a submit queue, typically <100ms but spiking to seconds under load). SS7/SMPP transit (each TCP hop adds a round-trip; intercontinental hops add 150-300ms each). DLR rendezvous (each intermediate SMSC matches inbound DLRs against its outbound submits, which is a memory-bounded lookup that can stall under heavy traffic).
How to measure it
Submit a test message with a timestamp in the body and watch the DLR's `done_date` field. Subtract submit time. For most direct routes you should see p50 under 3 seconds, p95 under 8 seconds. Anything above 15 seconds p95 is a sign of multi-hop routing — usually a grey route. BroadNet publishes per-route latency p50/p95/p99 daily on /status.
Why it matters for OTP
OTP messages have a hard usability deadline: most users abandon a verification flow if the SMS doesn't arrive within 30 seconds. A multi-hop route with p95 of 45 seconds means 5%+ of your users will fail to verify and either retry (doubling your SMS spend on that user) or churn. Direct routes pay for themselves on OTP volume alone.
What direct vs grey looks like in the DLR data
Direct: tight latency distribution, low variance, DLR error codes that map cleanly to operator MSC reasons. Grey: bimodal latency (one cluster fast, one cluster very slow), high variance, generic error codes (0x000000FF, UNKNOWN), DLRs sometimes never arriving at all. The DLR signal is how you audit your aggregator without their help.