Data Labeling Quality Control: Consensus, Inter-Annotator Agreement and QA Workflows

Head of Forward Deployed Engineering at Encord
TL;DR: A Quality Assurance process nobody trusts is worse than no QA process at all, and "94% accuracy" is the usual symptom. This guide gives you the actual toolkit: how to pick the right agreement metric for your task (Kappa, Alpha, or IoU), what to do when annotators disagree beyond majority vote, and how to structure review tiers and escalation so errors get caught before they reach training, not after they've already shaped your model.
Even the datasets machine learning treats as ground truth aren't as clean as we'd like to think. Researchers at MIT and Amazon looked at 10 of the most widely used computer vision, NLP, and audio benchmarks and found label errors in every single one, averaging at least 3.3% errors across the datasets, with errors making up at least 6% of the ImageNet validation set alone (Open Review, 2025)
If that's how often mistakes slip through in datasets researchers have picked apart for years, imagine what's sitting in a typical production pipeline with no gold standard, no agreement metric, and no review process behind it.
This guide is about closing that gap: how to measure agreement, resolve disagreement, and build a Quality Assurance (QA) process that catches errors before they end up solid in your model.
Why does data labeling quality control matter?
Labeling errors compound into model errors, not just noise
Mislabeled data doesn't average out at scale. Your model learns whatever pattern is in the label, mistakes included. If an annotator consistently mislabels small objects or misses an edge case, the model doesn't learn to ignore that bias. It learns the bias as ground truth. And by the time it surfaces in production, usually as a blind spot on exactly the objects or classes you needed most, tracing it back to a labeling decision from months ago is expensive and slow.
Why "high accuracy" doesn't mean much on its own
A Quality Assurance report says "94% accuracy" sounds solid, until you ask: accuracy against what? Without a gold standard to check against, a defined agreement metric, and a clear annotator count behind it, that number isn't really a metric. It's a guess with more confidence than it's earned. Real quality control starts before you measure anything: you have to define what "correct" looks like first, then check how consistently your annotators hit it.
Inter-annotator agreement: how to measure whether your labels are trustworthy
What inter-annotator agreement actually measures (and what it doesn't)
Inter-annotator agreement (IAA) is a measure of how consistently multiple annotators label the same data, not a measure of whether those labels are correct. Two annotators can agree perfectly and both be wrong if the guidelines themselves are flawed. IAA tells you whether your instructions are being followed consistently; it does not substitute for validation against ground truth.
Percent agreement: the simplest method, and why it overstates reliability
Percent agreement is the proportion of items on which annotators give the same label. It's easy to compute but also easy to misread; it doesn't correct for agreement that would happen by chance alone. On a task with two labels and a 90/10 class split, two annotators guessing randomly would still "agree" most of the time. Percent agreement is a reasonable sanity check, not a metric to report on its own.
Cohen's Kappa: for two annotators, categorical labels
Cohen's Kappa is a chance-corrected agreement metric for exactly two annotators labeling categorical data. It compares observed agreement to the agreement expected by chance, so a Kappa of 0 means no better than random and 1 means perfect agreement. It's the standard choice for binary classification or small categorical label sets with a two-person annotation team.

Fleiss' Kappa: for three or more annotators
Fleiss' Kappa extends the same chance-correction logic to three or more annotators labeling the same categorical items. It's the right metric once a project moves past a two-person pilot into a full annotation team, and it's what most teams should be reporting once they scale past initial calibration.

Krippendorff's Alpha: for mixed data types and missing data
Krippendorff's Alpha is a chance-corrected agreement metric that works across nominal, ordinal, interval, and ratio data, and it handles missing labels without throwing out incomplete cases. It's the most flexible of the standard IAA metrics, which makes it the default choice for teams working across multiple label types or with annotators who don't all label every item.

Krippendorff's Alpha
Intersection over Union (IoU) and spatial agreement: for bounding boxes, polygons, and segmentation masks
Categorical agreement metrics don't work for spatial annotation. For bounding boxes, polygons, and segmentation masks, agreement is measured with Intersection over Union (IoU): the overlap between two annotators' shapes divided by their combined area.
Video annotation adds a second dimension, temporal consistency, or whether an object's identity and boundaries hold steady across frames rather than drifting or flickering between annotators.
Most quality control guidance stops at categorical labels; spatial and temporal agreement is where video and image-heavy pipelines actually break down.

| Task type | Annotator count | Data type | Recommended metric |
| Classification (binary) | 2 | Categorical | Cohen's Kappa |
| Classification (multi-class) | 3+ | Categorical | Fleiss' Kappa |
| Mixed label types, incomplete data | Any | Nominal/ordinal/interval | Krippendorff's Alpha |
| Bounding box, polygon, segmentation | Any | Spatial | IoU threshold |
| Video object tracking | Any | Spatial + temporal | IoU + temporal consistency |
| Free-text or open-ended | Any | Unstructured | F1 against gold standard |
Consensus methods: what happens when annotators disagree
Majority voting: simplest, and where it breaks down
Majority voting assigns the label that most annotators agree on. It's simple to implement and works fine for low-stakes, low-ambiguity tasks. It breaks down in two predictable ways: ties (which need a tiebreak rule defined in advance, not improvised per case) and systematic bias, where a majority can be wrong if the guidelines are ambiguous for everyone.
Weighted consensus: giving more trusted annotators more weight
Weighted consensus adjusts each annotator's vote based on a track record of historical accuracy or experience, rather than treating every vote equally. A newer annotator's label counts for less than a specialist who's been calibrated against gold-standard data for months. This requires annotator-level performance tracking to be in place before it's useful.
Probabilistic consensus models: inferring true labels and annotator reliability together
Probabilistic consensus models, such as Dawid-Skene, estimate the most likely true label and each annotator's reliability simultaneously, using the pattern of agreement and disagreement across the whole dataset rather than a fixed weighting rule. These models are more work to set up than majority voting but outperform it on ambiguous or high-disagreement tasks, where a fixed weighting scheme can't adapt to which annotators are struggling on which item types.
Adjudication: when to escalate to a human expert instead of an algorithm
Adjudication routes disagreements to a human expert rather than resolving them algorithmically. This is the right call when the disagreement reflects genuine ambiguity in the guidelines (which an algorithm can't fix, only paper over) or when the domain requires expert judgment that no annotator on the team has, such as a radiologist reviewing a contested medical image label.
Building a data labeling QA workflow
Step 1: Building a Gold standard and benchmark set
A gold standard is a small, expert-verified set of labeled examples used as a reference to check annotator output against, and it should exist before large-scale labeling begins, not get retrofitted after volume ramps up. Without one, every downstream Quality Assurance metric is measuring consistency, not correctness.

Gold standard and benchmark set for data labeling
Step 2: Set a sampling strategy for how much gets reviewed
Not every project needs the same amount of review, and it shouldn't get the same amount either. Review rate should track risk. A simple, well-understood task might only need spot checks on 5 to 10% of the output. But something high-stakes, like medical imaging or autonomous vehicle perception, usually needs full or near-full review, especially for rare classes and edge cases, where even one missed label can carry a lot of downstream risk.
Step 3: Set up review tiers
A tiered review structure catches different error types at different stages. Self-check catches obvious mistakes before submission.
Peer review catches inconsistency between annotators.
Expert adjudication handles the cases that survive both and reflect genuine ambiguity rather than error.
Step 4: Define escalation paths
An escalation path needs a clear trigger (what disagreement threshold routes a case up) and a clear owner (who resolves it and how fast) so contested cases don't sit in a queue while the rest of the pipeline keeps moving. Escalation without a defined SLA becomes a bottleneck instead of a safety net.
Step 5: Close the loop
Quality Assurance is only worth the effort if findings change something upstream. Recurring disagreement on a specific label usually means the guideline is ambiguous, not that annotators need more training. Feeding these patterns back into the annotation guidelines and label ontology is what turns QA from a reporting exercise into an actual quality improvement loop.
Common data labeling quality control errors
- Treating Inter-annotator-agreement as a one-time check instead of an ongoing metric: Agreement measured once during pilot and never again misses drift as guidelines evolve, new annotators join, or the dataset shifts into new edge cases.
- No baseline or gold standard to measure against: Without one, every quality number is relative to nothing.
- QA bottlenecks that can't scale with labeling volume: A review process that worked at 1,000 items often collapses at 100,000 if review capacity wasn't built to scale alongside labeling throughput.
- Ignoring annotator-level patterns: An annotator who consistently disagrees with consensus isn't noise to average out; it's a signal that needs investigation, whether that's a training gap or a guideline they're interpreting differently than the rest of the team.
How label quality affects model performance
Noisy labels and their effect on training signal
Label noise doesn't just add variance. It teaches the model the wrong pattern with just as much confidence as a correct label would. Train on inconsistently labeled data, and the model learns to reproduce that inconsistency. The result shows up later as unpredictable failure modes, and they're hard to diagnose because the training data never had a clean answer to check against in the first place.
Where Quality Control (QC) investment has the highest ROI
Not all quality control effort pays off equally. It matters most in three places: rare classes, where a handful of errors makes up a large share of the examples you have; edge cases, where models already struggle and clean signal counts for more; and high-stakes domains, where a single error carries an outsized cost downstream. Spreading QA effort evenly across an entire dataset, regardless of risk, usually means under-investing where it counts most.
Tools for measuring and managing labeling quality
When evaluating a platform for data labeling QA, look for tools and systems with the following features:
- Built-in Inter-annotator-agreement and consensus calculation, rather than exporting labels to calculate Kappa or Alpha manually in a spreadsheet
- Configurable review and QA workflows with adjustable sampling rules by risk level
- Annotator-level performance tracking over time, not just aggregate team metrics
- Audit trails for compliance-sensitive projects, particularly in regulated domains like healthcare
Manage data labeling quality control with Encord
Encord builds inter-annotator agreement and consensus tracking directly into the annotation workflow, so your quality metrics live where the labeling happens, not in a separate spreadsheet you have to keep in sync.
- Built-in consensus and review workflows: Set up multi-stage review right inside the platform. No exporting data just to calculate Kappa or Alpha by hand.

Encord workflow setup with YOLO and 1 consensus section
- Annotator performance analytics: View individual and team-level agreement and accuracy over time, so you catch drift before it compounds into your training data.
- Configurable QA sampling and escalation rules: Set review rates and routing based on project risk, instead of running one fixed process for everything.
- Works across modalities: Image, video, audio, text, and DICOM annotation all live in one platform, so you're not rebuilding IAA and QA workflows separately for every data type.
- Enterprise-grade security: Encord is SOC 2 and HIPAA compliant and maintains GDPR compliance, with data encrypted at rest (AES-256) and in transit (TLS 1.2/1.3), which matters if your QA work touches regulated industries. (Encord Security)

Encord Security compliance
Key takeaways
- Inter-annotator agreement measures consistency, not accuracy, it needs a gold standard alongside it to mean anything.
- Pick your IAA metric by task type and annotator count: Cohen's Kappa for two annotators, Fleiss' Kappa for three or more, Krippendorff's Alpha for mixed data types, IoU for spatial annotation.
- Consensus goes beyond majority vote — weighted consensus and probabilistic models like Dawid-Skene handle disagreement better on ambiguous tasks.
- QA needs tiers (self-check, peer review, expert adjudication) and defined escalation paths, not a flat review process.
- Sampling rates and QC investment should scale with risk — rare classes, edge cases, and high-stakes domains get the most attention.
- Feed QA findings back into guidelines and ontology, or the same disagreements keep recurring.
Frequently asked questions
Inter-annotator agreement is a measure of how consistently multiple annotators assign the same label to the same data. It's calculated using chance-corrected metrics like Cohen's Kappa (two annotators), Fleiss' Kappa (three or more), or Krippendorff's Alpha (mixed data types), rather than simple percent agreement, which overstates reliability by not accounting for chance.
Cohen's Kappa measures agreement between exactly two annotators on categorical labels. Fleiss' Kappa extends the same chance-corrected logic to three or more annotators, making it the right choice once a project scales past a two-person pilot team.
Consensus can be reached through majority voting for simple cases, weighted consensus that gives more trusted annotators more influence, probabilistic models like Dawid-Skene that infer true labels and annotator reliability together, or adjudication by a human expert when the disagreement reflects genuine ambiguity rather than error.
There's no fixed percentage. Review rates should scale with risk: low-stakes, well-understood tasks might need spot checks on 5 to 10% of output, while high-stakes domains like medical imaging or autonomous vehicle perception often warrant full or near-full review, especially for rare classes and edge cases.
Noisy or inconsistent labels teach a model the wrong pattern with the same confidence as a correct one, producing unpredictable failure modes that are hard to diagnose. QC investment has the highest return on rare classes, edge cases, and high-stakes domains, where a small number of errors has an outsized impact.
Yes. Platforms like Encord calculate IAA metrics natively inside the labeling workflow, removing the need to export data and calculate Kappa or Alpha manually in a spreadsheet, and can flag low-agreement items for review automatically as part of a QA workflow.