Lesson 02 · 14 min read
Building the Revenue Side — Rent Roll, Escalations, Vacancy, Growth
How to model the revenue line items in a CRE pro forma — base rent, escalations, vacancy, bad debt, and other income — without falling into the optimism trap.
Revenue is the first thing you model in a pro forma, and it's also where the most mistakes happen. Sellers and optimistic modelers inflate revenue in half a dozen subtle ways, each of which looks innocent in isolation but compounds into a pro forma that's 15-25% higher than reality.
This lesson shows you how to build a clean revenue section that holds up under scrutiny.
The revenue stack
Commercial real estate revenue breaks down into these line items, in order:
- Gross Potential Rent (GPR) — what you'd collect if every unit was occupied at market rent, with zero concessions and zero bad debt
- Loss to Lease — the gap between in-place rents and market rents (for tenants paying below market)
- Concessions — free rent, move-in credits, tenant improvement allowances treated as rent offsets
- Vacancy Loss — the portion of GPR you don't collect because units are empty
- Bad Debt / Collection Loss — tenants who should pay but don't
- Other Income — parking, laundry, pet fees, storage, billboard income, cell tower leases
- Expense Recoveries (NNN/NN leases only) — reimbursements from tenants for operating expenses
The sum of these is Effective Gross Income (EGI) — the actual cash coming in the door. EGI is what you use to calculate NOI, not GPR. Getting the stack right is the difference between a pro forma that holds up and one that collapses on closer inspection.
Building GPR from the rent roll
Gross Potential Rent should be built from the actual rent roll, not a single blended number the broker quoted. Here's how to lay it out for a small multifamily deal:
Unit Sq Ft In-Place Market Monthly Annual
Type Rent/mo Rent/mo GPR GPR
Unit 101 1BR 650 $950 $1,100 $1,100 $13,200
Unit 102 1BR 650 $975 $1,100 $1,100 $13,200
Unit 103 2BR 900 $1,150 $1,300 $1,300 $15,600
Unit 104 2BR 900 $1,200 $1,300 $1,300 $15,600
...
Total in-place market GPR total: $XXX,XXX
Two important things to notice:
GPR uses market rent, not in-place rent. GPR is the theoretical ceiling — what you'd collect if every tenant was paying market. The gap between market and in-place is called loss to lease, and it's a separate line below.
Every unit is listed individually. For a 200-unit apartment building, you'd summarize by unit type. For a 12-tenant strip center, you'd list every tenant by name with their specific lease terms. For a single-tenant NNN, the rent roll is one row.
Loss to lease — the line everyone misses
Loss to lease is the difference between market rent and actual in-place rent, summed across the rent roll. On most stabilized properties this is positive (in-place rents are below market, so there's upside as leases roll). On some properties it's negative (in-place rents are above market, so you'll lose revenue on renewals).
Example. A 10-unit building:
- Market rent: $1,200/unit × 10 units × 12 months = $144,000 GPR
- In-place rent: $1,050/unit × 10 units × 12 months = $126,000
- Loss to lease: $144,000 − $126,000 = $18,000 (that's what you're not collecting because tenants signed below market)
In the pro forma, you show GPR at $144,000 and then subtract $18,000 as loss to lease. Over time, as leases roll, loss to lease shrinks and your actual revenue converges toward GPR.
Critical point. Sellers frequently leave loss to lease out of their pro forma and just show "in-place rent" as the revenue line. That makes the deal look fully stabilized when it isn't. Always reconstruct the full GPR and subtract loss to lease explicitly.
Concessions
Concessions are free months, move-in credits, or TI allowances that effectively reduce the rent tenants pay. On a 12-month lease with 1 month free, the tenant "pays" rent 11 months but signs for 12 — the effective rent is 11/12 of the nominal rent.
In a pro forma, you either:
- Show nominal rent in GPR and subtract concessions as a separate line, OR
- Show effective rent (net of concessions) directly
Method 1 is cleaner because it separates the market-level rent from deal-specific giveaways. Use Method 1 whenever you have concession data.
Vacancy — pick the right rate
Vacancy is the percentage of GPR you don't collect because units are empty. Sellers love to show 3% vacancy on every deal. Reality is usually 5-8% for multifamily, 7-12% for retail, 5-15% for office depending on submarket.
Benchmarks for underwriting:
| Asset class | Stabilized vacancy | Value-add / transitional | |---|---|---| | Multifamily (Class A/B) | 5% | 8-12% | | Multifamily (Class C) | 5-7% | 10-15% | | Stabilized retail | 5-8% | 10-20% | | Office | 10-12% | 15-25% | | NNN single tenant | 0% (while leased) | — | | Industrial | 3-5% | 7-12% |
Never use the seller's vacancy number. Look at the submarket's actual vacancy rate from CoStar, Reis, or the appraisal, and use that. If the seller claims 2% vacancy and the submarket is 7%, either the property is truly outperforming (prove it) or the seller is inflating revenue.
Bad debt / collection loss
Separate from vacancy. Bad debt is tenants who occupy the space but don't pay — skips, evictions, non-performing leases. Typical allowances:
- Multifamily Class A: 0.5-1% of GPR
- Multifamily Class B: 1-2%
- Multifamily Class C: 2-4%
- Stabilized retail: 1-2%
- NNN single tenant with credit tenant: ~0% (but budget something for insurance/taxes escrow gaps)
Bad debt and vacancy are additive — a Class C apartment might have 7% vacancy + 3% bad debt = 10% combined revenue leakage.
Other income
Often overlooked, but can be 5-15% of total revenue on a multifamily deal. Line items:
- Laundry / vending
- Parking (covered, reserved, garage)
- Pet rent and pet fees
- Storage unit rentals
- Application fees
- Late fees
- Utility reimbursements / RUBS (ratio utility billing system)
- Cable / internet kickbacks
- Amenity fees (gym, pool)
- Cell tower / billboard leases (where applicable)
Always ask for the seller's detailed income statement and pull out other income as a separate line. Value-add opportunities often hide here — many sellers run weak or no ancillary income programs, leaving 3-8% EGI growth on the table for a buyer who implements RUBS, raises parking fees, and adds pet rent.
Expense recoveries (NNN and NN only)
On NNN leases, the tenant reimburses the landlord for property taxes, insurance, and common area maintenance (CAM). These reimbursements are booked as income on the pro forma and matched by the corresponding expense line.
On a triple-net deal, expense recoveries equal expenses (roughly) — the landlord is a pass-through. The real revenue line is base rent, and expense recoveries net out against expenses with close to zero impact on NOI.
On modified gross and gross leases, expense recoveries are partial or zero, so landlords bear more of the operating expense risk.
Rent growth — the most-abused assumption
Once you have Year-1 revenue, you grow it each year using a rent growth rate. This is the single most-abused assumption in CRE modeling. Sellers consistently assume 3-5% annual rent growth because it makes returns look attractive. Reality:
- Long-run multifamily rent growth: about 2-3% per year (roughly tracks inflation)
- Long-run retail rent growth: 1-2% per year on renewals, step-ups at lease rollover
- Long-run office rent growth: 1-3%, highly submarket-dependent
- NNN leases: whatever the contract says — read the lease language literally
Some markets and eras see higher rent growth (Sunbelt multifamily in 2019-2022 hit 10%+ some years), but you should never underwrite with those numbers as your base case. Use long-run averages for the base case and run sensitivity on higher/lower growth.
Putting it all together — a clean revenue section
Here's what the top of a clean pro forma's revenue section looks like:
Year 1 Year 2 Year 3 Year 4 Year 5
Gross Potential Rent 360,000 370,800 381,924 393,382 405,183
(3% annual growth)
Loss to Lease (18,000) (12,000) (6,000) 0 0
(converges to market)
Concessions (3,600) (3,708) (3,819) (3,934) (4,052)
Vacancy (5%) (16,920) (17,754) (18,606) (19,472) (20,057)
Bad Debt (1%) (3,384) (3,551) (3,721) (3,894) (4,011)
Net Rental Income 318,096 333,787 349,778 366,082 377,063
Other Income 18,000 18,540 19,096 19,669 20,259
Expense Recoveries 0 0 0 0 0
(gross lease — no recoveries)
Effective Gross Income 336,096 352,327 368,874 385,751 397,322
Notice how every line is labeled, every number is traceable, and the progression from GPR to EGI is transparent. A lender or investor can read this in 30 seconds and know exactly where the numbers come from.
The three revenue mistakes beginners make
- Using in-place rent as GPR — understates market upside and makes loss to lease invisible. Always build GPR from market rent.
- Using seller's vacancy number — almost always too low. Replace with submarket vacancy from CoStar or the appraisal.
- Growing rents at 3-5% without evidence — long-run averages are 2-3%. Unless you have a specific submarket thesis, use 2.5% as your base case and sensitize higher/lower.
What to take away
- Build GPR from market rent, not in-place rent — in-place becomes loss to lease
- Separate vacancy (empty units) from bad debt (non-paying tenants)
- Don't forget other income — it can be 5-15% of a multifamily pro forma
- On NNN deals, base rent is the real revenue line; recoveries net against expenses
- Use 2-3% long-run rent growth for base case, not 3-5%
- Every line in the revenue section is labeled and traceable
Next lesson: modeling operating expenses — the line-by-line breakdown of where money leaks out, which expense categories grow faster than inflation, and the "below the line" items sellers hide.