Reports
Call volume, outcomes, response latency, cold-start cost, conversation flow, and tool usage across any date range — with CSV export.
The Reports page (/reports) answers two questions about your agents: what happened on your calls, and how well the assistant actually performed on them.
Choosing a date range
Pick any single day or range of dates, interpreted in your organization's configured timezone. Presets cover Today, Last 7 days, and Last 30 days, or select an arbitrary range on the calendar (future dates are disabled). Ranges can span up to 92 days.
When you select more than one day, a call volume trend chart appears showing calls per day across the range, including days with no calls, so gaps are visible rather than skipped.
Filtering by agent
Use the workflow dropdown to scope the whole page — every card, chart and table — to a single agent, or leave it on All Workflows to see activity across your organization.
Call activity
| Card | What it shows |
|---|---|
| Total Workflow Runs | Calls processed in the selected range |
| Transfer Dispositions | Calls whose disposition indicates a transfer |
- Disposition Distribution — call outcomes, with the top 5 dispositions by volume and everything else rolled into "Other". Hover a bar for the exact count and percentage.
- Call Duration Distribution — how long calls lasted, bucketed into
0-10s,10-30s,30-60s,60-120s,120-180s, and>180s.
Disposition codes
Every call ends with a disposition code — a short label for how it turned out. Talkr maps the standard outcomes to a fixed set, so these mean the same thing across reports, the run filter, and your webhooks:
| Code | When you'll see it |
|---|---|
XFER | The call was transferred |
QUALIFIED | The agent qualified the caller |
DISQUALIFIED | The agent disqualified the caller |
COMPLETED | The conversation ran to its end, including a normal caller hang-up |
TIMEOUT | The call hit its maximum duration, or the caller went idle too long |
VOICEMAIL | Voicemail was detected |
CANCELLED | The call was cancelled before it finished |
FAILED | The call couldn't complete — a connection or system error |
UNKNOWN | The outcome couldn't be determined |
Your own outcomes still come through. If your agent sets its own disposition — say interested_call_back_tuesday — that value is passed through exactly as written rather than forced into the table above. Use the standard codes when you want consistent reporting, and your own when you need detail the standard set can't express. See End Call for setting them.
The Disposition Distribution chart shows the top 5 by volume and rolls the rest into "Other", so a long tail of custom outcomes won't crowd out the standard ones.
Responsiveness
This is the section that tells you whether your assistant feels fast. It measures the wait a caller actually experiences: from the moment they finish speaking to the moment the assistant starts replying.
Four cards report the median, 90th percentile, 95th percentile, and slowest reply time, each graded against what a caller perceives on a phone line:
| Reply time | Reads as |
|---|---|
| Under 800 ms | Excellent — lands inside a natural conversational pause |
| 800 ms – 1.2 s | Good |
| 1.2 – 2 s | Fair |
| 2 – 3 s | Slow — callers start talking over the assistant |
| Over 3 s | Very slow — callers assume the line dropped |
The reply time distribution chart shows the full shape of those waits, not just the headline numbers — useful for spotting an assistant that is usually fast but occasionally stalls, which an average would hide.
Where the time goes breaks that same reply time into its four stages, in the order the caller experiences them:
| Stage | What it covers |
|---|---|
| Turn detection | Deciding the caller has actually finished — silence detection, transcript finalization, and the turn analyzer if one is configured |
| Speech to text | Transcribing what they said |
| Model | The assistant deciding what to say |
| Text to speech | Producing the audio of the reply |
Each stage median is measured independently, so they won't add up exactly to the reply time above — use them to see which stage dominates, not as a strict decomposition.
Every figure states the number of turns it was measured across. Reply time is a per-turn measurement, not a per-call one, so a single conversation contributes many samples — these numbers are meaningful well before you have high call volume. Stages that an agent doesn't use read "not used by this pipeline" rather than showing a misleading zero: a realtime (speech-to-speech) model has no separate speech-to-text or text-to-speech stage, and turn detection is only measured when a turn analyzer is configured.
Slowest turns
The individual turns callers waited longest on, with the stage that dominated each one, the node the conversation was in, and what the caller had just said. Each row links straight to that call's detail page, so a slow number leads directly to the conversation that produced it.
Correlating with infrastructure
Infrastructure in Grafana, at the top of the page, opens your monitoring dashboards with the time range already set to match the report you're looking at — so "were we slow because the box was loaded?" is one click rather than a manual date entry. The button appears only when a Grafana instance is configured for your deployment.
Path through the flow
For each node in your agent's graph: how many calls reached it, and how many ended there.
"Ended here" is simply the last node a call reached. That includes calls that finished perfectly normally, so treat it as where conversations stop, not where they fail. A goodbye node with a high ended-here count is working as designed; an unexpected node with a high count is worth investigating.
Conversation length
Median turns per call, the shortest-to-longest spread, and the share of calls that ended after a single turn. A high single-turn share usually means callers are hanging up on the greeting — a different problem from a call that runs long and goes nowhere, which call duration alone can't distinguish.
Tool usage
Per tool: how many times it ran, how many calls it ran on, and its median and slowest durations. A tool with a slow median is a direct contributor to the response latency above.
Invocations with no recorded duration are ones where the call ended before the tool returned. They still count under "times run", so the invocation count stays accurate even when timing data is incomplete.
On the call detail page, each tool call also shows a second number — to speech — the time from the tool's result landing to the assistant actually starting to speak next. Duration tells you how long the tool itself took; to-speech tells you how much of that delay the caller actually sat through in silence, which are not always the same thing if your agent does anything else (like composing a reply) before speaking.
Cold start
Every call's first exchange is naturally slower than the ones after it — connections warm up, models load context, caches are cold. Averaged across a whole report, that one-time cost quietly inflates every latency number above without you being able to see it.
Cold start isolates it: for each stage (speech-to-text, model, text-to-speech), it compares the median of every call's first turn against the median of that same call's later turns, and reports the difference.
| Column | What it means |
|---|---|
| First turn (p50) | Median time for that stage, first turn only |
| Later turns (p50) | Median time for that stage, every turn after the first |
| Delta | How much slower the first turn is |
| Sample | Number of calls with more than one turn — calls with only a single turn have nothing to compare against, so they're excluded rather than counted as zero |
A large, consistent delta on one stage is worth investigating on its own — it points at connection or model warm-up cost specifically, separate from whatever your steady-state responsiveness numbers already say. The same comparison appears on each call's own detail page, next to its turn timeline, scoped to just that call.
Downloading a CSV
Once the range has at least one run, Download CSV exports its calls (respecting the workflow filter) with phone number, disposition, duration in seconds, and a link to each call's run detail page.