AN Alpesh Nakrani
BlogBooksPraiseAbout Work with me →
Back to the blog
PoV / Jun 11, 2026 · 9 min

Human-in-the-Loop Evaluation That Scales

Human-in-the-loop evaluation scales only when people review the flagged tail - the low-confidence, high-stakes, adversarial slice - not every output.

Human-in-the-loop evaluation scales only when humans review the right slice: the low-confidence, high-stakes, adversarial tail that an automated layer flags first. Reviewing every output is not the safe choice it looks like. It is a bottleneck that becomes a rubber stamp, then a liability. The scarce resource is human judgment, and you spend it where the machine is least sure and the cost of being wrong is highest.

I argue the negative case at length in Human in the Loop Is Not a Plan: an unspecified reviewer collapses under load. This piece is the positive case. If review-everything is the failure, what does review-the-tail actually look like as a system you can staff, measure, and defend? The answer turns on three things most teams skip: how you blind the rating, how you measure agreement, and how you keep the reviewers themselves calibrated. It is one branch of my complete guide to LLM evaluation; this is the human branch.

Key takeaways

If you read nothing else, these are the load-bearing claims:

  • Review the flagged tail, not every output. An automated layer ships the high-confidence, low-stakes majority and routes only the low-confidence, high-stakes, and adversarial slice to a person.
  • Blind the rating or you measure the wrong thing. Strip model names, randomize order, and withhold the running pass rate, or reviewers grade the story they already believe.
  • Measure your humans before you trust them. Compute a chance-corrected agreement statistic (Cohen's kappa or Krippendorff's alpha); below the bar, the rubric is the problem, not the people.
  • Calibrate the reviewers, not only the model. Seed gold cases, re-blind monthly, and cap load, because automation bias turns a tired reviewer into a rubber stamp.
  • The review tier is a cost line. Routing 5% of volume to humans instead of 100% is the difference between four reviewers and eighty.
Spend human judgment where the machine is least sure and the cost of being wrong is highest. Everywhere else, let the automated layer carry the load.

The triage architecture: route by confidence and stakes

Human-in-the-loop AI works when the loop is a router, not a wall. Every output passes through an automated layer first. That layer assigns two things to each item: a confidence signal and a stakes label. The pair decides where the item goes.

  • High confidence, low stakes: ship automatically. This is most of your traffic, and a human adds cost without changing the outcome.
  • Low confidence, any stakes: route to a human. The model told you it was unsure; that is exactly the signal worth a person's time.
  • High stakes, any confidence: route to a human regardless of score. A confident wrong answer on a prescription or a contract is the most expensive failure there is.
  • Adversarial or out-of-distribution: route to a human, and add the case to the eval set. Novelty is where confidence scores lie, and where hallucinations hide.

Confidence here is not the model's raw token probability, which is poorly calibrated. It is a derived signal: agreement between an LLM judge run twice, the margin in a pairwise comparison, a retrieval-grounding check, or a small ensemble that disagrees. The point is that the automated layer pre-sorts the pile so the human review of LLM output lands only on cases that move the needle.

Priya, a staff engineer on a clinical-summary tool, ran the arithmetic before she staffed anything. Her judge flagged about 6% of outputs as low-confidence or high-stakes. Routing that 6% to two clinicians caught 91% of the errors her old random-sample QA had been missing, at a fraction of the reviewer hours. The other 94% shipped under the automated gate, and the error rate on that slice never moved.

This is the difference between human-in-the-loop and human-on-the-loop. In-the-loop means a person gates specific items before they ship. On-the-loop means a person monitors the aggregate and intervenes when a metric drifts, which is the same split I draw in offline versus online evaluation. A mature system uses both: in-the-loop for the flagged tail, on-the-loop for everything that cleared automatically. You watch the river and you inspect the rocks.

Blinded rating, or you are measuring the wrong thing

When a human does review, how you present the work decides what you learn. Unblinded rating contaminates the result. If a reviewer can see that output A came from the new model and output B from the old one, they rate the story they already believe, not the text in front of them.

Blinding for human feedback evaluation means three concrete moves. Strip the source: no model names, no version tags, no "this is the candidate we hope wins." Randomize order on every pairwise comparison, because position bias is real for people too, not only for an LLM judge. And withhold the aggregate: a reviewer who knows the model is "passing at 94 percent" will unconsciously round up the marginal case to keep the streak alive.

# What the reviewer sees - source stripped, order randomized
item = {"prompt": ..., "a": resp_X, "b": resp_Y} # X/Y hidden
show_order = shuffle(["a", "b"]) # kill position bias
# Reviewer never sees: model name, version, running pass rate

Blinding costs almost nothing to build and it changes the numbers. On one launch, Marcus, the eng lead, was sure the new model was "clearly better" and had the unblinded thumbs-up to prove it: 78% of reviewers preferred it. We re-ran the same comparison blinded, and the preference fell to 51%, a coin flip. The launch slipped two weeks, and that two weeks was worth more than the launch. An unblinded thumbs-up is a vibe. A blinded preference, collected under a rubric, is evidence.

Inter-rater agreement: measure your humans before you trust them

A single reviewer's verdict feels authoritative and tells you nothing about whether it is repeatable. Before human ratings can gate anything, you measure how much your reviewers agree with each other. Hand the same sample to two or three of them, blinded, and compute inter-rater agreement.

Use a chance-corrected statistic, not raw percent agreement. Raw agreement looks high whenever one label dominates, which it usually does. Cohen's kappa corrects for chance on two raters; Krippendorff's alpha generalizes to any number of raters, handles missing labels, and works across nominal and ordinal scales, which is why it is the safer default for a real review panel. The common reading of kappa, from the Landis and Koch convention, treats 0.61 to 0.80 as substantial and above 0.81 as near-perfect. For alpha, 0.80 is the usual bar for trusting a label, with 0.667 a floor for tentative conclusions.

Here is the part that stings. When experienced reviewers disagree on a third of the cases, the problem is almost never the people. It is the rubric. Two experts grading "is this answer good" against private intuition will produce two different measurements of two different things. Disagreement is not noise to average away; it is a map of exactly where your rubric is ambiguous. Read the disputed cases, sharpen the criteria, and re-measure. This is the same loop that makes a golden eval set trustworthy: the test is only as honest as the agreement behind it.

When two experts disagree on a third of the cases, fix the rubric, not the people. Disagreement is a map of where your criteria are ambiguous.

Calibrate the reviewers, not only the model

Everyone talks about calibrating the model. Almost nobody calibrates the humans. Reviewers drift. They get tired, they get fast, and they slide toward the model's answer because it has been right for a long time. That last drift, automation bias, is the quiet killer: the reviewer becomes a confirmation step, not an evaluation.

The fix is to treat reviewers as instruments that need recalibration on a schedule. Three practices hold the line:

  • Seeded gold cases. Salt the queue with items that have a known correct verdict. If a reviewer misses the seeded failures, their recent ratings are suspect and the rubric or the training needs another pass.
  • Periodic re-blinding against each other. Re-run the inter-rater check monthly, not once at onboarding. Agreement decays as the easy cases get automated away and only the hard tail reaches the human.
  • Rotation and load caps. A reviewer with 300 items in the queue is not evaluating. Cap the daily load and rotate the panel so fatigue does not masquerade as consensus.

The same instability shows up in the automated layer, which is why you cannot lean on it blindly either. A 2025 study on LLM judges, Rating Roulette, documents that a model grading the same item twice will often return different verdicts. Self-inconsistency in the judge is one more reason the tail needs a calibrated human, and one more reason that human needs checking too. Top judges land near 80 percent agreement with people on well-scoped tasks, roughly where two trained humans land with each other, a result first measured on MT-Bench. That is good enough to triage and not good enough to be the last signature.

The org and cost angle: who owns the loop

Human-in-the-loop evaluation is an org design problem wearing an engineering costume. The review tier is a real line item, and most teams discover it only after the queue collapses. Run the arithmetic before you scale, not after.

Say a senior reviewer's loaded cost is roughly $90 an hour and a careful review takes 4 minutes. Reviewing 10,000 outputs a day at 100 percent means about 667 reviewer-hours a day, which is north of 80 full-time people. Route only the flagged 5 percent to humans and the same volume costs about 33 reviewer-hours, four or five people, with the automated layer carrying the rest. The triage architecture is not a quality nicety. It is the difference between a unit economic that works and one that does not.

That is also where the two seats see different things, and why the decision needs both. From the engineering seat, the routing threshold is a tunable parameter. From the revenue seat, that same threshold is a bet on margin and liability at once: loosen it and you ship faster but more bad outputs reach a customer; tighten it and quality holds but the review bill climbs and latency grows. Whoever owns the loop has to read the trace and the P&L in the same glance. Evaluation is the scarce, defensible skill here, and the org that prices it correctly compounds an advantage the one that hand-waves "a human checks it" never will.

My rule for ownership: the senior engineer who ships an AI feature owns its review design as a first-class artifact, the same way they own its tests. They define the confidence signal, set the routing thresholds, write the rubric, and run the inter-rater check. The reviewers are part of the system they built, not a team they handed the problem to. Autonomy expands as the eval coverage and the agreement numbers earn it, and contracts the moment the metrics say so.

The honest trade-off

Routing by confidence and stakes only works if the routing is right, and the routing is never permanently right. Set the threshold too loose and confident-wrong outputs ship under a green light. Set it too tight and everything routes to a human, which rebuilds the bottleneck you spent all this effort to dismantle. The threshold drifts as traffic shifts, as the model updates, as adversaries learn your gaps. There is no set-and-forget version. You are signing up to monitor and re-tune the loop forever, which is the human-on-the-loop half of the job and squarely an AI observability and monitoring problem. The alternative, a static rule and a tired reviewer, costs more. It just hides the bill until a customer finds it for you.

Frequently asked questions

What is human-in-the-loop evaluation?

Human-in-the-loop evaluation is a design where people review a routed subset of AI outputs rather than all of them. An automated layer scores every output for confidence and stakes, ships the safe majority, and sends the low-confidence, high-stakes, and adversarial tail to a human whose verdict is authoritative. It scales because human judgment is spent only where it changes the outcome.

How do you measure agreement between human reviewers?

Give the same blinded sample to two or more reviewers and compute a chance-corrected statistic. Cohen's kappa works for two raters; Krippendorff's alpha generalizes to many raters and mixed scales. Treat alpha at or above 0.80 as trustworthy and read every disputed case, because disagreement usually means the rubric is ambiguous, not that a reviewer is wrong.

Is human review better than an LLM judge?

Neither alone is enough. An LLM judge is cheap and fast but self-inconsistent and biased, landing near 80 percent agreement with humans on well-scoped tasks. Use the judge to triage the volume and humans to gate the flagged tail. The judge sorts the pile; a calibrated, blinded human decides the cases that change a release, a contract, or a customer.

How many outputs should humans review?

As few as your error tolerance allows, chosen by stakes and confidence rather than a fixed percentage. Review 100 percent of high-stakes outputs, a calibrated sample of mid-stakes ones, and only the exceptions for low-stakes traffic. The right number is whatever keeps undetected error below your threshold without turning reviewers into rubber stamps.

If you are designing the review tier rather than just naming a reviewer, that is the work I keep returning to in Human in the Loop Is Not a Plan and the broader harness in A Field Guide to Evals. And if you want a team to instrument the routing thresholds and drift monitoring in your stack, that is what Devlyn's AI observability and monitoring work is for. Design the loop, measure the humans, and price the tier before a customer prices it for you.

Share
Next

Keep reading

View all blogs