> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/use-cases/real-estate-and-property/development-feasibility-model.md).

# Development Feasibility Model

This use case explains how to build a development feasibility model for real estate projects in Model Reef.

You will:

* Represent a property development as its own branch or model.
* Model land acquisition, planning and construction costs over time.
* Forecast sales or leasing revenue and associated costs.
* Layer in debt and equity funding and compute project and equity returns.

Model Reef is not a CAD or project management system. It focuses on financial feasibility, funding and return analysis.

***

## When to use this pattern

Use this pattern when:

* You are assessing a new development or redevelopment project.
* You need to understand cash requirements, drawdowns and returns over the project life.
* You want to test multiple scenarios quickly without rebuilding the model.
* You need investor or lender ready cashflow and return outputs.

You will typically use this as a standalone model per project, and optionally roll selected projects into portfolio views.

***

## Architecture overview

{% stepper %}
{% step %}

### Project structure

* A single branch or model per project, with optional sub branches for stages or uses.
  {% endstep %}

{% step %}

### Cost side

* Land acquisition costs and timing.
* Soft costs such as planning, design and fees.
* Hard construction costs and contingencies.
* Marketing, sales and leasing costs.
* Ongoing holding costs such as rates, insurance and interest if capitalised.
  {% endstep %}

{% step %}

### Revenue side

* Sales revenue per lot, apartment or area.
* Leasing revenue if the project is held after completion.
* Settlement timing and any staged payments or pre sales.
  {% endstep %}

{% step %}

### Funding and returns

* Debt, equity and possibly mezzanine funding.
* Drawdown, interest and repayment profiles.
* Project and equity IRR, NPV and money multiple via the Valuation Engine.
  {% endstep %}
  {% endstepper %}

***

{% stepper %}
{% step %}

### Set up a project branch or model

Create either:

* A dedicated model for the project, or
* A branch such as `Project - Development A` within a broader model.

If the project is large or needs many scenarios, a separate model is often simpler to manage.

Within the project, you can optionally create sub branches for:

* Stages (Stage 1, Stage 2).
* Uses (Residential, Retail, Office).
  {% endstep %}

{% step %}

### Model land and acquisition costs

Create Asset and Opex variables for acquisition related items, for example:

* `Assets - Land Acquisition`.
* `Opex - Stamp Duty and Transaction Costs`.
* `Opex - Legal and Due Diligence Costs`.

Set amounts and timing according to the intended transaction schedule. You can fund land acquisition with equity, debt or a mix:

* Equity contributions as Equity type variables.
* Land loans as Liability variables with drawdowns and interest.

This will drive early cash outflows and asset balances.
{% endstep %}

{% step %}

### Build construction and soft cost schedules

Define drivers and variables for:

* `Hard Construction Cost` per square metre, per unit or per stage.
* `Soft Costs` such as design, consultants, approvals and project management.
* `Contingency` as a percentage of hard or total cost.
* `Holding Costs` such as rates and insurance during development.

Create Opex or Asset variables as appropriate, for example:

* `Capex - Construction - Stage 1`.
* `Capex - Construction - Stage 2`.
* `Opex - Professional Fees`.
* `Opex - Marketing and Presales`.

Spread costs over the construction period using schedules so that:

* P\&L and Cashflow reflect the timing of actual cash outflows.
* Assets on the Balance Sheet represent work in progress where relevant.
  {% endstep %}

{% step %}

### Forecast sales or leasing revenue and timing

For build to sell projects, define variables for:

* `Number of Lots or Units`.
* `Average Selling Price per Unit` or price bands.
* `Sales Programme` over time (presales, construction period sales, post completion sales).
* `Settlement Timing` and staged payments if applicable.

Create Revenue variables such as:

* `Revenue - Unit Sales - Stage 1`.
* `Revenue - Unit Sales - Stage 2`.

For build to hold projects, instead:

* Implement a rental cashflow structure similar to **Property Cash Flow (Rental or Lease)** once the asset is complete.

Set timing so that:

* Revenue is recognised when sales or leases occur.
* Cash inflows match expected settlement or lease cash timing.
  {% endstep %}

{% step %}

### Add funding structure and interest

Create Liability variables for:

* `Debt - Development Facility`.
* `Debt - Land Facility` if separate.
* `Mezzanine Facility` if used.

Define:

* Maximum facility limits or gearing rules as drivers.
* Drawdowns linked to a share of project costs or to a schedule.
* Interest rates (base plus margin) and whether interest is capitalised.
* Repayment triggers such as sales, completion or refinance.

You can also represent:

* Equity contributions from sponsors or investors as Equity type variables.
* Preferred distributions or waterfalls in reporting or in a simple Equity variable schedule.

Model Reef will then:

* Calculate interest expense and capitalised interest where appropriate.
* Track loan balances and repayments.
* Show funding flows in the Cashflow Statement and Cash Waterfall.
  {% endstep %}

{% step %}

### Compute project and equity returns

Use the Valuation Engine to derive return metrics:

* Project level FCFF based on unlevered cashflows.
* Equity level FCFE based on levered cashflows to equity.

From these, Model Reef can produce:

* Project IRR and NPV.
* Equity IRR and NPV.
* Money multiple and payback period.

You can present these via:

* Dashboards for each project.
* Comparison views across projects where the model includes multiple developments.
  {% endstep %}

{% step %}

### Use scenarios for pricing, cost and timing risk

Clone the project model into scenario models to test sensitivities such as:

* Changes in sales prices or rental levels.
* Construction cost overruns.
* Delays in approvals or construction.
* Changes in funding terms or availability.
* Different exit strategies (sell down, partial hold, complete hold).

In each scenario, adjust:

* Price and sales drivers.
* Cost and schedule assumptions.
* Funding structure and interest rates.

Compare scenarios using:

* Project and equity IRR and NPV.
* Peak funding and drawdown requirements.
* Cashflow timing and risk.
* Portfolio impact where projects feed into a larger group model.
  {% endstep %}

{% step %}

### Check your work

* Cost and revenue assumptions reflect independent data, recent projects or feasibility studies.
* Timing of construction, sales and funding follows a realistic programme.
* Debt limits and covenants align with lender expectations.
* Return metrics are comparable to other feasibility work for the same project.
  {% endstep %}
  {% endstepper %}

***

## Troubleshooting

<details>

<summary>Model shows unrealistic returns or losses</summary>

Double check cost, price and timing inputs against external references and ensure that you are not missing major categories such as contingency or marketing.

</details>

<details>

<summary>Peak funding appears much higher than expected</summary>

Review the timing of land acquisition, construction and sales, and ensure that funding draw rules match how facilities are expected to operate.

</details>

<details>

<summary>Difficult to maintain multiple projects in one model</summary>

Use one model per project during feasibility and create a separate consolidation model for portfolio level reporting.

</details>

***

## Related guides

* [Build a Seasonality Adjusted Forecast](/how-tos/scenarios-and-planning/build-a-seasonality-adjusted-forecast.md)
* [Build a Sensitivity Analysis Pack](/how-tos/scenarios-and-planning/build-a-sensitivity-analysis-pack.md)
* [Editor Permissions](/help/permissions-and-collaboration/editor-permissions.md)
* [Seasonality Inputs](/syntax/timing-syntax/seasonality-inputs.md)
