Any rent roll. One clean, standardized Excel.
System exports and scans arrive with different columns, merged headers, and totals rows in odd places. Drop one here - the normalizer returns the same column order every time and checks the total against the document. Free, no signup.
Normalization desk
Drop a rent roll - any system, any layout
System exports, OM excerpts, or scans. PDF or image, up to 14MB.
Try a sample:
Same columns, every source
Three very different rent rolls, one column order
The samples above are a dense multifamily system export, a commercial suite report, and a typewritten scan. Open them, run each one, and the grid comes back in the same shape every time:
Unit
Type
SqFt
Tenant
Status
Market Rent
In-Place Rent
Lease Start
Lease End
Deposit
GatewayPlaza_RentRoll_Jun2026.pdf
Dense system export, 24 units, multifamily
24 units · Gateway Plaza Apartments
Harborview_CommerceCenter_RentRoll.pdf
Commercial suites, different columns and layout
12 units · Harborview Commerce Center
ElmStreet_RentRoll_scan.pdf
Typewritten scan, sparse fields, no totals row
8 units · 1912 Elm Street Apartments
The samples are fictional and free to reuse in training decks or courses - link to them directly: Gateway Plaza Apartments (PDF) · Harborview Commerce Center (PDF) · 1912 Elm Street Apartments (PDF)
01
Drop the rent roll
A system export or a scan - one property per document, PDF or image.
02
Units are normalized
The unit table is read as it appears on the page and mapped to a fixed column order. Totals rows are detected and checked against the extracted units.
03
Download the standardized Excel
A normalized rent roll sheet plus a summary with occupancy, in-place rent, WALT, and the tie-out result.
Works with exports from any system
Yardi and RealPage exports pack wide grids with merged headers. AppFolio and Buildium lay the same data out differently. Older properties still send typewritten scans. Because the extraction reads the page rather than matching a template, all of them normalize to the same spreadsheet - which is the part that matters when the model expects one shape.
Yardi · AppFolio · RealPage · Buildium · MRI · Entrata · Rent Manager · OneSite · homegrown reports · typewritten scans
Built for people with a model open in the other window
Lenders and credit analysts
The borrower sent a 40-page rent roll PDF and the committee memo is due. Rows by tomorrow morning, without a data-entry pass.
Acquisitions analysts
Every OM arrives with a differently shaped rent roll. Normalize each one on the way into the screening model instead of re-keying unit mixes.
Appraisers
Rent roll data feeds the income approach directly - occupancy, in-place rents, and lease expirations in a shape you can reconcile.
Deal-room discretion
A rent roll names every tenant in the building
Borrower financials and OM exhibits are confidential deal material. This tool runs on the same audited infrastructure as the DocuPipe platform: encrypted in transit and at rest, SOC 2 and ISO 27001 certified, HIPAA compliant, and never used to train models. Processing is automated end to end - nobody browses your documents, and results return to your browser session.
If your fund or bank requires documents to stay inside your own environment entirely, DocuPipe also deploys into your own cloud for enterprise commitments. Security details · Ask about in-cloud deployment
From the blog
Why every rent roll arrives shaped differently
The post covers the re-keying job this tool replaces - a 40-page rent roll into the ten columns your model wants - and why merged headers, repeated page headers, and misplaced totals rows break generic converters.
Read the postQuestions analysts ask before trusting a converter
Any of them. There are no per-system templates - the extraction reads the table as it appears on the page, whether it came out of Yardi, AppFolio, RealPage, Buildium, MRI, Entrata, a homegrown report, or a scan of any of those.
Yes. When the document reports its own rent total, the tool compares the sum of extracted units against it and shows the result - a green tie-out when they match, an explicit difference when they do not. That check is the first thing an analyst does by hand, so the tool does it for you.
Multi-page tables with repeated header rows, page subtotals, and grouped sections are the normal case for larger properties, and they are read as one continuous unit table. Totals rows are detected and kept out of the unit list.
The free tool processes the first 20 pages and tells you so on the result, so the occupancy numbers are never silently partial. A free DocuPipe account processes full documents without the page cap.
Yes. Scans and photos go through the OCR layer first, then the same extraction. Very faint or crooked pages can lose a cell here and there, which is exactly what the tie-out check is for.
Both. Multifamily rolls with floor plans and market rents, and commercial rolls with suites and mixed uses, map to the same normalized columns. Fields the document does not have simply come back empty rather than guessed.
Files are transferred encrypted and processed on SOC 2 and ISO 27001 certified infrastructure, and they are never used to train models. For deal work at volume you can run the same extraction inside your own DocuPipe workspace with retention controls.
Run it at scale
Underwriting a pipeline, not one deal?
DocuPipe turns every rent roll, T-12, and OM in your deal flow into model-ready data automatically - a workflow with a schema you control, exports to Excel, and an API that feeds your underwriting model directly.
Free tier included. Takes about a minute to set up.
SOC 2 certified · ISO 27001 · HIPAA compliant · Encrypted in transit and at rest · Never used to train models