One table everything else is derived from
Suite by suite, each with its own dates, its own stepped rent schedule and its own lease type. NOI comes out of this table — it is never typed in beside it.
NOI is derived, always. There is no box to type it into.
This is the one design decision the rest of the product rests on, and it is worth being blunt about because it sounds like a limitation until you see what it buys.
- Every income figure traces to a rowCap rate, DSCR, debt yield, break-even occupancy and the exit all resolve back to suites in this table, and through them to clauses in your documents.
- A typed NOI cannot be reconciledIt agrees with nothing and can be checked against nothing. It also silently breaks the comparison between a seller's stated cap rate and the income that actually supports it.
- Vacancy is a row, not a percentageEmpty space carries real lease-up assumptions — market rent, downtime, free rent, TI, commission — which behaves nothing like a flat haircut.
Suites
Add Suite| Status | Suite | Tenant | SF | $/SF/Yr | Exp |
|---|---|---|---|---|---|
| Occupied | Suite 100 | Cardinal Freight Systems | 78,400 | $7.85 | Jun 2031 |
| Occupied | Suite 200 | Meridian Cold Storage | 52,000 | $8.40 | Mar 2029 |
| Occupied | Suite 250 | Halstead Components | 31,600 | $7.20 | Nov 2027 |
| Vacant | Suite 300 | — | 22,500 | — | — |
NOI is derived from this table, never entered.
A rent schedule is a list, and it used to have to pretend otherwise
A lease with escalations has a schedule: a series of periods, each with a start, an end and a rent. The number of periods varies by lease — some have none, some have eight.
DealWise used to run on a platform where a row could not hold a list. So a schedule was flattened onto a fixed set of numbered columns, and everything downstream needed a step to reconstruct it. It worked, and it was the single largest piece of accidental complexity in the product.
It is a list again. That is not a feature anyone will put on a comparison grid, and it is the reason a mid-year rent increase now lands in the month it happens instead of being averaged into an annual figure that reconciles with nothing.
Per suite, because buildings are not uniform
An anchor on a twenty-year NNN lease and a small showroom on a three-year gross lease are in the same building and share almost nothing else. Modelling them with one set of assumptions is how a rent roll becomes a rough guess.
- Its own schedule, its own lease typeRecoveries follow the lease type per suite, so a NNN tenant and a gross tenant contribute to expenses correctly rather than on a blended rule.
- Its own re-leasing assumptionsMarket rent, renewal probability, downtime, free rent, TI and commission are set per suite, because they differ per suite.
Suite 100 — rent schedule
Add Suite| Status | Suite | Tenant | SF | $/SF/Yr | Exp |
|---|---|---|---|---|---|
| Occupied | Period 1 | Jul 2021 – Jun 2024 | 78,400 | $7.10 | — |
| Occupied | Period 2 | Jul 2024 – Jun 2027 | 78,400 | $7.85 | — |
| Occupied | Period 3 | Jul 2027 – Jun 2031 | 78,400 | $8.65 | — |
Three periods on one lease. The increase lands in the month it happens, not averaged across the year.
Questions people ask
What is a rent roll used for in underwriting?
It is the list of who occupies the building, on what terms, at what rent, until when. Every income figure in a deal is derived from it — NOI, cap rate, DSCR, debt yield and the exit all trace back to this one table, which is why getting it right matters more than any assumption you layer on top.
Can I enter NOI directly instead?
No, and that is deliberate rather than an oversight. NOI is always computed from the suites and the real operating expenses. A typed NOI cannot be reconciled against an operating statement, and it would quietly break the check that compares a seller's stated cap rate with what the income actually supports.
How are stepped rents handled?
Each suite carries its own schedule of periods, so a mid-year increase is modelled in the month it happens rather than averaged across the year. A lease with five escalations and one with none are the same shape of data, just different lengths.
Do I have to type the rent roll in?
Not usually. Upload the leases or a rent roll document and DealWise reads them, proposes each suite with its dates, rent schedule and lease type, and fills them in for you to review. Manual entry is there when you need it — a suite you are modelling speculatively, for instance — but it is not the normal path.
What about vacant space?
A vacant suite is a row with square footage and no lease, and it carries its own lease-up assumptions: market rent, downtime, free rent, TI and commission. Vacancy modelled as a real future lease behaves very differently from vacancy modelled as a percentage haircut.
Where this goes next
What is a rent roll?
The concept, with an example and the columns that matter.
Lease abstraction
How the rows get filled without typing.
Cash flow modeling
What the table produces once it is right.
What is NOI?
The figure derived from this table, never entered beside it.
All capabilities
Everything else the product does.
How to read an OM
Where a rent roll usually arrives from, and what to check.
Build it from the leases, not from a blank grid.
Upload the leases and DealWise proposes every suite with its dates, its stepped schedule and its lease type. You review and edit; the table becomes the system of record for the whole deal. Free plan, no credit card.