Skip to content

Annotation quality guide

Inter-Annotator Disagreement Review: Explain the Pattern Before Choosing a Consensus Rule

Keep disagreement as evidence. Separate label ambiguity, boundary errors, missing guidance, and true conflicts before summarizing annotation consistency.

Two annotators can disagree because a label definition is vague, a boundary is hard to see, a record is incomplete, or the task allows multiple defensible readings. A single agreement statistic cannot explain which case occurred. Review the unit, label set, annotator instructions, disagreement pair, and resolution state, then report the pattern and the unresolved set separately. This is a static worksheet, not an annotation platform, quality certificate, or evaluator.

Updated

On this page

Define what counts as disagreement

The source dates shown in this guide identify documentation checks on 22 October 2026, not original publication dates. Follow each citation for the metric or research discussion being used. First define the annotation unit and comparison: exact label, span boundary, geometry, timestamp, ranking, multilabel set, or free-text rationale. A disagreement record needs the task version and the two outputs, not just a boolean mismatch.

Define what counts as disagreement (table)
Disagreement layerExample observationQuestion to ask
UnitAnnotators selected different spansDid they see the same token or region boundary?
LabelSame span, different classAre classes mutually exclusive and defined?
MultiplicityOne versus several labelsIs multilabel annotation allowed?
BoundaryIntervals overlap but start or end differsWhat tolerance rule was specified?
AbstentionOne annotator used unknownIs abstention an allowed state?
RationaleSame label, different explanationIs rationale part of the target or context?

Do not label every mismatch as annotator error. A missing example, a new domain pattern, a broken instruction, or a genuinely ambiguous item may need a guideline change rather than a forced consensus. Preserve the original outputs before any adjudication.

Choose agreement evidence that matches the task

Agreement summaries are conditional measurements. The scikit-learn, (opens in a new tab) documentation describes a kappa statistic for categorical assignments and its chance-agreement setup. It does not make kappa suitable for every task. Span boundaries, multilabel sets, ordinal labels, missingness, and heavily imbalanced categories need a documented comparison rule and may need more than one summary.

Choose agreement evidence that matches the task (table)
Task shapeEvidence to retainDo not infer
Single categorical labelContingency table and metric definitionUniversal label quality
Ordinal labelDistance or weighting ruleThat all disagreements have equal cost
Multilabel setPer-label and set-level comparisonThat one aggregate hides missing labels
Span or boxOverlap rule and boundary examplesThat a near boundary is an exact match
Timestamp intervalStart, end, tolerance, and overlap policyThat durations are equally comparable
Open rationaleTheme or rubric comparisonA categorical score without coding rules

The ACL paper ACL Anthology, (opens in a new tab) highlights metric selection and transparent reporting. Use its lesson as a reporting boundary: name the unit, label set, annotator count or role description when available, comparison rule, missing-data rule, and unresolved disagreement set. If those inputs are unavailable, say so instead of backfilling a number.

Record resolution without erasing the disagreement

Adjudication is a new activity, not a replacement for the source annotations. Record who or what resolved the item, which guideline version was consulted, whether the decision changed the codebook, and whether the item remains ambiguous. If a gold label is created, retain both the original outputs and the reason the gold label was selected.

  1. Freeze the original annotation records and task version.
  2. Classify the disagreement before opening a resolution discussion.
  3. Check whether the guideline has a relevant example or abstain state.
  4. Record the resolution rationale and any codebook change separately.
  5. Revisit comparable unresolved items only under the new rule and version them.

Synthetic disagreement ledger

Record resolution without erasing the disagreement code example, Plain text
item_id | output_a | output_b | class              | resolution
synthetic-01 | invoice | receipt | boundary-meaning   | guideline-example-needed
synthetic-02 | active  | unknown | missing-context    | abstain-retained
synthetic-03 | cat     | dog     | label-definition   | adjudicated-v2
synthetic-04 | span-A  | span-B  | boundary-tolerance | unresolved

Use a pattern matrix before publishing a summary

A useful review aggregates disagreement by cause and task slice, not just by annotator. Use synthetic groups such as document type, label pair, boundary length, language, or time window. Keep group definitions broad enough that a public report does not reveal an individual item or rare source pattern.

Use a pattern matrix before publishing a summary (table)
Pattern fieldExample valueFollow-up
Label pairinvoice versus receiptCompare definitions and examples
Boundary classsame object, edge differsSpecify tolerance and visual examples
Abstention rateunknown used under missing contextAdd an evidence-request rule
Guideline versionsynthetic-v2Separate pre-change and post-change results
Resolution stateopen, adjudicated, retainedReport unresolved items explicitly
Evidence statussource absent or synthetic onlyDo not generalize beyond the fixture

Keep disagreement evidence separate from downstream decisions

Disagreement review can show how a defined task behaved for a selected annotation set. It cannot establish accuracy, annotator fitness, privacy clearance, rights, demand, or suitability for a deployment. Keep provenance, privacy, rights, and owner decisions separate.

Pair this guide with ontology versioning for label history and missing-value and label consistency review for abstention states. After supported non-health scope, authority to describe the collection, and a controlled disagreement ledger are established, the qualified appraisal request path may be a next preparation step. It does not adjudicate labels, certify agreement, create a quote, match a buyer, issue a legal opinion, or grant a license.

Takeaways

  • Define the annotation unit, label set, tolerance, and abstention rule before measuring disagreement.
  • Choose evidence that matches categorical, ordinal, multilabel, span, box, or interval tasks.
  • Retain original outputs when creating an adjudicated or gold record.
  • Report patterns, guideline changes, and unresolved items instead of one universal score.
  • Keep agreement evidence separate from accuracy, privacy, rights, and downstream-use decisions.

Sources

  1. ACL Anthology: Counting on Consensus: Selecting the Right Inter-Annotator Agreement Metric for NLP Annotation and Evaluation (opens in a new tab)
  2. scikit-learn: cohen_kappa_score (opens in a new tab)

Use the appraisal path after the disagreement ledger is organized.

It does not adjudicate labels, certify agreement, create a quote, match a buyer, or grant a license.