
Services
Self-hosted OCR cost in 2026, from public GPU prices and a published H100 throughput. What 100,000 pages cost, when an always-on L4 beats Textract, and which rates are estimates.

Self-hosted OCR cost, checked 1 November 2026, is a GPU-hour times a published pages-per-hour, not a token price. For 100,000 clean pages in a batch, the lowest figure in the OCR cost calculator is $16.97. That is PaddleOCR-VL on a Vast.ai RTX 4090, and the pages-per-hour number is an estimate. The lowest list price for the same month is $37.13 on a RunPod Secure Cloud A100, also an estimate. Textract's text API is $150 for those pages.
Leave an AWS L4 on for a month and the bill is $587.50 before disk and tax. Textract's Detect Document Text is $0.0015 a page for the first million pages. $587.50 divided by $0.0015 is 391,669 pages. Above that, the API costs more than the GPU you already paid for, if one L4 can finish the pages. The model decides the second half. It does not change the $587.50.
A managed OCR API charges per page. A self-hosted model charges for the GPU while it runs, or for the whole month if you leave it on so a person is not waiting on a cold start. Engineering time, object storage, egress, and retries are real, and they are not in these figures. The LLM API pricing comparison is the token version of the same habit: read the vendor page, date it, and do not invent the rate.
The calculator uses 730 hours as a month. That is the figure in Google's own pricing examples. Pay-per-use is pages divided by pages per hour, times the hourly rate. Always-on is the hourly rate times 730, times the number of instances you need if one GPU cannot finish the month.
Document type is a clean digital PDF, latency is batch, provider is "no preference." Prices below are the calculator's output for 1 November 2026.
| Option | This month | Per 1,000 pages | What kind of number |
|---|---|---|---|
| PaddleOCR-VL, Vast.ai RTX 4090 median | $16.97 | $0.17 | Throughput is a bandwidth estimate. Price is a median of 60 on-demand offers, not a list price |
| PaddleOCR-VL, RunPod Secure Cloud A100 SXM 80GB | $37.13 | $0.37 | List price. Throughput is still an estimate |
| PaddleOCR-VL, Vast.ai H100 SXM median | $27.83 | $0.28 | Pages/hour is the measured H100 rate. Price is a median of 22 offers |
| AWS Textract, Detect Document Text | $150 | $1.50 | List price, first million pages |
| Google Document AI, Enterprise OCR | $150 | $1.50 | List price. The first 1,000 pages free are not subtracted |
| Azure Document Intelligence, S0 Read | $150 | $1.50 | Retail price, East US, first million pages |
| Mistral OCR 4.1 | $400 | $4.00 | List price. The batch discount to $2 is not applied |
The always-on bill for that Vast RTX 4090 is $295.24, whether you process 10,000 pages or 100,000, until the card runs out of hours. Against a $1.50-per-thousand text API, one of those cards breaks even at 196,829 pages in the month. Below that, leaving it on is the expensive choice and paying for the hours is the cheap one.
Tables and forms change the API, not the GPU. At 100,000 pages, Textract Tables is $1,500 in AWS's own example rate of $0.015 a page. Google Layout Parser and Azure's prebuilt meter are $1,000. Mistral stays at $400, because the OCR API price already includes structure. The GPU-hour estimate is still $16.97. That gap is why a forms pipeline is where self-hosting starts to look obvious, and also where you should time your own pages before you believe the estimate.
AWS g6.xlarge is one L4. The Linux on-demand price in US East (N. Virginia), read from the price file behind the EC2 on-demand page on 1 November 2026, is $0.8048 an hour. Times 730 hours, that is $587.50. Textract Detect Document Text is $0.0015 a page for the first million pages a month, from the examples on the Textract pricing page, then $0.0006.
$587.50 / $0.0015 = 391,669 pages. Published write-ups that say about 392,000 pages are this same instance price, rounded. The often-quoted "$176 per million pages" is a different thing: Table 6 of the February 2025 olmOCR paper, for olmOCR v1 on an L40S at RunPod's then-current $0.79 an hour. It is not olmOCR-2, and the calculator does not use it.
391,669 pages is only a win if one L4 can process them in a month. E2E Networks measured PaddleOCR-VL at 2.20 pages/sec on an H100. Scaling that by the L4's 300 GB/s against the H100 SXM's 3.35 TB/s gives about 709 pages an hour, or about 518,000 pages in 730 hours. That clears 391,669. It is an estimate. A 24 GB GPU cannot run the batch of 512 the PaddleOCR-VL paper used on an A100 (they recorded about 43.7 GB of VRAM), so the real L4 rate can be lower. Time a sample.
Every pages-per-second figure below is from E2E Networks' H100 benchmark: olmOCR-Bench PDFs at 200 DPI, served with vLLM. The score is the same benchmark. Higher is better. OmniDocBench uses edit distance, a different scale, so it is not mixed in.
| Model | Pages/sec on one H100 | olmOCR-Bench |
|---|---|---|
| Chandra OCR | 1.29 | 83.1 ± 0.9 |
| olmOCR-2-7B | 1.78 | 82.4 ± 1.1 |
| PaddleOCR-VL | 2.20 | 80.0 ± 1.0 |
| dots.ocr | 1.94 | 79.1 ± 1.0 |
Ai2's 22 October 2025 release note also states 82.4 for olmOCR-2, and 3,400 output tokens/sec on one H100. I do not turn tokens per second into pages, because the note does not say how many tokens a page is. The release note says the October 2025 training mix added 20,000 handwritten and typewritten pages. That is not a handwriting score, so the calculator does not lock handwriting to olmOCR-2. You can select more than one document type. The page count is not split between them.
Any GPU that is not that H100 is scaled by published NVIDIA memory bandwidth. L4 is 300 GB/s, A10 is 600 GB/s, RTX 4090 is 1,008 GB/s, A100 80GB SXM is 2,039 GB/s, H100 SXM is 3.35 TB/s. E2E did not say whether their H100 was SXM or PCIe. The scale uses the SXM figure as the denominator. The calculator badges every scaled row as an estimate.
The score does not move when you change the GPU. Quality is the model. On the calculator the results table repeats the same olmOCR-Bench score down every GPU row for that model, and a separate GPU-price table shows the hourly rate and the 730-hour month. The same E2E H100 run also measured DeepSeek-OCR at 4.65 pages/sec and 75.7. That row is in the cost table. It sits under the score floor used for the recommendation, so a higher score still wins when it is inside the price cap. PaddleOCR-VL is Baidu's model and dots.ocr is RED AI Lab's. OmniDocBench is a different scale: the README leaderboard read on 1 November 2026 gives PaddleOCR-VL 94.18 overall and 90.65 table TEDS, and dots.ocr 90.77 overall and 87.18 table TEDS. GLM-OCR, HunyuanOCR, MinerU2.5, PaddleOCR-VL-1.5, PaddleOCR-VL-1.6, DeepSeek-OCR 2, and Qwen3-VL-235B are on that leaderboard and are not given a monthly cost, because that H100 run did not time them. The row named olmOCR is a 7B model and is not labeled olmOCR-2, so it is not used as olmOCR-2's OmniDocBench score. Chandra has no row on that board. Textract, Google Document AI, and Azure Document Intelligence have no row on either board. Mistral's priced model is OCR 4.1. The olmOCR-Bench README scores a row called "Mistral OCR API" at 72.0, and the OmniDocBench row called "Mistral OCR" is 85.66. Neither row says OCR 4.1.
Two paper cross-checks, not used as the calculator's rate. The PaddleOCR-VL paper measured 1.2241 pages/sec for PaddleOCR-VL on one A100, and 0.3522 pages/sec for dots.ocr, both with vLLM on OmniDocBench. The Paddle number is close to a bandwidth scale of the E2E H100 rate. The dots.ocr number is much slower, so the scaled dots.ocr rows can be optimistic. The paper's A100 run used about 44 GB, which does not fit a 24 GB card.
Hourly prices are the provider's public price on 1 November 2026, with two exceptions that are labeled in the tool. Vast.ai has no list price. The rates are medians from their public bundles API at 01:12 UTC that day, one GPU, 16 GB of disk included in the hourly total. Modal's page is priced per second. Real-time on Modal uses their published 3× multiplier for non-preemptible runs, because the default Function price can be preempted. AWS and Google Cloud 8-GPU machines are priced as the whole instance, not as a made-up single-GPU slice.
Hetzner's GPU matrix that day was an RTX PRO 4000 Blackwell server at €214 a month plus a €209 setup fee, and larger RTX PRO 6000 boxes. Those are not the L4, A10, 4090, A100, or H100 this comparison is about, and I did not find a published OCR pages/hour for them. They are named on the calculator page and left out of the bill. Nanonets OCR 2 was in the same E2E table at 1.12 pages/sec and 69.5 on the benchmark. That score is far enough below the four models above that it is not offered as a recommendation.
When someone asks me to replace Textract, I do not start from a GPU SKU. I ask for a month of page counts, whether the pages are forms, and whether a person is waiting. Then I run this page, and I time a few hundred of their pages on the card the page suggests, because the non-H100 rates are a scale. The ERP operations agent is the pattern I trust once the text exists: a write waits for a person, and the agent reads the record back. OCR cost does not change that. If the GPU-hour is the cheap part and the pipeline is the actual project, that is the AI agent development work, not a bigger instance.
On 1 November 2026, the calculator's lowest batch figure for clean pages is $0.17 per 1,000, and it is an estimate on a marketplace median. The lowest list price in that same run is $0.37 per 1,000, also an estimate. Textract, Document AI, and Azure Read are $1.50 per 1,000 for plain text. Mistral OCR 4.1 is $4. Your pages will not match the benchmark exactly.
For pay-per-use, when the GPU-hour divided by pages per hour is under $0.0015. For an always-on AWS L4, when you process more than 391,669 pages in a month and one L4 can finish them. Tables are a different Textract price, $0.015 a page, so the break-even is much lower.
Ai2 ships an FP8 build and reports the speed on one H100. A 7B model in FP8 fits a 24 GB card. The L4, A10, and RTX 4090 rates in the calculator are bandwidth estimates from that H100 measurement, not a second benchmark.
No. The figures are GPU rental. Standing up the service, watching it, and keeping a bad page from reaching a database are the deployment, and they cost more than the card on any volume I would call a pilot.
The self-hosted OCR cost calculator takes pages per month, one or more document types, batch or real-time, and an optional provider. The address bar keeps the inputs, so a result can be sent around. Sources and the checked date are on the page. If the GPU bill is the small part and you want the pipeline built, that is what I do.
The plan form under this article emails the checklist. The calculator is where a page count turns that into a model, a GPU, and a monthly bill.
Free, from this page
One email with the deployment checklist and the link to price your own page count. The calculator is where the model, GPU, and monthly bill get filled in.
OCR deployment plan
No monthly figure is shown here, because this page has no page count yet.