> ## Documentation Index
> Fetch the complete documentation index at: https://docs.recepta.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Analytics

> The numbers on your dashboard, what they actually tell you, and which ones to act on.

The dashboard aggregates what your agent has been doing. Use it to notice that something changed; use [transcripts](/receptionist/call-logs) to work out why.

## What's tracked

<AccordionGroup>
  <Accordion title="Calls" icon="phone">
    Total calls, completed calls, average duration, and total cost — with a daily breakdown so you can see the shape of your week.

    Filter by date range, and by [location](/account/locations) if you run more than one.
  </Accordion>

  <Accordion title="Messaging" icon="comments">
    SMS conversation and message counts. Conversations are the number that matters for [billing](/account/usage-and-overages); messages tell you how long exchanges run.
  </Accordion>

  <Accordion title="Configuration" icon="gear">
    Counts of agents, phone numbers, and knowledge bases in your workspace. Useful mostly as a sanity check that something you set up actually exists.
  </Accordion>
</AccordionGroup>

## The numbers worth acting on

Most dashboard metrics are descriptive. These four change what you do:

| Metric                       | What a bad reading means                                                                                              |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **Completed vs total calls** | A gap means calls are ending early. Read the short ones — usually hangups in the greeting.                            |
| **Transfer rate**            | Rising escalations almost always mean a [knowledge gap](/receptionist/knowledge-base), not a busier month.            |
| **Average duration**         | Falling sharply suggests callers giving up. Climbing steadily suggests the agent hunting for answers it doesn't have. |
| **Calls vs bookings**        | The one that matters. Lots of good conversations and few bookings usually means availability or offer, not the agent. |

<Tip>
  Look at trend, not absolute value. "Average duration is 2m40s" tells you nothing on its own. "Average duration halved on Tuesday" tells you to go read Tuesday's transcripts.
</Tip>

## Numbers tell you where; transcripts tell you why

This is the whole workflow:

<Steps>
  <Step title="Spot a change in the aggregate">
    A rate moved. That's the signal, not the answer.
  </Step>

  <Step title="Filter call logs to that window">
    Same date range, same category — failed calls, transfers, short calls.
  </Step>

  <Step title="Read five transcripts">
    Five is almost always enough to see the pattern. Ten is rarely more informative.
  </Step>

  <Step title="Fix the underlying input and re-test">
    Then watch the metric over the following week to confirm it moved.
  </Step>
</Steps>

## Cost

Per-call cost lets you sanity-check spend against your plan. It isn't the same as your invoice — billing runs on included allowances and overage rates. See [Plans](/plans) and [Usage & overages](/account/usage-and-overages) for what you'll actually pay.

## Over the API

Call analytics are available programmatically if you want them in your own reporting:

```bash theme={null}
curl "https://api.recepta.ai/api/v1/api/calls/analytics?startDate=2026-07-01&endDate=2026-07-31" \
  -H "x-api-key: $RECEPTA_API_KEY"
```

Requires the `analytics:read` permission — see [Authentication](/api-reference/authentication) and the [Calls API](/api-reference/calls).

<Note>
  For live counting rather than periodic pulls, subscribe to `call.ended` via [webhooks](/api-reference/webhooks) and aggregate on your side. It's faster and costs no API requests.
</Note>
