How to calculate rent growth
A rent walk, a CAGR, and the bucketing mistake that turns a 3% lease escalation into a 22% growth rate.
Rent growth is a measurement, not an assumption
Two different numbers get called rent growth, and the difference matters more than the arithmetic does.
The first is contractual. It is the escalations already written into the leases you own — 3% a year, a fixed step in month 37, a CPI adjustment with a floor. It is not a forecast. It is derived from the rent roll, and if the leases are abstracted correctly there is only one right answer.
The second is market rent growth — an assumption about what space will re-let for when a lease rolls. That is a forecast, it belongs to whoever made it, and it should be labelled as one.
This guide is about the first one. A rent walk is the year-by-year table of rent the property actually collects across the hold; the CAGR is the single rate that describes it.
The example: a 3% escalation and nothing else
Sample inputs
- Asset
- Single-tenant industrial
- Acquired
- 1 July 2026
- Base rent
- $100,000 / month
- Escalation
- 3% every July
- Hold
- 5 years
- Vacancy, rollover
- None
Deliberately the simplest building that can exist: one tenant, one escalator, nothing rolling and nothing empty. The right answer is knowable before any software runs it — the rent grows at 3.00%, because that is the only thing in the lease that moves.
Which makes it the right example, because any method that returns something other than 3.00% here is wrong in a way you can prove rather than argue about.
Bucketed by hold year — the right answer
| Hold year | Rent collected | Change |
|---|---|---|
| Year 1 | $1,200,000 | — |
| Year 2 | $1,236,000 | 3.00% |
| Year 3 | $1,273,080 | 3.00% |
| Year 4 | $1,311,272 | 3.00% |
| Year 5 | $1,350,611 | 3.00% |
Each row runs July to June, because that is when the property was bought. The CAGR across the five years is 3.00% — exactly the escalation, which is the only correct answer.
Note the first row’s change column is blank, not zero. There is nothing before year one to compare against, and a zero there reads as flat rent, which would be a claim. For the same reason a property with fewer than two full years of rent gets no growth rate at all rather than a rate of zero.
One arithmetic trap while you are here: five years of rent contain four intervals, not five. Dividing by the number of years rather than the number of gaps is the most common way a CAGR comes out low.
Bucketed by calendar year — a 22% growth rate out of a 3% lease
Now the same building, the same lease and the same rent, bucketed into calendar years instead:
| Calendar year | Rent collected | Change |
|---|---|---|
| 2026 (Jul–Dec only) | $600,000 | — |
| 2027 | $1,218,000 | 103.00% |
| 2028 | $1,254,540 | 3.00% |
| 2029 | $1,292,176 | 3.00% |
| 2030 | $1,330,941 | 3.00% |
The property was bought in July, so 2026 contains six months of rent, not twelve. That half-year becomes the base. The following year is a full twelve months, so the six missing months reappear as 103% growth, and the CAGR across the table comes out at 22.04%.
Same building. Same lease. Same rent. 3.00% became 22.04% — and the error only ever runs one way, because the stub year is always the small one.
This is not a hypothetical. It is the failure DealWise’s own rent walk was rewritten to fix, and the reason it bit so hard is arithmetic rather than bad luck: only a January acquisition is safe, and almost nothing closes in January.
What to check in your own model
- Does year one start at acquisition? If your first column is a calendar year and you did not close on 1 January, the growth rate above it is invented.
- Is year one a full twelve months? A partial first year is the single largest source of overstated growth, and it survives every reconciliation because the totals are still right.
- Are you dividing by gaps or by years? Five annual figures, four intervals.
- Is a re-letting assumption hiding in there? If the walk includes rent from a lease that has not been signed, it is not contractual growth any more — it is a forecast wearing a measurement’s clothes.
- Does free rent sit in the right month? Concessions inside the hold move the year they land in, not the average. See net effective rent.
How DealWise does it
DealWise builds the rent walk from the rent roll rather than from a growth assumption you type in. Each suite carries its own rent schedule — a list of periods with their own start, end and rent — and the walk is the sum of those months, bucketed from the acquisition date.
That means the growth rate is an output, not an input. You cannot set it, and it cannot disagree with the leases, because it is derived from them. It is the same principle as NOI being derived rather than entered: a number you can type is a number that can be wrong on its own.
Let the leases set the growth rate.
Upload the leases and DealWise builds the rent schedule behind each suite, then walks the rent from your acquisition date rather than from January. The growth rate is an output you cannot type over. Free plan, no credit card.
Frequently asked questions
What is a rent walk?
A year-by-year table of the rent a property actually collects across the hold, with the change from the year before. It is the bridge between a rent roll, which is a snapshot, and a cash flow, which is a projection — and it is where escalations, free rent and rollover show up as one number a year.
How do you calculate rent growth CAGR?
Take the rent collected in the final year, divide it by the rent collected in the first year, raise the result to the power of one divided by the number of intervals between them, and subtract one. With five years of rent there are four intervals, not five — using five is a common error and it understates growth.
Should rent growth be measured by calendar year or hold year?
Hold year, always. A property bought in July has only six months of rent in its first calendar year, so a calendar-year table compares half a year against a full one and reports the missing months as growth. On a lease with 3% escalations and nothing else changing, that mistake returns a 22.04% growth rate.
Why is year one blank instead of zero?
Because there is nothing before it to compare against. A zero in that cell reads as flat rent, which is a claim — blank is the honest answer. For the same reason a property with fewer than two full years of rent gets no growth rate at all rather than a rate of zero.
Does rent growth mean the same thing as market rent growth?
No, and conflating them is how a pro forma inflates. Rent growth measured off a rent roll is contractual — it is the escalations already signed. Market rent growth is an assumption about what space will re-let for later. The first is in the lease; the second is a forecast, and it should be labelled as one.
Related guides
How to read a rent roll
The document every one of these numbers is derived from.
How to calculate stabilized NOI
What the rent walk feeds once expenses and credit loss come off.
What is IRR in commercial real estate?
The return measure that rent growth moves most.
CRE metrics explained
Cap rate, NOI and DSCR, and how they relate.