Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.
LLM Judge metrics ask a language model to evaluate a conversation against a question you write. They are the most flexible metric type: you supply the prompt and the judge returns a yes/no answer, a category, or a numeric score. Audio variants evaluate the recording directly instead of the transcript.Binary, Categorical, and Numerical text judges support Standard and Agentic modes. Standard mode uses Coval’s proprietary judge by default and is recommended for most evaluations. Agentic mode investigates conversation, execution, and scenario evidence before answering, making it better suited to multi-source or evidence-heavy questions. See Standard and Agentic LLM Judges for a complete comparison.See Write judge prompts for prompt-writing guidance shared across these metrics — the Configuration section of each entry only notes what you supply. Where Scope notes Trace context, the judge can also receive a summary of the agent’s OTel spans — tool calls, execution order, internal steps — alongside the transcript.
Checking whether a specific behavior was handled correctly.
Evaluates a conversation transcript against a user-defined yes/no question using an LLM judge. This is the workhorse custom metric — best when a behavior is clearly either present or absent.What it measures — Whether the behavior described in your question is present in the transcript, expressed as a yes/no determination.When to use — Objective pass/fail checks: “Did the assistant verify identity before discussing the account?”, “Did the assistant resolve the user’s primary issue?”, “Did the assistant acknowledge the user’s concern within its first two responses?” Keep each metric to a single observation — split “resolved the issue and stayed professional” into two metrics.How it works — In Standard mode, the judge reads the transcript and your question directly. In Agentic mode, it can investigate additional evidence before answering. Both modes return YES, NO, or UNKNOWN based on the criteria you define for each outcome. When criteria use OR logic, state explicitly that ANY matching condition triggers the result, so the judge doesn’t silently require all of them.How to interpret — YES means the criteria were met, NO means they were not, and UNKNOWN means the transcript lacks enough evidence to decide. A high UNKNOWN rate usually signals a vague question — tighten the YES/NO conditions with concrete, observable behaviors.Configuration — Standard or Agentic mode; a prompt stating the yes/no question and the explicit criteria for returning YES versus NO (use clear AND/OR logic and handle edge cases); and an optional judge model selection.
Example — “Avoid Unresponsiveness”:Given the transcript, did the assistant maintain responsiveness by acknowledging all user inputs and avoiding behaviors that make the user question whether the assistant is still present?Return YES if:• The assistant responds promptly and appropriately to all user inputs• There are no long silences, skipped questions, or ignored user messages• The user does not need to ask “Are you still there?” or similar promptsReturn NO if:• The assistant fails to respond to a user input• The user asks “Are you still there?” or expresses concern about being ignored
Requires Transcript · Unit YES / NO / UNKNOWN · Scope Transcript + Trace context
Grouping calls by outcome, such as resolved, escalated, abandoned, or unresolved.
Evaluates a conversation transcript against a user-defined question using an LLM judge and returns exactly one category from a configured list. Useful when the answer is a label rather than a pass/fail or a score.What it measures — Which single category, from a set you define, best classifies the conversation.When to use — Classification tasks like call-intent labeling (technical support, billing inquiry, account management, complaint escalation) or outcome tagging (resolved, partially resolved, escalated to human, abandoned) — especially for exploratory analysis of what kinds of calls your agent handles.How it works — In Standard mode, the judge reads the transcript and your decision logic directly. In Agentic mode, it can investigate additional evidence before returning the one category name that matches.How to interpret — The returned value is the category the judge selected; categories are mutually exclusive, so each conversation maps to exactly one. If many conversations land in a catch-all bucket or the judge oscillates between two labels, your category definitions overlap or are missing a real class.Configuration — Standard or Agentic mode; a prompt with decision logic mapping conditions to categories; the category options and their definitions set in the platform’s category menu (not the prompt text); and an optional judge model selection.Requires Transcript · Unit one configured category · Scope Transcript + Trace context
Scoring how serious a behavior is instead of only passing or failing it.
Evaluates a conversation transcript against a user-defined question using an LLM judge and returns a numeric score within a configured min–max range. Reach for it when “how well” matters more than “whether”.What it measures — A graded score for the aspect described in your question, on the scale you configure.When to use — Graded qualities such as rating the assistant’s empathy or professionalism on a 1–5 scale, or scoring the technical accuracy and completeness of its explanations — anything with degrees of success rather than a clean yes/no.How it works — In Standard mode, the judge reads the transcript and scoring guidelines directly. In Agentic mode, it can investigate additional evidence before returning a single number within the configured range. Anchoring both ends of the scale to concrete behavioral indicators (what low scores look like, what high scores look like) keeps scoring consistent across evaluations.How to interpret — Higher or lower scores carry the meaning you assign in your scoring guidelines; compare against your defined low- and high-score behaviors. Scores are most useful as trends across runs — a drop after a prompt change is a stronger signal than any single absolute value.Configuration — Standard or Agentic mode; a prompt with evaluation criteria and scoring guidelines; the Min and Max score values set in the platform interface (not the prompt text); and an optional judge model selection.Requires Transcript · Unit numeric score within the configured range · Scope Transcript + Trace context
Evaluates an audio recording against a user-defined yes/no question using an LLM judge. The audio counterpart to the Binary LLM Judge, for qualities that text analysis cannot capture.What it measures — Whether an audio-only quality described in your question — tone, clarity, pacing, stuttering — is present in the recording.When to use — Yes/no questions only the audio can answer: “Did the assistant stutter?”, “Did the assistant speak clearly and at an appropriate pace?”, “Did the assistant maintain a professional vocal tone?” If the transcript alone can answer it (word choice, script compliance), use the text Binary LLM Judge instead — it is faster and cheaper.How it works — The judge listens to the recording (not the transcript) and your question, then returns YES, NO, or UNKNOWN. Always specify whose audio to evaluate — the assistant, the user, or both — so the judge isn’t ambiguous when multiple voices are present.How to interpret — YES means the audio criteria were met, NO means they were not, and UNKNOWN means there is not enough evidence to decide. Vague criteria like “good tone” produce inconsistent results — frequent UNKNOWNs or flip-flopping verdicts mean you should restate the question in observable acoustic terms (e.g., “calm, even-paced tone without audible frustration”).Configuration — A prompt stating the yes/no question and concrete acoustic criteria for YES versus NO, plus an optional audio scope to restrict evaluation to one speaker (defaults to the full recording).Requires Audio · Unit YES / NO / UNKNOWN · Scope Audio
Evaluates an audio recording against a user-defined question using an LLM judge and returns exactly one category from a configured list. The audio counterpart to the Categorical LLM Judge.What it measures — Which single category, from a set you define, best classifies an audio quality of the recording.When to use — Classifying vocal qualities into one bucket: labeling the assistant’s overall tone (e.g., warm, neutral, dismissive), the dominant emotion audible in the user’s voice (enthusiasm, frustration, sarcasm), or the recording’s audio quality (clear, muffled, distorted).How it works — The judge listens to the recording and your decision logic, then returns the one matching category name. Specify whose audio each rule applies to and define categories by observable acoustic traits, not just labels.How to interpret — The returned value is the selected category; categories are mutually exclusive, so each recording maps to exactly one. Inconsistent labels across similar recordings usually mean the category definitions describe content rather than sound — anchor them to acoustic qualities like pace, volume, and inflection.Configuration — A prompt with decision logic, the category options and definitions set in the platform’s category menu, and an optional audio scope to restrict evaluation to one speaker.Requires Audio · Unit one configured category · Scope Audio
Evaluates an audio recording against a user-defined question using an LLM judge and returns a numeric score within a configured min–max range. The audio counterpart to the Numerical LLM Judge.What it measures — A graded score for an audio-only quality of the recording, on the scale you configure.When to use — Grading vocal qualities by degree: rating speech clarity or pronunciation 1–5, scoring vocal empathy (does the assistant’s tone audibly soften when the user expresses frustration?), or rating professional vocal demeanor across a call.How it works — The judge listens to the recording and your scoring guidelines, then returns a single number within the configured range. Anchor low and high scores to concrete acoustic indicators — mumbled or rushed speech versus distinct pronunciation at a comfortable pace — and specify whose audio to grade.How to interpret — Higher or lower scores carry the meaning you assign in your scoring guidelines; compare against your defined low- and high-score behaviors. As with other graded metrics, trends across runs and voice configurations are more informative than a single score.Configuration — A prompt with audio analysis criteria and scoring guidelines, the Min and Max score values set in the platform interface, and an optional audio scope to restrict evaluation to one speaker.Requires Audio · Unit numeric score within the configured range · Scope Audio
Combining several important checks into one overall result.
Evaluates a conversation transcript against a list of criteria and reports the fraction met among the criteria the judge could evaluate. One metric covers an entire checklist instead of requiring a separate binary metric per item.What it measures — How many of several requirements a conversation satisfies at once — for example, whether the agent greeted the customer, verified identity, and offered a resolution.When to use — Checklist-style evaluations: did the response cover all required talking points, did the call follow each step of a compliance checklist, or did each test case meet its own Expected Behaviors. Pull criteria from test cases when expectations differ per scenario; use a static list when every conversation must meet the same bar.How it works — The judge evaluates each criterion independently, marking it MET, NOT_MET, or UNKNOWN, then scores the fraction met among the criteria it could evaluate (UNKNOWN criteria are excluded). The judge matches semantically, so equivalent phrasings count, but it cannot infer intent from ambiguous criteria.How to interpret — The score is 0–1, where 1.0 means every evaluated criterion was satisfied. A per-criterion breakdown shows which passed or failed and why. Frequent UNKNOWN results usually mean a criterion is too vague — rewrite it as actor + specific action + specific outcome (e.g., “Agent confirms the appointment date, time, and provider name” rather than “Agent schedules the appointment”).Configuration — A criteria list (static, or pulled from each test case’s Expected Behaviors), an optional custom evaluation prompt giving the judge domain context, and a reporting method: fraction of criteria met (default), count met, or all-criteria-met.Requires Transcript · Unit score from 0–1 (fraction of evaluated criteria met) · Scope Transcript + Trace context
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Coval Documentation","colors":{"primary":"#000000","light":"#D9D9D9","dark":"#333333"},"logo":{"light":"https://mintcdn.com/coval-2e18a559/Notp6opJUCHArykW/logo/coval-logo-vector.svg?fit=max\u0026auto=format\u0026n=Notp6opJUCHArykW\u0026q=85\u0026s=f08474458e9c5bbff1e1d7119fdc8012","dark":"https://mintcdn.com/coval-2e18a559/Notp6opJUCHArykW/logo/coval-logo-vector-white.svg?fit=max\u0026auto=format\u0026n=Notp6opJUCHArykW\u0026q=85\u0026s=ed477a66f2ca12c3c7a0289aa7c5bfb4"},"favicon":"https://mintcdn.com/coval-2e18a559/h96r_q_HmNOhXnSr/favicon.png?fit=max\u0026auto=format\u0026n=h96r_q_HmNOhXnSr\u0026q=85\u0026s=3451522324a1d00b3ad7c50ef0b825b3","api":{"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://api.coval.dev"}},"appearance":{"default":"light"},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/coval-2e18a559/images/background/frame_16opblack.svg","color":{"light":"#F2F1EE","dark":"#000000"}},"navbar":{"links":[{"href":"/changelog","label":"Changelog"},{"href":"mailto:support@coval.dev","label":"Support"},{"href":"https://www.coval.dev","label":"Website"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.coval.dev"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/covaldev","twitter":"https://x.com/covaldev"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"coval-2e18a559","hasAudioNarration":false,"actualSubdomain":"coval-2e18a559","customDomains":["docs.coval.ai"],"gitSource":{"type":"github","owner":"coval-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6add77006ee9239384403d81","collectionId":"06712fc2-77ed-4eff-aa11-bb9286da28a1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6add77006ee9239384403d81"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfd3af5f2ada04fb9911dc","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API","count":189},{"language":"default","tag":"Home","count":76},{"language":"default","tag":"Resources","count":43},{"language":"default","tag":"Simulated Conversations","count":39},{"language":"default","tag":"Metrics","count":34},{"language":"default","tag":"Agents","count":29},{"language":"default","tag":"CLI","count":21},{"language":"default","tag":"Test Sets","count":17},{"language":"default","tag":"Reviews","count":17},{"language":"default","tag":"Personas","count":15}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".cl,.cl-entry{position:relative}.cl{max-width:880px}.cl-entry{display:grid;grid-template-columns:96px 1fr;column-gap:2.5rem;padding-bottom:2.5rem}.cl-entry::before{content:\"\";position:absolute;left:96px;top:8px;bottom:-8px;width:2px;background:#dcdad5}.cl-entry:last-child::before{display:none}.cl-entry::after{content:\"\";position:absolute;left:91px;top:7px;width:12px;height:12px;border-radius:50%;background:#11161f;box-shadow:0 0 0 4px #f2f1ee}.cl-rail{text-align:center}.cl-rail__date{font-size:1.4rem;font-weight:700;color:#1a1a1a;line-height:1.1}.cl-rail__year{font-size:1.05rem;color:#9a958c;font-weight:500}.cl-rail__count{margin-top:.35rem;font-size:.8rem;color:#a8a399}.cl-content{min-width:0}.cl-highlights{background:#0f1320;border-radius:16px;padding:1.4rem 1.75rem;margin-bottom:1.25rem}.cl-highlights__label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#8b94a5}.cl-highlights__list{margin:.65rem 0 0;padding:0;list-style:none}.cl-highlights__list li{position:relative;padding-left:1.1rem;margin:.3rem 0;font-size:1rem;line-height:1.45;color:#f5f6f8}.cl-highlights__list li::before{content:\"\";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:#8b94a5}.cl-card{position:relative;background:#fff;border:1px solid #ececec;border-radius:16px;padding:1.5rem 1.75rem;margin-bottom:1rem}.cl-card__title{font-size:1.25rem;font-weight:700;color:#1a1a1a;margin-bottom:.5rem}.cl-card__desc{color:#5b5b5b;line-height:1.55;margin:0}.cl-card__extra{display:none}.cl-card__divider{border:0;border-top:1px solid #ededed;margin:1.1rem 0}.cl-card__extra p{color:#5b5b5b;line-height:1.55}.cl-card__extra a,.cl-doc-link{color:#15803d;font-weight:600;text-decoration:none}.cl-card__extra a:hover{text-decoration:none;opacity:.8}.cl-card__footer{display:flex;align-items:center;gap:.75rem;margin-top:1.1rem}.cl-pill{font-size:.8rem;font-weight:600;padding:.25rem .7rem;border-radius:999px}.cl-pill--new{background:#d9f0e1;color:#1a7f4b}.cl-pill--improved{background:#dde9fb;color:#1d4ed8}.cl-pill--fixed{background:#fdeccf;color:#b45309}.cl-cat{font-size:.85rem;color:#9aa0a6}.cl-cb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cl-toggle{margin-left:auto;cursor:pointer;user-select:none;font-size:.85rem;font-weight:500;color:#1f2433;border:1px solid #cdd5e3;border-radius:9px;padding:.45rem .85rem;white-space:nowrap}.cl-toggle:hover{background:#f6f8fc}.cl-cb:focus-visible~.cl-card__footer .cl-toggle{outline:2px solid #4f6bed;outline-offset:2px}.cl-toggle .less{display:none}.cl-cb:checked~.cl-card__extra{display:block}.cl-cb:checked~.cl-card__footer .cl-toggle .more{display:none}.cl-cb:checked~.cl-card__footer .cl-toggle .less{display:inline}.dark .cl-entry::before{background:#2a2f3a}.dark .cl-entry::after{background:#e5e7eb;box-shadow:0 0 0 4px #000}.dark .cl-rail__date{color:#f5f6f8}.dark .cl-rail__year{color:#9aa0ad}.dark .cl-rail__count{color:#7e8493}.dark .cl-card{background:#11161f;border-color:#242a36}.dark .cl-card__title{color:#f5f6f8}.dark .cl-card__desc,.dark .cl-card__extra p{color:#aab1bd}.dark .cl-card__divider{border-top-color:#262b36}.dark .cl-card__extra a,.dark .cl-doc-link{color:#4ade80}.dark .cl-pill--new{background:#10301d;color:#5cd98c}.dark .cl-pill--improved{background:#13233f;color:#7aa6f5}.dark .cl-pill--fixed{background:#3a2a10;color:#e0a955}.dark .cl-cat{color:#8b909a}.dark .cl-toggle{color:#cbd2de;border-color:#333a47}.dark .cl-toggle:hover{background:#1a2030}@media (max-width:640px){.cl-entry{grid-template-columns:1fr;row-gap:1rem}.cl-entry::after,.cl-entry::before{display:none}.cl-rail{display:flex;align-items:baseline;gap:.5rem;text-align:left}}"}],"page":{"pagePath":"concepts/metrics/types/llm-judge","slug":"/concepts/metrics/types/llm-judge","pageMetadata":{"title":"LLM Judge Metrics","description":"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.","href":"/concepts/metrics/types/llm-judge"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Info,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`LLM Judge metrics ask a language model to evaluate a conversation against a question you write. They are the most flexible metric type: you supply the prompt and the judge returns a yes/no answer, a category, or a numeric score. Audio variants evaluate the recording directly instead of the transcript.`}),`\n`,_jsxs(_components.p,{children:[`Binary, Categorical, and Numerical text judges support `,_jsx(_components.strong,{children:`Standard`}),` and `,_jsx(_components.strong,{children:`Agentic`}),` modes. Standard mode uses Coval’s proprietary judge by default and is recommended for most evaluations. Agentic mode investigates conversation, execution, and scenario evidence before answering, making it better suited to multi-source or evidence-heavy questions. See `,_jsx(_components.a,{href:`/concepts/metrics/judge-modes`,children:`Standard and Agentic LLM Judges`}),` for a complete comparison.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/concepts/metrics/writing-judge-prompts`,children:`Write judge prompts`}),` for prompt-writing guidance shared across these metrics — the Configuration section of each entry only notes what you supply. Where Scope notes `,_jsx(_components.a,{href:`/concepts/metrics/configuring-metrics#trace-context`,children:`Trace context`}),`, the judge can also receive a summary of the agent’s OTel spans — tool calls, execution order, internal steps — alongside the transcript.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Tells you`}),_jsx(_components.th,{children:`Unit`}),_jsx(_components.th,{children:`Scope`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#audio-binary-llm-judge`,children:`Audio Binary LLM Judge`})}),_jsx(_components.td,{children:`A yes/no question judged on the recording`}),_jsx(_components.td,{children:`YES / NO / UNKNOWN`}),_jsx(_components.td,{children:`Audio`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#audio-categorical-llm-judge`,children:`Audio Categorical LLM Judge`})}),_jsx(_components.td,{children:`Which category fits an audio quality`}),_jsx(_components.td,{children:`category`}),_jsx(_components.td,{children:`Audio`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#audio-numerical-llm-judge`,children:`Audio Numerical LLM Judge`})}),_jsx(_components.td,{children:`A graded score judged on the recording`}),_jsx(_components.td,{children:`score`}),_jsx(_components.td,{children:`Audio`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#binary-llm-judge`,children:`Binary LLM Judge`})}),_jsx(_components.td,{children:`The answer to your yes/no question`}),_jsx(_components.td,{children:`YES / NO / UNKNOWN`}),_jsx(_components.td,{children:`Transcript + Trace context`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#categorical-llm-judge`,children:`Categorical LLM Judge`})}),_jsx(_components.td,{children:`Which of your categories fits the conversation`}),_jsx(_components.td,{children:`category`}),_jsx(_components.td,{children:`Transcript + Trace context`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#composite-evaluation`,children:`Composite Evaluation`})}),_jsx(_components.td,{children:`Fraction of your criteria the conversation meets`}),_jsx(_components.td,{children:`0–1`}),_jsx(_components.td,{children:`Transcript + Trace context`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#numerical-llm-judge`,children:`Numerical LLM Judge`})}),_jsx(_components.td,{children:`A graded score for your question`}),_jsx(_components.td,{children:`score`}),_jsx(_components.td,{children:`Transcript + Trace context`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`binary-llm-judge`,children:`Binary LLM Judge`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Checking whether a specific behavior was handled correctly.`})}),`\n`,_jsx(_components.p,{children:`Evaluates a conversation transcript against a user-defined yes/no question using an LLM judge. This is the workhorse custom metric — best when a behavior is clearly either present or absent.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — Whether the behavior described in your question is present in the transcript, expressed as a yes/no determination.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Objective pass/fail checks: “Did the assistant verify identity before discussing the account?”, “Did the assistant resolve the user’s primary issue?”, “Did the assistant acknowledge the user’s concern within its first two responses?” Keep each metric to a single observation — split “resolved the issue and stayed professional” into two metrics.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — In Standard mode, the judge reads the transcript and your question directly. In Agentic mode, it can investigate additional evidence before answering. Both modes return YES, NO, or UNKNOWN based on the criteria you define for each outcome. When criteria use OR logic, state explicitly that ANY matching condition triggers the result, so the judge doesn’t silently require all of them.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — YES means the criteria were met, NO means they were not, and UNKNOWN means the transcript lacks enough evidence to decide. A high UNKNOWN rate usually signals a vague question — tighten the YES/NO conditions with concrete, observable behaviors.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — Standard or Agentic mode; a prompt stating the yes/no question and the explicit criteria for returning YES versus NO (use clear AND/OR logic and handle edge cases); and an optional judge model selection.`]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example — “Avoid Unresponsiveness”:`})}),_jsx(_components.p,{children:_jsx(_components.em,{children:`Given the transcript, did the assistant maintain responsiveness by acknowledging all user inputs and avoiding behaviors that make the user question whether the assistant is still present?`})}),_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Return YES if:`}),`\n`,_jsx(_components.em,{children:`• The assistant responds promptly and appropriately to all user inputs`}),`\n`,_jsx(_components.em,{children:`• There are no long silences, skipped questions, or ignored user messages`}),`\n`,_jsx(_components.em,{children:`• The user does not need to ask “Are you still there?” or similar prompts`})]}),_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Return NO if:`}),`\n`,_jsx(_components.em,{children:`• The assistant fails to respond to a user input`}),`\n`,_jsx(_components.em,{children:`• The user asks “Are you still there?” or expresses concern about being ignored`})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Transcript · `,_jsx(_components.strong,{children:`Unit`}),` YES / NO / UNKNOWN · `,_jsx(_components.strong,{children:`Scope`}),` Transcript + Trace context`]}),`\n`,_jsx(Heading,{level:`3`,id:`categorical-llm-judge`,children:`Categorical LLM Judge`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Grouping calls by outcome, such as resolved, escalated, abandoned, or unresolved.`})}),`\n`,_jsx(_components.p,{children:`Evaluates a conversation transcript against a user-defined question using an LLM judge and returns exactly one category from a configured list. Useful when the answer is a label rather than a pass/fail or a score.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — Which single category, from a set you define, best classifies the conversation.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Classification tasks like call-intent labeling (technical support, billing inquiry, account management, complaint escalation) or outcome tagging (resolved, partially resolved, escalated to human, abandoned) — especially for exploratory analysis of what kinds of calls your agent handles.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — In Standard mode, the judge reads the transcript and your decision logic directly. In Agentic mode, it can investigate additional evidence before returning the one category name that matches.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — The returned value is the category the judge selected; categories are mutually exclusive, so each conversation maps to exactly one. If many conversations land in a catch-all bucket or the judge oscillates between two labels, your category definitions overlap or are missing a real class.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — Standard or Agentic mode; a prompt with decision logic mapping conditions to categories; the category options and their definitions set in the platform’s category menu (not the prompt text); and an optional judge model selection.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Transcript · `,_jsx(_components.strong,{children:`Unit`}),` one configured category · `,_jsx(_components.strong,{children:`Scope`}),` Transcript + Trace context`]}),`\n`,_jsx(Heading,{level:`3`,id:`numerical-llm-judge`,children:`Numerical LLM Judge`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Scoring how serious a behavior is instead of only passing or failing it.`})}),`\n`,_jsx(_components.p,{children:`Evaluates a conversation transcript against a user-defined question using an LLM judge and returns a numeric score within a configured min–max range. Reach for it when “how well” matters more than “whether”.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — A graded score for the aspect described in your question, on the scale you configure.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Graded qualities such as rating the assistant’s empathy or professionalism on a 1–5 scale, or scoring the technical accuracy and completeness of its explanations — anything with degrees of success rather than a clean yes/no.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — In Standard mode, the judge reads the transcript and scoring guidelines directly. In Agentic mode, it can investigate additional evidence before returning a single number within the configured range. Anchoring both ends of the scale to concrete behavioral indicators (what low scores look like, what high scores look like) keeps scoring consistent across evaluations.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — Higher or lower scores carry the meaning you assign in your scoring guidelines; compare against your defined low- and high-score behaviors. Scores are most useful as trends across runs — a drop after a prompt change is a stronger signal than any single absolute value.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — Standard or Agentic mode; a prompt with evaluation criteria and scoring guidelines; the Min and Max score values set in the platform interface (not the prompt text); and an optional judge model selection.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Transcript · `,_jsx(_components.strong,{children:`Unit`}),` numeric score within the configured range · `,_jsx(_components.strong,{children:`Scope`}),` Transcript + Trace context`]}),`\n`,_jsx(Heading,{level:`3`,id:`audio-binary-llm-judge`,children:`Audio Binary LLM Judge`}),`\n`,_jsx(_components.p,{children:`Evaluates an audio recording against a user-defined yes/no question using an LLM judge. The audio counterpart to the Binary LLM Judge, for qualities that text analysis cannot capture.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — Whether an audio-only quality described in your question — tone, clarity, pacing, stuttering — is present in the recording.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Yes/no questions only the audio can answer: “Did the assistant stutter?”, “Did the assistant speak clearly and at an appropriate pace?”, “Did the assistant maintain a professional vocal tone?” If the transcript alone can answer it (word choice, script compliance), use the text `,_jsx(_components.a,{href:`#binary-llm-judge`,children:`Binary LLM Judge`}),` instead — it is faster and cheaper.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — The judge listens to the recording (not the transcript) and your question, then returns YES, NO, or UNKNOWN. Always specify whose audio to evaluate — the assistant, the user, or both — so the judge isn’t ambiguous when multiple voices are present.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — YES means the audio criteria were met, NO means they were not, and UNKNOWN means there is not enough evidence to decide. Vague criteria like “good tone” produce inconsistent results — frequent UNKNOWNs or flip-flopping verdicts mean you should restate the question in observable acoustic terms (e.g., “calm, even-paced tone without audible frustration”).`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — A prompt stating the yes/no question and concrete acoustic criteria for YES versus NO, plus an optional audio scope to restrict evaluation to one speaker (defaults to the full recording).`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Audio · `,_jsx(_components.strong,{children:`Unit`}),` YES / NO / UNKNOWN · `,_jsx(_components.strong,{children:`Scope`}),` Audio`]}),`\n`,_jsx(Heading,{level:`3`,id:`audio-categorical-llm-judge`,children:`Audio Categorical LLM Judge`}),`\n`,_jsx(_components.p,{children:`Evaluates an audio recording against a user-defined question using an LLM judge and returns exactly one category from a configured list. The audio counterpart to the Categorical LLM Judge.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — Which single category, from a set you define, best classifies an audio quality of the recording.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Classifying vocal qualities into one bucket: labeling the assistant’s overall tone (e.g., warm, neutral, dismissive), the dominant emotion audible in the user’s voice (enthusiasm, frustration, sarcasm), or the recording’s audio quality (clear, muffled, distorted).`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — The judge listens to the recording and your decision logic, then returns the one matching category name. Specify whose audio each rule applies to and define categories by observable acoustic traits, not just labels.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — The returned value is the selected category; categories are mutually exclusive, so each recording maps to exactly one. Inconsistent labels across similar recordings usually mean the category definitions describe content rather than sound — anchor them to acoustic qualities like pace, volume, and inflection.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — A prompt with decision logic, the category options and definitions set in the platform’s category menu, and an optional audio scope to restrict evaluation to one speaker.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Audio · `,_jsx(_components.strong,{children:`Unit`}),` one configured category · `,_jsx(_components.strong,{children:`Scope`}),` Audio`]}),`\n`,_jsx(Heading,{level:`3`,id:`audio-numerical-llm-judge`,children:`Audio Numerical LLM Judge`}),`\n`,_jsx(_components.p,{children:`Evaluates an audio recording against a user-defined question using an LLM judge and returns a numeric score within a configured min–max range. The audio counterpart to the Numerical LLM Judge.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — A graded score for an audio-only quality of the recording, on the scale you configure.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Grading vocal qualities by degree: rating speech clarity or pronunciation 1–5, scoring vocal empathy (does the assistant’s tone audibly soften when the user expresses frustration?), or rating professional vocal demeanor across a call.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — The judge listens to the recording and your scoring guidelines, then returns a single number within the configured range. Anchor low and high scores to concrete acoustic indicators — mumbled or rushed speech versus distinct pronunciation at a comfortable pace — and specify whose audio to grade.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — Higher or lower scores carry the meaning you assign in your scoring guidelines; compare against your defined low- and high-score behaviors. As with other graded metrics, trends across runs and voice configurations are more informative than a single score.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — A prompt with audio analysis criteria and scoring guidelines, the Min and Max score values set in the platform interface, and an optional audio scope to restrict evaluation to one speaker.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Audio · `,_jsx(_components.strong,{children:`Unit`}),` numeric score within the configured range · `,_jsx(_components.strong,{children:`Scope`}),` Audio`]}),`\n`,_jsx(Heading,{level:`3`,id:`composite-evaluation`,children:`Composite Evaluation`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Combining several important checks into one overall result.`})}),`\n`,_jsx(_components.p,{children:`Evaluates a conversation transcript against a list of criteria and reports the fraction met among the criteria the judge could evaluate. One metric covers an entire checklist instead of requiring a separate binary metric per item.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What it measures`}),` — How many of several requirements a conversation satisfies at once — for example, whether the agent greeted the customer, verified identity, and offered a resolution.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`When to use`}),` — Checklist-style evaluations: did the response cover all required talking points, did the call follow each step of a compliance checklist, or did each test case meet its own Expected Behaviors. Pull criteria from test cases when expectations differ per scenario; use a static list when every conversation must meet the same bar.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How it works`}),` — The judge evaluates each criterion independently, marking it MET, NOT_MET, or UNKNOWN, then scores the fraction met among the criteria it could evaluate (UNKNOWN criteria are excluded). The judge matches semantically, so equivalent phrasings count, but it cannot infer intent from ambiguous criteria.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How to interpret`}),` — The score is 0–1, where 1.0 means every evaluated criterion was satisfied. A per-criterion breakdown shows which passed or failed and why. Frequent UNKNOWN results usually mean a criterion is too vague — rewrite it as actor + specific action + specific outcome (e.g., “Agent confirms the appointment date, time, and provider name” rather than “Agent schedules the appointment”).`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Configuration`}),` — A criteria list (static, or pulled from each test case’s Expected Behaviors), an optional custom evaluation prompt giving the judge domain context, and a reporting method: fraction of criteria met (default), count met, or all-criteria-met.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Requires`}),` Transcript · `,_jsx(_components.strong,{children:`Unit`}),` score from 0–1 (fraction of evaluated criteria met) · `,_jsx(_components.strong,{children:`Scope`}),` Transcript + Trace context`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"LLM Judge Metrics","description":"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.","href":"/concepts/metrics/types/llm-judge"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Binary LLM Judge","slug":"binary-llm-judge","depth":3,"children":[]},{"title":"Categorical LLM Judge","slug":"categorical-llm-judge","depth":3,"children":[]},{"title":"Numerical LLM Judge","slug":"numerical-llm-judge","depth":3,"children":[]},{"title":"Audio Binary LLM Judge","slug":"audio-binary-llm-judge","depth":3,"children":[]},{"title":"Audio Categorical LLM Judge","slug":"audio-categorical-llm-judge","depth":3,"children":[]},{"title":"Audio Numerical LLM Judge","slug":"audio-numerical-llm-judge","depth":3,"children":[]},{"title":"Composite Evaluation","slug":"composite-evaluation","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/coval-2e18a559/96d9833460dc4be2/analytics.js"],"subdomain":"coval-2e18a559","siteName":"Coval Documentation","title":"LLM Judge Metrics - Coval Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T19:03:40.787Z","originalFileLocation":"concepts/metrics/types/llm-judge.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Coval Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"LLM Judge Metrics - Coval Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Coval Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.coval.ai/concepts/metrics/types/llm-judge\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://coval-2e18a559.mintlify.app/_mintlify/api/og/v2?division=Metric+Library\u0026amp;title=LLM+Judge+Metrics\u0026amp;description=Configurable+metrics+that+use+an+LLM+to+evaluate+a+transcript+or+recording+against+your+own+question.\u0026amp;theme=6eac43fcf99f568552f38b9e\u0026amp;signature=62508f341618d3c1dd40f0caebe11d598cd9b68bd5901aa9515a1e36d8a8c795\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"LLM Judge Metrics - Coval Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://coval-2e18a559.mintlify.app/_mintlify/api/og/v2?division=Metric+Library\u0026amp;title=LLM+Judge+Metrics\u0026amp;description=Configurable+metrics+that+use+an+LLM+to+evaluate+a+transcript+or+recording+against+your+own+question.\u0026amp;theme=6eac43fcf99f568552f38b9e\u0026amp;signature=62508f341618d3c1dd40f0caebe11d598cd9b68bd5901aa9515a1e36d8a8c795\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Coval Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.coval.ai/concepts/metrics/types/llm-judge\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/metrics/types/llm-judge.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.coval.ai/#organization\",\"name\":\"Coval Documentation\",\"url\":\"https://docs.coval.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/coval-2e18a559/Notp6opJUCHArykW/logo/coval-logo-vector.svg?fit=max\u0026auto=format\u0026n=Notp6opJUCHArykW\u0026q=85\u0026s=f08474458e9c5bbff1e1d7119fdc8012\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.coval.ai#website\",\"name\":\"Coval Documentation\",\"url\":\"https://docs.coval.ai\",\"publisher\":{\"@id\":\"https://docs.coval.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge#webpage\",\"url\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge\",\"name\":\"LLM Judge Metrics\",\"description\":\"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.\",\"dateModified\":\"2026-10-01T19:03:40.787Z\",\"isPartOf\":{\"@id\":\"https://docs.coval.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Evaluate\",\"item\":\"https://docs.coval.ai/concepts/metrics/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Metric Library\",\"item\":\"https://docs.coval.ai/concepts/metrics/types/deterministic\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"LLM Judge Metrics\",\"item\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge#article\",\"headline\":\"LLM Judge Metrics\",\"name\":\"LLM Judge Metrics\",\"description\":\"Configurable metrics that use an LLM to evaluate a transcript or recording against your own question.\",\"url\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge\",\"mainEntityOfPage\":{\"@id\":\"https://docs.coval.ai/concepts/metrics/types/llm-judge#webpage\"},\"dateModified\":\"2026-10-01T19:03:40.787Z\",\"publisher\":{\"@id\":\"https://docs.coval.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.coval.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Coval Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Coval Documentation","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Welcome to Coval","sidebarTitle":"The Continuous Quality Loop","href":"/welcome"},{"title":"Conversations","sidebarTitle":"Conversations","href":"/concepts/conversations/overview"},{"group":"Simulated Conversations","pages":[{"group":"Understand Simulated Conversations","pages":[{"title":"Simulated Conversations","sidebarTitle":"Overview","href":"/concepts/simulations/overview"},{"title":"Reports","sidebarTitle":"Reports: Compare Across Runs","href":"/concepts/simulations/reports"}]},{"group":"Resources","pages":[{"group":"Agents","pages":[{"title":"Agents","sidebarTitle":"Overview","href":"/concepts/agents/overview"},{"title":"Agent Mutations","sidebarTitle":"Mutations","href":"/concepts/agents/mutations"},{"group":"Connection Types","pages":[{"group":"Telephony","pages":[{"title":"Inbound Voice Agent","sidebarTitle":"Inbound","href":"/concepts/agents/connections/inbound-voice"},{"title":"Outbound Voice","sidebarTitle":"Outbound","href":"/concepts/agents/connections/outbound-voice"}]},{"group":"Chat","pages":[{"title":"Standard Chat","sidebarTitle":"Standard","href":"/concepts/agents/connections/chat"},{"title":"Chat WebSocket","sidebarTitle":"WebSocket","href":"/concepts/agents/connections/chat-websocket"},{"title":"Chat A2A (JSON-RPC)","sidebarTitle":"A2A (JSON-RPC)","href":"/concepts/agents/connections/chat-a2a"}]},{"group":"Voice-to-Voice","pages":[{"title":"OpenAI Realtime","href":"/concepts/agents/connections/openai-realtime"},{"title":"Gemini Live","href":"/concepts/agents/connections/gemini-live"},{"title":"Grok Realtime","href":"/concepts/agents/connections/grok-realtime"},{"title":"Deepgram Voice Agent","href":"/concepts/agents/connections/deepgram-voice-agent"}]},{"title":"SMS Simulations","sidebarTitle":"SMS","href":"/guides/simulations/sms"},{"title":"WebSocket (Voice)","href":"/concepts/agents/connections/websocket"},{"title":"Pipecat Cloud","href":"/concepts/agents/connections/pipecat"},{"title":"LiveKit","href":"/concepts/agents/connections/livekit"}]}]},{"title":"Personas","href":"/concepts/personas/overview"},{"group":"Test Sets","pages":[{"title":"Test Sets","sidebarTitle":"Overview","href":"/concepts/test-sets/overview"},{"title":"Create a Test Set","sidebarTitle":"Create a Test Set","href":"/concepts/test-sets/create"},{"title":"Input Types","sidebarTitle":"Input Types","href":"/concepts/test-sets/input-types"},{"title":"Expected Behavior \u0026 Attributes","sidebarTitle":"Expected Behavior \u0026 Attributes","href":"/concepts/test-sets/evaluation"},{"title":"API Simulation Wrappers (Beta)","sidebarTitle":"API Simulation Wrappers (Beta)","href":"/concepts/test-sets/api-simulation-wrappers"}]},{"title":"Templates","href":"/concepts/templates/overview"},{"title":"Runs \u0026 Schedules","sidebarTitle":"Runs \u0026 Schedules","href":"/concepts/runs/overview"},{"title":"Attributes","sidebarTitle":"Cross-Resource Attributes","href":"/concepts/attributes/overview"},{"title":"Versioning","sidebarTitle":"Versioning","href":"/concepts/versioning/overview"}]},{"title":"Benchmarks","sidebarTitle":"Benchmarks","href":"/concepts/benchmarks/overview"}]},{"group":"Evaluate","pages":[{"group":"Leveraging Metrics","pages":[{"title":"Metrics","sidebarTitle":"Metric Overview","href":"/concepts/metrics/overview"},{"title":"Add your first metric","sidebarTitle":"Add your first metric","href":"/concepts/metrics/quickstart"},{"title":"Choose a metric","sidebarTitle":"Choose a metric","href":"/concepts/metrics/choose-a-metric"},{"title":"Write judge prompts","sidebarTitle":"Write judge prompts","href":"/concepts/metrics/writing-judge-prompts"},{"title":"Custom SQL Metrics","sidebarTitle":"Custom SQL","href":"/concepts/metrics/sql-metrics"},{"title":"Configure metrics","sidebarTitle":"Configure metrics","href":"/concepts/metrics/configuring-metrics"},{"title":"Metric Chaining","href":"/concepts/metrics/metric-chaining"}]},{"group":"Metric Library","pages":[{"title":"Deterministic Metrics","href":"/concepts/metrics/types/deterministic"},{"title":"Statistical Metrics","href":"/concepts/metrics/types/statistical"},{"title":"ML Model Metrics","description":"Metrics powered by purpose-built machine-learning models — sentiment, voice consistency, and transcription accuracy.","href":"/concepts/metrics/types/ml-model"},{"title":"LLM Judge Metrics","href":"/concepts/metrics/types/llm-judge"},{"title":"Standard and Agentic LLM Judges","sidebarTitle":"Agentic LLM Judge","description":"Choose between Standard and Agentic mode for text-based LLM Judge metrics.","href":"/concepts/metrics/judge-modes"},{"title":"Trace Metrics","href":"/concepts/metrics/types/trace"}]}]},{"group":"Analyze","pages":[{"group":"Uploaded Conversations","pages":[{"title":"Uploaded Conversations","sidebarTitle":"Overview","href":"/concepts/uploaded-conversations/overview"},{"title":"Upload Conversation Data","sidebarTitle":"Data Formats","href":"/concepts/uploaded-conversations/uploading"},{"title":"Dashboards","sidebarTitle":"Tracking Results in Dashboards","href":"/concepts/dashboard/overview"},{"title":"Attach Audio After a Call","sidebarTitle":"Attach Audio After a Call","href":"/concepts/uploaded-conversations/async-audio-attach"},{"title":"Add Metadata After a Call","sidebarTitle":"Add Metadata After a Call","href":"/concepts/uploaded-conversations/add-metadata-after-submit"}]},{"title":"Alerts","sidebarTitle":"Alerts","href":"/concepts/alerts/overview"},{"group":"Traces","pages":[{"title":"Traces","sidebarTitle":"Overview","href":"/concepts/simulations/traces/overview"},{"group":"Set up tracing","pages":[{"title":"OpenTelemetry Traces","href":"/concepts/simulations/traces/opentelemetry"},{"title":"Tracing Skills","href":"/concepts/simulations/traces/tracing-skills"},{"title":"Tracing Wizard","href":"/concepts/simulations/traces/wizard"},{"title":"Import Traces from a Platform","sidebarTitle":"Import from a platform","href":"/concepts/simulations/traces/imports"},{"title":"Twilio ConversationRelay + OTel Traces","sidebarTitle":"Twilio ConversationRelay","href":"/guides/simulations/twilio-conversationrelay"}]},{"title":"Viewing Traces","sidebarTitle":"Viewing traces \u0026 hotspots","href":"/concepts/simulations/traces/viewing"},{"title":"Trace Search","href":"/concepts/conversations/trace-search"}]}]},{"group":"Review","pages":[{"group":"Manage Projects","root":{"title":"Human Review Projects","sidebarTitle":"Manage Projects","href":"/concepts/metrics/human-review/human-review"},"pages":[{"title":"Human Review Insights and Annotations","sidebarTitle":"Insights and Annotations","href":"/concepts/metrics/human-review/insights"}]},{"title":"Label Conversations","sidebarTitle":"Label Conversations","href":"/concepts/metrics/human-review/how-to-review"},{"title":"Improving Metrics with Human Review","sidebarTitle":"Improving Metrics with Human Review","href":"/guides/improving-metrics-with-human-review"},{"title":"Human Review via API","sidebarTitle":"API","href":"/guides/human-review-api"}]},{"group":"Cookbooks","pages":[{"title":"Handling User Authentication","sidebarTitle":"Handling User Authentication","href":"/guides/handling-authentication"},{"title":"Testing IVR","sidebarTitle":"Testing IVR","href":"/guides/testing-ivr"},{"title":"Testing Across Audio Qualities","href":"/guides/testing-across-audio-qualities"},{"title":"Testing Across Accents","href":"/guides/testing-across-accents"},{"title":"Adversarial \u0026 Red-Team Testing","href":"/guides/adversarial-red-team-testing"},{"title":"Improving your LLM Judge","sidebarTitle":"Improving your LLM Judge","href":"/guides/improving-your-llm-judge"},{"title":"Evaluating Tool Calls","href":"/use-cases/evaluating-tool-calls"}]},{"group":"Sofia","pages":[{"title":"Sofia","sidebarTitle":"Overview","href":"/sofia/overview"},{"title":"Using Sofia","sidebarTitle":"Using Sofia","href":"/sofia/using-sofia"},{"title":"Sofia investigations","sidebarTitle":"Investigations","href":"/sofia/investigations"},{"title":"Sofia in Slack (Beta)","sidebarTitle":"Sofia in Slack (Beta)","href":"/sofia/slack-beta"}]},{"group":"Reference","pages":[{"title":"API Keys","sidebarTitle":"API Keys","href":"/guides/api-keys"},{"title":"Workspaces","sidebarTitle":"Workspaces","href":"/guides/workspaces"},{"title":"Keyboard Navigation","href":"/guides/keyboard-navigation"},{"title":"GitHub Actions","href":"/getting-started/github-actions-tutorial"}]}]},{"tab":"API","icon":"square-terminal","pages":[{"title":"API","href":"/api-reference/v1/introduction"}]},{"tab":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"Developers","icon":"code","pages":[{"title":"Developers","href":"/sdks/overview"}]},{"tab":"Agents","icon":"microchip","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"Connectors","icon":"diagram-project","pages":[{"title":"Connectors","href":"/mcp/overview"}]}]},"title":"LLM Judge Metrics - Coval Documentation","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}