# Lite vs Azure, AWS and Google: 2x faster, 10x cheaper, as accurate

> Datalab Lite returns text, tables, headings, reading order and layout boxes for $0.50 per 1,000 pages: 2x faster than Azure on long documents, 10x cheaper, and nearly as accurate. 20x to 30x cheaper than Google Document AI and AWS Textract.

- Canonical: https://www.datalab.to/blog/lite-vs-cloud-document-ai
- Published: 2026-10-26
- Authors: Vik Paruchuri

If you parse documents for search or RAG, you parse every page you index. The layout APIs from Azure, Google and AWS charge $5 to $15 per 1,000 pages for that, so a 10-million-page archive costs $50,000 to $150,000 to parse once.

Datalab's lite mode costs $0.50 per 1,000 pages. That 10-million-page archive costs $5,000. Each page comes back with its text, tables, headings, lists and reading order, and a layout box for every block.

Compared with Azure's layout API, lite is:

- 2x faster on long documents. A 50-page PDF takes 4.9 seconds, against 12.0 seconds for Azure.
- 10x cheaper, and 20x to 30x cheaper than Google Document AI and AWS Textract.
- Nearly as accurate: 78.2 overall, against 80.8 for Azure. Lite scores higher than Textract (71.9) and Google (65.1).

The free plan includes up to 40,000 lite pages a month on a work email. You don't need a card.

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/fig-overall.png" alt="Bar chart of OmniParseBench overall scores without math, with list price per 1,000 pages: Datalab lite 78.2 at $0.50, Azure Content Understanding layout 80.8 at $5.00, AWS Textract 71.9 at $15.00, Google Document AI Layout Parser 65.1 at $10.00. A 50-page PDF takes 4.9 seconds with lite and 12.0 seconds with Azure." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 1 - OmniParseBench overall score on documents without math, with list price per 1,000 pages.</figcaption>
</figure>

## What you get back

Lite labels each block on the page: headings, paragraphs, lists, tables, headers and footers. Each block has a layout box, and the blocks come back in reading order. Tables keep their rows and columns. One request can return markdown, JSON and chunks for retrieval.

This is lite's output on a page from a Berkshire Hathaway annual report:

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/table-api-example.png" alt="A Berkshire Hathaway consolidated statement of earnings processed by lite mode, with heading, table, text and footer boxes drawn on the page, next to the markdown output with the headings and the first rows of the table." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 2 - Lite API output on a financial statement: a box and label for every block, and the table as a table.</figcaption>
</figure>

With the boxes, you can link an answer to the spot on the page it came from. Because the table keeps its structure, a RAG pipeline can retrieve a row together with its column headers.

The same request works on a scanned Korean letter:

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/korean-api-example.png" alt="A scanned Korean letter processed by lite mode, with block boxes and labels on the page, next to the Korean markdown output." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 3 - Lite API output on a scanned Korean letter.</figcaption>
</figure>

## Price

Lite is $0.50 per 1,000 pages, with no tiers and no minimums. The cloud layout APIs list at $5 to $15:

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/fig-price.png" alt="Bar chart of list price per 1,000 pages: Datalab lite $0.50, Azure Content Understanding layout $5.00, Google Document AI Layout Parser $10.00, AWS Textract Tables + Layout $15.00." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 4 - List price per 1,000 pages for structured output, US regions, October 26, 2026.</figcaption>
</figure>

<div style="overflow-x:auto">

| Service                                         | Per 1,000 pages | Per million pages |
| ----------------------------------------------- | --------------: | ----------------: |
| **Datalab lite**                                |       **$0.50** |          **$500** |
| Azure Content Understanding, layout             |           $5.00 |            $5,000 |
| Google Document AI, Layout Parser               |          $10.00 |           $10,000 |
| AWS Textract, AnalyzeDocument (Tables + Layout) |          $15.00 |           $15,000 |

</div>

At $500 per million pages, you can parse a whole archive. When you change your chunking or your schema, you can parse it again.

_Sources: [Datalab pricing](/pricing), [Azure retail prices](<https://prices.azure.com/api/retail/prices?$filter=contains(productName,%20%27Content%20Understanding%27)%20and%20armRegionName%20eq%20%27eastus%27>) (East US, Content Understanding async Standard content extraction), [Google Document AI pricing](https://cloud.google.com/products/document-ai/pricing) and [AWS Textract pricing](https://aws.amazon.com/textract/pricing/) (us-east-1, first million pages a month). List prices, before free tiers, commitments and taxes. The text-only OCR APIs from each cloud cost less, but return no tables or layout._

## Accuracy

We ran lite and the three cloud APIs on [OmniParseBench](/blog/omni-parse-bench), our document parsing benchmark. To keep the comparison fair, we left out every math test for every system. That leaves 12,972 tests on 2,502 pages.

<div style="overflow-x:auto">

| Parser                                 | Price / 1,000 pages |  Overall |     Text |   Tables |   Layout |
| -------------------------------------- | ------------------: | -------: | -------: | -------: | -------: |
| **Datalab lite**                       |           **$0.50** | **78.2** | **69.5** | **74.2** | **90.7** |
| Azure Content Understanding, layout    |               $5.00 |     80.8 |     68.0 |     81.7 |     92.8 |
| AWS Textract, Tables + Layout          |              $15.00 |     71.9 |     57.6 |     75.8 |     82.2 |
| Google Document AI, Layout Parser v1.0 |              $10.00 |     65.1 |     70.0 |     43.9 |     81.2 |

</div>

Lite scores less than 3 points below Azure overall, at a tenth of the price. On text, lite scores higher than Azure and Textract, and 0.5 points below Google. On tables, lite scores 74.2: 30 points above Google's Layout Parser and 1.6 below Textract. Azure scores higher on tables and layout.

## Multilingual documents

Most of the benchmark is English, so the average can hide a parser that fails on other scripts. OmniParseBench has 897 text tests in non-Latin scripts:

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/fig-non-latin.png" alt="Bar chart of OmniParseBench text scores on 897 tests in non-Latin scripts: Datalab lite 76.3, Google Document AI Layout Parser 71.9, Azure Content Understanding layout 33.9, AWS Textract 2.5." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 5 - Text tests in non-Latin scripts, 897 tests on 297 pages, without math.</figcaption>
</figure>

Textract passes 2.5% of these tests, and Azure passes 33.9%. Lite passes 88% or more of the tests in Armenian, Ethiopic, Hebrew, Kannada, Lao and Telugu:

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/fig-scripts.png" alt="Share of OmniParseBench tests passed per script for lite, Azure, Textract and Google: Armenian 100, 0, 0, 48; Ethiopic 100, 0, 0, 95; Kannada 98, 0, 0, 98; Lao 88, 0, 0, 69; Telugu 91, 0, 0, 91; Hebrew 90, 40, 0, 60." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 6 - Share of text and table tests passed, for six scripts. Every script is in the appendix.</figcaption>
</figure>

If your documents come in many languages, you can send all of them to the same API.

## Speed

We sent five PDFs, cut to each length, to lite and to Azure Layout. We ran four requests at a time and timed each request end to end:

<figure style="margin:32px 0">
  <img src="/images/blog/lite-cloud-comparison/fig-latency.png" alt="Bar chart of median time per request by document length, lite vs Azure Content Understanding layout: 1 page 2.1 s vs 3.0 s, 10 pages 3.4 s vs 4.8 s, 50 pages 4.9 s vs 12.0 s." style="display:block;width:100%;max-width:900px;margin-inline:auto" />
  <figcaption style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-3);margin-top:12px">fig. 7 - Median time per request, end to end, over 5 born-digital PDFs per length.</figcaption>
</figure>

<div style="overflow-x:auto">

| Document length |  Lite | Azure layout |
| --------------- | ----: | -----------: |
| 1 page          | 2.1 s |        3.0 s |
| 5 pages         | 2.8 s |        4.3 s |
| 10 pages        | 3.4 s |        4.8 s |
| 25 pages        | 3.7 s |        7.5 s |
| 50 pages        | 4.9 s |       12.0 s |

</div>

Lite is faster at every length. At 50 pages, it takes 4.9 seconds against Azure's 12.0, so you can parse a long upload while the user waits.

## What to build with it

Backfills are the first use. A million pages costs $500, so you can parse an archive and parse it again when your pipeline changes.

Search and RAG come next. Headings and tables give you better chunks, and the boxes let you cite the page.

Lite also fits inside a product. A 10-page document comes back in 3.4 seconds, so you can parse each upload before you route or extract from it.

Some documents need a stronger mode. Lite can lose the structure of tables with merged cells. It reads handwriting and degraded scans less accurately, and it doesn't extract images. For these documents, use our `fast`, `balanced` or `accurate` modes.

## Get started

[Create an account](/auth/sign_up), get an API key, and set `mode` to `lite`:

```python
import os
import time
import requests

headers = {"X-Api-Key": os.environ["DATALAB_API_KEY"]}

with open("document.pdf", "rb") as document:
    response = requests.post(
        "https://www.datalab.to/api/v1/convert",
        headers=headers,
        files={"file": ("document.pdf", document, "application/pdf")},
        data={"mode": "lite", "output_format": "markdown,json,chunks"},
        timeout=60,
    )
response.raise_for_status()
submission = response.json()
if not submission.get("success", False):
    raise RuntimeError(submission.get("error", submission))

for _ in range(300):
    response = requests.get(
        submission["request_check_url"], headers=headers, timeout=60
    )
    response.raise_for_status()
    result = response.json()
    if result.get("status") in {"error", "failed"}:
        raise RuntimeError(result.get("error", result))
    if result.get("status") == "complete":
        if not result.get("success", False):
            raise RuntimeError(result.get("error", result))
        if result.get("result_url"):
            download = requests.get(result["result_url"], timeout=60)
            download.raise_for_status()
            result = download.json()
        print(result["markdown"])
        break
    time.sleep(2)
else:
    raise TimeoutError("Conversion did not complete during polling")
```

The free plan includes $20 of usage a month on a work email, or $10 on a personal email, with no card. On lite alone, that's 40,000 or 20,000 pages a month. Other modes use the same allowance, which resets each month. See [pricing](/pricing).

If you have a large backfill, [tell us about it](mailto:support@datalab.to).

## Method

We used [OmniParseBench](/blog/omni-parse-bench) dataset snapshot `961c0f89a2da701f5ce53afbd5e80aa469b0369a` and scorer `1.0.0rc1+49f0c983509e`. The snapshot has 16,288 tests on 2,937 pages. We left out the 3,316 tests tagged math for every system, and kept the other tests on those pages. That leaves 12,972 tests on 2,502 pages: 5,228 text, 5,382 table and 2,362 layout tests. The overall score is the mean of the text, table and layout scores, which is the benchmark's headline number.

Lite is the production API with `mode=lite`, run on October 25, 2026. Azure is Content Understanding `prebuilt-layout`. Its results were saved on September 30 and October 6, 2026, and we rescored them with the same scorer. Textract is `AnalyzeDocument` with `TABLES` and `LAYOUT` in `us-east-1`. We converted 17 image files that Textract doesn't accept to PNG, without loss. The 15 pages that Textract rejected count as failures. Google is the generally available Layout Parser, `pretrained-layout-parser-v1.0-2024-06-03`, in `us`, with images wrapped as PDFs without loss.

The non-Latin group holds the `present`, `order` and `repeat` tests with an ISO 15924 script tag other than `Latn`. Each test counts once.

For speed, we used the first 1, 5, 10, 25 and 50 pages of five public arXiv PDFs. We ran four requests at a time from one client, and polled every 0.5 seconds. Azure ran on October 22, 2026, and lite on October 25, 2026. All 25 requests per system succeeded.

We build OmniParseBench. These scores apply to this benchmark and these versions.

Download the [full results without math](/images/blog/lite-cloud-comparison/scores-no-math.json), with every tag and source suite.

## Appendix: full results

All scores are the share of tests passed, without math. The category, script and language tables use text and table tests. Tags overlap, and many groups are small, so one test can move a score several points.

<details>
<summary>Document categories</summary>

| Category      | Tests | Lite | Azure | Textract | Google |
| ------------- | ----: | ---: | ----: | -------: | -----: |
| table         |  6155 | 75.1 |  81.5 |     75.8 |   47.4 |
| multi_column  |  2561 | 68.9 |  75.2 |     66.7 |   61.2 |
| form          |  1012 | 62.5 |  82.0 |     71.3 |   74.0 |
| handwriting   |   833 | 28.1 |  36.0 |     33.0 |   32.5 |
| rotated       |   761 | 60.7 |  78.8 |     66.2 |   37.8 |
| list          |   749 | 79.7 |  77.6 |     61.3 |   83.4 |
| tiny          |   746 | 77.3 |  87.7 |     70.8 |   81.6 |
| degraded      |   459 | 36.6 |  54.5 |     50.1 |   56.4 |
| heading       |   369 | 72.4 |  62.6 |     47.7 |   52.3 |
| header_footer |   226 | 60.6 |  73.5 |     62.4 |   68.6 |
| footnote      |   101 | 70.3 |  80.2 |     66.3 |   79.2 |
| figure        |    68 | 79.4 |  58.8 |     75.0 |   60.3 |
| caption       |    66 | 74.2 |  75.8 |     60.6 |   65.2 |
| code          |    11 |  9.1 |  81.8 |     54.5 |    9.1 |

</details>

<details>
<summary>Scripts (ISO 15924)</summary>

| Script | Tests |  Lite | Azure | Textract | Google |
| ------ | ----: | ----: | ----: | -------: | -----: |
| Arab   |    13 |  69.2 |  61.5 |      0.0 |   76.9 |
| Armn   |    60 | 100.0 |   0.0 |      0.0 |   48.3 |
| Beng   |    40 |  82.5 |   0.0 |      0.0 |   97.5 |
| Cans   |     8 |   0.0 |   0.0 |      0.0 |    0.0 |
| Cher   |     1 | 100.0 |   0.0 |      0.0 |  100.0 |
| Copt   |    19 |  52.6 |   0.0 |      0.0 |    0.0 |
| Cyrl   |    74 |  74.3 |  66.2 |     13.5 |   59.5 |
| Deva   |    23 |  78.3 |  87.0 |      0.0 |   87.0 |
| Ethi   |    43 | 100.0 |   0.0 |      0.0 |   95.3 |
| Geor   |    14 | 100.0 |   0.0 |      0.0 |  100.0 |
| Grek   |   103 |  56.3 |  58.3 |     23.3 |   45.6 |
| Gujr   |    15 |  66.7 |   0.0 |      0.0 |   80.0 |
| Guru   |    31 |  71.0 |   0.0 |      0.0 |   74.2 |
| Hang   |    24 |  87.5 |  95.8 |      0.0 |   87.5 |
| Hani   |   136 |  65.4 |  74.3 |      0.0 |   65.4 |
| Hebr   |    30 |  90.0 |  40.0 |      0.0 |   60.0 |
| Hira   |    19 |  52.6 |  21.1 |      0.0 |   84.2 |
| Hmng   |     4 |   0.0 |   0.0 |      0.0 |    0.0 |
| Kali   |    11 |  45.5 |   0.0 |      0.0 |    0.0 |
| Kana   |     6 |  66.7 |   0.0 |      0.0 |  100.0 |
| Khmr   |    34 |  67.6 |   0.0 |      0.0 |   94.1 |
| Knda   |    48 |  97.9 |   0.0 |      0.0 |   97.9 |
| Laoo   |    52 |  88.5 |   0.0 |      0.0 |   69.2 |
| Latn   |  9402 |  70.2 |  77.7 |     70.5 |   54.1 |
| Lisu   |     1 | 100.0 |   0.0 |      0.0 |    0.0 |
| Mlym   |    40 |  67.5 |   0.0 |      0.0 |   95.0 |
| Mtei   |     9 |  33.3 |   0.0 |      0.0 |    0.0 |
| Mymr   |     4 |  50.0 |   0.0 |      0.0 |   50.0 |
| Olck   |     4 |  50.0 |   0.0 |      0.0 |    0.0 |
| Orya   |     2 |   0.0 |   0.0 |      0.0 |  100.0 |
| Syrc   |     5 |  20.0 |   0.0 |      0.0 |   60.0 |
| Taml   |    25 |  84.0 |  84.0 |      0.0 |   80.0 |
| Telu   |    33 |  90.9 |   0.0 |      0.0 |   90.9 |
| Thai   |    39 |  97.4 | 100.0 |      0.0 |   87.2 |

</details>

<details>
<summary>Languages (ISO 639-3)</summary>

| Language | Tests |  Lite | Azure | Textract | Google |
| -------- | ----: | ----: | ----: | -------: | -----: |
| aai      |     2 | 100.0 | 100.0 |    100.0 |  100.0 |
| aak      |    10 |  50.0 |   0.0 |      0.0 |    0.0 |
| aau      |     1 | 100.0 | 100.0 |    100.0 |  100.0 |
| aaz      |    17 |  52.9 |   5.9 |      5.9 |    5.9 |
| afr      |    12 |   0.0 |   8.3 |     25.0 |   33.3 |
| amh      |    19 | 100.0 |   0.0 |      0.0 |   94.7 |
| ara      |     4 |  50.0 |   0.0 |      0.0 |   50.0 |
| arb      |    11 |  63.6 |  72.7 |      0.0 |   72.7 |
| arc      |     1 | 100.0 |   0.0 |      0.0 |    0.0 |
| asm      |     7 |  57.1 |   0.0 |      0.0 |   85.7 |
| bel      |     7 | 100.0 | 100.0 |     28.6 |   42.9 |
| ben      |    33 |  87.9 |   0.0 |      0.0 |  100.0 |
| bho      |     7 |  85.7 | 100.0 |      0.0 |  100.0 |
| bzi      |    13 | 100.0 | 100.0 |      0.0 |   69.2 |
| ces      |     3 | 100.0 | 100.0 |    100.0 |  100.0 |
| chr      |     1 | 100.0 |   0.0 |      0.0 |  100.0 |
| cmn      |   109 |  69.7 |  82.6 |      0.0 |   66.1 |
| cop      |    19 |  52.6 |   0.0 |      0.0 |    0.0 |
| dan      |     3 | 100.0 |  66.7 |     33.3 |  100.0 |
| deu      |    25 |  88.0 |  84.0 |     68.0 |   68.0 |
| ell      |    12 |  25.0 | 100.0 |      0.0 |  100.0 |
| eng      |  8434 |  71.0 |  79.0 |     73.3 |   53.2 |
| fin      |     4 |  50.0 |  75.0 |     75.0 |   25.0 |
| fra      |   208 |  33.7 |  61.5 |     34.1 |   47.1 |
| fro      |     3 |   0.0 |   0.0 |      0.0 |    0.0 |
| grc      |    18 |  50.0 |   0.0 |      0.0 |  100.0 |
| gsw      |     7 |   0.0 |   0.0 |      0.0 |    0.0 |
| guj      |    15 |  66.7 |   0.0 |      0.0 |   80.0 |
| hau      |    23 |  87.0 |  34.8 |     30.4 |   30.4 |
| hbo      |    16 |  93.8 |   0.0 |      0.0 |   50.0 |
| heb      |     5 | 100.0 |  80.0 |      0.0 |   80.0 |
| hin      |     3 |   0.0 | 100.0 |      0.0 |   33.3 |
| hrv      |     1 |   0.0 |   0.0 |      0.0 |    0.0 |
| hun      |     5 | 100.0 | 100.0 |     40.0 |  100.0 |
| hye      |    40 | 100.0 |   0.0 |      0.0 |   22.5 |
| hyw      |    20 | 100.0 |   0.0 |      0.0 |  100.0 |
| ike      |     8 |   0.0 |   0.0 |      0.0 |    0.0 |
| ind      |    29 |  62.1 |  82.8 |     79.3 |   82.8 |
| isl      |    18 | 100.0 | 100.0 |     72.2 |  100.0 |
| ita      |    10 |  80.0 |  80.0 |     90.0 |   90.0 |
| jpn      |    20 |  55.0 |  25.0 |      0.0 |   85.0 |
| kan      |    48 |  97.9 |   0.0 |      0.0 |   97.9 |
| kat      |    14 | 100.0 |   0.0 |      0.0 |  100.0 |
| khm      |    34 |  67.6 |   0.0 |      0.0 |   94.1 |
| kor      |    24 |  87.5 |  95.8 |      0.0 |   87.5 |
| kyu      |     7 |  28.6 |   0.0 |      0.0 |    0.0 |
| lao      |    52 |  88.5 |   0.0 |      0.0 |   69.2 |
| lat      |     1 | 100.0 | 100.0 |    100.0 |  100.0 |
| lim      |     2 | 100.0 | 100.0 |    100.0 |  100.0 |
| lis      |     1 | 100.0 |   0.0 |      0.0 |    0.0 |
| lit      |     7 | 100.0 | 100.0 |      0.0 |  100.0 |
| mal      |    40 |  67.5 |   0.0 |      0.0 |   95.0 |
| mar      |    12 | 100.0 |  83.3 |      0.0 |  100.0 |
| mlt      |     5 |  80.0 |  20.0 |      0.0 |   80.0 |
| mni      |     9 |  33.3 |   0.0 |      0.0 |    0.0 |
| msa      |     4 | 100.0 |   0.0 |      0.0 |  100.0 |
| mya      |     4 |  50.0 |   0.0 |      0.0 |   50.0 |
| nld      |     5 |  60.0 |  60.0 |     60.0 |   60.0 |
| nob      |     1 | 100.0 | 100.0 |    100.0 |    0.0 |
| npi      |     1 |   0.0 |   0.0 |      0.0 |    0.0 |
| ory      |     2 |   0.0 |   0.0 |      0.0 |  100.0 |
| pan      |    31 |  71.0 |   0.0 |      0.0 |   74.2 |
| pnt      |     6 |  66.7 | 100.0 |      0.0 |  100.0 |
| pol      |    23 |  82.6 |  87.0 |     69.6 |   78.3 |
| por      |    13 |  69.2 |  92.3 |     61.5 |   69.2 |
| ron      |    26 |  65.4 |  26.9 |      7.7 |   15.4 |
| rus      |    53 |  67.9 |  62.3 |     13.2 |   60.4 |
| sat      |     4 |  50.0 |   0.0 |      0.0 |    0.0 |
| spa      |    72 |  66.7 |  84.7 |     75.0 |   70.8 |
| swe      |     1 | 100.0 | 100.0 |    100.0 |  100.0 |
| syc      |     5 |  20.0 |   0.0 |      0.0 |   60.0 |
| tam      |    25 |  84.0 |  84.0 |      0.0 |   80.0 |
| tel      |    33 |  90.9 |   0.0 |      0.0 |   90.9 |
| tha      |    26 |  96.2 | 100.0 |      0.0 |   96.2 |
| tir      |    24 | 100.0 |   0.0 |      0.0 |   95.8 |
| tur      |     5 |  60.0 | 100.0 |     80.0 |   60.0 |
| ukr      |    14 |  85.7 |  64.3 |      7.1 |   64.3 |
| vie      |    26 |  80.8 |  96.2 |      0.0 |   76.9 |
| ydd      |    10 |  80.0 |  80.0 |      0.0 |   60.0 |
| yor      |    14 |  50.0 |   0.0 |      0.0 |    0.0 |

</details>

<details>
<summary>Test types and source suites</summary>

| Test type   | Tests | Lite | Azure | Textract | Google |
| ----------- | ----: | ---: | ----: | -------: | -----: |
| layout_kind |  2362 | 90.7 |  92.8 |     82.2 |   81.2 |
| present     |  4004 | 70.6 |  68.3 |     59.0 |   71.4 |
| order       |  1189 | 66.2 |  67.1 |     52.7 |   65.3 |
| repeat      |    35 | 60.0 |  62.9 |     65.7 |   74.3 |
| table_cell  |  5382 | 74.2 |  81.7 |     75.8 |   43.9 |

| Source suite        | Tests |  Lite | Azure | Textract | Google |
| ------------------- | ----: | ----: | ----: | -------: | -----: |
| docparsing_images   |   297 |  77.8 |  88.9 |     73.7 |   77.1 |
| forms_documentcloud |    47 |  83.0 |  87.2 |     85.1 |   68.1 |
| forms_federal       |   127 |  69.3 |  92.1 |     90.6 |   81.9 |
| forms_filled        |   107 |  86.0 |  88.8 |     81.3 |   80.4 |
| frbench_handwriting |    84 |  10.7 |  60.7 |     29.8 |   28.6 |
| handwriting_samples |   324 |  18.8 |  22.8 |     11.1 |   19.4 |
| large_format        |    57 |  66.7 |  84.2 |     73.7 |   71.9 |
| multiling_finepdfs  |   676 |  84.3 |  49.0 |     28.3 |   71.4 |
| multilingual        |    92 |  43.5 |  67.4 |     35.9 |   66.3 |
| olmo_arxiv_math     |   411 |  98.8 |  99.5 |     96.8 |   92.7 |
| olmo_long_tiny_text |   237 |  81.9 |  94.9 |     77.2 |   89.5 |
| olmo_multi_column   |   352 |  83.0 |  87.2 |     80.4 |   75.6 |
| olmo_old_scans      |   395 |  28.6 |  36.2 |     32.2 |   34.2 |
| olmo_old_scans_math |    11 | 100.0 |  90.9 |     90.9 |   90.9 |
| olmo_table_tests    |   710 |  78.0 |  81.4 |     87.2 |   62.1 |
| parsebench_docs     |   293 |  88.1 |  86.7 |     85.0 |   80.9 |
| realdoc_pages       |   445 |  78.0 |  87.4 |     76.2 |   83.1 |
| realdoc_pdfs        |   256 |  72.7 |  86.7 |     75.8 |   75.4 |
| rotation_skew       |   375 |  80.5 |  91.5 |     86.9 |   78.9 |
| synth_copies        |  1880 |  74.7 |  69.4 |     56.1 |   70.4 |
| tables_derived      |  5424 |  77.4 |  83.5 |     77.4 |   48.2 |
| tiny_plans          |   372 |  90.6 |  94.4 |     71.2 |   92.2 |

</details>
