Document AI data
Checkbox and Selection Mark Data for Form Extraction
Quick answer
A useful checkbox detection dataset is real filled forms, not synthetic ticks, where every box carries a location, a state label richer than checked or unchecked, and a link to the question it answers. Buyers should require hard cases such as faint, offset, crossed-out and corrected marks, a separate "ambiguous" class with adjudication notes, and an evaluation split that reports precision and recall per state and per form version, so field-level accuracy can be measured.
By SourceX Editorial · Updated
- 01Your data spec
- 02Matched to businesses
- 03Rights and samples reviewed
- 04Licensed delivery
Checkbox errors tend to surface after a key-value model is already in production. Text fields look right, but "Smoker: Yes/No" or "Prior claims in 5 years" comes back wrong or empty, and the downstream rule engine acts on it. This page covers how to specify, source and evaluate selection-mark data for that sub-task. For text-field labels, see key-value extraction labels for annotated forms; for the wider task map, see the Document AI data hub.
Why off-the-shelf selection marks are not enough
Commercial layout and OCR APIs typically return a binary state per mark, such as selected or unselected, with a bounding region and a confidence score. That output is the floor your own labels must exceed, not a substitute for them.
That schema has two gaps for production forms. First, it does not say which question the mark answers, so a page with 40 Yes/No pairs still needs a linking step. Second, a binary state hides the marks that cause disputes: a box filled then scratched out, an X that strays into the neighboring box, or a tick written beside the box rather than in it.
Vision-language models used for zero-shot extraction can show the same blind spot: they read the printed option text fluently but may misjudge which option is marked. Public form sets help but are small and skewed: FUNSD, the common form-understanding baseline, has 199 annotated scanned forms and labels entities and links rather than mark states [1].
A mark-state taxonomy that matches real forms
Label at least six states, then collapse them to the binary your product needs at training or scoring time. Collapsing later is cheap; relabeling 50,000 boxes because "partial" was folded into "checked" is not.
Illustrative example: invented to show structure; it does not describe an available dataset.
| State label | Definition for annotators | Typical business-form cause | Default binary mapping |
|---|---|---|---|
checked_tick | Clear tick, X or check inside the box boundary | Pen-completed applications | selected |
checked_filled | Box fully or mostly shaded | OMR-style bubbles, survey sheets | selected |
checked_partial | Mark touches or partly enters the box, or is very faint | Rushed signatures, carbonless copies | review |
crossed_out | Mark present but struck through or scribbled over | Applicant changed answer | unselected, or the corrected option |
corrected | Original mark voided plus a new mark elsewhere, often initialed | Insurance and benefits forms | follow the new mark |
unchecked | Empty box, possibly with scan noise or a preprinted dot | Default state | unselected |
ambiguous | Two annotators cannot agree after adjudication | Overlapping marks, fax artifacts | excluded from training, scored separately |
Radio-button groups need one extra rule: record the group ID and whether the form allows one answer or many. A "select one" group with two marks is a data-quality signal in its own right, and models that reconcile it need examples where the second mark is corrected rather than a second selection.
Linking each box to its question and value
A mark only becomes an extraction result when it is joined to a label and resolved into a field value. Ask for three linked layers per box: the box polygon, the option label text (for example "Yes", "Owner-occupied", "Type 2 diabetes"), and the parent question or field key with its group ID. FUNSD's entity-linking design is a reasonable pattern to copy for those relations [1].
Illustrative example: invented to show structure; it does not describe an available dataset.
{"doc_id": "f-000193", "page": 2, "form_family": "life_app_part_b", "form_version": "rev_2022_03",
"box_id": "b-17", "bbox": [412, 1180, 438, 1206], "shape": "square",
"group_id": "q14_tobacco", "group_rule": "single_select",
"question_text": "Have you used tobacco in the last 12 months?", "option_text": "No",
"state": "corrected", "binary": "unselected", "resolved_field": {"key": "tobacco_use_12m", "value": "Yes"},
"annotator_ids": ["a3", "a7"], "agreement": false, "adjudicated_by": "lead_2", "notes": "No box scratched, Yes box ticked and initialed"}
Delivered as JSON Lines, one record per box, this joins cleanly to page images and to any existing key-value labels. The resolved_field column is what your evaluation should score, because a perfect detector that links "Yes" to the wrong question is still a wrong answer. If the forms also exist as system-of-record entries, the captured value can act as a cross-check; see documents paired with system-of-record entries.
Hard cases synthetic marks underrepresent
Rendered checkmarks on clean templates teach the easy part; the failure modes live in capture and handwriting variance. Treat the following as a coverage checklist in your request, with a minimum count or share per item rather than a vague "include edge cases."
- Faint and low-contrast marks: pencil, light ballpoint, second and third carbonless copies.
- Offset marks: ticks that overlap the box border, land between two boxes, or sit next to the option label.
- Over-written and corrected answers: scribble-outs, "X" over a tick, initials beside a change.
- Capture artifacts: fax halftoning, photocopy speckle that mimics a dot, skew, phone-photo perspective. The degraded document images guide covers how to specify these.
- Box design variety: squares, circles, brackets, underscores used as boxes, and boxes printed in drop-out red ink that disappears in some scans.
- Dense layouts: medical history grids and government eligibility sections with 50 or more boxes per page.
- Non-box selections: circled words, struck options and handwritten "N/A" across a group.
Detector choice does not remove the need for these examples. Whether you train a YOLO- or DETR-style object detector, fine-tune a document model, or start from an OpenCV contour heuristic that treats near-square regions as boxes, each fails differently on this list. A shape heuristic in particular breaks on circles, brackets and drop-out ink, which is exactly where real forms vary.
Measuring checkbox accuracy without hiding the hard cases
Report metrics per state, per form version and per capture condition, and score ambiguous marks on their own line. A single "checkbox accuracy" number is dominated by empty boxes: on a medical history page where most boxes are unchecked, a model that predicts unchecked everywhere can look strong while missing every positive answer.
Illustrative example: invented to show structure; it does not describe an available dataset.
| Metric | How to compute | Why it matters |
|---|---|---|
| Box detection recall | Matched boxes / ground-truth boxes at IoU threshold you fix in advance | Missed boxes become silent nulls |
| Per-state precision and recall | Confusion matrix over the six non-ambiguous states | Shows whether crossed_out is read as checked |
| Group resolution accuracy | Correct resolved value per radio or Yes/No group | Matches what the business rule consumes |
| Field-level exact match | resolved_field equals ground truth | The number underwriting or claims will feel |
| Ambiguous-set behavior | Share routed to human review vs. auto-decided | Measures calibration, not correctness |
| Slice metrics | All of the above by form version and capture source | Catches regressions after a template revision |
Budget for label noise in the test split itself. An audit of ten widely used benchmarks estimated an average test-set label error rate of at least 3.3% [2], and checkbox labels are especially exposed because a faint tick can be missed by a tired annotator. Double-annotate the evaluation split, keep the disagreement log, and freeze the split by form version so a supplier's new batch cannot leak into it.
Sourcing real filled forms with mark-state labels
Real filled forms come from organizations that process them: insurers and agencies (applications, supplements, claim notices), healthcare providers and billers (intake and history forms), and businesses filing permits, benefits or tax paperwork. Each brings different constraints, and a request should state the form families, versions, capture channels and label layers rather than a raw page count.
Nearby guides cover form families with their own field logic: ACORD form data for insurance submission intake, CMS-1500 and UB-04 claim form images, and document extraction correction logs from production IDP, which are a strong source of hard checkbox cases because reviewers fix exactly the marks the model got wrong.
Illustrative example: invented to show structure; it does not describe an available dataset.
Request template: checkbox and selection-mark data
- Form families and versions: for example life application Part B, patient intake, permit application; list revision dates you must cover.
- Capture channels and mix: flatbed scan, fax, mobile photo, born-digital with AcroForm fields flattened.
- Label layers: box polygon, shape, state (six states plus ambiguous), group ID and rule, option text, question key, resolved value.
- Annotation process: double annotation rate, adjudication rule, agreement metric reported per state.
- Hard-case minimums: share of partial, crossed-out, corrected and offset marks; share of dense grids.
- Splits: train and evaluation separated by form version and source, evaluation double-annotated.
- Personal data handling: which identifiers are removed or replaced in images and text, how redaction is verified, and the method used for any health records.
- Delivery format: page images (TIFF or PNG at stated DPI) plus JSON Lines per box, with a manifest of checksums.
Health forms deserve particular care. Intake and history pages are protected health information until de-identified, and HHS describes two routes, Safe Harbor and Expert Determination [3]. Image redaction is harder than text redaction: names, dates of birth and member IDs sit in handwriting next to the very boxes you need, so redaction boxes must not obscure the selection marks or their labels.
SourceX sources operational datasets from US companies on request, including documents and finance and legal workflow records. Every dataset is rights-reviewed for ownership and consents and delivered under a license that defines the records, uses, term and delivery. Names, emails, phones and account numbers are removed or replaced before delivery, the method is recorded and a sample is checked, though no method is perfect; health records require HIPAA de-identification by Safe Harbor or Expert Determination. Buyers can describe the checkbox data they need on the SourceX buyers page; requests are matched to US businesses that hold the data, and a request does not guarantee a match.
Where checkbox data fits in a form-extraction program
Selection marks are one layer in a form stack, and they usually ride on the same pages as text fields, signatures and tables. If you are licensing scanned forms anyway, ask for checkbox labels in the same annotation pass so box-to-question links share IDs with your key-value labels. SourceX also has a page on licensing scanned forms and handwritten documents for AI training, and related tasks such as signature and stamp detection data often share the same source documents. The master AI data guide index lists other document and structured-data tasks.
Source real filled forms for checkbox detection
SourceX finds US businesses that hold the filled forms you describe, assesses the data and licensing permissions, and agrees pricing and allowed uses in a license before anything is delivered. Every release is approved by the supplying company and delivered through private, access-controlled workflows. Start by describing the form families, mark states and label layers you need at sourcex.si/buyers.
Sources
- arXiv (Jaume, Ekenel, Thiran), "FUNSD: A Dataset for Form Understanding in Noisy Scanned Documents" (2019). https://arxiv.org/pdf/1905.13538
- arXiv (Northcutt, Athalye, Mueller), "Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks" (2021). https://arxiv.org/abs/2103.14749
- U.S. Department of Health and Human Services, Office for Civil Rights, "Guidance Regarding Methods for De-identification of Protected Health Information in Accordance with the HIPAA Privacy Rule" (2012). https://www.hhs.gov/hipaa/for-professionals/special-topics/de-identification
Tell us what your models need
Share scope, volume, language, format, timing and licensing requirements.