Skip to content
Crowdsourcing & Citizen History

To reconcile consensus transcriptions, you collect several independent passes of each task, normalise them, and combine them into one value: majority vote for discrete fields and token-level alignment for free text, while flagging anything without a clear majority for human review. The goal is to resolve the easy 80-90% automatically and concentrate expert attention on the genuinely uncertain remainder. Below is a working pipeline with practical defaults.

Step 1 — Normalise before you compare

Most "disagreements" are cosmetic. Before any voting, normalise:

python
def normalise(s):
    s = s.strip()
    s = " ".join(s.split())      # collapse internal whitespace
    s = s.casefold()             # case-insensitive comparison
    return s

Apply this to every field across every pass. Decide deliberately whether to fold punctuation and accents — for names you usually keep accents but ignore trailing periods. Skipping normalisation inflates your disagreement rate and sends clean fields needlessly to review.

Step 2 — Majority vote for structured fields

For discrete fields (surname, date, parish), count normalised values and take the most common:

python
from collections import Counter

def reconcile_field(values, threshold=0.5):
    norm = [normalise(v) for v in values if v.strip()]
    if not norm:
        return None, "empty"
    counts = Counter(norm)
    value, n = counts.most_common(1)[0]
    if n / len(norm) >= threshold:
        return value, "auto"
    return None, "review"          # no clear majority → human

With three passes, two matching values clears a 0.5 threshold. This single step typically resolves the large majority of fields.

Step 3 — Align and vote for free text

Single-field voting fails on running prose because transcriptions differ in length and wording. Use sequence alignment instead: line the transcriptions up token by token and take the majority at each position. This is what the Zooniverse text reducers and tools like RandH's text-reconciliation do under the hood.

text
A:  the quick brown fox
B:  the quik  brown fox
C:  the quick brown fox
        ↓ align + per-token majority
=>  the quick brown fox        ("quik" outvoted 2-1)

Positions where no token wins a majority are exactly the words a human should check.

When should a field go to manual review?

Route to a person when:

  • No value reaches the majority threshold.
  • The top two values are tied (common with two-pass setups).
  • A field is empty in some passes but filled in others.
  • A flagged token sits inside an otherwise-agreed free-text line.
SituationAuto-resolve?Action
Clear majorityYesAccept top value
TieNoReviewer decides
All differNoReviewer transcribes afresh
Majority + odd tokenPartialAccept, flag the token

Should you weight transcribers by reliability?

You can, but only after plain majority vote is working and measured. If you have per-volunteer accuracy from a seeded gold-standard set, weight each vote by that reliability so a consistently accurate transcriber breaks ties in their favour. This lifts accuracy on difficult hands, but it adds complexity and depends entirely on having trustworthy per-person scores — so treat it as an optimisation, not a starting point.

How do you tune and validate the pipeline?

Validate against your gold-standard set: run the full reconciliation over tasks whose true answer you know and measure the auto-accepted error rate and the review-queue size. Then tune one knob at a time:

  • Raise the threshold if auto-accepted errors are too high (more goes to review).
  • Lower it if the review queue is unmanageable and errors are tolerable.
  • Add a fourth pass only if disagreement is dominated by genuine ambiguity, not guideline gaps.

Document the final settings alongside the data so the consensus is reproducible.

Key Takeaways

  • Normalise whitespace and case before comparing to avoid cosmetic disagreements.
  • Use majority vote for discrete fields; it resolves most cases cheaply.
  • Use token-level sequence alignment for free text, not whole-string voting.
  • Route ties, missing values and sub-majority tokens to human review.
  • Weight by per-volunteer reliability only after plain voting is measured.
  • Validate and tune the pipeline against a gold-standard set, and document the settings.

Frequently Asked Questions

What does reconciling consensus transcriptions mean?

It is the process of combining several independent transcriptions of the same field into one agreed value, typically by majority vote for structured fields and by alignment for free text, while flagging genuine disagreements for a human.

Which algorithm should I use for structured fields?

Start with simple majority vote after normalising whitespace and case. It resolves the large majority of fields cheaply; reserve fuzzy matching and weighting for the minority that remain in dispute.

How do I reconcile free-text rather than single fields?

Use sequence alignment such as multiple-sequence alignment or RandH's text-reconciliation, which lines up the transcriptions token by token and takes the majority at each position. The Zooniverse text reducers do exactly this.

What agreement threshold should trigger manual review?

A common default is to auto-accept when a clear majority agrees and to flag anything where no value reaches a majority or where the top two are tied. Tune the threshold against a gold-standard sample.

Can I weight more reliable transcribers more heavily?

Yes, if you have per-volunteer accuracy from a gold-standard set. Weighted voting can lift accuracy on hard material, but only adopt it once plain majority vote is in place and measured.