Vibe Engines
YouTube
System Design

Design an Eval Pipeline

Step 1 / 9

Learn system design by building the evaluation pipeline an enterprise AI deployment is judged on.

The numbers to beat100–300casesstratifiednot uniformfrozenversion-controlled

The whole design, in writing

Learn system design by building the evaluation pipeline an enterprise AI deployment is judged on. An interactive guide covering a stratified frozen golden set, the inter-expert agreement ceiling that sets the target, an LLM judge reported with its calibration, a CI gate with per-case regression and an error budget, drift monitoring from production, and the executive view that decides the renewal.

Every step of the build above, written out: the problem each piece solves, the option that was taken and the ones that were not, the numbers, and how it fails in production.

The big idea

What is an enterprise eval pipeline?

A customer says the system “should be accurate”. That sentence is not a specification — it is the opening of a negotiation you will have again in six months, under worse conditions, when they are unhappy and you are holding a number nobody agreed to.

Build the measurement before you build the promise: a frozen golden set, a ceiling derived from how often the customer’s own experts agree with each other, a calibrated judge to grade at volume, a CI gate that blocks merges, and a drift monitor so the whole thing stays true after launch.

Step 1 · The skeleton

Run the system on some cases

The naive version: an engineer changes a prompt, tries five examples by hand, decides it looks better, and merges. It works until the change that improved those five broke forty others — and nobody finds out until the customer does.

Engineeropens a PREval Runnerruns the set
New in this step: Engineer, Eval Runner.

Stand up an Eval Runner that executes the system against a fixed set of cases and records what happened. Everything after this makes those runs comparable, trustworthy, and consequential.

What the new pieces do

Engineerclient
Anyone changing the system — a prompt edit, a retrieval tweak, a model upgrade. Every one of those is a measurement change, and none of them feels like one at the time.
Eval Runnerbackend
Executes the system under test against every case, deterministically, recording the output, the retrieved sources, the model version, the prompt version, latency and cost per case.

Step 2 · The set

Golden set: real, stratified, frozen

If the cases change between runs, no two numbers can be compared. And if you sample them uniformly, the rare high-cost cases — the ones that actually cost the customer money — barely appear, so the score is dominated by the easy majority.

Golden Setfrozen · stratifiedEval Runnerruns the set
New in this step: Golden Set.

You have 9,000 real cases and want a golden set. What do you build?

  1. Random sampling under-represents the rare, expensive cases, and refreshing it means no two runs are comparable. You would have built a number that moves for reasons nobody can attribute.

  2. Cost and latency per run make this unusable in CI, and — more importantly — most of those cases have never been checked by anyone who knew the right answer. Volume is not the constraint; label quality is.

  3. Small enough to run on every PR, stratified so the expensive tail is visible, and frozen so scores mean the same thing next quarter. Every case checked by someone who knew what they were doing.

Build a Golden Set of 100–300 real cases, stratified so rare high-cost classes are over-represented, frozen under version control, with every case labelled by someone who knew the answer.

  • 100–300cases
  • stratifiednot uniform
  • frozenversion-controlled

What the new pieces do

Golden Setdata
Real, agreed-correct cases under version control, stratified so rare high-cost cases are over-represented. Typically 100–300. Changing it is a decision with a reviewer, not a fix for a failing test.

Back of the envelope

real cases
from work the customer already did
stratified
rare high-cost classes over-represented
frozen
edits are reviewed decisions

Step 3 · The ceiling

Measure how often two experts agree

Someone in a sales meeting said 95%. Nobody knows whether 95% is easy, hard, or impossible for this task — because nobody has measured how often two humans doing the job give the same answer. Without that, every later conversation about quality is an argument between opinions.

Golden Setfrozen · stratifiedHuman Ceilingexpert agreement
New in this step: Human Ceiling.

Before promising an accuracy target, what is the single cheapest thing to measure?

  1. Public benchmarks measure a different distribution with different labelling conventions. They tell you nothing about whether 95% is achievable on this customer’s cases, which is the only question that matters here.

  2. One afternoon of work, and it establishes the practical ceiling. It also produces something more valuable: the cases they disagree on are the rules nobody had written down.

  3. Useful for the ROI story later, and it says nothing about achievable quality. You would still be promising a number with no evidence that it is reachable.

Have two experts label the same 40 cases independently, then measure agreement. That rate is your ceiling, and the targets go into the contract relative to it: “match or exceed the 72% expert baseline, with under 2% in the high-cost error class”.

  • 40 casesone afternoon
  • 2 expertsindependently
  • the ceilingnot 100%

What the new pieces do

Human Ceilingservice
Two of the customer’s own experts label the same 40 cases independently. The rate at which they agree is the practical ceiling — and the number every later quality argument rests on.

Back of the envelope

target relative to the human baseline
not a round number
separate cap on high-cost errors
costs are asymmetric
disagreements resolved
become the written rule

Step 4 · Grade at volume

An LLM judge, reported with its calibration

Humans cannot grade 300 cases on every pull request. An LLM judge can — and an uncalibrated judge produces confident numbers that nobody should act on, because you cannot tell a real regression from a judge quirk.

Golden Setfrozen · stratifiedEval Runnerruns the setHuman Ceilingexpert agreementLLM Judgegraded + calibrated
New in this step: LLM Judge.

Add an LLM Judge that receives the rubric verbatim, is blind to which system produced the output, uses a small discrete scale, and is pinned to a model version. Then grade the same cases with humans and report the agreement rate beside every score.

  • rubric verbatimnot paraphrased
  • blindto system identity
  • pinned versionupgrades are changes

What the new pieces do

LLM Judgeservice
Grades at volume against the rubric verbatim, blind to which system produced the output, pinned to a model version. Its agreement with human grades is reported beside every score it emits.

Back of the envelope

judge agreement reported
beside every score
blind and rubric-faithful
small discrete scale
version pinned
a judge upgrade is a re-baseline

Step 5 · Make it a control

The gate that blocks the merge

Everything so far produces a number. A number in a dashboard changes nothing — the prompt still gets edited on a Friday, the model still gets upgraded, and the regression still ships.

Results Storeper-case historyCI Gateblocks the merge
New in this step: Results Store, CI Gate.

Which assertion catches the failure an overall average hides?

  1. Necessary and insufficient. The average can rise while the rare expensive cases break — which is precisely the failure the customer notices first.

  2. Both belong in the gate, and neither is about correctness. A fast, cheap, wrong system passes this assertion comfortably.

  3. Per-case regression tracking. It is the assertion that earns its keep, because it detects the specific silent breakages that any aggregate metric averages away.

Add a CI Gate backed by a Results Store of per-case history. It asserts the overall score, a high-cost error budget, an empty regression list, and the latency and cost ceilings — on every PR, including every prompt change.

  • every PRincl. prompt edits
  • regressionsmust be empty
  • error budgethigh-cost class

What the new pieces do

Results Storedata
Every run, every case, every version. This is what makes "which cases used to pass and now fail?" answerable — the question that catches the failures an average hides.
CI Gatecache
Asserts overall score against the human baseline, a high-cost error budget, an empty regression list, and the latency and cost ceilings. Until an eval blocks a merge it is a document, not a control.

Back of the envelope

overall ≥ human baseline
agreed in the contract
high-cost error rate ≤ budget
asymmetric costs
zero per-case regressions
the assertion that saves you
p95 latency + cost per case
quality is not only correctness

Step 6 · Stay true

Drift: the world moves away from your test set

The golden set is a snapshot. Six months later the customer’s document mix has changed, a new vendor sends a different format, and the model provider shipped an update. The gate is still green and the users are still unhappy.

ProductionDrift Monitor
New in this step: Production, Drift Monitor. · swipe to pan the diagram

Sample production continuously and score it. Alert separately on input-distribution drift (the cases changed) and score drift (the answers got worse) — different causes, different fixes. Promote new failure classes back into the golden set as a reviewed decision.

  • sampledcontinuously
  • two alertsdistribution vs score
  • new classespromoted to golden

What the new pieces do

Productionclient
The customer’s live workload. It is the only source of the cases you did not think of, and the distribution it produces moves away from your test set continuously.
Drift Monitorservice
Scores a continuous sample of live traffic, alerting separately on input-distribution drift and on score drift — they have different causes and different fixes.

Back of the envelope

production sampling
the only source of unknown cases
distribution drift ≠ score drift
separate alerts
user correction control
labels for free

Step 7 · The number that decides

The business view

Your dashboards show F1, judge agreement and p95 latency. The person deciding the renewal does not know what any of those are, and will make the decision anyway — on whatever they can remember.

Results Storeper-case historyCI Gateblocks the mergeBusiness Viewthe agreed number
New in this step: Business View.

Publish one agreed business metric on a fixed cadence, traceable back to eval runs and adoption telemetry rather than to anecdote. Exception-resolution rate. Hours returned. Deflection rate. Whatever they agreed to in step 3.

  • one numberthey agreed to
  • fixed cadencenot at renewal
  • traceableto eval runs

What the new pieces do

Business Viewdata
One metric the customer agreed to, on a cadence, traceable to eval runs and adoption telemetry. This is the artefact the renewal conversation actually turns on.

Back of the envelope

one agreed business metric
in their language
delivered on a cadence
a first review at renewal reads as a sales meeting
traceable to runs
evidence, not assertion

You did it

You just designed an enterprise eval pipeline.

EngineerProductionGolden SetEval RunnerHuman CeilingLLM JudgeDrift MonitorResults StoreCI GateBusiness View
The finished design, end to end. · swipe to pan the diagram

Everything you assembled, in order

  • Measure the human ceiling first — the target is relative to expert agreement, never a round number.
  • Golden set: real, stratified toward high-cost cases, frozen, edited only by reviewed decision.
  • A judge without a reported human-agreement rate is an instrument without a calibration.
  • The gate must assert per-case regressions, not just an average — averages hide the expensive failures.
  • Sample production continuously; alert separately on distribution drift and score drift.
  • Report one agreed business metric on a cadence, traceable to the runs behind it.

Where an interviewer pokes next

Getting the boxes right is the easy half. These are the questions that separate a candidate who drew the diagram from one who has run the thing. Answer each one out loud before you open it.

  1. Why measure inter-expert agreement before promising an accuracy target?

    Because it establishes the practical ceiling, and almost nobody measures it. If two of the customer’s own senior people, labelling the same forty cases independently, agree only 72% of the time, then a promise of 95% is a promise to exceed human performance on a task where the humans themselves do not have a consistent answer — and you will be held to it. Measuring the ceiling costs one afternoon and changes every subsequent conversation: targets become defensible ("match or exceed the 72% baseline, with under 2% in the high-cost class") rather than aspirational. The disagreements are worth as much as the number: the cases the experts split on are the business rules nobody had written down, and resolving them produces the labelling guide, the judge rubric and the acceptance criteria simultaneously.

  2. Why must the golden set be frozen and stratified?

    Frozen, because a set that changes between runs makes every comparison meaningless — the score moves for reasons nobody can attribute, the trend line becomes fiction, and per-case regression tracking stops working entirely. The failure mode is rarely deliberate; it is a case being quietly edited because it was failing, on the reasonable-sounding grounds that it was wrong anyway. Treat any change as a reviewed decision with a recorded reason, exactly like a schema migration. Stratified, because uniform sampling reproduces the production distribution, in which the rare high-cost cases are rare — so the score is dominated by the easy majority and stays green while exactly the cases that cost the customer money break. Over-represent the expensive tail deliberately, and report it as its own number.

  3. What does judge calibration actually mean, and why report it?

    Calibration is the measured rate at which the LLM judge agrees with human graders on the same cases. Without it you have a number with unknown accuracy: you cannot distinguish a real regression from a judge quirk, and the first time a customer disputes a score you have no answer. So grade a subset with humans, publish the agreement rate beside every score the judge produces, and inspect every disagreement — the disagreements usually reveal an ambiguous rubric rather than a bad judge. Practical rules follow from treating the judge as an instrument: give it the rubric verbatim, keep it blind to which system produced the output, use a small discrete scale rather than a continuous one, and pin the model version, because upgrading the judge is a measurement change that re-baselines every historical score.

  4. Why is per-case regression tracking the assertion that matters?

    Because an aggregate can improve while specific cases silently break, and in a domain with asymmetric error costs those specific cases are usually the expensive ones. A prompt change might raise the overall score by two points by handling common cases slightly better, while breaking the handful of rare cases that carry real financial or regulatory consequence — and the average absorbs it invisibly. Keeping per-case history in a results store makes "which cases used to pass and now fail?" answerable, and asserting that list is empty catches the class of failure no aggregate metric can. It is also the assertion that makes engineers trust the gate, because when it fires it points at something concrete rather than at a number that moved.

  5. What breaks first after launch, and how do you detect it?

    The assumption that the test set still resembles reality. The customer’s document mix shifts, a new vendor sends a different format, users start asking questions the system was never evaluated on, and the model provider ships an update — all while the gate stays green. Detection means sampling production continuously and scoring it, with two separate alerts: input-distribution drift (the cases changed) and score drift (the answers got worse). They have different causes and different fixes, and collapsing them into one alert makes both harder to act on. New failure classes found this way get promoted into the golden set as a reviewed decision, which is how the set stays honest without becoming a moving target. In a disconnected or air-gapped deployment none of this telemetry can leave, so the equivalent design is a golden set that lives inside the boundary and is run by the customer’s own operators, with only aggregate scores coming back out.

Check yourself — the answers, and why

Eight steps in, these are the calls you should be able to make cold. Pick one, then read why.

  1. The right accuracy target for a client deployment is set against…

    • A round number like 95%
    • Measured inter-expert agreement on real cases
    • A public benchmark

    Promising more than two of their own experts agree with each other guarantees a fight you lose later.

  2. A golden set should be…

    • Refreshed every run to stay current
    • Frozen and stratified toward rare high-cost cases
    • As large as possible

    Frozen so scores are comparable; stratified so the expensive tail is visible rather than averaged away.

  3. An LLM judge’s score should always be reported with…

    • Its confidence
    • Its measured agreement with human graders
    • The model temperature

    A judge is a measuring instrument; without a calibration figure the number is not evidence.

  4. Which CI assertion catches the failure an average hides?

    • Overall score ≥ baseline
    • The list of cases that used to pass and now fail is empty
    • p95 latency ≤ 4s

    Per-case regression tracking — an average can rise while the rare expensive cases break.

  5. Drift monitoring should alert separately on…

    • Cost and latency
    • Input-distribution drift and score drift
    • CPU and memory

    The cases changing and the answers getting worse have different causes and different fixes.

How you’d open this design in an interview

Before any boxes: agree what it must do, pin the qualities that shape everything, then build — naming each trade-off as you make it. The walkthrough above is that exact order.

What it must do

Agree on these before drawing a single box.

  • Golden set: real, stratified, frozen cases with agreed-correct answers — changed by decision, not by convenience.
  • Ceiling: measure how often two of the customer’s own experts agree, and set the target relative to that.
  • Judge: grade at volume with an LLM, and report the judge’s agreement with humans beside every score.
  • Gate: block the merge on overall score, a high-cost error budget, and per-case regressions.
  • Drift: sample production, detect the distribution moving away from the golden set, and feed new cases back.
  • Report: one number the business agreed to, on a cadence, in the customer’s language.

The qualities that shape everything

Each one names the mechanism that buys it.

A target anyone can defend
Inter-expert agreement measured on 40 real cases before anything is promised — the practical ceiling, and the number every later argument rests on.
Scores that mean the same thing next quarter
A frozen, version-controlled golden set: stratified so rare high-cost cases are over-represented, and changed only by an explicit, reviewed decision.
Grading at volume without lying
An LLM judge pinned to a model version, blind to which system produced the output, with its human-agreement rate reported next to every score it produces.
Regressions cannot merge
A CI gate asserting overall score, a high-cost error budget, and an empty regression list — the third assertion is what catches an average that improved while the expensive cases broke.
Reality moving away from the test set
Sampled production traffic scored continuously, with distribution drift and score drift alerting separately, and new failure classes promoted into the golden set.
The renewal conversation has evidence
One agreed business metric on a fixed cadence, traceable to eval runs and adoption telemetry rather than to anecdote.

The trade-offs you say out loud

Senior signal isn’t the boxes — it’s naming what you gave up and why it was the right price.

A target set against inter-expert agreement over a round number like 95%

Promising accuracy above the rate at which two of the customer’s own experts agree with each other guarantees a fight you cannot win. Measuring the ceiling first costs one afternoon and reframes every subsequent quality conversation — including the ones in the contract.

A frozen, stratified golden set over sampling fresh cases each run

A set that changes between runs makes every comparison meaningless, and uniform sampling under-represents exactly the rare, expensive cases that matter. Freeze it, stratify it, and treat editing it as a decision with a reviewer — not as a fix for a failing test.

An LLM judge with a reported calibration over an LLM judge with a score

A judge is a measuring instrument, and an uncalibrated instrument produces confident numbers that nobody should act on. Grading the same cases with humans and publishing the agreement rate beside every score is what makes the judge’s output evidence rather than decoration.

Per-case regression assertions over an overall average threshold

An average can improve while the rare, high-cost cases silently break — and those are the failures a customer notices. Tracking which specific cases used to pass and now fail is the assertion that earns its keep in a real deployment.

Sampling production continuously over trusting the pre-launch eval

The golden set is a snapshot of a distribution that moves. Without continuous sampling you learn about drift from an unhappy customer, months after the model, the data or the users changed — and by then the argument is about blame rather than about the number.

What this teaches

Learn system design by building the evaluation pipeline an enterprise AI deployment is judged on. An interactive guide covering a stratified frozen golden set, the inter-expert agreement ceiling that sets the target, an LLM judge reported with its calibration, a CI gate with per-case regression and an error budget, drift monitoring from production, and the executive view that decides the renewal.

Key takeaways

  • Measure the human ceiling first — the target is relative to expert agreement, never a round number.
  • Golden set: real, stratified toward high-cost cases, frozen, edited only by reviewed decision.
  • A judge without a reported human-agreement rate is an instrument without a calibration.
  • The gate must assert per-case regressions, not just an average — averages hide the expensive failures.
  • Sample production continuously; alert separately on distribution drift and score drift.
  • Report one agreed business metric on a cadence, traceable to the runs behind it.

Concepts covered

  • What is an enterprise eval pipeline?
  • Run the system on some cases
  • Golden set: real, stratified, frozen
  • Measure how often two experts agree
  • An LLM judge, reported with its calibration
  • The gate that blocks the merge
  • Drift: the world moves away from your test set
  • The business view
built to turn "it should be accurate" into a gate that blocks a merge — ceiling, judge, gate, drift.
Finished this one? 0 / 65 System Designs done

Explore the topic

See this alongside everything else on the same subject — handbooks, system designs, challenges and tools, in one place.

More System Designs