AI agents

How Many Outputs to Label: Sizing a Human Review Sample

Antonio Evans10 min read

An operations room with four people at desks.
Key points

Key points

  1. 1Choose a confidence level, a margin of error and an expected error rate before you sample, then run the proportion formula to get a defensible base count.
  2. 2Stratify by risk and output type so rare, high-risk failures are not buried by high-volume low-risk traffic.
  3. 3A 10-point improvement in the margin of error costs roughly four times the sample, so decide how precise the decision needs to be before you budget.
  4. 4Calibrate any automated judge against the same human sample using a chance-corrected agreement score, not raw percent agreement.

Start with the decision, not the number

Most teams pick a review sample by feel: 50 outputs a week, or whatever fits the calendar. That produces a number nobody can defend when someone asks whether the sample was large enough to catch a regression. The fix is to work backwards from the decision the sample must support.

Three inputs drive sample size for a proportion. The first is the confidence level, the probability that your interval contains the true error rate; 95% is the common default. The second is the margin of error, half the width of the interval you are willing to accept; plus or minus 5 percentage points is a reasonable starting point. The third is the expected error rate, your best prior estimate of how often the model fails. If you have no history, use 0.5, which maximizes the required sample and is therefore conservative.

For large populations the base count is:

n = Z^2 * p * (1 - p) / e^2

Z = 1.96   (95% confidence)
p = 0.10   (expected error rate)
e = 0.05   (margin of error)

n = 3.8416 * 0.10 * 0.90 / 0.0025 = 138.3 -> 139

That gives 139 samples. If you assume a 50 percent error rate instead, the same formula yields 385, which is why an honest prior estimate matters: it can cut your review bill by more than half. The formula itself is standard survey methodology, and it is the same arithmetic used in clinical and social research sample planning, where underpowered samples are a recognized methodological problem (Peters and Carman on sample size justification).

Populations of AI outputs are usually large (thousands per week), so the finite population correction is negligible. If you are reviewing a small batch, say 200 outputs from a pilot, adjust upward with the correction n_adj = n / (1 + (n - 1) / N). For n = 139 and N = 200 that yields about 82, which is the whole point: when the batch is small you review a large fraction of it anyway.

One practical warning: do not let a language model do this arithmetic unsupervised. A study of GenAI tools on sample size estimation found inconsistencies across repeated prompts with identical inputs and recommended that statisticians retain oversight (PharmaSUG paper on GenAI sample size estimation). Run the formula in code, or check the output by hand.

Decide how precise the answer needs to be

The margin of error is the most expensive dial you control, because the required sample scales with its square. Halving the margin of error from 5 points to 2.5 points quadruples the sample.

ConfidenceMargin of errorExpected error rateBase sample
95%10 points10%35
95%5 points10%139
95%5 points50%385
95%2.5 points10%554
90%5 points10%98
99%5 points10%239

The decision rule: match the margin to the size of the effect you need to detect. If you are watching for a regression from a 10 percent error rate to a 20 percent error rate, a 5-point margin is adequate and a 2.5-point margin is wasted money. If you are trying to prove that a high-risk workflow sits below a 2 percent failure rate, a 5-point margin cannot answer the question at all, because the interval will straddle zero and the target. In that case you need either a much larger sample or a different design, such as stratified sampling that overweights the high-risk stratum.

There is a second trap. A sample sized for a proportion gives you an estimate of the overall error rate, not a reliable read on rare failure modes. If one failure type occurs in 1 in 500 outputs, a sample of 139 will almost never contain it. That is what stratification is for.

Stratify by risk and output type

Stratified sampling splits the population into groups that behave differently, then samples within each group. In AI evaluation this matters because error rates are not uniform: a policy question in a regulated workflow and a tone-of-voice rewrite for a marketing page will not fail at the same rate, and the failures carry different costs. Stratification ensures every subgroup, including small ones, gets enough representation to be measured rather than drowned out by high-volume traffic (Statsig on stratified sampling for AI evaluation).

A workable design uses two dimensions. First, risk tier: high (financial, legal, medical, security), medium (customer-facing support and account changes), low (internal drafts and formatting). Second, output type: generated text, structured extraction, tool calls or actions, and retrieved-answer summaries. You do not need every cell; pick the cells that carry risk.

Then allocate. Proportional allocation mirrors traffic, which is right for an overall error estimate but under-samples rare risk tiers. Disproportionate allocation deliberately oversamples high-risk cells and then reweights when you report the overall rate. A simple rule that works in practice: give high-risk cells the full base sample for that cell, medium-risk cells half, and low-risk cells a floor of 30.

The practical multiplier is straightforward: if your base sample is 139 and you split into three risk tiers with separate estimates, budget roughly 3 times 139, about 417, minus overlaps where a cell already exceeds it. This is the single biggest driver of cost, so keep the number of strata small. Three risk tiers plus one split for your highest-risk output type is usually enough.

Stratification also tells you how to build your evaluation set, which is a different artifact from the review sample. Evaluation datasets should cover diverse inputs, varying complexity and edge cases, with clear scope and objectives (DeepEval dataset guidance). A golden dataset with human-validated reference answers is the ground truth against which your review findings get scored, and domain-specific sets are more useful than broad ones (Innodata on golden datasets). Surface reviewed failures back into that set so the same bug cannot return unnoticed.

Calibrate the judge on the same sample

The review sample has two jobs: estimate the error rate, and anchor your automated judge. Most teams now run an LLM judge continuously because human review of every output does not scale, and strong judges reach agreement with human evaluators roughly comparable to the agreement between two humans (LangChain on LLM-as-a-judge calibration). That does not make a judge trustworthy on your task out of the box.

Measure agreement with a chance-corrected statistic, not raw accuracy. If 80 percent of outputs are correct and your judge always says "correct," it scores 80 percent accuracy while learning nothing about the failures you care about. Cohen's kappa corrects for agreement expected by chance:

kappa = (Po - Pe) / (1 - Pe)

Po = observed agreement between judge and human
Pe = agreement expected from their label frequencies

The interpretation bands from medical and social science research, mapped to judge actions:

KappaInterpretationAction
below 0.20SlightDo not automate; fix the rubric
0.21 to 0.40FairMajor rubric revision needed
0.41 to 0.60ModerateUse only with human review of flagged cases
0.61 to 0.79SubstantialAcceptable for low-stakes automation
0.80 and aboveAlmost perfectDeploy autonomously in CI

These bands and the 0.80 threshold come from the Landis and Koch convention adopted in NLP evaluation (AWS sample repo on Cohen's kappa for judges). Size the annotation set for the estimate you need: fewer than about 10 cases per error code gives a confidence interval wider than plus or minus 0.30 on kappa, while 20 to 30 per code is enough to make deployment decisions.

Two details make kappa honest. Keep parse failures and refusals in the denominator as an explicit error label, because a judge that is right on the cases where it answers is not right end to end (OneUptime on calibrating a judge with kappa). And if your judge is stochastic, repeat it and report label stability alongside single-run agreement, since majority voting is a different configuration with a different cost.

Expect the first kappa to disappoint. Research comparing nine judge models against human annotations found most judges poorly aligned, with strong models reaching kappa in the high 0.70s to mid 0.80s while human-to-human agreement was higher, and also showed that percent agreement can mislead: judges with high agreement still assigned very different scores (the Judging the Judges paper, Arize summary of the same paper). Improve iteratively by feeding human corrections back as few-shot examples and tracking agreement over time. Popular techniques include chain-of-thought prompting, reference-based scoring, confining outputs to a fixed label set and swapping candidate positions in pairwise comparisons (Confident AI guide to LLM-as-a-judge).

Judge design is not a solved problem, which is why calibration stays in the loop. An agent-based judge can inspect intermediate steps that a single-output judge misses, but that review literature is explicit that agentic judging complements rather than replaces human oversight (When AIs Judge AIs). Plan your sample accordingly.

Worked example: the numbers, then the budget

A support assistant handles 40,000 outputs a month. It drafts replies and occasionally changes account attributes. Your prior error rate from last quarter's spot checks is 8 percent. You want 95 percent confidence and a plus or minus 5 point margin.

Base count: n = 3.8416 * 0.08 * 0.92 / 0.0025 = 452.8, so 453. That assumes a 0.5 prior; with p = 0.08 the formula yields 113, because the variance term p(1-p) shrinks sharply. Use 113 as the base.

Stratification: three risk tiers, each needing its own estimate. High-risk (account changes, billing) gets the full 113; medium gets half, 57; low gets a floor of 30. Total 200.

Cadence: re-review weekly while the prompt or model changes and monthly once stable. Two runs a month at 200 samples is 400 reviews.

Time: 5 minutes per sample is typical for a single rubric check on a short reply. 400 * 5 = 2,000 minutes, about 33 hours per month. Add one hour of adjudication for every 20 disputable cases, plus 4 hours a month maintaining the judge and rubric.

Line itemCountMinutes eachHours per month
High-risk reviews11359.4
Medium-risk reviews5743.8
Low-risk reviews3031.5
Partner run200413.3
Adjudication (1 in 20 cases)20155.0
Judge and rubric upkeepnot applicablenot applicable4.0
Totalabout 37

Multiply hours by your loaded reviewer rate to get cost. At an internal rate of 60 US dollars an hour, 37 hours is about 2,220 dollars a month. Now the trade-off: if you cut the margin of error to 2.5 points, every cell quadruples, and the bill roughly quadruples to the high four figures with no change in the schedule. If you halve the cadence from twice monthly to monthly, you save half the review hours but you detect a regression one cycle later, which is the real cost of a cheaper plan.

The cost trade-off you want to show your stakeholders is not sample size versus quality; it is detection latency versus spend. A small sample every week beats a large monthly sample when prompt changes ship weekly, because the monthly sample may arrive after the bad version has already been retired. Price the two options and let the decision owner pick the latency they can live with.

Keep the reviewed outputs. Each cycle produces a labeled set; failures flow into your regression tests, and the review effort compounds instead of evaporating (LangChain on trajectory evaluation and the production-to-dataset loop). The same reserved set lets you score any judge against human labels before trusting it in CI.

Set the re-review cadence

Cadence follows change, not the calendar. Four triggers should force a review cycle regardless of schedule: a model swap or provider change, a prompt or system message edit, a new tool or retrieval source, and a spike in user complaints or escalations. Routine cadence then covers drift between those events.

A simple rule set that survives contact with reality:

  • Weekly while anything ships weekly, using the full stratified sample.
  • Monthly once the system is stable, using the same strata but the smaller margin budget.
  • Immediately, on a targeted slice, after any change to prompts or models, sampling only the affected output type.
  • Quarterly, on a fixed stratified sample, to re-establish the baseline and refit the judge.

If your delivery process runs agents that make tool calls and multi-step decisions, review the trajectory as well as the final answer. Correct final answers can hide broken reasoning, and a sequence of decisions offers more places to fail than a single response (Google Cloud on methodical agent evaluation). Human evaluation establishes ground truth and identifies failure modes; LLM judging and code-based checks scale them, in that order.

Finally, make the cadence cheap to sustain. If review requires a reviewer to export data, read it in a spreadsheet and hand-tally, you will cut corners by month two. Route sampled outputs to a queue with the rubric visible and one-click labels, and keep a running kappa so agreement is visible without extra work. The repeated labor is the cost you are optimizing, not the statistics.

When the model mix itself is the moving part, one API key across vendors makes the comparison sample easier to draw, because you swap the model and rerun the same evaluation set instead of rewiring providers; Quanta Inference is built for that pattern. For teams that want the review and rubric work owned end to end, a Quanta expert can run the calibration cycle and hand back the labeled set.

FAQ

FAQ

What is a reasonable review sample size for AI outputs?

Start from your decision: 95 percent confidence, 5 point margin and a 10 percent expected error rate give 139 samples for the whole population. Then multiply by the number of strata that need their own estimate. Three risk tiers of roughly full, half and a floor of 30 typically means 200 to 450 reviews per cycle.

Should I use percent agreement or Cohen's kappa to check my judge?

Use kappa. Percent agreement rewards a judge that always predicts the majority label, which is exactly the behavior that lets failures ship. Kappa subtracts chance agreement, so a judge only scores well if it can distinguish correct from incorrect. Report the confusion matrix alongside it.

How do I sample when high-risk outputs are rare?

Use disproportionate stratified sampling: give the high-risk cell the full base sample even if it is a small share of traffic, then reweight when you report the overall error rate. This is the only way to get a usable estimate on rare, costly failures without reviewing everything.

How often should humans re-review?

Base the cadence on change frequency. Weekly during active prompt or model iteration, monthly once stable, and immediately on the affected slice after any change. A large monthly sample can arrive too late to stop a bad version that shipped and was retired within weeks.

Can I let a language model calculate the sample size?

Not unsupervised. GenAI tools show inconsistencies across repeated identical prompts on sample size tasks, and the published recommendation is that trained statisticians keep oversight. Run the formula in code with fixed inputs and keep the derivation in a document you can defend.

Sources

Sources

  1. Unjustified Sample Sizes and Generalizations in ...
  2. Application of advanced GenAI tools in sample size ...
  3. Stratified Sampling for AI Evaluation: Improve Metrics ...
  4. Datasets | DeepEval - The LLM Evaluation Framework
  5. What are Golden Datasets? LLM & AI Evaluation Guide - Innodata
  6. How to Calibrate LLM-as-Judge with Human Corrections
  7. cohens-kappa-for-llm-judges.md - sample-GEDD
  8. How to Calibrate an LLM-as-a-Judge Against Human ...
  9. Evaluating Alignment and Vulnerabilities in LLMs-as-Judges
  10. Evaluating Alignment and Vulnerabilities in LLMs-as-Judges
  11. LLM-as-a-Judge Simply Explained: The Complete Guide ... - Confident AI
  12. The Rise of Agent-as-a-Judge Evaluation for LLMs - arXiv
  13. LLM Evaluation Framework: Trajectories vs. Outputs - LangChain
  14. A methodical approach to agent evaluation | Google Cloud Blog
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