Summary

Opinions do not ship; evals do. Teams stall in model debates because the evidence is thin: product says outputs feel worse, engineering says the benchmark looks fine, and risk cannot tell a fluke from a pattern. Everyone argues from a different unwritten sample, so the loudest voice wins and the decision is slow and unsafe. This lays out a minimal, portable eval loop you can stand up in a week: define three to five KPIs, build golden sets, score on a 0-to-3 rubric, bucket errors, automate one harness, and gate on thresholds. Replace the argument with a shared number.

Context

Opinions do not ship, evals do

Teams stall in model debates because the evidence is thin and inconsistent across functions. Product says the outputs feel worse since the last change, engineering says the benchmark looks fine, and risk cannot tell whether a policy breach is a fluke or a pattern. Everyone is arguing from a different, unwritten sample, so the loudest voice wins and the decision is slow and unsafe. A minimal, portable evaluation loop replaces the argument with a shared number. It builds a common language for quality and risk, so a prompt change or a model swap is judged the same way by every function, and decisions move faster because they move on evidence.

Portable is the operative word. The loop below is deliberately small enough to stand up in a week and general enough to travel across teams and tasks. You are not building a research platform; you are building a habit. The payoff is that "is this better?" stops being a debate and becomes a query against a golden set, and "is this safe to ship?" becomes a threshold check instead of a gut call. A worked example runs through the whole loop: a claims-triage assistant that routes insurance emails, evaluated on 120 real messages. The point of the example is that every number is one a real team could reproduce in an afternoon, not a benchmark headline. When the loop is this concrete, a skeptic can rerun it, a new engineer can extend it, and a compliance reviewer can trust it, which is exactly why a portable loop beats a clever one that only its author understands.

The pattern

The minimal eval loop, in six steps

The loop is six steps, and each one is a concrete artifact you can hand to another team. Define the outcomes, build the goldens, write the rubric, bucket the errors, automate the harness, and gate on thresholds. The table names each step, its output, and a realistic size or target so the work is scoped rather than open-ended. On the claims-triage example, the numbers below are exactly what the team produced in the first sprint.

StepOutput artifactSize / targetWorked example
Define outcomes3 to 5 task-level KPIsKeep it to fiveRouting accuracy, factuality, policy fit, latency, cost
Build golden setsReal artifacts, masked50 to 200 per task120 real claim emails with the correct queue labeled
Create rubricsPlain-language 0-to-3 scaleExamples at each level0 wrong queue, 3 correct queue plus correct urgency flag
Error taxonomyNamed failure buckets5 to 8 bucketsHallucination, policy breach, retrieval miss, format, refusal
Automate harnessOne-command runnerStores traces and scoresRuns 120 cases in 4 minutes, logs input, output, score, cost
Gate with thresholdsShip lines per KPIBlock on regressionShip at routing accuracy 90%, zero unresolved policy breaches

The taxonomy is where the loop earns its keep. Binary pass or fail throws away the signal you most need: whether the model is getting better or worse and where. On the claims example, the first run scored 82% routing accuracy, and the taxonomy showed the misses were not spread evenly. Eleven of the twenty-two failures were retrieval misses on policy-number lookups, three were refusals on ambiguous urgency, and the rest were formatting. That breakdown pointed straight at the fix, better retrieval, and a single prompt change lifted routing accuracy to 91% on the next run without touching the model. A pass-or-fail score would have shown 82% then 91% and told nobody why. The same discipline scales down as well as up: on a low-volume task you might curate only 50 goldens, but the six steps do not change, and the rubric plus taxonomy still turn a vague "seems better" into a defensible decision. The cost of the loop is a day of curation and an afternoon of harness plumbing; the return is that every future model debate on this task is settled in minutes against evidence everyone already agreed to.

How to apply

Make the loop stick, then make it routine

  • Version prompts, policies, and golden sets together as one source of truth, so a rollback reverts all three and every eval run maps to an exact configuration you can reproduce.
  • Run the eval on a schedule, weekly at minimum, and track score deltas alongside cost and latency, because a quality gain that triples spend is not a win and the trend matters more than any single run.
  • Roll results up into red, amber, and green views by task and by error type, so the team can see at a glance which bucket is dragging and aim the next fix at it.
  • Attach evals to governance: make them a required input to change control and to every incident review, so no consequential change ships without a fresh score and no incident closes without a new case.
  • Start with one task and 100 goldens rather than a grand platform. A tiny loop that runs beats a comprehensive one that never ships, and the habit is what compounds.
Common pitfalls

Where portable eval loops fall apart

  • Goldens from toy data: synthetic or cherry-picked inputs that flatter the model, so scores do not transfer to production. Fix: curate from real work artifacts (tickets, emails, forms) and mask sensitive fields rather than inventing clean cases.
  • Binary pass or fail: collapsing quality to a single bit hides progression and direction. Fix: use a 0-to-3 rubric with a written example at each level, so you can see improvement inside the "fail" band.
  • No trace capture: storing only the score, so you cannot reproduce or learn from a run. Fix: log the input, output, prompt version, and score for every case, because the traces are where the debugging happens.
  • Rubric drift between graders: two people scoring the same output differently, which quietly poisons the trend. Fix: anchor each rubric level with a concrete example and spot-check agreement between graders every week.
  • Evals that live outside governance: a dashboard nobody is required to consult before shipping. Fix: wire the ship line into change control so the score is a gate, not a suggestion.
Quick-win checklist

Stand up the loop this week

  • Pick one task and curate 100 goldens from real, masked work artifacts.
  • Draft a 0-to-3 rubric for answerability and policy fit, with an example per level.
  • Stand up a one-command harness that logs input, output, score, and cost.
  • Bucket the first run into a five-part error taxonomy and aim the next fix at the biggest bucket.
  • Set a ship line per KPI and require a regression check on every change.