BLOG · PRODUCT UPDATES

By Alexandru Papiu, Tarun Menta 3 mins

Improving High Accuracy Mode

High accuracy mode is now more accurate while making fewer changes to the page, powered by new verification models trained on-distribution with Chandra.

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.

Dense reference text — minor errors caught by cropping in
On a dense page, the verifiers crop into individual blocks and catch minor text mistakes that would never be flagged at a full-page level.
Dense magazine spread — a single misread word corrected
On this dense spread, the verifiers catch a single misread word that the full-page parse got wrong — the kind of one-token error that is easy to miss.

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].

START

Get started in minutes.

Free tier. No credit card. SOC 2 Type II.