AI agents

Scoring Agent Output Against a Human Baseline: A Rubric

Antonio Evans9 min read

A split scene: on the left, a person reviewing a printed page with a colored pen; on the right, a laptop showing a table with rows for criteria and columns for scores from two raters.
Key points

Key points

  1. 1Build the rubric before the shadow comparison: criteria, anchored examples for each level, and a pass bar set before you look at any output.
  2. 2Separate correctness from style so a well-written wrong answer cannot pass on tone alone.
  3. 3Score a sample with two independent raters, measure agreement, then fix the anchors where they diverge.
  4. 4Only compare agent and human scores once the raters have converged to a known level of agreement.

Why shadow mode needs a scoring method, not a vibe check

Shadow deployment runs a new model or agent against live or realistic traffic while the existing system keeps serving users, and the shadow outputs are logged for offline comparison rather than returned to anyone Atlan's shadow deployment overview. That setup gives you something valuable: the same inputs through two systems, side by side, with no user risk. It does not give you a verdict. The verdict comes from how you score the two sets of outputs, and that is where most shadow comparisons quietly fail.

The failure pattern is familiar. Someone reads twenty output pairs, forms an impression, and writes a memo that says the agent is "roughly as good" or "not there yet." The next person reads the same pairs, weights different things, and reaches a different conclusion. Nothing about this is repeatable, and nothing about it survives a challenge from legal, compliance, or the executive who has to sign the rollout.

A rubric fixes this by moving the judgment one step earlier. Instead of deciding per output whether it is good, you decide once, in writing, what good looks like, and then apply that decision mechanically. The Arize glossary entry on evaluation rubrics puts the point plainly: a rubric is the artifact that settles the argument about quality once, in writing, before anyone starts scoring. Without it, the subjectivity does not disappear, it just hides inside every individual scoring decision.

There is a second reason this matters more for agents than for single-response models. An agent can reach a correct final answer through a broken path, reference the wrong document, or skip a verification step and get lucky. Google's evaluation guidance calls this a "silent failure" and recommends scoring the trajectory of reasoning and tool calls, not only the final message Google Cloud's agent evaluation guide. A rubric that scores only "was the answer right" will rate a lucky agent the same as a reliable one.

Step 1: Define criteria that separate correctness from style

Start by listing what actually matters for the task, then split the list along one line: things that are true or false, and things that are better or worse. Mixing them into a single score is the most common rubric defect, because a fluent, confident, wrong answer can outscore a blunt, correct one.

The Label Studio guide to scaling evaluation recommends a short set of clear dimensions applied consistently rather than a long checklist that leaves room for interpretation. Four to six criteria is usually right. Useful splits for agent work:

Criterion typeExample criteriaHow it should be scored
Correctness (verifiable)Factual accuracy, groundedness in retrieved sources, task completion, correct tool selectionBinary or code-checkable where possible
Process (verifiable from logs)Whether required steps ran, whether identity was verified, whether the refund policy was followedBinary, read from the trace
Style (judgment)Tone, concision, structure, formattingSmall graded scale, 3 or 4 levels
Safety and policyNo dosage advice, disclaimers present, no prompt-injection complianceBinary, pass or fail

Two rules make this table useful. First, one dimension per rubric: faithfulness and tone are separate rubrics, not one combined score, because a reviewer asked to trade an ungrounded but pleasant answer against an accurate but blunt one will resolve that tradeoff differently every time Arize. Second, write each level as an observable condition rather than an adjective. "Every factual claim appears in the retrieved context" is checkable. "Mostly accurate" is not.

Where a check is deterministic, do not use a human or a model at all. Google's framework separates code-based evaluation, which is the cheapest and most deterministic, from human evaluation, which establishes ground truth for subjective quality Google Cloud. If the output must be valid JSON, or a number must fall in a range, that is a function call, not a rubric line.

Step 2: Write anchored examples at several quality levels

A definition drifts in interpretation; an example anchors it. Every level of every graded criterion needs one worked example taken from real outputs, not invented ones Arize.

The education literature has done this for decades and the mechanics transfer directly. Texas's appraiser guidance recommends that teachers and appraisers collaboratively build "look fors" for each rubric descriptor: concrete lists of what the teacher and students are doing when a given level is present TEA inter-rater reliability FAQ. The same exercise for an agent rubric means writing, under each level, what the output contains or omits.

A worked example for a single criterion, groundedness in a support agent that answers return-policy questions:

  • Level 0: the answer states a return window that does not appear in any retrieved policy document.
  • Level 1: the answer is broadly consistent with the policy but omits the exception for opened items, which the user needed.
  • Level 2: the answer states the correct window and the opened-item exception, both traceable to a retrieved document.
  • Level 3: as level 2, and it also flags that the customer's order falls inside the window, which the user did not ask about but needed.

Note what level 3 does: it earns its place by surfacing a constraint rather than by being more polite. That is a design choice you should make explicitly, because otherwise raters will quietly reward length and polish.

Keep the anchor set small and versioned. The ground truth set that anchors a rubric is deliberately smaller than the full benchmark, because its job is to be a reusable reference point as reviewers change Label Studio. Ten to twenty anchored examples per criterion is enough to expose ambiguity; a hundred is a maintenance burden nobody keeps current.

Step 3: Set the pass bar before you see any results

This is the step teams skip, and it is the one that makes the score defensible. Decide in advance what number counts as a pass, write it down with a date, and share it with whoever will challenge the result later.

Two shapes of pass bar work:

  • Absolute threshold per criterion. Correctness must reach a stated rate; safety must be 100 percent on the sample. Anything below fails regardless of other scores.
  • Non-inferiority against the human baseline. The agent may be worse than the human on a criterion by no more than a stated margin. This is the right shape when the question is "can we remove the human from the loop" rather than "is the agent good."

Then define the gate as a combination. For example: safety at 100 percent, correctness at or above the human baseline minus a fixed margin, and no single criterion below its floor. Google frames this as a quality gate that a system must clear before promotion, with success criteria specific enough to lead directly to measurable metrics Google Cloud. A vague goal like "the agent should be helpful" cannot gate anything; a statement like "factually correct, concise, and fully grounded in known documents" can.

Pre-registering the bar also protects you from a specific bias. If you set the threshold after seeing scores, you will unconsciously set it just below whatever the agent achieved. The number stops being a standard and becomes a description.

Step 4: Run the scoring with two independent raters

Score a sample, not the whole log. Start with thirty to fifty output pairs drawn to cover routine cases, hard cases, and edge cases, since a golden set should include real-world inputs across complexity levels DeepEval's dataset documentation.

Give both raters the same package: the rubric, the anchors, the evidence rules (what they may look at, for example whether they see the agent's tool trace or only the final text), and the scoring sheet. Then keep them independent. No discussion during scoring, no shared spreadsheet where one rater can see the other's marks.

A minimal scoring sheet keeps the comparison honest:

case_id, system (agent|human), criterion, level (0-3), evidence_quote, rater_id, notes

Two practical details raise agreement before you have even measured it. First, tell raters to score from the trace, not from memory, because taking notes during observation reduces cognitive load and gives a reference point for justifying a score later TEA. Second, blind the system label. If a rater knows which output came from the agent, expectations leak into the score, and the comparison stops measuring quality and starts measuring prior belief.

If your volume makes two human raters per case expensive, the standard compromise is a calibrated model judge used at scale, with humans on a stratified sample. LLM judges apply the same criteria to every output and can reach high agreement with human evaluators, but they must first be aligned to human judgments on a labeled set MLflow's LLM-as-a-judge guide. That alignment step is the same calibration exercise described below, with the model in the rater chair.

Step 5: Measure agreement, then fix the anchors

Now you can compute something. Score agreement per criterion rather than overall, because a single blended figure hides the one dimension that is actually ambiguous.

For graded criteria, report the share of cases where the two raters assigned the same level, and also the share within one level. For binary criteria, report the simple agreement rate and, because chance agreement inflates that number, a chance-corrected statistic such as Cohen's kappa. A rough reading guide that holds up across domains:

Agreement levelWhat it meansAction
Below about 0.60 kappa, or under 70 percent exact matchThe rubric is ambiguous, not the ratersRewrite the level definitions, add the disputed cases as anchors, rescore
0.60 to 0.80Usable for internal decisionsTighten the worst criterion, then run a second calibration round
Above about 0.80Trustworthy enough to compare systemsFreeze the rubric version and score the full sample

Treat every disagreement as a bug report about the rubric. The Label Studio calibration workflow says exactly this: disagreements usually trace to rubric language that allows multiple interpretations, tasks without enough context, or judge instructions that weight the wrong signal, and the fix is to tighten wording or add the contested case Label Studio. Research on examination scoring found inter-rater reliability is negatively impacted when no formal or consistent rater training and rubric calibration is performed, which is the same conclusion reached by a completely different field Saenz, ERIC.

One warning before you celebrate a high number. Raters can agree with each other while both drifting away from the rubric. Texas's guidance distinguishes calibration with each other from calibration to the rubric itself, and notes that consistent inflation means scores are reliable but not valid TEA. Guard against this by keeping a small set of expert-scored anchor cases in every batch; if the raters drift from the anchors, agreement is meaningless.

Step 6: Compare agent and human scores, and know what the gap means

With a frozen rubric and converged raters, the comparison itself is trivial arithmetic. The interpretation is where the thinking goes.

Report per criterion, not just in aggregate. A typical result looks like this: the agent matches the human baseline on correctness, trails by a visible margin on concision because it restates the question before answering, and leads on surfacing unrequested constraints. That profile tells you what to fix. A single blended score tells you only whether to argue.

Run a significance check before you call a difference real. Agent outputs are stochastic, and quality comparisons on subjective dimensions need far larger samples than a button-color test to separate a real lift from run-to-run noise; some practitioner guidance puts the requirement in the thousands of trajectories per arm for subjective metrics Maxim's A/B testing guide. On a thirty-case calibration sample, treat differences as directional, not proven. Use the calibration sample to validate the rubric, then score a larger sample to make the claim.

Also decide what "human baseline" means in your scoring. The cleanest version is the historical output the human actually produced on the same input. That is a real comparison against the incumbent, not against an idealized human. If you score a hand-polished gold answer instead, you are measuring the agent against a standard no human in production meets.

Finally, check whether the human baseline itself is stable. If two humans scoring the same historical outputs disagree as much as the agent and human do, you have not found an agent quality problem; you have found an undefined standard. Fix that first, because no agent can clear a bar that moves.

When the work moves from scoring a sample to running the comparison at production volume across several models, a single API for every model type removes a whole layer of plumbing, and Quanta Inference (https://quantaintelligence.ai/inference) exposes text, image, video, audio and embedding models through one OpenAI-compatible key, which is useful once your judge and your candidate agents are different vendors.

FAQ

FAQ

How many cases do I need to score before I can trust the comparison?

Score thirty to fifty cases for calibration, enough to expose ambiguity in each criterion without turning the exercise into a week of review. A rule of thumb from golden dataset practice is that a modest set of ten to twenty examples can suffice for initial checks, while more complex applications need one hundred to two hundred diverse examples for comprehensive evaluation Innodata. Use the small set to fix the rubric, then score the larger set to make a claim.

Can I replace the second human rater with an LLM judge?

Yes, after calibration. A model judge applies the same criteria consistently to every output and avoids reviewer drift, but it must first be aligned against human-labeled examples on the same rubric before its scores mean anything MLflow. Run the judge on your anchor set, compare it to the expert scores criterion by criterion, and route low-confidence or high-risk cases back to a human.

What do I do when the raters disagree on a specific case?

Treat it as evidence that the rubric clause is ambiguous, not that one rater was careless. Look at which clause each rater interpreted differently, rewrite that level definition as an observable condition, and add the case to the anchored examples. Then rescore that criterion on the same sample, since the wording changed for every case, not just the disputed one Label Studio.

Should the agent be scored on its final answer or its whole trajectory?

Both, as separate criteria. Final-answer correctness tells you whether the task was completed; trajectory scoring tells you whether it was completed for the right reasons, and an agent that reaches a correct answer through a wrong document retrieval will pass the first and fail the second Google Cloud. For agents that make dozens of internal calls, output-only evaluation leaves hidden failures invisible until they compound LangChain.

How often should the rubric be recalibrated?

Recalibrate whenever the rubric wording changes, whenever a new rater joins, and at a fixed interval regardless. Texas's appraiser program, one of the more developed calibration regimes outside software, requires re-calibration at least annually for all appraisers after initial certification TEA. In practice, any change to the agent's prompt, tools, or retrieval index is also a reason to re-run the anchor set, because the failure modes the rubric was tuned for may no longer be the ones you see.

Sources

Sources

  1. Shadow Deployment: Test ML Models Without Risk
  2. What Is An Evaluation Rubric
  3. A methodical approach to agent evaluation | Google Cloud Blog
  4. Scale AI Evaluation with Rubrics and Calibration
  5. Inter Rater Reliability FAQ
  6. Datasets | DeepEval - The LLM Evaluation Framework
  7. LLM-as-a-Judge Evaluation for LLMs & Agents - MLflow
  8. Inter-Rater Reliability in Comprehensive Examination Scoring ...
  9. A/B Testing Strategies for AI Agents: How to Optimize ...
  10. What are Golden Datasets? LLM & AI Evaluation Guide - Innodata
  11. LLM Evaluation Framework: Trajectories vs. Outputs - LangChain
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles