curiosity

Article · Document processing

What is intelligent document processing?

Intelligent document processing turns PDFs, scans, Office files and email into data a system can use. It reads the text, finds tables and headings, sorts each document by type and pulls out named fields. Where the machine is unsure of a value, a person checks it.

Topic Document processing Reading time 7 min References 10 Updated October 2026

In short

Intelligent document processing, or IDP, turns a document into text, structure and named values that software can use. A work order becomes a record with a number, a part, a date and the torque values in its table.

It sits between two older ideas. Optical character recognition, OCR, turns a picture of text into text and stops there. Template capture reads fixed boxes on a known form, and breaks when the form changes. IDP adds models that find the layout, recognize the kind of document and locate a field wherever it sits on the page.

IBM’s explainer names three activities that stay the same across vendors: classification, extraction and output. It calls data extraction “the core activity whereby important, relevant information is pulled off the page.”

How it works

A document passes through five steps. Not every document needs all of them.

  • Read. A born digital file, such as a PDF exported from a word processor, already holds its text, and a parser reads it out. A scan or a phone photo holds only pixels, so OCR recognizes the characters, page by page.
  • Find the layout. Headings, paragraphs, tables, figures and footers are marked as regions. This keeps a table’s rows together and a page footer out of the text.
  • Classify. Each document is sorted by type: a work order, a supplier notice, a test report, an invoice. The type decides which fields to look for.
  • Capture fields. Named values are read out: the work order number, the part, the date, the torque value. Each comes with a confidence.
  • Check and hand over. Values the system is sure of go on to the next system. The rest go to a person first.

Email and archives add one more step. A message is a body plus attachments, and each attachment is a file that goes through the same steps on its own.

One document

From page to fields

A scanned work order is read, laid out, sorted and split into fields. The one value the system is unsure of goes to a person. Pick a step to stop the drawing and read it.

A scanned work order turned into fields A scanned work order arrives as pixels. OCR reads its text. The layout is found: a header, a table of torque values and a signature. The document is classified as a work order and four fields are read out with a confidence each: number 77104 at 0.99, part Pump P-14, date 2019-03-14, and torque read as 4O Nm at 0.62. The torque value is under the bar, so a person checks it against the page and corrects it to 40 Nm. Work order 77104Pump P-14 · Line 2STEPTORQUESeal housing40 NmCover bolts25 NmDrain plug18 NmSigned M. Keller2019-03-14TABLESIGNEDTYPEWork order0.97WO NUMBER771040.99PARTPump P-140.96DATE2019-03-140.94TORQUE4O Nm0.62A PERSON CHECKS40 Nm, read off the page
A scanned work order turned into fields A scanned work order arrives as pixels. OCR reads its text, and the layout is found: header, table and signature. It is classified as a work order and four fields are read out with a confidence each. The torque value, read as 4O Nm at 0.62, goes to a person, who corrects it to 40 Nm from the page. Work order 77104Pump P-14 · Line 2STEPTORQUESeal housing40 NmCover bolts25 NmDrain plug18 NmSigned M. Keller2019-03-14TABLESIGNEDTYPEWork order0.97WO NUMBER771040.99PARTPump P-140.96DATE2019-03-140.94TORQUE4O Nm0.62A PERSON CHECKS40 Nm, read off the page
  1. 01

    A scan arrives

    A work order scanned years ago. To software it is a picture: pixels, and no text.

  2. 02

    OCR reads it

    Each line of pixels becomes characters a system can search.

  3. 03

    The layout is found

    Header, table and signature are marked as regions, so each torque value stays in its row.

  4. 04

    Sorted and split into fields

    It is a work order, so four fields are read out, each with a confidence.

  5. 05

    A person checks one

    The torque value reads 4O, under the bar. It goes to a person, with the page beside it.

Layout and tables decide the quality

Many errors that reach a user start before any field is captured. If two columns are read as one, sentences from both interleave. If a table is read as lines of text, a value loses its column header. Then 40 Nm no longer says which bolt it belongs to.

Microsoft’s layout model documentation splits layout into geometric roles, such as text, tables and figures, and logical roles, such as titles, headings and footers. Both matter. A heading tells a reader which procedure a step belongs to.

Layout models also depend on what they were trained on. DocLayNet is a dataset of 80,863 pages annotated by hand. Its authors found that models trained only on scientific articles lost accuracy on more varied layouts. Manuals, forms and drawings from your own archive are the test that counts.

Which reader

Each file to its reader

Two PDFs can look the same and hold different things: one has text, the other only a picture of it. Pick a step to stop the drawing and read it.

Each file sent to the reader that can read it Three files arrive: a test report exported to PDF, a supplier notice by email, and a work order PDF. A parser reads the report and the email body, which carry their text. The work order holds only pictures of its pages and goes to OCR. The photo attached to the email is unpacked and goes to OCR too. Every file ends as plain text for search and Markdown for a model, with the same page numbers in both. Test report.pdfTEXT LAYERSupplier notice.emlBODY, 1 ATTACHMENTPhoto.jpgATTACHED IMAGEWork order.pdfPAGE IMAGES ONLYPARSERText already thereOCRPage by pageFOR SEARCHPlain textFOR A MODELMarkdownSAME PAGE NUMBERS
Each file sent to the reader that can read it A test report, a supplier notice by email and a scanned work order arrive. A parser reads the report and the email body. The work order holds only page images and goes to OCR, and so does the photo attached to the email. Every file ends as plain text and Markdown, with the same page numbers. Test report.pdfTEXT LAYERTO PARSERSupplier notice.emlBODY, 1 ATTACHMENTTO PARSERPhoto.jpgATTACHED IMAGETO OCRWork order.pdfPAGE IMAGES ONLYTO OCRPARSERText already thereOCRPage by pageFOR SEARCHPlain textFOR A MODELMarkdownSAME PAGE NUMBERS
  1. 01

    Three files arrive

    A test report exported to PDF, a supplier notice by email, and a work order that is also a PDF.

  2. 02

    Text is read where it exists

    The report and the email body carry their text. A parser reads it out as it is.

  3. 03

    The scan has none

    The work order holds only pictures of its pages. It goes to OCR, page by page.

  4. 04

    Attachments are files too

    The photo attached to the notice is unpacked and read on its own, by OCR.

  5. 05

    One result, two shapes

    Each file ends as plain text for search and Markdown for a model, with the same page numbers.

Why it matters

In an industrial company much of what is known sits in documents: maintenance logs, supplier notices, test reports, old scanned work orders. A document that was never read is invisible to search, and to every assistant built on search.

What comes out has to suit three readers. A search index wants plain text. A language model reads better when headings, lists and tables survive, so many systems keep a Markdown copy beside the text. Fields go a third way, into a system of record, a workflow or a graph.

In a graph, an extracted part number connects the document to the part, the supplier and the order it is about. Matching that number to the right part record is entity resolution, which What is entity resolution? explains.

Where it goes wrong

  • Silent character errors. A 0 read as an O, a 1 as an l. A part number with one wrong character still looks valid. It finds nothing, or the wrong part.
  • Lost structure. Tables flattened into lines, two columns merged, a header row dropped. The text is all there and means something else.
  • A confident wrong value. A model asked for fields in JSON returns well formed JSON either way. Nothing in the shape of the answer says whether a value is right, or whether the document had it at all.
  • Drift. A supplier changes its form, a scanner is replaced, a new document type arrives. A setup that worked in the pilot quietly gets worse.

Where people still check

No extraction is right on every page, so the question is which values a person sees. Microsoft’s guidance on confidence scores says a confidence “can be used to determine whether to automatically accept the prediction or flag it for human review.” It also notes that the confidence of the text read and the confidence of the field are separate, and that both need checking.

Set the bar per field, by what an error costs. A wrong date on a work order is an annoyance. A wrong torque value is a safety issue. Route everything under the bar to a person who can see the page beside the value. Their corrections become the test set for the next change.

How to evaluate it

Test it on your own documents, the worst ones included: faxes, phone photos, stamped pages, scans turned on their side. Six checks cover most of it.

  • Measure per field, against values a person checked: how often each field is right, wrong or missing.
  • Check structure, not only text. Do tables keep their rows and columns, and do headings stay headings?
  • Search for exact identifiers in what was read. A part number with one wrong character should show up in this test, not in production.
  • Look at the review queue: what share goes to a person, and whether they see the page beside the value.
  • Ask where each step runs, and which steps send a page to a hosted service.
  • Ask how a value traces back. A user should be able to open the page a value came from.

How Curiosity does it

In Curiosity Studio every file a connector brings in goes through a built in extractor. Text PDFs, Office files, HTML and email are parsed directly. Scans, photos and PDFs that hold only page images go through OCR, archives are unpacked, and audio and video are transcribed. The extraction documentation describes it. Extraction runs once, when a file is first indexed, and its result is stored with the file.

One extraction produces the plain text the indexes read and the same document as Markdown, with the same page numbers in both. Our post on X-Ray, the C# libraries that read the files, explains how. OCR runs inside Studio, on your infrastructure.

The OCR documentation describes how a page is read. NanoOCR, whose models are built in, reads every scanned page first and decides what kind of page it is. Printed text keeps its reading. Photos go to Florence2, and tables, forms and handwriting go to PaddleOCR-VL. Those two are optional downloads, and until they are installed, NanoOCR’s reading stands. Every engine writes Markdown as well as text, so a scanned table arrives as a table.

Field capture is a choice of method, and Studio offers several. Spotters match a curated list of names and their aliases, such as part numbers, suppliers or sites. Pattern spotters match identifiers by their shape, such as ticket or order numbers. Both are set up in the admin pages, run inside Studio and give the same answer every time.

For a field no list or pattern can catch, code you write asks a language model to read it out. That is the model you configured, hosted or on your own servers. Structured decisions answer typed questions with a confidence, on a local model or a hosted provider. Code can act on a clear answer and send an unclear one to a person.

The newest option is a class of specialized models built for one job: typed answers with probabilities, not free text. TypeSafe started it in September 2026 with Jev, “a new class of frontier models built to make fast, structured decisions that software can use directly.” Cloudflare’s Clairic followed a month later as an extraction model of that kind. Structured extraction can use it, and returns each value with the place in the text it came from, or null. Clairic is hosted and in preview, so its input goes to Cloudflare.

What is read lands in the same graph as the rest of your records. There, entity extraction links it to the parts and suppliers it names.

References

Sources and further reading

What is Intelligent Document Processing?

IBM Think · April 2026

Classification, extraction and output as the three activities of document processing.

Read

What is the Document Intelligence layout model?

Microsoft Learn · May 2026

Layout analysis: geometric roles such as tables and figures, logical roles such as headings and footers.

Read

DocLayNet: A Large Human-Annotated Dataset for Document-Layout Analysis

Pfitzmann et al., KDD · 2022

Why layout models trained on scientific articles lose accuracy on more varied documents.

Read

Interpret and improve accuracy and confidence scores

Microsoft Learn · April 2026

Using a confidence score to accept a value or send it to a person, and why text and field confidence differ.

Read

OCR and file extraction

Curiosity documentation

How Studio reads each kind of file, when extraction runs, and the Markdown it keeps.

Read

X-Ray: one family of .NET libraries for reading every file we index

Curiosity blog · October 2026

The libraries behind extraction in Studio, the text and Markdown they produce, and the OCR stack.

Read

Types of models

Curiosity documentation

Spotters, pattern spotters, machine learning models and language models for entity extraction, and when each fits.

Read

Introducing System One Models & Jev

TypeSafe AI · September 2026

Models that return typed decisions with calibrated probabilities instead of generated text.

Read

Introducing Clairic, a new System One class of extraction models

Cloudflare blog · October 2026

An extraction model in the class TypeSafe started, hosted on Workers AI in preview.

Read

Structured Extraction

Curiosity documentation

Typed fields read out of a text, each with its span or a null, and where the model runs.

Read

FAQ

Questions people ask

What is the difference between OCR and intelligent document processing?

OCR turns a picture of text into text. Intelligent document processing uses OCR as its first step on scans. Then it finds the layout, sorts the document by type and reads out named fields, each with a confidence. A born digital PDF needs no OCR at all.

Does intelligent document processing still need people?

Yes, for the values the system is unsure of. A confidence per field decides what goes straight through and what a person checks against the page. Set the bar by what a wrong value costs, and use the corrections to test the next change.

Can document processing run on premises?

It can. In Curiosity Studio, extraction and OCR run inside Studio, on your infrastructure. So do spotters, pattern spotters and extraction with a model you host. A hosted model, such as Cloudflare’s Clairic, sends its input to the vendor, so choose it field by field.

Your data. Your infrastructure.

Read every page. Check what matters.