Rent roll to underwriting model: mapping columns into Excel or ARGUS-style tools
Loading a rent roll into an Excel or ARGUS-style underwriting model means mapping each column to a model input: unit or suite, tenant, area, in-place rent, lease start and end. Rows must be one per unit, dates real dates and rent on one basis, and the loaded totals must tie to the roll before any cash flow runs.
Updated 28 October 2026. ARGUS is a trademark of its owner and RentRoll Engine is independent of it. Field names differ by product, version and firm.
What a model needs from the roll
A cash flow model needs structured tenant data: a unique key per space, the area, the rent and its basis, the term and any rules that change rent. A rent roll PDF holds none of that in a form a model can read, so the first job is turning the printout into a table with one row per unit and a fixed set of columns.
The second job is separating what the roll states from what the model must assume. The roll states in-place rent, area and dates. Market rent, escalations, recoveries, renewal probability, downtime and capital costs come from leases, appraisals or the underwriter's assumptions.
Keep a fixed layout
Use the same columns in the same order for every property. A formula, Power Query step or import map written once then keeps working, and a column in the wrong place is obvious.
Loading a rent roll into a model in six steps
-
Fix the layout
One row per unit or suite, vacant ones included, with the same columns every time.
-
Clean the types
Dates as real dates, rent and area as numbers with no symbols, and status as a fixed set of values.
-
Normalize the rent basis
Monthly rent times twelve for annual. Say whether the rent is base rent only.
-
Map the columns
Match each column to a model field using the table below. Leave unmapped columns visible and do not delete them.
-
Add the assumptions
Market rent, rent growth, downtime, renewal probability and costs come from outside the roll. Label them as assumptions.
-
Check before the cash flow
Compare the model's unit count, area and annual rent with the roll's totals. Then reconcile first-year income to the T-12.
Mapping the ten CSV columns to model inputs
The columns are the ones RentRoll Engine writes. The last row lists what the roll rarely supplies.
| CSV column | Model input | Watch for |
|---|---|---|
unit | Unit or suite ID, the row key | Must be unique. Duplicates are flagged |
tenant | Tenant name | Blank on vacant units |
status | Occupied or vacant flag | Decides which rows earn rent |
sqft | Rentable area | Keep it on vacant units. Tie it to the property total |
monthly_rent | Current monthly rent, times twelve for annual | The printed rent column. An annual column was divided by 12 |
lease_start | Lease commencement | A real date once loaded, not text |
lease_end | Lease expiration | Blank means month-to-month. Give it a model rule |
deposit | Security deposit | A liability, not income |
notes | Free text | Carry concessions and options here or in your own column |
flags | Review list | Clear every flag before the load |
| Not in the CSV | Market rent, escalations, recoveries, options, TI and LC | Take them from leases or assumptions |
What goes wrong
Pasting a PDF table straight in
Merged cells, subtotal lines, repeated headings and a totals row come along. The model reads them as tenants.
Dates that become text or swap day and month
A model cannot compute remaining term from text, and 04/05/2027 can be April 5 or May 4. Convert to real dates and check the ends of the range.
Totals inside the data
A totals row inside the data range is summed along with the units. Keep totals in cells outside the table.
Dropping vacant units
Vacant rows carry the area and the lease-up the model has to project. Without them occupancy and the denominator are wrong.
Loading unresolved flags
Duplicate units, vacant units with rent and status conflicts load as ordinary rows. Clear them first.
How RentRoll Engine helps
RentRoll Engine writes the same ten columns in the same order from any rent roll PDF it can read: ISO dates, plain decimals, annual rent divided by 12, vacant units kept with their area and flags on rows that needed a judgement. It checks rent and area against the printed totals before you download. It does not load models. Free: 1 file per day, up to 10 pages, no account. Files over 10 pages are converted up to page 10 on the free allowance; a page code converts the whole file, up to 150 pages. See pricing.
Questions about loading a rent roll into a model
How do I import a rent roll into an Excel model?
Convert it to a table with one row per unit, then use Data, From Text/CSV for a CSV file, or paste values. Map the columns to the model's inputs and check the loaded totals against the roll.
Can I import a rent roll into ARGUS?
ARGUS-style tools typically accept tenant and lease data through tables or import templates, and the required fields depend on the product and version. Check your vendor's documentation for the exact layout.
What does an underwriting model need from a rent roll?
At minimum: unit or suite, tenant, area, current rent, lease start and end, and status. Commercial models also need rent steps, recoveries, options and the lease type.
Why must dates be real dates?
A model that reads dates as text cannot compute remaining term, expiry buckets or escalation timing. ISO format (YYYY-MM-DD) avoids confusion between day-first and month-first.
How do I treat month-to-month tenants in a model?
The roll shows no end date, so the model needs a rule: assume they roll at a stated date, or treat the space as expiring at the start of the projection. State the assumption.
What should I check after loading?
Units, area and annual rent against the roll's totals, occupancy against the roll, and first-year income against the T-12. Any variance is a question to answer before the model is used.