Rent roll and T12 extraction is often described as a document-conversion task. For underwriting, conversion is only the first step. The real work is preserving what each file measures and explaining why current scheduled rent does not equal historical collected revenue.
The files answer different questions
A rent roll is usually a point-in-time schedule of units, residents, lease dates, status, and rent. A T12 is a period statement that records income and expenses across twelve months. One describes the current lease base; the other describes what the property actually reported over time.
Because their time frames differ, the totals should not be forced to match. Move-ins, move-outs, vacancy, concessions, bad debt, loss-to-lease, and timing between billing and collection can all create legitimate differences.
Normalize both sources without erasing them
Standardize dates, currency periods, unit types, occupancy labels, account signs, and chart-of-accounts categories in a separate analysis layer. Keep the original rows and labels available so a reviewer can see how a normalized field was produced.
- Confirm the rent-roll as-of date and distinct unit count
- Confirm twelve consecutive T12 months and recalculate totals
- Preserve seller account names beside mapped categories
- Separate blank, zero, unavailable, and not-applicable values
Build a scheduled-to-collected revenue bridge
Start with gross potential or scheduled rent under a named definition. Then explain vacancy, concessions, loss-to-lease, bad debt, employee or model units, and timing. Reconcile other income separately so utility reimbursements or amenity fees do not get counted twice.
The purpose is not to make every difference disappear. It is to turn the difference into a set of explicit operating questions that can be reviewed, supported, and reflected in the forward case.
Map reviewed facts into the model
Only after reconciliation should historical values feed the underwriting workbook. Retain value, unit, sign, reporting period, and source. If a forward input is needed, label it as an assumption with its reasoning rather than presenting it as extracted history.
This creates a cleaner handoff: the analyst begins with a defensible operating base and spends time on renewal behavior, market rents, expense recasts, capital needs, and downside—not on retyping the package.
Want to see this on your own pipeline?
Send us a real OM and we’ll show you the underwrite, no sales pitch required.
Book a demo