Understanding OCR prices
Why a dense page can cost more
Many of the models on OpenOCR are AI models that charge for how much they read and how much they write. A page packed with text makes them write more, so it costs more than a page with a few lines on it. This page explains why, shows real numbers, and explains how to keep your costs predictable.
What we mean by a standard page
When a price on OpenOCR has a small asterisk (*), it is an estimate for a standard page: about 1,800 characters including spaces, roughly 250–300 words of ordinary text. This is the usual “standard page” that translators and publishers use. A typed letter or a page of a report is close to it.
You are not billed per standard page. A standard page is only the yardstick for the estimate. You are billed for what the model actually used on each of your pages, so a sparse page costs less than the estimate and a dense one costs more. Prices without an asterisk are fixed per page and do not depend on how much text is on the page.
Why the amount of text changes the price
These models count their work in tokens. A token is a small piece of text, often part of a word. In OCR output, with its numbers, punctuation and formatting, one token is about 3 characters. The provider charges for two kinds of tokens, at different rates:
- Input tokens: the picture of your page. The model turns the image into tokens before it reads it. For a given model this is nearly the same for every page. A blank page and a full page are the same size image, so it does not grow with the amount of text.
- Output tokens: the text the model writes back. Every character it transcribes has to be written as output, and output usually costs several times more per token than input. A page with ten times more text produces roughly ten times more output tokens. This is the part that changes from page to page.
- Tables add formatting. To keep rows and columns, the model writes the table in a structured format with separators and spacing. Those characters are output too, so a table can cost more than plain text with the same words.
- Some models “think” first. Reasoning models write hidden working notes before the answer. You never see those notes, but the provider bills them as output tokens. On a hard page this can be more than the transcription itself.
- There is a ceiling. Each request has an output limit (often about 4,000 tokens). A very dense page can hit it. The charge then stops growing, but the transcription is cut off and comes back with a warning. Check it before you rely on it.
Real numbers from our own traffic
Our most used token-billed model is Gemini 3.1 Flash Lite. It charges $0.25 per million input tokens and $1.50 per million output tokens. We looked at the 62,102 single pages it read successfully in the 60 days up to October 4, 2026:
- The picture of the page cost about the same every time: a median of 1,133 input tokens, and 90% of pages used 1,273 or fewer.
- The text written back varied widely: 121 output tokens for the sparsest 10% of pages, 410 for a typical page, 882 for the densest 10%, and 1,848 for the densest 1%.
- So the charge varied too: $0.00048 per page for the sparsest 10%, $0.00091 for the median page, $0.00162 for the densest 10% and $0.0031 for the densest 1%. The single most expensive page cost $0.0065, about 13 times the sparse end.
| Text on the page | Output tokens (median) | Charge per page (median) |
|---|---|---|
| Under 300 characters (a label, a short receipt) | 57 | $0.00038 |
| 300–900 characters | 245 | $0.00066 |
| 900–1,500 characters | 453 | $0.00097 |
| 1,500–2,100 characters (about a standard page) | 650 | $0.00127 |
| 2,100–4,000 characters | 835 | $0.00155 |
| Over 4,000 characters (small print, dense tables) | 1,393 | $0.00239 |
Pages with a table cost more than pages without one: a median of $0.00112 against $0.00092, and $0.00262 against $0.00162 for the most expensive 10%. Only 91 of the 62,102 pages (0.15%) were long enough to hit the output limit.
Reasoning models spread much wider. On OpenAI o4-mini a typical page used 3,447 output tokens, and 2,272 of them were hidden reasoning. That is a lot of output for pages that often held only a few hundred characters, and it put the median page at about $0.026.
Worked example: one standard page
This is how we work out the estimate you see next to Gemini 3.1 Flash Lite:
Picture of the page: 1,133 input tokens × $0.25 per million = $0.00028
1,800 characters of text ≈ 600 output tokens × $1.50 per million = $0.00090
Standard page ≈ $0.0012
That matches what customers actually paid. The real pages in our traffic with 1,500–2,100 characters had a median charge of $0.00127. For each token-billed model we use the input tokens we have measured for that model, add the reasoning tokens it typically spends, and price 600 output tokens at its current rates. Where we have no measurements yet, we use the model's published rates and our best reference figures.
How to estimate your own cost
- Count your pages. Every page of a PDF and every image is one page.
- Judge how full they are. A page of a novel or a typed letter is about one standard page. A receipt or a form with a few fields is much less. Small print, spreadsheets, and two-column scientific papers can be two or three standard pages' worth of text.
- Multiply. Pages × the standard-page price × how full they are. For 1,000 typed letters on Gemini 3.1 Flash Lite: 1,000 × $0.0012 ≈ $1.20. For 1,000 dense spreadsheets, budget two to three times that.
- Test a few first. Run five or ten of your densest pages and look at the actual charge before you send the whole batch.
How to keep costs predictable
- Choose a flat-priced engine. Prices without an asterisk are a fixed amount per page, however much text is on it. Examples: AWS Textract (about $0.0016 per page), our self-hosted readers such as Tesseract ($0.002 per page), and Mistral OCR 4.1 ($0.005 per page). Compare them on the pricing page.
- Avoid reasoning models for plain text. Their hidden reasoning can cost more than the transcription. Use them when a page is genuinely hard, such as handwriting or a messy scan.
- Crop. If you only need part of a page, such as one table or a total, crop the image to that part. Less text read means fewer output tokens.
- Split very long images. A long screenshot or a poster can overflow the output limit and come back cut off. Splitting it into pages costs a little more input, but each part fits and comes back whole.
What you see before you start
In the Workbench, the price bar shows the estimate before you start a batch: the number of pages times the price per standard page for the model you picked. The final charge follows what each page really used, and you are only charged for pages that are read. In the Playground and the API, the charge for each request is shown with the result and in your usage dashboard.
Figures measured from OpenOCR production requests on October 4, 2026. Provider rates and model behavior change; the estimates on the site are recalculated every hour.