For fast-growing marketplaces in Southeast Asia, WhatsApp order status notifications have become part of the core experience. Buyers expect a near real-time message for every critical event: order created, payment confirmed, shipped, and delivered. But very few teams can answer a simple question with data: "How long does it actually take until most customers receive those messages?"
Average delivery time and delivery rate are a start, but they are often not enough. To really understand customer experience and the reliability of your messaging stack, you need to look at the distribution of delivery times. That’s where decile analysis comes in.
This article explains how to use deciles for WhatsApp order status notifications in marketplaces, how to compute them in practice, and how to connect the results to SLA, routing strategy, and channel fallback with platforms like official WhatsApp Business API and SMS.
What Is a Decile in the Context of WhatsApp Notifications?
In statistics, a decile splits a dataset into 10 equal-sized groups. When you apply this to WhatsApp order notifications, you are essentially asking:
- How fast are the fastest 10% of notifications delivered?
- How fast are 50% of notifications delivered?
- How bad is the experience of the slowest 10%?
Let’s define a simple latency metric:
latency_sec = delivered_time - event_timeWhere:
- event_time is when your core system changes the order status (e.g. "SHIPPED").
- delivered_time is when your messaging provider confirms that the WhatsApp message has reached the device.
Once you have latency_sec for all messages over a period, you can calculate deciles:
- D1: 10% of notifications are delivered within this time.
- D5: 50% (around the median) delivered within this time.
- D9: 90% delivered within this time.
Compared to a single average latency number, these three points alone already give a much clearer view of the real customer experience.
Why Marketplaces Should Care About Deciles, Not Just Averages
Most marketplaces in the region follow a similar evolution:
- Start with email and in-app notifications.
- Add SMS for OTP and critical events.
- Move to WhatsApp Business API for richer, two-way order status updates.
Along the way, monitoring typically focuses on:
- Delivery rate (e.g. 98% delivered).
- Average delivery time (e.g. 20 seconds).
The problem is that customers do not experience the average. They experience individual cases, and a small group with very slow delivery can drive a disproportionate number of complaints.
1. Capturing Operational Risk More Accurately
Deciles help you quantify risks that are invisible to averages:
- CS ticket spikes because some buyers never see a "Shipped" notification until much later.
- Disputes around delivery time expectations.
- Seller frustration when their buyers complain about lack of updates, even though the seller updated the status on time.
If your D9 jumps from 2 minutes to 12 minutes during a sales campaign, this is a clear sign of risk—even if your average is still under 1 minute.
2. Validating Messaging SLA with Real Data
When you use a provider for WhatsApp Business API, there is an implicit or explicit SLA on delivery performance. Deciles allow you to:
- Separate core app issues from messaging route issues.
- Benchmark throughput under peak load versus normal days.
- Negotiate with providers using concrete percentile-based evidence, not just averages.
3. Prioritising Product and Infrastructure Investments
By tracking deciles per notification type, you can distinguish between:
- Events that must be near real-time (payments, OTP, order confirmation).
- Events that are important but less time-sensitive (delivery summary, feedback requests).
This helps you design routing strategies, decide when to invest in more capacity, and where to apply channel fallback (e.g. SMS) to protect the customer experience at the tail end of the distribution.
The Minimum Dataset You Need to Compute Deciles
Before running any analysis, you need a clean, consistent event log. A practical structure for a notification event table could include:
- order_id or message_id
- user_id (or hashed phone number)
- channel (WHATSAPP_WABA, SMS, EMAIL, IN_APP)
- notification_type (ORDER_CREATED, PAYMENT_CONFIRMED, SHIPPED, DELIVERED, CANCELLED, etc.)
- event_time: when your backend records the status change.
- send_time: when your system hits the messaging API.
- delivered_time: when the provider confirms delivered.
- read_time: when a read receipt is available (optional, not always complete).
- status: SUCCESS / FAILED / EXPIRED.
For decile analysis, event_time and delivered_time are the essentials. The more granular your timestamps, the more accurate your latency measurement.
How to Compute Deciles for WhatsApp Order Notifications
The core workflow is simple:
- Calculate latency per message.
- Filter messages by type, channel, and time window.
- Compute deciles using built-in database functions or external tools.
1. Calculating Latency per Message
You can define one or both of these latency metrics:
latency_event_to_delivered_sec = delivered_time - event_time
latency_send_to_delivered_sec = delivered_time - send_timeFor understanding end-customer experience, event_time → delivered_time is usually more relevant.
2. Filtering by Use Case and Time Window
Decile distributions differ greatly between use cases. You should calculate them separately for:
- Each notification type (e.g. PAYMENT_CONFIRMED vs SHIPPED).
- Each channel (WhatsApp vs SMS vs in-app).
- Relevant time windows (peak vs off-peak, weekdays vs weekends, campaign days).
Example pseudo-query for a weekly analysis:
SELECT latency_event_to_delivered_sec AS latency_sec
FROM notification_events
WHERE channel = 'WHATSAPP_WABA'
AND notification_type = 'SHIPPED'
AND event_time >= '2026-06-01'
AND event_time < '2026-06-08'
AND status = 'SUCCESS';3. Using Percentile Functions to Get Deciles
Most modern SQL databases support percentile functions. You can compute deciles like this:
SELECT
percentile_disc(0.1) WITHIN GROUP (ORDER BY latency_sec) AS d1,
percentile_disc(0.2) WITHIN GROUP (ORDER BY latency_sec) AS d2,
percentile_disc(0.3) WITHIN GROUP (ORDER BY latency_sec) AS d3,
percentile_disc(0.4) WITHIN GROUP (ORDER BY latency_sec) AS d4,
percentile_disc(0.5) WITHIN GROUP (ORDER BY latency_sec) AS d5,
percentile_disc(0.6) WITHIN GROUP (ORDER BY latency_sec) AS d6,
percentile_disc(0.7) WITHIN GROUP (ORDER BY latency_sec) AS d7,
percentile_disc(0.8) WITHIN GROUP (ORDER BY latency_sec) AS d8,
percentile_disc(0.9) WITHIN GROUP (ORDER BY latency_sec) AS d9
FROM (
SELECT delivered_time - event_time AS latency_sec
FROM notification_events
WHERE channel = 'WHATSAPP_WABA'
AND notification_type = 'SHIPPED'
AND status = 'SUCCESS'
) t;If your data stack doesn’t support this, you can export raw latencies to Python, R, or a BI tool and use their percentile/decile functions.
Interpreting Deciles: Translating Numbers into Action
Imagine the following weekly decile stats for "Order Shipped" notifications via WhatsApp Business API:
- D1: 6 seconds
- D5: 22 seconds
- D9: 95 seconds
Interpretation:
- 10% of customers see the notification almost instantly.
- Half of customers see it within 22 seconds.
- 90% see it within about 1.5 minutes.
Now compare that with a major campaign day:
- D1: 12 seconds
- D5: 70 seconds
- D9: 9 minutes
This tells you:
- Your end-to-end pipeline (app + messaging provider + WhatsApp infra) is under pressure.
- The experience for the tail (the slowest 10%) is significantly worse, potentially driving CS tickets.
- Any internal SLA such as "95% of notifications delivered within 3 minutes" is likely being breached.
Once you see this pattern, decisions become clearer: scaling infrastructure, adjusting notification batching logic, revising routing, and introducing channel fallback where necessary.
Combining WhatsApp, SMS, and Omnichannel Around Deciles
While WhatsApp is often the main channel for order updates, many marketplaces in Southeast Asia run a multi-channel strategy:
- WhatsApp Business API for rich, conversational order updates.
- SMS Masking as a backup for critical flows or non-WhatsApp users.
- An omnichannel inbox for customer service, consolidating incoming messages.
Deciles are a powerful way to orchestrate these channels intelligently.
1. Decile-Driven Fallback from WhatsApp to SMS
One common policy is: "If a WhatsApp order update is not delivered within X minutes, trigger an SMS fallback." To tune this without over-spending, you can:
- Monitor D5 and D9 for key notification types per hour.
- Set dynamic thresholds: if D9 is already approaching your fallback threshold, temporarily raise the threshold or focus fallback only on high-value users.
- Track cost per successful notification (WhatsApp + SMS) vs. CS savings and customer satisfaction.
When you use a direct local route for SMS in markets like Indonesia, services such as local-direct SMS Masking help ensure consistent delivery time and high delivery rate for those fallback messages.
2. Using an Omnichannel Platform for Monitoring
Maintaining separate logs and dashboards for each channel quickly becomes unmanageable. An omnichannel platform can:
- Aggregate delivery logs from WhatsApp, SMS, and other channels.
- Expose a single analytics layer for latency percentiles and deciles.
- Correlate messaging performance with CS ticket volume, NPS, or cancellation rates.
This allows product, operations, and support teams to share a single source of truth about notification performance.
Conceptual Case Study: "SEAMarket" Marketplace
To make this concrete, consider a fictional regional marketplace, "SEAMarket".
Context
- Daily orders: 700,000 across 4 major Southeast Asian countries.
- 75% of active buyers opt in to WhatsApp notifications.
- Key events: ORDER_CREATED, PAYMENT_CONFIRMED, SHIPPED, DELIVERED, RETURN_REQUESTED.
- Messaging stack: WhatsApp Business API via an enterprise provider, SMS as backup, plus internal in-app notifications.
The Problem
- CS sees nightly spikes in tickets tagged "Where is my parcel?" between 8:00–11:00 PM during campaigns.
- BI dashboards show WhatsApp delivery rate around 98%, average latency under 30 seconds.
- Management suspects UX or expectation issues, not infrastructure.
Applying Decile Analysis
The data team calculates hourly deciles for "Order Shipped" notifications:
Normal days, 8:00–11:00 PM:
- D1: 7 seconds
- D5: 25 seconds
- D9: 2 minutes
Campaign days, same time window:
- D1: 14 seconds
- D5: 85 seconds
- D9: 11 minutes
The combination of a much higher D5 and D9 clearly explains why customers perceive delays. Segmentation reveals that most of the D9 population are:
- Buyers in dense urban areas with heavy evening traffic on mobile networks.
- Orders from top sellers who batch-update shipping status at the end of the working day.
Decile-Based Remediation
- Adjust Notification Scheduling
Instead of pushing all "Shipped" notifications immediately from the seller action, SEAMarket introduces micro-batching, spreading updates over a 5–10 minute window to avoid spikes. - Selective SMS Fallback
If a "Shipped" WhatsApp notification is not delivered within 4 minutes for COD orders or high-value baskets, an SMS is triggered: "Your order #XXXX has been shipped. Track details in the app." - Operational Alerts on D9
The operations team sets a watch: if D9 exceeds 5 minutes for more than 30 consecutive minutes, they review load, routing, and possibly switch a portion of traffic to an alternate route provided by their messaging partner.
Within weeks, SEAMarket observes:
- A 25% drop in "Where is my parcel?" CS tickets during campaigns.
- Stable customer satisfaction scores despite higher traffic.
- A manageable rise in SMS costs, offset by more efficient CS operations and higher buyer trust.
Building a Decile-Based Notification Dashboard
For data and product teams, implementing decile monitoring is a structured but manageable project.
1. Standardise Logging Across Channels
Make sure every notification, whether via WhatsApp, SMS, or in-app, is logged with consistent fields and synchronised timestamps (using a shared NTP source).
2. Define Core Metrics
- latency_event_to_delivered (seconds).
- latency_send_to_delivered (seconds).
- delivery_rate (% of messages with SUCCESS status).
- fallback_rate (% of messages that needed a backup channel).
3. Precompute Daily and Hourly Deciles
Create an aggregate table storing D1–D9 per combination of:
- channel (WhatsApp WABA, SMS, etc.).
- notification_type.
- time_bucket (e.g. hourly).
This powers BI dashboards without heavy on-the-fly computation.
4. Connect Deciles to SLA and Alerting
Define internal targets, for example:
- D5 ≤ 30 seconds for payment and order confirmation.
- D9 ≤ 3 minutes for shipping updates.
Configure alerts in your monitoring stack: if deciles breach thresholds over defined periods, they notify operations and product owners.
5. Use Deciles for Experiment Evaluation
When you change any part of your messaging stack—switch provider, add capacity, tweak batching logic—compare deciles before and after for the same time windows and segments. This is often more revealing than changes in average latency alone.
Choosing a Messaging Partner That Supports Decile-Level Insight
Not all enterprise messaging providers make it easy to collect and analyse the data needed for deciles. When evaluating partners for WhatsApp Business API, SMS, voice, or omnichannel, consider:
- Granular delivery logs: Can you access per-message delivery timestamps?
- Webhook support: Are delivery and read receipts pushed to your system in real time?
- Analytics friendliness: Is the provider comfortable discussing SLA in percentile terms and supporting your BI requirements?
Platforms like SMSMasking.id, which offer official WhatsApp Business API, local-direct SMS Masking, and an omnichannel interface, are designed with these analytics needs in mind, making it easier for marketplaces to build decile-based monitoring without stitching together too many disparate systems.
Conclusion: From "Sent" to Quantitatively Reliable
At small scale, it is tempting to treat order notifications as a binary: sent or not sent. But for large marketplaces competing on trust and reliability, that view is no longer sufficient. The right questions are:
- How quickly do most buyers receive their key WhatsApp notifications?
- What does the experience look like for the slowest 10%?
- When should SMS or other channels step in to protect customer trust?
Decile analysis is a straightforward upgrade to your monitoring toolkit, yet it brings a disproportionate amount of insight. By combining deciles with a robust messaging stack—WhatsApp Business API, SMS Masking, and omnichannel tooling—you can move from "messages are sent" to "experience is reliable and measured" across every campaign, peak hour, and country you operate in.
FAQ
How is a decile different from a percentile for messaging?
A decile splits data into 10 parts (D1–D9), while percentiles split into 100. For operational dashboards, deciles are often easier to interpret and communicate across teams.
Is average latency really that misleading?
It can be. A few slow deliveries may not move the average much, but they can strongly affect customer perception and CS workload. Deciles, especially D9, highlight this long tail.
Can I apply deciles to non-WhatsApp channels?
Yes. The same method works for SMS, email, push, or in-app notifications, as long as you have consistent event and delivery timestamps.
How often should I recompute deciles?
Daily is the minimum. During big campaigns or seasonal peaks, hourly decile monitoring provides much better visibility and control.
Do I need a dedicated data science team?
Not necessarily. A BI engineer with SQL access and a cooperative messaging provider can set up basic decile monitoring. As complexity grows, having a dedicated data team helps deepen analysis and automation.
Tags



