Chandra parses the vast majority of documents perfectly on the first pass. But documents always have edge cases, and on the hardest pages a few of the smallest mistakes can slip through the initial inference — a dropped diacritic, or a misread digit. These are exactly the errors that are hardest to catch, because at a full-page level everything looks right. And they matter: a single wrong character can change the meaning of a word entirely.
High accuracy mode exists to catch these. It re-examines Chandra’s output, finds the pages that went wrong, and fixes them. Today we’re shipping an update that makes it both more accurate and lighter-touch: it catches more real mistakes, while making fewer changes to pages that were already correct.
Verification models trained for the job
The update is powered by new verification models that we’ve trained specifically for this. We trained our verifiers on-distribution with Chandra’s own predictions — they learn what Chandra’s mistakes actually look like, which makes them far more accurate at telling a real error apart from a correct-but-unusual parse. On top of that, they incorporate signals from our other models, like the word bounding box and confidence model. Together, these make for much stronger verifiers.
That accuracy cuts both ways:
- They catch more real mistakes. The verifiers are better at spotting the subtle errors that a page-level check misses.
- They flag fewer false positives. Because they’re less trigger-happy on pages that were already right, we send fewer pages through the expensive correction step. That means high accuracy mode makes fewer unnecessary changes to the page, and overall latency improves.
Two capabilities make this work:
Better explanations. The verifiers don’t just flag a page as wrong — they tell us what’s wrong. That explanation feeds directly into the correction step as guidance on what to fix, so the rewrite is targeted rather than a blind re-parse.
Block-level inspection. Beyond scoring the page as a whole, the verifiers can crop in and look at individual blocks up close. This is how they catch the small stuff — a single wrong character in a dense paragraph, or a table cell that’s slightly off — that is invisible when you’re looking at the entire page at once.
Examples
The verifiers flag and fix mistakes like the ones below. These are exactly the errors that are really hard for the human eye to catch when scanning a full document — and that even frontier models struggle with identifying.
Try it out
To use the updated high accuracy mode, set processing_mode=accurate on the API, or select it in the playground:
import requests
response = requests.post(
"https://www.datalab.to/api/v1/marker",
headers={"X-Api-Key": "YOUR_API_KEY"},
data={"output_format": "html", "processing_mode": "accurate"},
files={"file": open("document.pdf", "rb")},
) The update is live now, and pricing stays the same as before — $10 per 1,000 pages. For on-premise deployments or help evaluating it on your own documents, reach out at [email protected].