Loading...

Monte Carlo Discounted Cash Flow (MCDCF)

Download bundled offline version from: https://github.com/statsim/mcdcf/releases

Overview

The Monte Carlo Discounted Cash Flow (MCDCF) tool is a simulation‐based financial model designed for property investment analysis. It uses Monte Carlo techniques to create a distribution of possible future cash flows and performance metrics over the investment period. By integrating uncertainty in economic factors, property specifics, and operational variables, the tool computes key outputs such as Net Present Value (NPV), Internal Rate of Return (IRR), Before-Tax Cash Flow (BTCF), and After-Tax Cash Flow (ATCF). Users may choose between classical (deterministic) scenarios and probabilistic Monte Carlo simulations by adjusting the input parameters.

Real Estate Financial Modeling

Making a real estate investment involves uncertainty. Market conditions, economic factors, and property-specific costs can change over time, and predicting these changes can be challenging. Many investors struggle to understand how variables like inflation, economic growth, and interest rates might affect the performance of their investments.

This application solves the problem by using Monte Carlo simulations to model a wide range of possible future scenarios. It provides you with a probabilistic forecast of your investment's performance, showing potential outcomes rather than a single deterministic forecast. With this tool, you can better gauge the risks and rewards associated with a property, helping you to plan and strategize more effectively.

Main Components

Economic and Model Parameters

This block sets the simulation settings and global economic assumptions. It defines the time interval for each simulation step, the total number of steps, the number of samples (simulation runs), and the precision of the outputs.

Each income and expense item can be set to grow at a custom rate, follow global growth rate (i.e. inflation), or remain fixed. For each economic variable (economic growth, inflation, discount rate), you can choose:

Property Details

Specific details about the property itself. These inputs are essential for calculating the financial dynamics of your investment:

Income Items (Rent and Other Revenue)

Income items represent revenue streams from the property. For each income item, you specify:

For both amount and occupancy you can specify a growth rate clicking arrow button on the right side of the input field.

Expense Items

Expenses are divided into two categories: Operating Expenses and Capital Expenses. Operating expenses are recurring costs associated with the property's day-to-day operations, while capital expenses are one-time costs that improve the property's value. For each expense item, you input:

Taxes

Tax settings allow you to define the tax rate and the method of calculation.

Outputs and Reporting

Simulated Financial Projections

Once you have provided all inputs, the tool runs a series of Monte Carlo simulations. It calculates monthly values for:

Optimized for PDF export

Press Ctrl+P to print the report or save as PDF. The tool is optimized for PDF export, so you can easily save your project for future reference or share it with others. You can make significant adjustments on that page too.

Sharing

Share Your Project via URL

One of the features of the application is the ability to share your entire project configuration via a unique URL. When you click the "Copy Link" button, the tool compresses all your input data into a URL parameter. Recipients who open the URL will see your saved settings and simulation results without any additional setup. No servers involved on our side. Full project is encoded in the URL itself.

Import/Export uncompressed JSON config

You can also export and import your project configuration as a JSON file in Import/Export section. This feature is useful for saving your work locally or pasting outputs from LLMs. The JSON file contains all the input data and settings, allowing you to pick up where you left off at any time.

Examples for LLMs

Include following text blocks in your chats with large language models (LLMs) to make them generate MCDCF projects:

Full example:

{
  "model": {
    "interval": "Year",
    "steps": 10,
    "samples": 1,
    "precision": 2,
    "economic_growth": {
      "active": true,
      "type": "Fixed",
      "initial": 2.314552484901538,
      "interval": "Year"
    },
    "inflation": {
      "active": true,
      "type": "Fixed",
      "initial": 9.91444696610541,
      "interval": "Year"
    },
    "discount_rate": {
      "active": true,
      "type": "Fixed",
      "initial": 7.397029901537655,
      "interval": "Year"
    }
  },
  "property": {
    "name": "Downtown Office Complex",
    "debt": {
      "amount": 2000000,
      "term": 20,
      "rate": 4.5,
      "interval": "Month"
    },
    "purchase": {
      "price": 3000000,
      "costs": 150000
    },
    "sale": {
      "price": "4000000",
      "costs": 200000
    }
  },
  "income": {
    "items": [
      {
        "id": 1,
        "description": "Office Rental Income",
        "active": true,
        "amount": 25000,
        "units": 10,
        "occupancy": 90,
        "interval": "Year",
        "amount_growth": {
          "type": "Inflation",
          "initial": 2,
          "interval": "Year",
          "target_values": [],
          "growth_values": [],
          "factor": "1"
        },
        "occupancy_growth": {
          "type": "Fixed",
          "initial": 0,
          "interval": "Year",
          "target_values": [],
          "growth_values": []
        }
      }
    ]
  },
  "expenses": {
    "items": [
      {
        "id": 1,
        "description": "Property Management Fee",
        "active": true,
        "amount": 0.05,
        "type": "Relative",
        "target": "Gross Income",
        "interval": "Month",
        "amount_growth": {
          "type": "Fixed",
          "initial": 0,
          "interval": "Year",
          "target_values": [],
          "growth_values": []
        }
      },
      {
        "id": 2,
        "description": "Maintenance Expense",
        "active": true,
        "amount": 5000,
        "type": "Absolute",
        "target": "",
        "interval": "Month",
        "amount_growth": {
          "type": "Fixed",
          "initial": 1,
          "interval": "Year",
          "target_values": [],
          "growth_values": []
        }
      }
    ]
  },
  "capex": {
    "items": [
      {
        "id": 1,
        "description": "Major Renovation",
        "active": false,
        "amount": 300000,
        "type": "Absolute",
        "target": "",
        "interval": "Year",
        "amount_growth": {
          "type": "Fixed",
          "initial": 0,
          "interval": "Year",
          "target_values": [],
          "growth_values": []
        }
      }
    ]
  },
  "taxes": {
    "depreciation": {
      "amount": 3.5,
      "period": 27.5
    },
    "marginal_tax_rate": 35,
    "capital_gains_tax_rate": 20,
    "recapture_tax_rate": 25
  }
}
      

Model

Defines how the simulation is run (time steps, number of samples, precision). Sets the behavior of economic variables (economic growth, inflation, and discount rate). Each variable can be fixed (deterministic) or configured to vary stochastically (e.g., random walk, sample-based).

Key Fields

Possible Variations

Property

Contains property-level details: identification, financing (debt), purchase, and sale information. Helps compute debt service and net proceeds at sale.

Key Fields

Possible Variations

Income

Describes one or more revenue streams from the property (e.g., rent, parking fees). Each item can have its own base amount, growth settings, and occupancy.

Key Fields

For both amount and occupancy you can specify a growth rate by clicking the arrow button on the right side of the input field.

Possible Variations

Expenses

Outlines operational costs of the property. Each expense can be absolute (fixed dollar) or relative (percentage of a target like Gross Income). Growth can be modeled similarly to income items.

Key Fields

Possible Variations

Capex

Represents capital expenditures (major improvements or renovations). These costs are treated separately from operating expenses and are often excluded from Net Operating Income (NOI).

Key Fields

Possible Variations

Taxes

Tax settings allow you to define the tax rate and the method of calculation. These settings apply during both the holding period (marginal tax on income) and at disposition (capital gains and depreciation recapture).

Key Fields

Possible Variations