Analysis and metric packs

What the model extracts from each finished transcript — ready-made metric packs, your own structured outputs, written reasons, and the metrics measured straight from the audio.

Once a recording is transcribed, the job runs its analysis outputs over the transcript. These are ordinary structured outputs: a named schema, filled in per recording, stored beside the transcript.

Three kinds end up in the same list:

  • Metric packs — ready-made and locked, so a metric means the same thing in January and in September and on every agent.
  • Outputs from your catalog — the ones you already use on flows. Editing one changes it everywhere it is attached.
  • Outputs written here — belong to this job alone.

What a new job starts with

Every new job opens with the Conversation Quality Core pack and the system output already attached. A job created without opening this section still produces comparable numbers rather than transcripts alone, and a first-time account gets something on the Performance page without having to know which pack to pick.

Both are ordinary rows in the list: visible, and removable before the job starts. A default you cannot see or undo would be a setting, not a default.

Leave the list empty for transcripts only.

Metric packs

A pack behaves exactly like an output you write yourself — it is simply already written, and locked so its meaning does not drift. Each pack writes into its own named output, so its fields never collide with yours.

PackOutput nameWhat it covers
Conversation Quality CoreConversation QualitySix section scores out of 100 — opening, discovery, resolution, empathy, closing, compliance — plus resolution, satisfaction, effort, agent conduct, sentiment shift, churn risk and root cause. Start here
Sales & OutboundSales QualityQualification, discovery depth, objection handling, and whether the agent actually asked for the business
Customer SupportSupport QualityResolution quality, the effort the customer was put to, and the operational signals — repeats, transfers, knowledge gaps — that say why
Debt CollectionCollections ComplianceIdentity before disclosure, third-party leakage, mandatory notices, hardship and pressure
Healthcare & Patient IntakePatient Call QualityTwo-identifier verification, triage urgency, red-flag escalation, and whether a non-clinician stayed inside their scope
Insurance ClaimsClaims QualityClaim capture completeness, coverage and excess explained, fraud signals, and how a distressed customer was handled
Financial Advice ComplianceAdvice ComplianceSuitability, risk warnings, costs disclosure, vulnerability and pressure
Technical SupportTechnical Support QualityWhether the problem was reproduced, the cause found, the explanation pitched right, and what engineering should hear about
Appointment BookingBooking QualityBooking outcome, read-back of details, policy explained, and a no-show risk read from how the customer sounded
Retention & Win-backRetention QualityWhy they want to leave, whether anyone asked before offering a discount, and how recoverable they are
Customer ReadCustomer ReadHow this customer prefers to be dealt with — communication style, what drives their decision, emotional state, trust, how much detail they want
Agent Coaching & WellbeingAgent ReadComposure, adaptability and script dependence as coaching signals, plus the emotional load the conversation put on the agent
Script AdherenceScript AdherenceSixty measurements of how the agent followed the call script they had to follow — needs a call script, see below

The intended shape is the core pack plus one sector pack. Each pack is a separate schema in every analysis request, so three or more makes a large request and some providers cap schema size. The form shows the field count per recording as you select them, and warns if one of your own outputs is named the same as a selected pack — they would land in the same place and overwrite each other.

In the collections, healthcare and financial packs several items are worded so that true is the bad outcome. That is deliberate: a breach must never read as a high score.

Two packs need a decision before you switch them on

Customer Read infers things about a person from a single conversation. It describes how they were in that conversation, never a trait they carry — nothing in it asks for a diagnosis, and it must not be read as one. Weigh it against its own confidence score, which is deliberately low on short calls.

Agent Coaching & Wellbeing assesses an employee, and in several jurisdictions — Germany's BetrVG §87(1) no. 6 among them — that needs the works council's agreement first. Its load fields (emotional labour, hostility absorbed, recovery needed) describe the call, not the agent's ability; using them to rank people points the tool backwards. Consider running it with aggregate mode on.

Call script and Script Adherence

The Script Adherence pack measures each conversation against the call script the agents had to follow: overall and context-weighted adherence, required points, steps, questions and critical points covered, mandatory statements delivered and prohibited ones avoided, opening and closing, order, branches and if-then logic, information accuracy and verification, objection, scenario and escalation handling, deviation severity and rate, recovery after a deviation, and how naturally the script was used. Scores and percentages run 0–100; the nine problem rates are lower-is-better, and a metric the conversation gave nothing to measure is left empty rather than guessed.

It only runs against a script:

  • Choose Call script the agents followed on the job — at creation, or later in the job's settings under the outputs. The pack cannot be ticked until a script is chosen.
  • Each recording then gets a second analysis round of its own, containing only the script metrics, with the script's current version in the context. That is one more model call per recording.
  • Without a script the pack is never evaluated, even if it is attached — it is never scored against nothing.
  • Changing the script on a running job can re-analyse what is already there, exactly like changing its outputs.

Human call campaigns can carry scripts too — one for every stage, or one per stage — and measure each call against the script for the stage it was made in. The Script Adherence scorecard preset turns the pack into one weighted score.

No written reasons for script metrics

Script Adherence does not write a reason per field, even with Explain every judgement on: sixty reasons would double the cost of the round for answers nobody reads one by one.

Explain every judgement

On by default and recommended. Each score, yes/no and classification also gets a short written reason citing what was actually said.

The model works the reason out before committing to the answer, so the answers themselves come out better — not merely more explainable. It costs more per recording, and long-form fields are left alone because they already explain themselves.

The reasons are stored beside the values, so a number on the Performance page can always be traced back to the sentence that produced it. Reasons are generated from the field names as they are at the time of analysis, so renaming a field in a copy of a pack keeps its reason.

Analysis context

One line describing what these conversations are — "inbound technical support, German market", "outbound debt collection". It is given to the model with every transcript.

It is also the single most useful thing you can fill in for role detection, because the cues invert: in inbound support the customer asks the questions, in outbound sales or collections the agent does.

Which speaker is the agent

Diarization says "Speaker 1" and "Speaker 2" — first voice heard, and the other one. Neither carries identity, and every agent-specific metric depends on getting this right. Four signals are tried in order, and whichever answered is recorded on the recording, so you can always tell a channel split from a guess:

The agent channel

For stereo recordings where your telephony always puts the agent on the same channel. The most reliable signal there is, because it is a fact about the recording rather than about the conversation. Ignored for files that turn out to be mono.

A self-introduction

Matched against the agent name supplied through enrichment.

The model

One extra call per recording, and only for the ones the first two could not settle. It reads the opening of the transcript together with your analysis context, and below a confidence of 0.6 it declines rather than guesses.

The fallback

An assumption applied to the whole job: first speaker, second speaker, or leave it unresolved. Left unresolved, agent metrics stay empty rather than being attributed to whoever happened to speak first — which is the right default, because a wrong answer does not fail loudly. It swaps two people's numbers and looks plausible.

A direction (inbound, outbound, internal) can be set as a job default and is used both as a filter and as a hint here. A direction supplied per recording always wins over it.

Measured metrics

Five metrics come from the utterance timings rather than from a model, so they exist for every recording with speakers separated, whatever analysis you attached:

MetricWhat it is
Agent talk shareShare of speech time taken by the agent
Dead airShare of the recording with nobody speaking
InterruptionsTimes one speaker started while another was still talking, per conversation
Speaking rateWords per minute of actual speech
Longest monologueThe longest uninterrupted stretch by one speaker, in seconds

They are kept visibly apart from model output on the Performance page. "Share of talk time" is a fact; "empathy" is a judgement, and a reader deciding how much to trust a column needs to tell those apart at a glance. The first two need the job to know which speaker is the agent.

Redaction

Removes personal data from the transcript before it is stored and before it is sent to the analysis model: email addresses, phone numbers, IBANs, card numbers, and the agent and customer names and numbers you supplied through enrichment (matched exactly — the reliable half, and the one that stops a transcript naming somebody your reports show as a pseudonym).

Each recording stores a count of what was removed, never the values themselves, so you can confirm it ran.

Careful

This is destructive and it is not anonymity. The original text is never saved and nothing can recover it; a name nobody told us about, mentioned in passing, will survive it. It also does not make the recording private — the audio has already gone to the speech-to-text provider.