Conversation & timing
Audio Duration
Total length of the call audio. A simple descriptive measure that anchors per-minute and percentage metrics on the same call. What it measures — The total duration of the call audio in seconds. When to use — Catching calls that run far longer than the scenario should take or that end almost immediately — both often signal a stuck dialogue, an early hangup, or a failed connection. How it works — Reads the length of the audio directly from the recording. How to interpret — A descriptive measure of call length with no inherent good direction — compare against the expected length for your scenario. Sudden shifts across runs usually trace back to a dialogue or configuration change rather than an audio problem. Configuration — None (built-in). Requires Audio · Unit secondsInterruption Rate
How often the agent starts speaking while the user is still talking, reported as interruptions per minute. Only agent-over-user interruptions count — times the user interrupts the agent are excluded. What it measures — Counts agent-onset-during-user-speech events across the call and normalizes them to a per-minute rate. When to use — Conversation flow analysis — e.g., verifying that a barge-in or endpointing configuration change didn’t make the agent talk over callers, or identifying turn-taking problems reported by users. How it works — Compares the agent and user speaking segments from diarized (speaker-separated) audio and flags points where the agent’s speech begins before the user’s turn ends. How to interpret — Lower is better. A low rate means the agent waits for the user to finish before responding; an elevated rate points to a barge-in or turn-taking problem worth tracing back to your endpointing settings. Configuration — None (built-in). Requires Audio · Unit interruptions per minuteLatency
Average silence gap between the user finishing a turn and the agent starting to respond. What it measures — The average silence gap in seconds between the user finishing a turn and the agent starting to respond, counting gaps of at least 0.5 seconds. When to use — Performance evaluation across model, provider, or pipeline changes — e.g., confirming a new LLM or TTS provider didn’t slow down responses, or identifying slow turns that make conversations feel unresponsive. How it works — Reads the speaking segments detected for the call (voice activity detection runs upstream) and measures the silence between the end of each user segment and the start of the agent’s next one. How to interpret — Lower is better — lower values indicate a faster, more responsive agent. Higher values may indicate performance issues or processing bottlenecks; track across runs to catch regressions when you change models or providers. Configuration — None (built-in). Requires Audio · Unit secondsSpeaking Time Percentage
Share of the call the configured speaker was actively talking. The roles are complementary, so multiple instances give a full picture of call composition. What it measures — The percentage of total call duration that the configured speaker (default: agent) was actively speaking. When to use — Analyzing call composition — e.g., checking whether the agent dominates the conversation, identifying excessive hold music, or measuring dead air. How it works — Sums the configured role’s speaking segments and divides by total call duration; roles (agent, persona, silence, music) are complementary and sum to 100%. How to interpret — Higher values mean the speaker held a greater share of the conversation; interpret relative to expected call composition. Create one instance per role for a full breakdown, and use the highlighted waveform regions to see where each segment falls. Configuration — Speaker scope: agent, persona, or music (silence appears in the breakdown but is not selectable); default agent. Requires Audio · Unit percent · Scope AudioTime to First Audio
How quickly the conversation produces its first audible sound. What it measures — The time in milliseconds from the start of the recording until the first audible sound is detected. When to use — Evaluating system or agent latency before any speech begins — e.g., measuring how long callers wait before a telephony agent picks up and greets them. How it works — Detects the first audio frame with RMS energy (signal level) above a threshold and returns its timestamp. How to interpret — Lower is better — lower values indicate a faster start. Under 1000 ms is responsive, 1–3 s is acceptable, and above 3000 ms is noticeable lag. A value of -1 ms means no audio was detected — likely a technical failure or silent recording. Configuration — None (built-in). Requires Audio · Unit millisecondsWords per Message
Average response verbosity of the agent. What it measures — The average number of words the agent used per message across the conversation. When to use — Enforcing brevity guidelines — e.g., verifying a prompt change didn’t make the agent ramble, or comparing verbosity across prompt versions. How it works — Counts words in each agent message and averages across the conversation. How to interpret — Use this to gauge response verbosity; there is no inherent good direction — compare against your length guidelines. Track across runs to catch verbosity drift after prompt changes. Configuration — None (built-in). Requires Transcript · Unit words per messageAudio signal & prosody
Abrupt Pitch Changes
How often the agent’s pitch jumps abruptly during speech — sudden, jittery transitions that make synthesized voices sound unnatural. What it measures — How often pitch changes abruptly between frames during speech, reported as events per minute. When to use — Identifying voice models with unstable or jittery pitch, or comparing voice configurations for smoothness before rolling one out. How it works — Compares pitch frame-by-frame, flags frames exceeding a change threshold, and groups consecutive flagged frames into segments. How to interpret — Lower is better — lower values indicate smoother, more natural-sounding delivery; higher values suggest jittery or unstable pitch. Configuration — Pitch-change threshold in Hz (significant_changes_threshold_hz, default 200).
Requires Audio · Unit per minute · Scope Audio
Audio Frequency
Share of voiced speech sitting above a pitch floor — a fingerprint of a voice model’s frequency distribution. What it measures — The percentage of voiced speech frames with a fundamental frequency above the configured threshold. When to use — Comparing voice models or speech synthesis output on frequency distribution — e.g., checking that two TTS providers render the same voice with a similar pitch profile. How it works — Detects voiced frames and computes the fraction whose fundamental frequency clears the threshold (300 Hz by default). How to interpret — Use it to check that a voice model’s frequency profile stays consistent — e.g., after a provider switch or a telephony codec change shifts the spectrum. There is no universal good direction; compare against a known-good baseline for the same voice. Configuration — Frequency threshold in Hz (default 300). The configurable variant also sets the direction (above or below). Requires Audio · Unit percent · Scope AudioBackground Noise
Cleanliness of the call audio relative to background noise. What it measures — The signal-to-noise ratio (SNR) of the call audio in decibels — how loud the speech is relative to the background noise floor. When to use — Audio quality assessment and identifying poor recording conditions — e.g., validating telephony line quality before low SNR starts degrading transcription accuracy. How it works — Compares the overall speech level against the quietest audio windows to estimate the ratio. How to interpret — Higher values mean cleaner audio. Above 20 dB is excellent, 10–20 dB is acceptable for most applications, and below 10 dB may significantly impair speech recognition and comprehension. Configuration — None (built-in). Requires Audio · Unit decibelsClipping Artifact
Checking whether parts of the audio are cut off or distorted when it gets too loud.
Codec Artifact
Checking whether audio compression makes the agent sound garbled or distorted.
Dropout Artifact
Checking for signal-quality issues such as brief audio cutouts.
Loop Detection
Catching calls where the agent gets stuck repeating itself.
Non-Expressive Pauses
Pauses that arrive without preceding pitch movement, which can make the agent sound flat or monotone. What it measures — How often the agent pauses without any preceding pitch movement, reported as events per minute. When to use — Evaluating whether a voice sounds expressive and natural — e.g., detecting monotone delivery in synthesized speech or comparing voice configurations for expressiveness. How it works — Detects pauses above a minimum duration and examines the pitch trajectory in the frames just before each pause, flagging those with minimal variation. How to interpret — Lower is better — lower values mean pauses are accompanied by natural inflection; higher values suggest a flat, robotic cadence where pauses arrive without natural pitch cues. Configuration — Minimum pause duration (default 0.6 s) and pre-pause window (default 5 frames). Requires Audio · Unit per minute · Scope AudioPause Analysis
Checking for awkward silence or unusually long gaps.
strict, normal, loose) or an explicit minimum pause duration is required; optional speaker role (default agent) and anomaly z-score threshold.
Requires Audio · Unit pauses per minute · Scope Audio
Perceived Loudness
Overall call loudness, measured as integrated loudness in LUFS. What it measures — The integrated loudness of the call audio in LUFS (ITU-R BS.1770). LUFS is an absolute loudness unit, so it is better suited than relative decibels for comparing perceived volume across runs. When to use — Catching volume regressions after changing a TTS provider, voice, codec, normalization step, or telephony path — for example, when an agent becomes noticeably quieter or louder even though the conversation logic is unchanged. How it works — For whole-call metrics, Coval reads the loudness measured during audio normalization, so the metric does not re-download or re-process the audio. For speaker-scoped metrics, Coval re-measures loudness on that speaker’s audio only. The detail view can mark loudness outlier regions on the waveform when short windows differ sharply from the clip’s integrated loudness. How to interpret — Values closer to 0 LUFS are louder; more negative values are quieter. Track against your expected baseline for the same channel and voice. Large shifts usually indicate a gain, encoding, TTS, or normalization change. Speaker-scoped results are useful when one side of the call is too quiet or too loud relative to the other. Configuration — Optional outlier sensitivity in LU and target loudness for display context. Requires Audio · Unit LUFS · Scope AudioPhoneme Stretch
Checking whether the agent unnaturally holds sounds for too long.
Pitch Variability
Checking whether a speaker’s voice sounds expressive rather than flat or monotone.
Sentence Intonation
Checking whether statements and questions end with natural-sounding changes in pitch.
Spectrogram Pitch Analysis
Checking whether the agent’s audio has the natural high-frequency detail expected in human speech.
Speech Artifact Anomaly
Checking whether call audio cuts out, glitches, or sounds broken.
Phonemes per Second
Checking how quickly the agent speaks.
Syllable Rate
Agent speaking rate in syllables, with out-of-range pacing flagged. What it measures — The agent’s speaking rate in syllables per second, flagging segments where the pace falls outside the normal range for the configured language. When to use — When agent speech sounds robotic or rushed, or to validate that a new TTS model produces natural prosodic rhythm before deploying it. How it works — Measures absolute syllable rate alongside rhythm diagnostics (nPVI, inter-syllable variation) and penalizes rates outside the natural range. How to interpret — Values near 4–5 syl/s are typical for English; the natural range spans roughly 2.5–6.0 syl/s — above it suggests rushed synthesis, below it sluggish or over-paused delivery. Examine the rate together with rhythm — uniformly low variability can indicate robotic cadence. Configuration — Language (default English), a preset, and explicit low/high rate-threshold overrides. Requires Audio · Unit syllables per second · Scope AudioVocal Fry
Low, creaky vocal quality from irregular vocal cord vibration, typically at the end of phrases. What it measures — The total duration of vocal fry in the agent’s speech. When to use — Evaluating whether a voice has creaky or rough-sounding artifacts — e.g., monitoring vocal quality across voice configurations, or identifying voices where fry degrades the listener experience. How it works — Identifies frames with simultaneously low pitch, high acoustic roughness, and irregular vocal cord vibration, then groups consecutive flagged frames into fry segments. How to interpret — Lower is better — fewer seconds of fry indicate cleaner, more professional-sounding audio. Occasional brief fry is normal in natural speech; sustained or frequent fry reduces perceived quality. Configuration — Optional detector-tuning overrides via metric metadata (pitch floor and ceiling, jitter and harmonics-to-noise thresholds). Requires Audio · Unit seconds · Scope AudioVoice Quality
Acoustic naturalness of the agent’s synthesized voice, combining four acoustic dimensions into one score. What it measures — A composite naturalness score from clarity (CPPS, a voice-clarity measure), pitch perturbation (jitter), amplitude perturbation (shimmer), and pitch variability. When to use — When onboarding a new TTS provider or voice model, monitoring for voice degradation over time, or investigating reports of the agent sounding robotic, breathy, or unsteady. How it works — Computes CPPS on LUFS-normalized audio and jitter/shimmer on the raw signal over sliding windows, then combines the four dimensions into a weighted score. How to interpret — Higher scores mean more natural: 0.8 and above is excellent, 0.6–0.8 good, 0.4–0.6 fair, below 0.4 poor. High jitter or shimmer without CPPS degradation often reflects expressive prosody rather than a synthesis defect — check the sub-scores in the breakdown before drawing conclusions. Configuration — None (built-in). Requires Audio · Unit score 0–1 · Scope AudioVolume Variance
Consistency of the agent’s volume across the call. What it measures — How consistently the agent maintains volume, reported as the standard deviation of loudness in decibels. When to use — Identifying erratic loudness changes in agent speech — e.g., ensuring consistent audio quality across a call, or comparing voice model configurations for volume stability. How it works — Divides agent speech into fixed-length intervals, measures each interval’s loudness, and reports the standard deviation across intervals. How to interpret — Lower is better — lower values indicate steadier, more even audio output. The detail view shows only the problematic intervals (too loud or too soft) with their timestamps and dB values. Configuration — Loud/soft threshold preset (strict, normal, lenient) or individual dB and interval overrides. Requires Audio · Unit decibels · Scope AudioVolume-Pitch Misalignment
Checking whether a speaker’s loudness and pitch move together naturally.
min_volume_change_for_pitch_misalignment, default 7 dB).
Requires Audio · Unit severity · Scope Audio
Agent behavior
Agent Repeats Itself
Whether the agent repeated the same phrases or questions. What it measures — Whether the agent repeated the same phrases or questions multiple times in a conversation. When to use — Evaluating naturalness and language diversity — e.g., catching an agent that re-asks a question it already asked, or falls back on the same stock phrase when it gets stuck. How it works — By default an LLM judge reviews the transcript for problematic repetition; a regex mode is available for fully deterministic pattern-based detection. How to interpret — Returns YES if problematic repetition was found, NO otherwise. NO is the good direction — diverse, non-repetitive language sounds more natural. Configuration — Detection mode:llm_judge (default; optional custom prompt and judge model) or regex (pattern, similarity threshold, minimum repetition count, case sensitivity).
Requires Transcript · Unit YES/NO · Scope Transcript