Note Document Intelligence used to be called Form Recognizer and still often shows up as this under the hood in the billing data.
What it does
Extracts structured data from semi-structured and unstructured documents:
Pre-built models — ready-made extractors for invoices, receipts, ID documents, tax forms, business cards, health insurance cards, and more.
Layout model — extracts all text, tables, selection marks, and document structure without domain-specific training.
Custom models — train on a small set of labelled examples to extract fields from proprietary document formats.
Document classification — automatically routes documents to the right extraction model.
When you'd use it
You have high-volume document processing (invoices, contracts, claims, onboarding forms) that is currently manual or uses brittle template-based parsing.
You need to extract data from PDFs or scanned images, not just native digital text.
You want to combine extraction with downstream automation (e.g. ERP posting, approval workflows).
Sample use case
A logistics company receives hundreds of supplier invoices per day across multiple formats. Document Intelligence's pre-built invoice model extracts vendor name, line items, totals, and PO numbers. The output is validated against purchase orders in the ERP and, if matched, posted automatically — reducing manual data entry by over 80%.
Example reference architecture
.png)
Pricing & How Costs Work
Azure AI Document Intelligence is priced per page processed. A page is defined as up to 1 A4-size page or 500 characters of extracted text — whichever is reached first for digital PDFs. For images, each image counts as one page.
Feature / Model | Pricing unit | Notes |
|---|---|---|
Pre-built models (invoice, receipt, ID, etc.) | Per page | Higher rate than the Layout model |
Layout model | Per page | Lower cost; extracts structure without domain logic |
Custom extraction model | Per page | Same per-page rate as pre-built models; training is separate |
Custom classification model | Per page | Charged per page submitted for classification |
Custom model training | Per hour (training compute) | One-off cost each time you train or retrain a model |
Add-on: query fields | Per query field per page | Charged on top of the base per-page cost when using ad-hoc field queries |
Key pricing mechanics:
Free tier (F0): 500 pages/month at no cost across all model types.
Standard tier (S0): Per-page pricing; volume tiers reduce the unit cost as monthly page volumes increase (tiered pricing bands, e.g. first N pages at a higher rate, subsequent pages cheaper).
Multi-page documents: Every page in the submitted document is billed, even if only one page contains the data you care about. Splitting documents before submission can reduce costs.
Training cost: Custom model training is charged once per training run, in addition to ongoing per-page inference costs.
Async vs sync: Both real-time (synchronous) and batch (asynchronous) API calls are billed at the same per-page rate.
What Drives Costs
Cost driver | Why it matters |
|---|---|
Page volume | The dominant driver. Every page in every submitted document is billed. |
Document page count | Submitting a 100-page PDF to extract one field costs 100× more than a 1-page document. |
Model type selected | Pre-built and custom models cost more per page than the Layout model. |
Query fields add-on | Each additional query field per page adds cost on top of the base model charge. |
Training frequency | Retraining custom models incurs a training compute charge each time. |
Document quality | Poor-quality scans don't reduce cost but do reduce accuracy, often leading to re-processing. |
Cost optimisation levers:
Pre-classify and route documents so only relevant pages are submitted (split multi-document batches).
Use the Layout model for scenarios where you only need structural extraction, not the pre-built domain logic.
Avoid re-submitting already-processed documents by caching extracted results.
Batch training runs rather than retraining on every small dataset update.
Azure Cost Data — Meters & Meter Subcategories
Azure AI Document Intelligence appears under the Cognitive Services service family in Cost Management. Resource type: Microsoft.CognitiveServices/accounts with kind FormRecognizer.
Meter name | Meter subcategory | What it counts |
|---|---|---|
Custom Form Pages | Standard S0 | Pages processed by a custom extraction model |
Pre-built Form Pages | Standard S0 | Pages processed by a pre-built model (invoice, receipt, ID, etc.) |
Layout Pages | Standard S0 | Pages processed by the Layout model only |
Training Documents | Standard S0 | Billed per training run (compute hours for custom model training) |
Query Fields | Standard S0 | Additional charge per query field applied per page |
Classification Pages | Standard S0 | Pages submitted to a custom classification model |
Meter subcategory notes:
The
Quantityfield in billing exports represents the number of pages (or training hours) consumed in the billing period.If you deploy Document Intelligence in multiple regions or use multiple resource instances (e.g. dev and prod), the
ResourceIdandResourceLocationfields let you split costs by environment.Volume tiering is applied within a billing period; billing exports show the blended effective rate across tiers for a given meter.
Common Developer Mistakes That Drive Up Costs
Submitting entire multi-page documents when only specific pages are needed. Document Intelligence bills per page regardless of how many pages contain relevant data. Submitting a 50-page contract to extract a 2-page schedule means 48 pages are billed with no value returned. Pre-splitting or identifying relevant page ranges before submission is one of the highest-impact cost controls.
Using the pre-built invoice or receipt model when the Layout model is sufficient. The Layout model (which extracts structure without domain-specific intelligence) costs less per page than the pre-built models. Teams that only need text and table extraction — not the semantic field labelling of the invoice model — are overpaying if they use a pre-built model.
Re-submitting previously processed documents without caching results. Pipelines that re-process documents on every pipeline run (e.g. a daily job that re-processes all documents in a folder rather than tracking which have already been extracted) bill for every page on every run.
Using query fields add-ons for fields already covered by the base model. The query fields feature adds cost per field per page. Using it to extract fields that the selected pre-built model already identifies (e.g.
vendor_nameon the invoice model) duplicates cost without providing additional information.Not accounting for page count in cost estimates. Teams building cost projections often estimate by document count rather than page count. A batch of 1,000 invoices averaging 3 pages each is 3,000 billable pages, not 1,000 — a 3× underestimate.
What Could Make Your Bill Go Up or Down Next Month
Could go UP:
Document volume increases as a new supplier onboards with high invoice frequency.
A new document type is added (e.g. multi-page contracts in addition to single-page invoices), significantly increasing average page count per submission.
A pipeline bug causes documents to be re-submitted without checking whether they were already processed.
Query fields are added to extract additional data points from existing documents, adding a per-field charge on top of the base model cost.
A model retraining decision triggers re-processing of historical documents through the updated custom model.
Could go DOWN:
Document splitting is implemented so only the relevant pages are submitted, reducing per-submission page count.
Results are cached per document hash; previously processed documents are served from cache without re-calling the API.
The pre-built model is swapped for the Layout model on a use case where semantic field labelling was not actually used downstream.
Document volume drops following a seasonal processing peak (e.g. month-end invoice runs).
Most Common Optimization Techniques
Technique | Mechanism | Typical saving |
|---|---|---|
Pre-split multi-page documents | Submit only the relevant page range rather than the full document | Proportional to the ratio of relevant pages to total pages — can be 60–90% on large documents |
Cache extraction results by document hash | Skip reprocessing for documents already extracted; store results in a database keyed on file hash | Eliminates 100% of cost for reprocessed documents |
Use Layout model instead of pre-built where appropriate | If you only need text/table extraction (not domain-specific field labelling), the Layout model costs less per page | Meaningful per-page rate difference on high volume |
Avoid unnecessary query fields | Only use query fields for information not already returned by the base model | Eliminates the per-field add-on charge |
Track processed document state | Maintain a processing log (blob metadata, database record) to prevent duplicate submission | Eliminates reprocessing cost in pipeline reruns |
Estimate costs on page count, not document count | Accurate forecasting prevents budget overruns when average page count is higher than expected | Planning rather than saving — prevents reactive surprises |