VynarisEarly betaGet your API key

What LLM invoice extraction actually costs per 1,000 documents

A reproducible per-document cost model for LLM invoice extraction across four workhorse models, plus what a router does to the bill. Prices verified 2026-07-20.

Extracting structured data from 1,000 invoices costs between $0.74 and $7.80 in model fees, depending on which model you pick. The 5% of documents that land in a human review queue cost about $75. The model choice moves the bill by a few dollars; the exception rate moves it by tens. Prices verified 2026-07-20. This is a reproducible cost model, per document, that you can re-run with your own token counts.

The finding, before the model

Document extraction is the most common production LLM workload that nobody publishes real numbers for. A PDF invoice goes in, a JSON row comes out: vendor, date, line items, total. The vendor demos show the happy path. The bill lives in the parts they skip: the second pass you run on low-confidence documents, and the human who checks the ones the model got wrong.

We built the cost model from public pricing only. No product telemetry. Every token count below is an assumption you can edit, and every price is from a provider's live page, captured 2026-07-20. The output is a per-1,000-document number across four workhorse models, plus what a router does to it.

The workload (edit these)

One batch of 1,000 documents. These are the knobs that set the bill.

Assumption                 Value        Note
-------------------------  -----------  ------------------------------------------------------
Documents per batch        1,000        the outcome unit is cost per 1,000 docs
Input tokens per doc       3,000        rendered page text + shared instructions/schema
Output tokens per doc      700          the extracted JSON row
Shared prefix (cacheable)  1,500        schema + instructions + few-shot, identical every call
Unique doc text            1,500        the invoice itself, different every call
Second verify pass         20% of docs  re-extract low-confidence documents
Human review queue         5% of docs   exceptions a person checks by hand
Review time                3 min/doc    editable
Loaded labor               $30 / hour   editable

Two structural facts drive everything. First, output is expensive: a 700-token JSON row billed at output-token rates is more than half the bill on the pricier models, where output pricing runs 5x to 18x the input rate. Second, the prompt prefix repeats: the same schema and instructions ride on all 1,000 calls, which is exactly what prompt caching is for.

With a verify pass on 20% of documents, one batch is 1,200 model calls: 3.6M input tokens and 0.84M output tokens.

Cost per 1,000 documents, four models

Same workload, same cost-per-token math, four extraction-grade models. Uncached, then with the shared prefix served from cache. Prices verified 2026-07-20.

Model                                                                      Uncached / 1k docs  Cached prefix / 1k docs  Cache saves
-------------------------------------------------------------------------  ------------------  -----------------------  -----------
[deepseek-v4-flash](https://vynaris.com/models#deepseek-v4-flash)          $0.74               $0.49                    33%
[Gemini 3.1 Flash-Lite](https://vynaris.com/models#gemini-3-1-flash-lite)  $2.16               $1.76                    19%
[gpt-5.4-mini](https://vynaris.com/models#gpt-5-4-mini)                    $6.48               $5.27                    19%
[Claude Haiku 4.5](https://vynaris.com/models#claude-haiku-4-5)            $7.80               $6.18                    21%

deepseek-v4-flash at $0.74 is 10.6x cheaper than Haiku 4.5 at $7.80 for the identical job. The gap is almost entirely the output price: DeepSeek bills output at $0.28 per million tokens, Haiku 4.5 at $5.00, an 18x difference on the 700 tokens that dominate an extraction call.

Caching helps most where input is a larger share of the bill. On deepseek-v4-flash the shared prefix served at the $0.0028 cache-hit rate cuts 33%, because its cache read is 2% of its input price. On Haiku 4.5, where output already dominates, the same technique saves 21%. Caching is a lever on the input half of the bill; it cannot touch the output half. This is the same behavior we quantified in prompt caching in production.

Where a router changes the unit economics

The verify pass is the interesting cell. In the single-model numbers above, the low-confidence 20% get re-extracted on the same model. A router does something different: run the whole batch on the cheapest model, then escalate only the low-confidence 20% to a frontier model instead of re-running the cheap one.

Strategy                                                                                        Cost / 1k docs  vs all-frontier
----------------------------------------------------------------------------------------------  --------------  ---------------
All deepseek-v4-flash (first pass + verify)                                                     $0.74           96% less
Routed: DeepSeek bulk + [Gemini 3.1 Pro](https://vynaris.com/models#gemini-3-1-pro) escalation  $3.50           80% less
All Gemini 3.1 Pro (first pass + verify)                                                        $17.28          —

The routed run costs $3.50: $0.62 to extract all 1,000 documents on deepseek-v4-flash, plus $2.88 to re-extract the hard 200 on Gemini 3.1 Pro at $2.00 / $12.00 per million. That buys frontier accuracy on the documents that need it for 80% less than running frontier on everything, which would cost $17.28.

Routing earns its keep here because extraction confidence is measurable. A JSON schema with required fields, a checksum on the line-item total against the invoice total, a low log-probability on a parsed field: each is a cheap signal that a document is hard, and each tells the router which 20% to escalate. If you want to run your own escalation rate and token shape, the calculator takes the per-document input and output counts directly. This is the same model-routing discipline we applied to the coding-agent cost-per-task model.

The chart: the model is the cheap part

Bar chart of LLM invoice-extraction cost per 1,000 documents on a log scale, single blue hue: deepseek-v4-flash $0.74, Gemini 3.1 Flash-Lite $2.16, gpt-5.4-mini $6.48, Claude Haiku 4.5 $7.80, routed bulk-plus-escalation $3.50, all-frontier Gemini 3.1 Pro $17.28, with a dashed human-exception-review floor at $75 sitting above every model bar
Cost per 1,000 documents across four workhorse models plus a routed strategy, log scale. The dashed line is the human exception-review floor: 5% of docs at 3 minutes and $30/hr = $75, above every model option. Prices verified 2026-07-20.

The dashed line is the number that should reset the conversation. At a 5% human review rate, 3 minutes per document, and $30/hour loaded labor, the exceptions cost $75 per 1,000 documents. That is above every single model bar. On deepseek-v4-flash the model is 1.0% of the total bill of $75.74; even on Haiku 4.5 the model is 9.4% of $82.80. Halving your review rate from 5% to 2.5% saves $37.50 per 1,000 docs, more than switching from Haiku 4.5 to DeepSeek saves on the model line. Right-size the model, but obsess over the exception rate.

Build notes

Extraction has constraints a token model does not capture.

When this workload does not need a router

The honest tradeoff: if deepseek-v4-flash alone clears your accuracy bar on the hard documents, do not build a router. Pay $0.74 per 1,000 docs and move on. A router adds a confidence signal, an escalation path, and a second provider integration, and it only earns that complexity when the cost of a wrong extraction on a hard document exceeds the ~$2.76 escalation premium per 1,000 docs. For a batch where a wrong invoice total means a wrong payment, the frontier escalation is cheap insurance. For a batch feeding a dashboard where an occasional miss is tolerable, the router is over-engineering, and the single cheap model with a good schema and a 5% human check is the right build. The extraction workhorse comparison walks the model-only decision if you have already ruled routing out.

FAQ

What does LLM invoice extraction cost per document? On our model, $0.0007 to $0.0078 per document in model fees, which is $0.74 to $7.80 per 1,000 documents across deepseek-v4-flash through Claude Haiku 4.5, with 3,000 input and 700 output tokens per doc and a verify pass on 20%. Human review of the 5% exception rate adds about $75 per 1,000 docs.

Which model is cheapest for document extraction? deepseek-v4-flash at $0.74 per 1,000 documents, because its $0.28 output price is roughly 18x below Claude Haiku 4.5's $5.00, and extraction output dominates the bill. It is only the right choice if it clears your accuracy bar on your documents.

Does prompt caching help invoice extraction? Yes, on the input half of the bill. Serving the shared schema and instructions from cache cuts 19% to 33% depending on the model, most on deepseek-v4-flash whose cache read is $0.0028 per million. It does not reduce the output cost, which is the larger half on the pricier models.

When should I route between models for extraction? When you can measure per-document confidence and the cost of a wrong extraction is high. Running the batch on a cheap model and escalating only the low-confidence 20% to Gemini 3.1 Pro costs $3.50 per 1,000 docs, 80% less than running frontier on everything at $17.28, while still applying the strong model where it matters.

What is the real cost driver in a document pipeline? Human exception review, not the model. At a 5% review rate the human cost of $75 per 1,000 docs is above every model option. Reducing the exception rate saves more than any model switch.

Sources

Prices change. We re-verify every figure in this post monthly and stamp updates. Numbers here are current as of 2026-07-20.

The lesson from the model: the model line is the cheap part of a document pipeline, and routing turns the verify pass into frontier accuracy at a fraction of frontier cost. Vynaris is an OpenAI-compatible gateway that routes each request to the cheapest right-sized model, escalates on your confidence signal, and shows the per-document cost. One base URL swap. Get an API key at vynaris.com.