Engineering · · 4 min read

LLM evaluation metrics: what to measure and what the suite costs

Which LLM evaluation metrics belong in an acceptance test, what an evaluation suite costs in engineer-days, and where offline scores mislead buyers.


Pick two metrics per use case, not ten. One should track the business outcome, one should act as a guardrail against regressions, and both should run against a frozen test set held in version control. Everything else is diagnostics for the engineers, useful during debugging and worthless in a steering committee.

Most evaluation work fails for a dull reason: the test set. Teams argue for six weeks about which grader model to use, then run it over 40 examples copied out of a demo. The choice of metric matters far less than whether the data underneath it resembles what users actually send.

The four metric families

FamilyTypical metricsHow it is computedWhere it breaks
Deterministicexact match, F1, SQL execution accuracystring or execution comparison against a reference answertasks with many correct answers
Retrievalrecall@k, precision@k, hit ratelabelled query-document pairslabels generated by the same pipeline under test
Model-gradedfaithfulness, answer relevance, instruction adherencea second model scores output against a rubricvague rubrics, or a grader sharing the generator’s blind spots
Productionthumbs-down rate, retry rate, human escalation, task completionapplication telemetrylow traffic, or users who leave rather than complain

Push as much of your task as you can into the deterministic row. A support assistant that must cite a policy ID can be scored on whether the right ID appears. A classifier wrapped in a chat interface is still a classifier. Model-graded metrics are the fallback for genuinely open-ended output, and they cost real money: 500 test cases, graded on every pull request, is a recurring inference bill that teams forget to budget.

What an evaluation suite costs to build

A first suite covering one use case runs 8 to 15 engineer-days. The split is predictable:

Multiply by whatever you pay per day; current European senior ranges sit on our daily rates page. Then add 1 to 2 days per month per use case for maintenance. The test set goes stale as the product changes, and a suite nobody updates is worse than none, because it reports green on last quarter’s problem.

Put the metric in the contract

Name the metric, the test set version and the threshold in the statement of work. “Faithfulness above 0.85 on test set v3, measured with a pinned grader model” is a condition you can argue about. “High quality responses” is not. If a vendor resists a numeric acceptance criterion at the point of signing, you will be relitigating scope at the point of delivery.

The team shipping the feature should own evaluation. Handing it to a separate QA function produces a scoreboard nobody acts on, and the same ownership logic that governs MLOps applies.

Where the scores mislead

When renting engineers for this is wrong

If your bottleneck is domain judgement rather than engineering, an external engineer will not fix it. A test set for clinical triage or contract review needs several hundred labels from people holding the professional qualification, and that time comes from your own staff. We can build the evaluation suite around their labels. We cannot produce the labels.

Two further cases where you should not call us. If the feature has no production traffic, build it and collect 500 real queries first. And if you have one use case and an in-house team with two spare weeks, 10 days of work does not justify a vendor contract. Come back when it is five use cases on a shared platform, the point at which senior AI engineers on a time-and-materials basis start to pay for themselves.