Back

The Data Room Problem: Classifying Mixed Scans Before Extraction

Sid and Ritvik
October 27, 2026

Extraction cannot start until the pile is sorted

Every commercial real estate transaction produces a data room, and every data room has the same shape regardless of asset class. There is a folder structure that someone intended to be tidy, and inside it there are several thousand pages that are not. Leases sit next to their amendments, which sit next to estoppel certificates, subordination agreements, rent rolls from three different dates, CAM reconciliations, title commitments with their Schedule B exceptions, ALTA surveys, environmental reports, and whatever the seller's broker scanned at the last minute as a single 400-page PDF named "Building Docs Final v2."

Teams we talk to on the acquisition, lending, and asset management side describe the same bottleneck. The extraction technology they evaluated performs well on a lease when it is handed a lease. What it cannot do is look at page 217 of a merged scan and know that a new document started there, that it is a second amendment rather than a first, and that its rent schedule supersedes the one in the original lease forty pages earlier. Until that classification and splitting happens, extraction has nothing to extract from, which is why so many diligence shops still keep a team whose entire job is opening files and deciding what they are.

Why the data room defeats generic pipelines

The first problem is that the unit of work is not the file. A single PDF in a data room routinely contains six to ten distinct legal instruments, and the boundaries between them are marked by nothing more reliable than a change in letterhead, a signature block followed by a new title page, or a shift from typed text to a faxed scan. A pipeline that treats one file as one document will extract one set of fields from a bundle that contains a lease, two amendments, and an estoppel, and the resulting record will be a blend of all four.

The second problem is that document types are visually similar and legally different. A first amendment and a second amendment share a layout, a party list, and most of their boilerplate. The difference lives in a date, a sequence number, and a handful of operative paragraphs that override earlier terms. An extractor that cannot distinguish them will produce a rent schedule that is simply the last one it encountered, which is not the same as the one currently in force.

The third problem is the format of the pages themselves. Data rooms accumulate across decades of ownership, so they hold born-digital PDFs alongside photocopies of photocopies, TIFF images scanned at 150 dots per inch, and pages captured from microfiche. The rent table in a 2004 lease amendment may be perfectly legible to a human and nearly invisible to a text layer that was never generated. Faded rule lines, skewed scans, and handwritten initials beside modified clauses are normal rather than exceptional.

The fourth problem is throughput. Diligence runs on a clock. A buyer with twenty business days to complete review cannot wait a minute per page, and a lender refreshing a portfolio of several hundred properties needs thousands of pages processed under concurrency without the latency budget blowing up. A pipeline that is accurate but slow simply moves the bottleneck from the classification team to the queue.

Classify, split, then extract

The sequence that works is the one most pipelines skip. Classification runs first, across every page in the data room, assigning each page a document type from a vocabulary that covers the instruments actually found in real estate transactions. Boundary detection runs alongside it, identifying where one instrument ends and the next begins, so that a merged scan is split into its constituent documents before any field-level work happens. Pulse's Classify and Split endpoints exist for precisely this stage, and in practice they remove the manual triage team from the critical path.

Only after that does schema-guided extraction run, and the schema is chosen per document type. A lease gets a lease schema with premises, term, base rent schedule, escalation structure, renewal options, and expense recovery method. An amendment gets a schema that captures its sequence number, effective date, and the specific defined terms it modifies, so that a downstream abstraction can apply amendments in order and compute the rent currently in force rather than the rent originally signed. An estoppel gets a schema built around the tenant's confirmations and any claimed defaults. A rent roll gets a table schema with unit, tenant, square footage, lease dates, and monthly rent, with every cell carrying its bounding box so that an underwriter can click from a model input back to the source line.

Rent schedules deserve particular attention because they are where small structural errors turn into large financial ones. A schedule that presents current rent, proposed rent, annual cost, and savings across five or six columns with a footnoted abatement row is exactly the kind of table where a column shift or a merged cell changes the number a buyer underwrites against. Pulse returns the full cell grid with spans preserved and a calibrated confidence score on every value, so that a low-confidence abatement figure routes to a reviewer while the rest of the schedule flows through.

On throughput, the architecture matters as much as the model. Pages are processed in parallel within a document, documents are processed in parallel across a data room, and the pipeline is designed to hold latency flat as concurrency rises rather than degrading when a lender pushes a portfolio refresh through at once.

The showcase page

The page below is from a publicly available municipal report recommending a lease amendment for office space, the kind of document that appears in a data room as part of the approval history for a government tenant. It contains a comparables table and a six-column cost table with current rate, proposed rate, annual estimates, and savings, including a negative abatement row and a footnoted blended figure. The left side is the original page. The right side is the same page with every cell and text block Pulse returned drawn from the API response.

The original lease amendment report page on the left, shown next to the same page on the right with the Pulse extraction overlay, where green boxes mark each returned table cell, a dark green border marks the table boundary, and blue and purple boxes mark the surrounding text blocks and headers.

The team that opens files

The highest-leverage change in real estate document processing is not a better lease extractor. It is removing the step where a person has to open each file and decide what it is before any extractor can be pointed at it. Classification and splitting at the front of the pipeline, schema selection per document type, and cell-level provenance on every value are what turn a data room from a pile into a dataset, and that is the shape of the problem Pulse is built to solve.