Report formulas
Time definitions
- Received (
received_at): when the system received an incoming message (webhook or sync). - Published (
published_at): when a reply was published on Threads. - The filter period uses the date the conversation was created, unless stated otherwise. Time zone: Asia/Jakarta.
- All numbers follow the Threads account access of the member viewing them.
Formulas
| Metric | Formula |
|---|---|
| Incoming conversations | Number of conversations created in the period |
| Incoming messages | Number of incoming messages received in the period |
| Replies sent | Number of replies with status Sent that were published in the period |
| Replied | Conversations in the period with at least 1 published reply |
| Unanswered (backlog) | Conversations with status Unanswered right now, regardless of period (follows the account & type filters) |
| Response rate | Replied ÷ Incoming conversations × 100% |
| First response time (FRT) | Time the first reply was published − time the first incoming message was received, per conversation |
| Average FRT | Average FRT of replied conversations in the period (the median is shown next to it) |
| Resolution time | Time marked Solved − time created (Solved conversations only) |
| Solved rate | Solved conversations ÷ Incoming conversations × 100% |
| Escalation rate | Conversations with a ticket ÷ Incoming conversations × 100% |
| Reopen rate | Conversations reopened at least once ÷ Incoming conversations × 100% |
| Ticket resolution time | Time marked Resolved − time the ticket was created |
| Agent handling time | Average time between the first unanswered incoming message and the agent's next reply in the same conversation |
| Agent active days | Number of distinct dates on which the agent sent a reply or a ticket discussion message |
Example calculation
Period 1–7 October, one account, five conversations:
| Conversation | Created | First reply | Status | Notes |
|---|---|---|---|---|
| A | 5 Oct 10:00 | 10:05 (5 min) | Solved 12:00 | 2 incoming messages, 2 replies |
| B | 5 Oct 11:00 | 11:10 (10 min) | Replied | |
| C | 6 Oct 09:00 | - | Unanswered | failed reply isn't counted |
| D | 6 Oct 15:00 | 15:20 (20 min) | Closed | reopened 1×, has a ticket |
| E | 7 Oct 08:00 | - | Unanswered |
- Incoming conversations = 5; Replied = 3 (A, B, D); Response rate = 3 ÷ 5 = 60%.
- Average FRT = (5 + 10 + 20) ÷ 3 = 11 min 40 s (shown as "11 min"); median = 10 min.
- Resolution time, A only: 12:00 − 10:00 = 2 hours. Solved rate = 1 ÷ 5 = 20%.
- Escalation rate = 1 ÷ 5 = 20% (D). Reopen rate = 1 ÷ 5 = 20% (D).
- Unanswered = C + E + older conversations that are still Unanswered (not tied to the period).
Need the same numbers in another system? Use GET /api/v1/reports/summary (see Public API).