- Metrics — your library of everything the project can measure, plus the collectors that run it on your calls
- Studio — where you author new metrics and run evaluation batteries against real calls
- Datasets — named collections of calls or chats for evaluation, comparison, and analysis
What’s a Metric?
A metric is a single measurement collected from a call. It has:- An output type — boolean, numeric, scale, text, classification, or count
- A scope — global (one value per call) or per-participant (separate values for agent and customer)
- A context — call-level, segment-level (single utterance), or segment-range (span of conversation)
response_time is a numeric, per-participant, segment-range metric that measures how long each speaker takes to respond. identity_verified might be a boolean, global, call-level metric powered by an LLM Judge prompt.
Types of Metrics
System Metrics (Built-in)
Roark automatically collects deterministic and voice-analysis metrics for every call — no configuration needed. Voice-analysis metrics are powered by Roark’s custom voice analysis models, purpose-built to extract signal from conversational audio:- Performance — Response time, talk time, silence duration, overlap/interruptions, latency
- Emotion & Sentiment — Sentiment tracking, 64+ emotion detection, vocal cues (raised voice, frustration), stress indicators
- Speech — Interruption detection, pause analysis, repetition detection
- Compliance — Disclosure completeness, prohibited language, PII handling, prompt injection resistance
- Call Quality — Speech quality scoring (DNSMOS), accent detection, voicemail handling
Custom Metrics
Define your own metrics in Studio by picking one of three engines:| Engine | What it does | Example |
|---|---|---|
| LLM Judge | Scores each call against a natural-language prompt, evaluated by Roark Prism — our purpose-built evaluation model for voice AI conversations | ”Did the agent verify the caller’s identity?” → Boolean |
| Pattern | Composes triggers, outcomes, and time windows to detect when something happens in a call | Fire when the agent mentions a refund within 30s of a complaint |
| Formula | Computes a value from other metrics into a composite score | Weighted quality score across empathy, resolution, and latency |
- “Did the agent verify the caller’s identity?” → Boolean
- “Rate the agent’s empathy on a scale of 1-10” → Scale
- “What was the primary reason for the call?” → Classification
- “How many times did the agent attempt to upsell?” → Count
The Metrics Page
The Metrics page (Measure → Metrics) is home base for measurement:- Collectors strip — each collector runs a set of metrics on the calls its segment matches. Compact cards show each collector’s name, segment, and metrics, with a Manage collectors link and a New collector tile.
- Library — everything this project can measure, grouped by package. Filter with the All / System / Custom pills or search; clicking a metric opens it in Studio for editing and testing.
- New metric — jumps straight into Studio’s Author mode.
How It All Fits Together
Here’s the typical sequence from defining a metric to seeing results:Define or Choose a Metric
Use a built-in system metric, or create your own custom metric with an LLM Judge prompt, a Pattern, or a Formula.
Test in Studio
Author mode’s test rail lets you run your metric against real calls — add test calls and hit Run all to validate it produces the results you expect. Iterate on the prompt until you’re satisfied. To compare many metrics across many calls at once, use Evaluate mode’s Run battery.
Add Thresholds (Optional)
Set pass/fail criteria on your metric — for example,
Customer Satisfaction >= 7 or Response Time < 1000ms. Thresholds turn raw values into actionable outcomes.Decide When to Collect
Choose how and when your metric runs:
- Collectors — Automate collection on incoming calls (monitoring). Add conditions to target specific agents, sources, or call properties; leave them empty to match every call.
- Simulation plans — Attach metrics with thresholds to simulation runs to validate agent behavior before deployment.
- Collection Jobs — Run metrics on demand against existing calls via the SDK, useful for backfilling or re-processing.
Analyze Results
View metric values per call in Call History, aggregate them in Reports, and organize everything in Dashboards. Group the calls you care about into Datasets for evaluation and comparison.
Quick Start Examples
The REST API and SDKs keep the older name for collectors: the SDK client is
client.metricPolicy.* and the endpoints live under /v1/metric/policies. In the UI, these are Collectors.- Use a System Metric
- Create a Custom Metric
- Use Metrics in Simulations
System metrics like Calls where the agent’s P95 response time exceeds 1 second are automatically flagged as failures.
response_time are already collected for every call. To set a quality bar, create a collector with a threshold:Sections
System Metrics Reference
Browse all 65+ built-in metrics powered by specialized models
Custom Metrics
Create custom metrics with LLM Judge prompts, patterns, and formulas
Studio
Author metrics and run evaluation batteries against real calls
Collectors
Run sets of metrics on the calls each collector’s segment matches
Thresholds
Define pass/fail criteria for your metrics
Datasets
Group calls or chats for evaluation, comparison, and analysis
Collection Jobs
Run metrics on demand for existing calls via the SDK