≡ Menu

Internal Rate of Return under Uncertainty

The following example shows how to use @LabAix’s irr@u app to evaluate a project’s Internal Rate of Return (IRR) assuming uncertainties on project’s cashflows.

The investment project

A company is deciding whether to invest in new assets that cost $1,000,000. Management expects the investment to generate $250,000 of annual profits over the next 6 years. The cash inflows associated with the first 3 years are certain. Starting from the 4th year, annual profits are subject to an increasing uncertainty: ±10% in Year #4, ±20% in Year #5, and ±30% in Year #6.

The aim of this exercise is to determine the investment’s IRR, defined as the value of the discount rate that results in a Net Present Value (NPV) equal to zero. Another objective is to assess the effect of cash inflows uncertainties on the IRR. The figure below illustrates the steps we will go through in order to achieve these two objectives.

We will start by creating an irr@u workbook, defining the project’s cashflows and calculating its IRR (Point Estimate). We will introduce uncertainties on cashflows, in a second step, and assess their impact on the project’s IRR (Monte-Carlo Simulation).

Creating an irr@u workbook

Pretty straightforward, as a process:

  • Login to @LabAix;
  • Head to https://labaix.com/app/irr;
  • Hit “Create a new workbook”;
  • Specify a name for your project, as well as the applicable time and currency units;
  • Hit “Create”.

Defining the project’s cashflows

To add a cashflow definition, click on the $+ button of the page’s toolbar, or simply hit the + key of your keyboard.

You will have to define the value of your cashflow (positive, if it is a cash inflow, and negative if it is a cash outflow) and the year at which it is incurred.

You can optionally associate a color with the cashflow (to distinguish it from other cashflows), mark it as uncertain, and document it, by providing information about the cashflow, and describing the underlying assumptions.

Once you have defined your cashflow, you can preview it by unchecking the “Edit” checkbox, and add it to your project’s list of cashflows by clicking on the “Save” button.

⇓ ⇓ ⇓

After defining each of the project’s cashflows, you should be able to list them as indicated in the illustration below. The initial investment is a negative cashflow and its value is put between parentheses. Annual profits are positive. Let’s now calculate the project’s IRR.

Evaluating the project’s IRR (Point Estimate)

To evaluate the project’s IRR, you just need to navigate to the “Point Estimate” tab of the page’s toolbar, as shown in the figure below. Our project’s IRR is 13 % annual, which means that, as long as the discount rate is lower than this value, the project’s NPV is positive.

Now we are going to introduce uncertainties on the three last cashflows, propagate them, and assess their impact on the project’s IRR.

Attaching uncertainties to project’s cashflows

Let’s attach a 10% uncertainty to the cashflow at Year #4. To do that, the corresponding definition has to be modified:

  • From the cashflow list’ tab, click on the “Pencil” icon;
  • Check the “Edit” checkbox, mark the cashflow as uncertain, set the uncertainty to 10%, and then hit “Save”.

You will see, now, an error bar in the graph illustrating the cashflow.

⇓ ⇓ ⇓

⇓ ⇓ ⇓

⇓ ⇓ ⇓

Follow the procedure described above to introduce a 20% uncertainty on the cashflow at Year #5, and a 30% uncertainty at Year #6.

At the end of this process, the three last cashflows will be marked by a light blue background in the cashflows listing table.

You will also notice the presence of three error bars in the project’s cashflow profile graph, shown in the “Point Estimate” tab.

Propagating uncertainties and assessing their impact on the project’s IRR (Monte-Carlo Simulation)

To propagate uncertainties and assess their impact, you need to:

  • Navigate to the app’s “Monte-Carlo Simulation” tab;
  • Specify the probability law according to which uncertain input variables will be distributed (between their lower and upper values);
  • Run the simulation and explore its results.

Please refer to this article to find out more on probability laws applicable to uncertain inputs and the corresponding scenarios.

In the example below, a neutral scenario was simulated. According to this scenario, the three last cashflows, marked as uncertain, follow a uniform distribution where all values — between the lower and the upper limit — are equally likely. The resulting IRR follows a (quasi) normal distribution centered around ~ 13% with a standard deviation of ~ 1%.

The table below indicates the probability associated with each IRR range.

IRR Range in % (percent) Probability in ‰ (per mille)
10-11 21
11-12 155
12-13 325
13-14 333
14-15 157
15-16 9

Probabilities are calculated by dividing the number of simulations leading to an IRR within a given range — you can get it by hovering over the graph’s bars — by the total number of successful calculations, which is 1000 in our case.

This Monte-Carlo Simulation shows that the impact of cashflow uncertainties on the project’s IRR is a ~ 1% variation around a central ~ 13% value (about two-thirds of the one thousand simulations lead to an IRR between 12 and 14%). In all cases, the IRR cannot take a value lower than 10%.


Uncertain Input Variables Distribution Types

Uncertainties-propagating apps (for e.g. irr@u) assume that uncertain input variables follow a probability distribution, to be specified by the user, from the apps’ “Monte-Carlo Simulation” tab.

Three types of probability distributions are available from this tab: uniform, normal, and triangular. The selected distribution will apply to all input variables marked as uncertain, as shown in the irr@u example below.

⇓ ⇓ ⇓

In this example:

  • Two input variables (a cash outflow at year #0, and a cash inflow at year #1) were defined, and marked as uncertain.
  • The probability distribution applied to both input variables is a triangular distribution, characterized by a probability density function shaped like a triangle, and defined by three values: the minimum (lower value of the cashflow), the maximum (upper value of the cashflow), and the peak value or “mode” (most likely value of the cashflow).
  • The cash outflow (in red) varies between -150 k.USD and -50 k.USD. Its most likely value is set to -150 k.USD + 80% × 100 k.USD = -70 k.USD.
  • The cash inflow (in blue) varies between +75 k.USD and +225 k.USD. Its most likely value is set to 75 k.USD + 80% × 150 k.USD = 195 k.USD.
  • Here, the “mode” or peak value associated with the triangular distribution is set to 80% of the cashflow range, which means that cashflows are distributed very close to their upper limits (-50 k.USD for the cashlow at year #0, and +225 k.USD for the cashlow at year #1).
  • This case is representative of an optimistic scenario as the Internal Rate of Return (IRR) associated with these cashflows will be higher than in cases where cashflows are distributed closer to their lower limits.

The uniform, normal, and triangular distributions are used to describe four types of scenarios: neutral, central, pessimistic, and optimistic.

Uniform distribution (neutral scenario)

Uniform distributions are used to simulate a neutral scenario: all input variables, marked as uncertain, follow a uniform distribution where all values are equally likely.

←   input’s range   →




Normal distribution (central scenario)

Normal distributions are used to simulate a central scenario: all input variables, marked as uncertain, are scattered around a central value following a normal distribution. The standard deviation (σ) around the central value can be set to σ = 5%, 10%, 20% and 40% leading to the samples shown in the figure below.

←   input’s range   →




Triangular distribution

Triangular distributions are used to simulate three types of scenarios, depending on the distributions’ “mode”: a central scenario (“mode” = 50%), a pessimistic scenario (“mode” < 50%), and an optimistic scenario (“mode” > 50%).

←   input’s range   →




“mode” = 50%

“mode” < 50%

“mode” > 50%

Input space sampling

Once the probability distribution is defined, a sequence of numerical experiments (Monte-Carlo Experiments) is auto-generated. Each experiment is described by a set of numerical values — one value for each uncertain input variable –. This process is often referred to as Design of Experiments (DoE).

The statistical method, used by @LabAix uncertainties-propagating apps for generating a near-random sample of numerical values, is the Latin Hypercube Sampling (LHS).

The figure above provides an example of LHS’ based input space sampling for two uncertain variables — v1 and v2 — following, both, a triangular distribution (“mode” = 80%).


Contributing Members’ Privileges

Our Contributing Members are helping @LabAix develop new products and services, and cover our operating expenses. We express our deep gratitude for their generous support, and offer them the following benefits and privileges.

Unlimited number of projects per app

The number of projects a “normal user” can own is limited to 5 projects per app (e.g. 5 Ideen notebooks, or 5 Collector datasets). This limit is lifted for our Contributing Members.

Unlimited number of items per project

The limit of 10 items per project is lifted for our Contributing Members. Items refer here to references (Datei), contacts (Leute), a project’s tasks (plan@u), etc.

Up to 100 uncertain values + an unlimited number of Monte-Carlo simulations

Users of uncertainties-propagating apps (plan@u, npv@u, irr@u and luc@u) can mark up to 5 inputs as uncertain, and run up to 5 Monte-Carlo simulations per day. All these limits are lifted for our Contributing Members.

Other special benefits and privileges

Contributing Members can share their projects with their collaborators – those who have @LabAix accounts – and make them publicly accessible to all @LabAix visitors in read-only mode.


The example below illustrates how to copy a publicly available Ideen notebook into a member’s @LabAix Workspace. All you need to do is to click on the copy icon, located at the top of the Settings page.


Downloading a Project’s Data

@LabAix members (both contributing and non-contributing) can download backup copies of their projects’ data in the JSON format.

The example below illustrates how to retrieve the contents of an Ideen notebook. The JSON file download link is provided at the bottom of the Settings page.


Text Formatting Tips

Text areas are frequently used within our apps to collect various inputs. In many cases, it is possible to beautify their contents by following the simple convention (use of the +, and = signs) described below.

⇓ ⇓ ⇓


Permanently Delete your @LabAix Account

To permanently delete your @LabAix account:

  • Download your projects’ data (cf. this link)
  • Head to @LabAix Account page
  • Click on the trash icon at the bottom of the page

Unless you login again within 24h, your @LabAix account will be permanently deleted. All your data will be irreversibly destroyed.