Documents ยท Data room
The data room documents and the playbook with each question's status and answer
Documents and the playbook (illustrative data). What was read from each document, and the 25 questions the agents work, with their status and answers.

Every finding in InsightDueDiligence cites a page. That is only possible because the data room is read into page-level pieces before any agent looks at it: a policy block becomes fields, a loss run becomes rows, a legal letter becomes findings with a severity. In production the reading is done by InsightXtract; on a laptop and in the demo book, a stand-in reader with the same contract.

From file to cited pieces

flowchart LR U["Upload: PDF, Word,
Excel, CSV, text, image"] --> CK["Checks: allowed type,
signature, size limit"] CK --> OS["Object store
(never local disk)"] OS --> X{"Reader"} X -- "production" --> XT["InsightXtract:
OCR, layout, tables"] X -- "laptop / demo" --> ST["Stand-in reader
(same output shape)"] XT --> PC["Page-level pieces:
fields, rows, findings,
each with its page"] ST --> PC PC --> PB["Playbook checks
and the engines"] style PC fill:#e6efff,stroke:#2563eb style OS fill:#e7f8f1,stroke:#10b981

Uploads are refused unless they are an allowed type whose first bytes match (a “.pdf” that is not a PDF is refused), under the size limit, and going to object storage. Without object storage configured, uploads are refused outright rather than written to the server’s disk.

What gets read from each document type

DocumentRead into
Schedule of insuranceOne policy per block: line, carrier, policy number, named insured, period, limit, retention, premium, trigger, program structure, retro date, collateral, financing, change-of-control clause.
Policy declarationsThe same fields for that policy, plus the conditions text the tail agent quotes.
Loss runsOne row per claim: line, claim number, loss date, open or closed, paid, reserve, what happened.
Legal letters, Phase I, recall summariesFindings with a severity, an area and any amount they quantify.
ContractsSections by number, so a liability cap is cited “§8.1, p.1”.

One contract, two readers

sequenceDiagram participant DD as InsightDueDiligence participant OS as Object store participant XT as InsightXtract participant WB as Diligence workbench DD->>OS: Store the file (key per workspace) DD->>XT: Read this document (type, title) XT-->>DD: Callback: pages, fields, citations, confidence DD->>WB: Pieces with page and engine Note over DD,WB: With no Xtract URL configured, the stand-in
returns the same shape from the document text

The Documents zone shows, for each document, its kind, pages, how many pieces were read and by which engine with what confidence. On the demo book the engine column says “Stand-in reader”, because that is what read the synthetic documents. Nothing on the screen pretends otherwise.

Search over the data room

The same pieces power the data room search (“change in control”) and the copilot’s search tool, so an answer about a clause points at the same page a reviewer would open.

Why page-level matters

A finding that cites “the D&O policy” sends a reviewer looking. A finding that cites “Directors & Officers policy — Harborline Specialty, p.1” (an illustrative carrier) lets them approve it in seconds. Across thirty findings, that is the difference between a review and a re-do.

Questions we get asked

Can it read scanned loss runs?

In production InsightXtract handles OCR, layout and tables. The quality of the read is shown as a confidence per document, and a low one is visible to the reviewer.

Are privileged documents handled differently?

Documents can be marked privileged, and data room search leaves privileged documents out unless they are asked for explicitly.

Keep reading