SMS metrics
The Metrics page in the Bird dashboard is where you see how your SMS is doing: how much of it reached the handset, whether your failure rate is drifting toward trouble, how many segments you're sending, and what it's costing you. This guide walks through that page: what each number means and when to act on it.
Metrics are the aggregate view across everything your workspace sends. For the lifecycle of a single message (did this number receive it), see the SMS log and events.
Read your metrics
The Metrics page lives at SMS → Metrics in the Bird dashboard. Every number respects the range picker in the top right (last 24 hours, 7, 30, or 90 days), and the numbers update as new sends and delivery receipts arrive.
Rates are computed against event time, not send time: a delivery receipt that arrives today for a message accepted yesterday lands in today's numbers. accepted is the denominator for both rate cards; it's the count of messages Bird admitted in the range, and every rate is measured against it.

The summary tiles
The row of tiles at the top is your at-a-glance health check:
- Delivery rate: delivered messages as a share of accepted. Bird marks it Healthy above 95%; at or below that, something is failing to reach handsets (bad numbers, blocked content, or routing problems) and the failure breakdown tells you which. The tile also shows the change versus the previous period.
- Failure rate: the share of accepted messages that ended undelivered, failed, or expired. The tile shows your rate against a 5% limit with a progress bar; reaching it flips the tile to Risk. A sustained high failure rate usually means list-quality or content problems.
- Accepted: the raw count of messages accepted in the range, with the number handed on to carriers (sent) and the change versus the previous period.
- Segments: the total billable segments sent and the spend behind them, with the change versus the previous period. Because a message can be several segments, this is usually higher than your accepted count; a gap that widens means longer messages or a shift to the UCS-2 encoding.
The 95% and 5% thresholds are the guardrails Bird uses to color the tiles. They're deliberately conservative; a tile can read Healthy and still have room to improve.
Delivery over time
The delivery chart plots accepted, delivered, and failed volume across the range so you can spot trends and one-off spikes: a bad campaign, a number-list import gone wrong, a route that degraded. The failed series here rolls up every non-delivery outcome (undelivered, failed, and expired) into one line. The bucket size follows the range (hourly for 24 hours, daily for longer windows).
Failure rate and its causes
Below the delivery chart, the Metrics page plots the per-bucket failure rate across the range, and an outcome histogram breaks your non-deliveries down by cause, so a rising failure rate points you at the fix:
- Undelivered: a non-permanent non-delivery. The handset was off or unreachable.
- Failed: a permanent failure; the message will not be delivered.
- Expired: the message's validity window elapsed before a delivery receipt arrived.
- Rejected: the message was refused (a policy check, a failed charge, or a carrier that turned it away) rather than attempted and lost.
Each bucket shows its count, and all but rejected show their share of accepted messages. When reconciling the numbers: the Failure rate tile counts undelivered, failed, and expired, while rejected is shown in this histogram but sits outside the failure-rate math. A rejected message was refused rather than lost in delivery, so it's tracked separately from delivery failures.
Delivery latency
The latency table shows how long messages take to move through the pipeline, split into Processing (Bird accepting the message and handing it to a carrier), Delivery (the carrier delivering to the handset), and Total (end to end), each at the p50, p95, and p99 percentiles. Use p95/p99 to catch the slow tail; a healthy median with a slow p99 usually points at one carrier or destination lagging. Latency is a whole-window figure, and a percentile with no data for the range shows a dash.

Programmatic access
The metrics on this page are a dashboard surface; aggregate SMS statistics are not part of the public API today. To build your own reporting, consume webhook events as they happen, or page through GET /v1/sms/messages, whose filters (status, category, tag, time window) cover most reconciliation jobs.
Next steps
- SMS log: the per-message view behind the aggregate numbers
- Events: the per-message event stream the metrics are derived from
- Sending SMS: categories, tags, and the segment model behind segment and spend counts