Skip to content

Real estate development pro forma example, worked line by line

A complete development pro forma for a 48-unit apartment building, from the land closing to the sale: $14,848,230 of total cost including $918,230 of construction interest, $983,520 of stabilized NOI, a 6.62% yield on cost and a 22.6% levered IRR. The project is made up; every number comes from the free pro forma, so you can open it and change any input.

Updated

The project

Pecan Row Apartments is a 48-unit rental building. Land closes in Jan 2026, construction runs 18 months, and the building leases up for 9 months before it is sold at stabilization in Apr 2028.

InputValue
Land$2,400,000
Hard costs$9,600,000
Soft costs$1,450,000
Contingency5% of hard costs
Construction loan65% of total cost at 7.5% a year
Average rent$2,350 per unit per month, plus $75 other income
Vacancy and credit loss5%
Operating expenses$7,200 per unit per year
ExitSale at a 5.5% cap rate, 2% selling costs

Sources and uses

Uses is where the money goes. Sources is where it comes from (the five parts are in what a development pro forma is). Construction interest sits on the uses side because the loan pays for it, and that makes the loan bigger.

UsesAmountShare
Land$2,400,00016.2%
Hard costs$9,600,00064.7%
Soft costs$1,450,0009.8%
Contingency$480,0003.2%
Construction interest$918,2306.2%
Total development cost$14,848,230100.0%
SourcesAmountShare
Equity$5,196,88035.0%
Construction loan$9,651,34965.0%
Total$14,848,230100.0%

Stabilized income

Gross potential rent (48 units × $2,350 × 12)$1,353,600
Vacancy and credit loss (5%)-$67,680
Other income$43,200
Effective gross income$1,329,120
Operating expenses-$345,600
Net operating income$983,520

The monthly cash flow

Land is paid at closing. Hard costs and contingency follow an S-curve, soft costs are spread evenly, and equity pays first. The $5,196,880 of equity is used up in month 7, Aug 2026. From then on the loan pays, and interest is added to the balance every month until the sale.

MonthCostEquityLoan drawInterestLoan balance
Jan 2026$2,400,000$2,400,000$0$0$0
Feb 2026$89,063$89,063$0$0$0
Mar 2026$155,581$155,581$0$0$0
Apr 2026$280,594$280,594$0$0$0
May 2026$449,024$449,024$0$0$0
Jun 2026$640,556$640,556$0$0$0
Jul 2026$832,087$832,087$0$0$0
Aug 2026$1,000,517$349,975$650,542$0$650,542
Sep 2026$1,125,530$0$1,129,596$4,066$1,780,137
Oct 2026$1,192,048$0$1,203,174$11,126$2,983,311
Nov 2026$1,192,048$0$1,210,694$18,646$4,194,005
Dec 2026$1,125,530$0$1,151,742$26,213$5,345,747
Jan 2027$1,000,517$0$1,033,928$33,411$6,379,675
Feb 2027$832,087$0$871,960$39,873$7,251,634
Mar 2027$640,556$0$685,878$45,323$7,937,513
Apr 2027$449,024$0$498,634$49,609$8,436,146
May 2027$280,594$0$333,320$52,726$8,769,467
Jun 2027$155,581$0$210,390$54,809$8,979,857
Jul 2027$89,063$0$145,187$56,124$9,125,045
Aug 2027$0$0$57,032$57,032$9,182,076
Sep 2027$0$0$57,388$57,388$9,239,464
Oct 2027$0$0$57,747$57,747$9,297,211
Nov 2027$0$0$58,108$58,108$9,355,318
Dec 2027$0$0$58,471$58,471$9,413,789
Jan 2028$0$0$58,836$58,836$9,472,625
Feb 2028$0$0$59,204$59,204$9,531,829
Mar 2028$0$0$59,574$59,574$9,591,403
Apr 2028$0$0$59,946$59,946$9,651,349

The balance at the sale, $9,651,349, equals the loan of 65% of total cost. The two only match because the loan is sized on a total cost that already includes its own interest.

Returns

Exit value ($983,520 ÷ 5.5%)$17,882,182
Selling costs (2%)-$357,644
Net sale proceeds$17,524,538
Less total development cost-$14,848,230
Profit$2,676,308
Margin on cost18.0%
Yield on cost6.62%, +112 bps over the exit cap rate
Unlevered IRR15.4%
Levered IRR22.6%
Equity multiple1.51x

The levered IRR is well above the unlevered one because the loan costs 7.5% while the project earns more than that. The equity multiple of 1.51x is earned over 27 months, which is why the IRR looks generous next to it.

What moves the result most

Each row changes one input and leaves everything else as modelled.

ChangeTotal costYield on costProfitLevered IRR
As modelled$14,848,2306.62%$2,676,30822.6%
Hard costs 10% higher$15,919,8186.18%$1,604,72013.4%
Rents 5% lower$14,848,2306.19%$1,530,67013.5%
Exit cap rate 0.5 points higher$14,848,2306.62%$1,215,93010.9%
Interest rate 2 points higher$15,093,7266.52%$2,430,81320.5%
Lease-up 6 months longer$15,194,5436.47%$2,329,99515.5%

The cap rate at sale does the most damage, and it is the one input nobody on the project controls. Half a point takes profit from $2,676,308 to $1,215,930. Rents 5% below plan cost $1,145,638 of profit. A 10% hard cost overrun hurts too, but the contingency and the budget exist to catch that one, and nothing in the budget catches a move in cap rates.

What this example leaves out

There is no investor waterfall, preferred equity or mezzanine debt, no loan fees as a separate line, and no taxes. Interest during lease-up is added to the loan rather than paid from rent. The exit is a sale; a hold-and-refinance case is not modelled. The pro forma template lists these limits in full, and the guide to development pro formas explains each part of the model.

Questions

What should a real estate development pro forma include?

Land, hard and soft costs with contingency; the construction loan and its interest; the timeline for construction and lease-up; stabilized income and operating expenses; and the exit, usually a sale at a cap rate. From those come total development cost, yield on cost, profit, IRR and equity multiple.

How do you calculate total development cost?

Add land, hard costs, soft costs, contingency and construction interest. In this example that is $2,400,000 + $9,600,000 + $1,450,000 + $480,000 + $918,230 = $14,848,230.

What is a sources and uses table?

A two-sided summary of the project's money. Uses lists what the money is spent on, and sources lists where it comes from, usually equity and a construction loan. The two sides must add to the same total.

Which input moves a development pro forma the most?

In this example, the exit cap rate. Half a point higher cuts profit from $2,676,308 to $1,215,930, more than a 10% overrun on hard costs does. Every project is different, so run your own numbers in the free pro forma.