Founders

How to Pick the Span a Disclosure Reviewer Should Cite

Antonio Evans9 min read

A split scene: on the left, a reviewer looks at a screen showing a long paragraph with a single sentence highlighted, and a clock icon shows a slow time.
Key points

Key points

  1. 1A reviewer's time to a confident decision depends on the citation span you hand them, so span choice is a usability decision, not a formatting detail.
  2. 2Pick the narrowest span that still holds all the evidence needed to judge the finding, starting at clause level and widening only when the clause is ambiguous alone.
  3. 3Use an exact character range only when the finding hinges on a specific token, and always pad it with enough surrounding words to show context.
  4. 4Test candidate spans on 30 to 50 real findings and choose on median time to a correct decision, not on how many findings the detector returns.

Why catch rate is the wrong yardstick

Most disclosure review pipelines are tuned on detection: how many findings the model surfaces, how many of those are true positives, how few real problems slip through. Those numbers come from classification metrics. Precision is the share of flagged items that are correct, recall is the share of real problems that were flagged, and both are computed over a labeled set with no human in the loop Google's machine learning crash course. None of them says anything about what happens after the finding lands in someone's queue.

The gap matters because review is a queueing problem. A specialist opens a finding, reads the cited evidence, decides confirm or reject, and moves on. If the citation is too wide, they hunt through a paragraph for the reason. If it is too narrow, they cannot judge it and must widen the search themselves. Either way the finding is correct and the pipeline's numbers look fine, but the reviewer is doing work the machine should have pre-paid.

There is real evidence for how much this costs. In a controlled study of pre-annotation on clinical trial announcements, annotators given pre-highlighted text saved 13.85% to 21.5% of annotation time per entity compared with annotators starting from unlabeled text, with no measurable loss in inter-annotator agreement or accuracy the PubMed abstract. The span was already drawn for them; the human only had to judge.

The same pattern shows up in security tooling. Roughly half of data loss prevention alerts are false positives on average, and 65% of security teams report being overwhelmed by benign alerts Cyberhaven's analysis. One analysis of ESG research found teams remediate only 8% of generated DLP alerts as true positives, with much of the noise traced to engines that match a pattern without context Netwrix's tuning playbook. A finding with a vague citation is the disclosure-review equivalent of that noise: technically fired, practically unresolvable.

The three span types and what each is for

Agree on a vocabulary before testing anything. Three span types cover almost every disclosure finding, and each maps to a different kind of evidence.

Clause. A grammatically complete unit inside a sentence, usually marked off by a comma, a subordinating conjunction ("because," "unless," "if"), or a relative pronoun ("which," "that"). Disclosure language is long and multi-clause, and the finding usually lives in one clause: the condition, the qualifier, the parenthetical, the exception.

Sentence. The full sentence containing that clause. Use it when the clause alone reads as an assertion with no visible antecedent, or when the finding depends on a subject or object introduced earlier in the same sentence.

Character range. Two integer offsets into the document text, start and end. Use it when the finding depends on a specific token: a number, a date, a name, a percentage, a defined term. A range lets the interface highlight exactly "45 days" rather than the whole phrase around it.

Annotations attached to a specific passage rather than the whole document are generally more explainable and actionable than a single score, which is why span-level labeling is used for tasks from translation error detection to propaganda identification the LLM span annotators study.

Span typeBest whenFailure modeReviewer cost
ClauseFinding is a condition, exception, qualifier or parentheticalClause reads as an assertion with no visible subjectLow; claim and condition in one look
SentenceFinding depends on a term introduced elsewhere in the sentenceSentence carries several unrelated claims and the reviewer picks oneMedium; one extra reading pass
Character rangeFinding depends on a number, date, name or defined termRange clips a negation and inverts the meaningLow when padded; high when clipped

Write down four boundary conventions: does the span include the trailing period, does it include a leading bullet or list marker, how are hyphenated terms treated, and are line breaks normalized out of the offsets. Boundary placement is the most subjective and labor-intensive annotation decision, which is why protocols fix conventions explicitly rather than leaving them to judgment Claru's annotation glossary.

A decision rule you can apply on the first pass

Default to a clause, widen only on a named trigger, narrow to a character range only when a token is the whole finding.

  1. Ask what a reviewer must see to judge the finding. Usually it is a claim plus its condition, or a claim plus its scope.
  2. Select the clause containing both. Check it reads as a complete thought alone; if it starts with "which" or "because" and has no visible antecedent, widen.
  3. Widen to the sentence. If the sentence holds more than two independent claims, keep the justify step at sentence but pass a character range as the precise highlight, so the interface can dim the rest.
  4. Narrow to a character range when the finding turns on an exact token: a deadline, a threshold, a fee, a jurisdiction, a named party. Pad by one to three words on each side so a negation or quantifier ("not," "except," "at least") sits inside the highlight.
  5. Record span type, offsets, and the offsets of the enclosing sentence, so the interface can show context without re-segmenting.

The clause-versus-sentence distinction is not cosmetic. Span labeling tools model the two differently: named entity recognition assumes non-overlapping syntactic units with clean boundaries, while span categorization handles overlapping and nested spans such as noun phrases and sentence fragments and is deliberately less sensitive to exact token boundaries Prodigy's span documentation. Disclosure findings are often the second kind: one clause can carry two obligations, and one obligation can span a parenthetical that interrupts it.

One rule saves time in practice: keep the locate span and the justify span separate. The locate span is what the highlight draws (a character range). The justify span is what a human needs to read (a clause or sentence). Pipelines that conflate them end up with noisy full-sentence highlights or incomprehensible four-word ones.

Testing candidate spans: the 30 to 50 finding protocol

Detection quality is usually validated with an alignment sample: model results compared against human reviewers' results, discrepancies analyzed, process repeated DISCO's document review guide. That validates the decision, not the presentation. To validate the span, run a separate experiment with time as the outcome.

  • Sample. 30 to 50 real findings, stratified by type: entailment gaps, missing disclosures, contradictory figures, scope-limited claims. Mix true positives and false positives roughly as your queue looks.
  • Conditions. Two or three versions of the same findings, differing only in citation span. Randomize order per reviewer to blunt learning effects.
  • Reviewers. Three is enough for a first read; two is a minimum. Do not let the person who wrote the span logic be the only reviewer.
  • Outcome. Time from finding displayed to decision recorded, and whether the decision matches your gold judgment.
  • Metric. Compare medians, not means; one reviewer losing two minutes can swamp the average. Report the share of decisions made within 30 seconds as a secondary measure.
  • Repeat. Rerun whenever span rules or the document mix changes. Span quality decays silently as document types shift.

With 30 to 50 findings and three reviewers you have 90 to 150 observations, enough to detect a difference of a few seconds in median decision time, not enough for subgroup analysis. Resist drawing conclusions from eight observations of one finding type.

Expect realistic results. Studies of model and human span annotators find models achieve only moderate agreement with skilled humans and make errors at a similar rate to skilled crowdworkers, at a fraction of the cost per annotation the span annotators study. That is the bar for your span generator: not agreement with a perfect oracle, but a competent human's error rate, applied consistently.

Reading the results: what a good span looks like

Three patterns in the protocol data tell you most of what you need.

Fast correct decisions, slow corrections. Reviewers decide quickly but a meaningful share of decisions are later reversed. The span is complete but misleading. Typical cause: a clipped negation. The finding depends on "shall not exceed 30 days" and the highlight covers only "30 days." Fix with padding, not widening.

Slow correct decisions. The span holds the evidence but is not legible. The reviewer must read around the highlight to confirm context. Keep the narrow highlight and add the enclosing sentence as a dimmed context layer.

Fast incorrect decisions. The span is too confident: a sentence that appears to settle the question but omits a qualifier elsewhere. This is a detector problem dressed as a span problem. Widen to include the qualifier, or attach a second span. Pair timing with error rate or you will optimize into a fast, wrong queue.

Analysts reviewing benign DLP alerts routinely need context from outside the alert, because it does not say whether a user was traveling or staging data Prophet Security's analysis of DLP queues. Disclosure findings have the same shape. If the citation answers "what triggered this" but not "what makes this a problem," reviewers finish the job by hand, and the span test measures how much of that you have automated.

Rules by finding type

A generic span policy wastes what you know about the finding.

Finding typeLocate spanJustify spanPadding
Missing required disclosureEnd of the section where it belongsTwo nearest headingsNone; point at a location
Contradictory figureRange around the numberFull sentence with the contradicting numberInclude unit and operator
Scope-limited claimClause with the qualifierSentence plus preceding sentence if a defined termInclude "only," "except," "solely"
Personal data in an exampleRange around the identifierThe clauseInclude the label before the value
Unsupported superlativeClause with the superlativeSentenceNone; the claim is short

Two rules cut across all types. If the finding names a defined term, the span must include the definition or link to it. If the finding depends on a date, the span must include the date's reference point, because "within 30 days of the effective date" is a different claim from "within 30 days."

Privacy needs its own rule, because disclosures often quote personal information. Sending prompt text containing personal or health information into a generative AI tool can constitute handling under privacy law, and outputs can be inaccurate even when they read as authoritative the NSW privacy regulator's guide. One summary of prompting research reports that under a quarter of employees believed their prompts are erased, while 75% said they would use AI anyway even if every prompt were saved SoSafe's overview. If your pipeline sends document text to a model, attach a redaction class to the span record.

Recording the span so downstream tools can highlight it exactly

The most common silent failure is not span choice but span serialization. A finding cites a clause in the report, and the interface highlights nothing because offsets were computed against a different version of the text.

{
  "finding_id": "F-1042",
  "doc_sha256": "…",
  "span_type": "char_range",
  "locate": { "start": 1841, "end": 1868, "text": "not later than 45 days" },
  "justify": { "start": 1802, "end": 1904, "text": "The provider must deliver the report not later than 45 days after the end of the quarter." },
  "padding_words": 3,
  "redaction_class": "none",
  "offset_basis": "unicode_codepoints_after_nfkc_normalization"
}

Four details do the heavy lifting. The document hash pins the text version so a stale offset is detectable rather than wrong. The duplicated text lets a renderer recover by search rather than fail. The explicit offset basis (code points, UTF-16 units, or bytes) prevents the classic accent-and-emoji misalignment. The padding count documents why the range is wider than the token, so nobody tightens it later.

Version span rules the way you version prompts. Prompt descriptions that drive automated review are typically versioned on each edit, with the human-facing description and the model instruction controlled separately so changes stay traceable Ziflow's ReviewAI documentation. Treat your span policy as the same kind of artifact: a versioned, testable specification.

Building the full pipeline, from model calls to the span schema to the review interface, is the kind of project you can describe and have picked up as a build: Quanta takes your description of the app or workflow and a specialist builds it with you. If findings span text, scanned pages and disclosure images, one API key for every model type at Quanta Inference keeps the plumbing to a single integration.

A short checklist before you ship

  • Span type recorded on every finding, with offsets and the enclosing sentence.
  • Four boundary conventions written down.
  • Padding rule applied so negations and operators sit inside character ranges.
  • Document hash and offset basis stored with each span.
  • Per-finding-type rules documented and versioned.
  • Redaction class attached for privacy review.
  • Span experiment run on 30 to 50 findings, timing and error rate reported together.
  • Re-run scheduled whenever document mix or span rules change.
FAQ

FAQ

What is a citation span in a disclosure review?

It is the exact piece of source text the reviewer is pointed at when judging a finding: a clause, a full sentence, or a pair of character offsets. It is distinct from the finding's explanation. The explanation says what is wrong; the span says where to look to confirm it, which is why passage-level labels are more actionable than a whole-document score the span annotation study.

How many findings do I need to test span options reliably?

Thirty to fifty real findings, stratified by type and mixed as your production queue looks, with two or three reviewers. That yields 90 to 150 time observations, enough to compare median decision times across two or three conditions. It is not enough to subdivide by finding type, so keep the comparison broad and rerun after any rule change.

Should I just cite the whole paragraph to be safe?

No. Wider spans push search work back onto the reviewer, which is what the pre-annotation experiment shows you can avoid: pre-highlighted text cut annotation time by 13.85% to 21.5% per entity with no loss of accuracy the PubMed study. A paragraph cite also makes the reviewer pick which sentence matters, adding a classification task to every finding. Keep the narrow highlight and add the paragraph as dimmed context.

How do I stop highlights drifting when documents get edited?

Store the document hash, the offset basis (code points versus bytes), and the exact span text. When the hash changes, search for the stored span string and mark the finding for re-review if the search fails. Duplicating the text is cheap and turns a silent mis-highlight into a visible, recoverable error.

Does the span type change how I tune the detector?

Yes, indirectly. If character-range spans keep clipping negations, that is a signal about how the detector phrases findings, not just how the interface draws them. Treat span errors as a second quality signal alongside precision and recall, and review both when you retune. A detector that improves catch rate while making spans less legible has not improved the queue.

Sources

Sources

  1. Classification: Accuracy, recall, precision, and related metrics
  2. Evaluating the impact of pre-annotation on ... - PubMed
  3. DLP False Positives: What They Are and How to Reduce ...
  4. How To Reduce DLP False Positives: A Tuning Playbook
  5. LLMs as Span Annotators: A Comparative Study of ...
  6. Temporal Annotation, Definition & Training Data
  7. Span Categorization New: 1.11
  8. How to Use Generative AI for Document Review - DISCO
  9. Why Most DLP Alerts Go Uninvestigated
  10. Privacy risks associated with the use of generative AI tools
  11. AI Prompting Mistakes that Risk Company Data
  12. Create and edit ReviewAI prompt descriptions
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