# SMS KPIs and Real-Time Delivery Monitoring | ZafeConnect

> Which numbers to follow when you send SMS, how to monitor delivery in real time with webhooks and dashboards, and what to set alerts on.

Canonical URL: https://www.zafeconnect.com/blog/sms-kpis-and-real-time-monitoring
Language: en
Last modified: 2026-11-09

## SMS KPIs: what to follow and how to monitor delivery in real time

URL: https://www.zafeconnect.com/blog/sms-kpis-and-real-time-monitoring

Published: 2026-11-09

Follow delivery rate by country and operator, time to deliver, the share of failed and unknown messages, opt-outs, conversion and cost per delivered message. Feed them into a real-time dashboard through webhooks, and alert on deviations from your own normal.

Key takeaways:
- Look at delivery rate by country and operator, not as one overall number.
- Time to deliver and the shares of “unknown” and “failed” reveal problems before customers call.
- Conversion and opt-outs show whether the message works, not only whether it arrived.
- Alert on deviations from your own normal, and combine real-time webhooks with a reconciliation job.

### Which numbers matter most?
Start with a few numbers, and view them by country, operator and message type. An overall average can hide that one operator or one country is lagging.
Number | What it shows | Split it by
Delivery rate | The share of sent messages that get the status delivered | Country, operator, message type
Time to deliver | Time from send to delivered, most important for one-time codes | Country and operator; follow both the middle and the slowest
Failed and rejected | Share and reason codes, for example invalid number, blocked or rejected content | Reason and country
Unknown or no final status | Messages without a final receipt, which can hide a route with problems | Country and operator
Opt-out rate | The share who reply STOP or unsubscribe after a send | Campaign and segment
Conversion | The share who do what the message asked: use the code, book, pay | Campaign and channel
Cost per delivered message | Total message cost divided by the number of delivered messages | Country and channel

### What can a delivery figure hide?
Figures that are not measured the same way cannot be compared: some count every sent message, others only those that received a final status. Use one fixed definition, and show the share without a final status separately.

Remember also that “delivered” is not equally precise everywhere, and that SMS has no read receipt. Our article on delivery receipts explains what each status means.

Split codes and campaigns as well. They have different goals: codes are measured on speed, campaigns on conversion and opt-outs.

### How do you monitor SMS delivery in real time?
“Real time” here means as fast as the operator reports a status. Receipts can be late or missing, so build the monitoring in three layers.
- Webhooks: the provider calls your system on every status change, and you show it in a dashboard or send it to your monitoring tool
- Reconciliation: a job looks up messages with no final status after your normal delay and catches lost events
- The provider’s analytics and reports: used to cross-check your own numbers and to see volume and cost per channel
- Dashboard: show delivery rate, time to deliver and failure reasons by country and operator for the last minutes and hours, and compare with the same time last week

### What should you set alerts on?
Set alerts against your own normal value, not a number you read somewhere. What is normal for Denmark is not normal for a country with weaker receipts.
- The delivery rate for a country or operator falls markedly below your normal
- Time to deliver for codes rises
- The share without a final status grows
- One specific error code suddenly rises
- Volume to one country rises for no reason, which can be artificial traffic (SMS pumping)
- Volume drops to zero: silence can be a failure too
- Your webhook endpoint fails or falls behind
- The balance falls below your limit, if you use prepayment

### How do you see whether the messages work?
Delivery is a precondition, not a goal. Link the delivery data to what the message was meant to achieve, for example whether the code is used, the appointment confirmed or the basket paid. Cost per delivered message is useful for the budget, but cost per achieved action says more when you compare channels such as SMS and RCS. Follow opt-outs too: a rising opt-out rate after a campaign points to messages that are too frequent or not relevant.

### How ZafeConnect fits
ZafeConnect includes analytics at no additional cost and tracks email, RCS, iMessage and SMS together. ZafeConnect passes on delivery reports from the operators, and status changes can be received as signed webhooks (for example message.delivered and message.failed), with up to 5 retries if your endpoint does not acknowledge. ZafeConnect reports a message delivery rate of over 98%. That is a reported rate and not a guarantee, so measure your own by country and operator.

FAQ:
Q: What is a good SMS delivery rate?
A: It depends on the country, the operator, the message type and how the rate is measured. Compare only figures measured the same way, and set your own baseline. ZafeConnect reports a message delivery rate of over 98%, which is a reported rate and not a guarantee.

Q: Can I monitor SMS delivery in real time?
A: Yes, through webhooks that send every status change to your system as soon as the operator reports it. Some receipts arrive late or not at all, so add a reconciliation job.

Q: What does an unknown status mean?
A: A message without a final receipt. It can be a phone that is switched off, but a growing share can also point to a route that does not return receipts.

Q: What should I measure for one-time codes?
A: Time to deliver and the share of codes that are used, by country and operator.
