A fully synthetic, controlled benchmark for long-context visual document understanding that varies document length, layout structure, modality composition, and question type as independent axes — enabling systematic diagnosis of VLM failure modes.
*Equal contribution | 1ServiceNow AI | 2Mila – Quebec AI Institute | 3Université de Montréal
SynthDocBench evaluates vision-language models on 1,788 questions over 200 documents containing 3,340 charts, averaging 51.1 pages per document — a fully synthetic, controlled benchmark for long-context visual document understanding.
Unlike prior benchmarks that draw on real documents and confound length, layout, and modality, SynthDocBench generates documents end-to-end with an LLM pipeline across 6 layout archetypes, varying document length, layout structure, modality composition, and question type as independent axes — enabling controlled attribution of why a model fails, not just that it does.
chart (24 D3.js chart types), cross_modal (evidence split across non-adjacent sections), and complex (multi-hop, L1 → L5).| Subset | Description |
|---|---|
chart | Chart-reading questions answerable only from a chart — probes 24 D3.js chart types (incl. dumbbell, lollipop, slope, sparkline grids) requiring exact numerical reads. |
cross_modal | Questions requiring text + chart evidence from separate, non-adjacent sections (long-range cross-modal grounding). |
complex | Multi-hop questions combining 2–4 evidence units across text and charts, difficulty L1 (direct lookup) → L5 (cross-section synthesis). |
Source PDFs are hosted alongside the QA subsets on the Hugging Face Hub: ServiceNow-AI/SynthDocBench.
from datasets import load_dataset
ds = load_dataset("ServiceNow-AI/SynthDocBench")
Most document-understanding benchmarks reuse a small pool of real PDFs — hard to control and easy to overfit. SynthDocBench instead generates documents from a LangGraph pipeline, giving full control over layout, styling, charts, and the questions asked about them — at scale.
The evaluation harness rasterizes each report PDF into page-image strips — vision only, with no access to the underlying HTML or metadata — asks each candidate model the report's questions, and scores the answers with a judge model. This isolates genuine visual document understanding from any shortcut through structured text.
python eval/evaluate_models.py \
--input-dir data/reports \
--candidates gpt-4o \
--judge gpt-5 \
--output results/all_results.json
Get started with the code and dataset:
@misc{verma2026synthdocbenchcontrolledbenchmarklongcontext,
title={SynthDocBench: Controlled Benchmark for Long-Context Visual Document Understanding},
author={Abhigya Verma and Khyati Mahajan and Amit Kumar Saha and Shruthan Radhakrishna and Sagar Davasam and Vikas Yadav and Sai Rajeswar},
year={2026},
eprint={2607.10400},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2607.10400},
}