(Redirected from NPV)

Npv(rate, values, I)

Computes the net present value of a cash flow with equally spaced periods and constant discounting. «rate» is the discount rate per period. «values» is an array indexed by «I», typically months or years. Positive «values» in that period indicates an inflow or earnings, and a negative value represents an outflow or payment. Npv is defined as:

[math]\displaystyle{ Npv(r, \vec x, l) = \sum^n_{i=1} \dfrac{x_i}{(1+r)^i} }[/math]

The first element in «values» is discounted as if it is one step in the future, rather than at the start. This matches the convention used by Excel. But it is not so convenient when the initial outlay for an investment starts in the current time period. In this case, you may subtract the outlay in period zero to the Npv of all future cash flows, e.g.:

Full_Npv := - Initial_outlay + Npv(rate, values, I)

Alternatively, you can just divide the Npv by (1 + rate) so that the first period is not discounted, and discounting starts in the second period:

Npv(rate, values, I)/(1 + rate)


A dollar earned today will generally be worth more to you than a dollar earned at some point in the future. Conversely, a dollar spent now is generally more expensive than a dollar spent in the future. This time-value difference is a result of opportunities you may have to put that dollar to work -- e.g., investing in other projects, enjoying that dollar while you are alive, or placing the dollar in alternative investments. In addition, that dollar will lose value from inflation. To account for this time-value difference, it is common practice to discount future values. The discount rate is the rate per period that we discount a dollar in the future. If we obtain x dollars one time period in the future, then we would say that its present value is x/(1+r), where r is the discount rate. The net part of net-present value reflects that we are adding up the present values of all cash flows.

Npv is often a good way to compare alternative investment options. Its primary limitation is the fact that is presupposes that you can identify the discount rate that applies to you. Because of its widespread use, many organizations internally publish what their working discount rate is. However, in general, the appropriate discount rate for you is not always obvious. In general, changing the discount rate will change the relative attractiveness of alternative investments, especially if the cash-flow structure of the investments is substantially different, so the selection of a specific discount rate is likely to have a material impact on the end result of your decision making process.

One practice that is often employed when using a net-present-value analysis is to repeat your analysis across a range of discount rates. This is referred to as a Parametric Analysis. You should use this parametric analysis to understand how your decision is impacted as the discount changes, and then use that understanding to guide your treatment of discount rate.

An alternative to Npv-analysis is the use of Internal Rate of Return (Irr). An Internal Rate of Return analysis avoids the need to select a discount rate a priori, but in general tends to suffer more downsides than a net-present-value analysis. While an Irr approach has some intuitive appeal, an Irr analysis should usually include a parametric Npv analysis also to avoid being mislead (the one exception is when the alternative investment options have almost identical structure).

Identifying a discount rate

How do you determine the appropriate discount rate for your case?

In general, it is a subjective estimate -- there is no "objectively correct" answer here. However, to approach this, you should consider making a reasonable adaptation of the following question to your scenario.

Suppose you are given $1000 of discretionary money to spend today. You have an option to trade that for $Y to spend one time period later. The value for $Y at which you are willing to make the trade determines your discount rate:

$1000 = Y/(1 + r)
r = Y/1000 - 1

Publicly traded companies often infer their share holder's-implied discount rate from stock price and volatility based on the Capital Asset Pricing Model. CAPM is based on the idea that a company's risk-reward ratio is equal to the market risk-reward ratio, thus inter-relating the company's expected return (effective discount rate) to stock price variance deviation per time period. That relationship effectively reveals the price $Y at which share holders would favor the investment over distributing profits to them now.

If you have a risk-free interest-generating investment available to you (e.g., T-bills), this should at least provide a lower bound on your appropriate discount rate.

Criteria for decision making

When an investment opportunity has a positive net-present value, this indicates that you should make the investment. (Recall that pure net-present value is based on a sure-thing cash-flow). Likewise, a negative net present value indicates that you should pass. In both cases, NPV may not be your sole relevant decision criteria, so keep in mind that this is the indication coming just from the NPV-criteria. In this sense, the NPV-criteria provides a clear go/no-go decision criteria.

When comparing two investments, the investment with the higher NPV is the better one. If both have positive NPVs, this indicates that you should take both investments if at all possible. In practice, competing investments are usually mutually exclusive, so you will be selecting one or the other. If both NPVs are negative, you should reject both investments.

There are a few things to watch out for when using the NPV-criteria for a go/no-go decision. Due to the inherent subjectivity in the determination of discount rate, you want to make sure your decision is robust over a range of reasonable discount rates. You should also keep in mind that non-monetary considerations not covered by your quantitative analysis are probably also important to your decision, and should fold these in appropriately.

Present value and uncertainty

Net present value provides a metric for comparing certain cash flows~-- that is, a revenue/expense stream where we know exactly how much cash flow occurs in each time period. In real life, uncertainty plays a dominant part in capital allocation decisions. Cash flows for investments that are interesting or complex enough to to model are rarely certain, and comparison of risk often dominates the decision making considerations.

Some aspects of uncertainty could be folded into the discount rate. For example, you might argue that someone near the end of their life should adopt a higher discount rate than someone with a long life ahead of them, since the probability of not being able to enjoy income is greater. Here the exact date of death is uncertain, but rather than modeling that explicitly, we incorporate it by increasing our discount rate. As Another example, you may have a very good estimate for next year's earnings, but for each successive year, the accuracy of your forecast goes down, due to various uncertain or unmodeled factors. You might increase your discount rate to reflect the fact that future earnings are less reliable. In general, when uncertainties are folded into the discount rate, you should assume that different discount rates apply to different investment options.

There are obvious downsides to treating uncertainty and risk simply by folding it into the discount rate. Since it comfounds many factors together, the importance of different aspects such as uncertainty, or of different sources of uncertainty, are lost, which usually results in a loss of insight that might have otherwise been possible. The approach is also flawed when uncertainties are asymmetric. For example, while future positive earnings may become less certain with time, future expenses may remain quite certain. At the very least, earnings would have to be discounted at one rate, while expenses would have to be discounted at a different rate. Such approaches do indeed get applied in practice, although not always without controversy.

A nice feature of using Analytica for NPV-analyses is that we can usually keep the uncertainty considerations out of the discount rate, and instead model the uncertainties explicitly. Net-present value is well-suited to a Monte Carlo treatment of uncertainty, allowing us to use an Expected Net Present Value (ENPV) as a decision criteria. The ENPV is seen when viewing the mean view of an Npv result in Analytica, or obtained in an expression as

Mean(Npv(rate, values, I))

With uncertainty distributions placed directly on the variables that are used to project the cash flow, a cash flow with uncertainty results. When computed using Monte Carlo simulation, Analytica ends up simulating SampleSize separate cash flow scenarios (SampleSize different samplings of values). For each of those scenarios, Npv(rate, values, I) the NPV for that scenario, yielding a distribution over the net present value. Discount rate can then be used in a "purer" fashion to reflect the project-independent discount for tying up capital, which is then a function of the organization, and not of the individual project or investment opportunities.

Note that you can also treat discount rate as an uncertain quantity, defining it as a distribution.

Downsides of Net Present Value

In many common cases, an underestimation of discount rate leads to an overly optimistic valuation of an investment, while an overestimate leads to excess conservatism. Because of this, people often err on the side of overestimating discount rate. Although conservatism may be viewed as desirable, this approach to obtaining it is flawed when future negative cash flows may occur, and especially when the final phases of the investment involves more negative than positive cash flows. For example, the decommissioning of a nuclear power plant at the end of its lifetime may represent a dominant cost of the project's lifetime. Financing arrangements may involve a large balloon payment at project maturity. Etc. When discount rates are overestimated, future costs end up receiving optimistic treatment, resulting in quite the opposite of a conservative analysis.

In actual practice, the confounding of effective discount rate with actual uncertainty (a premium on risk) is often responsible for many misleading conclusions in NPV analyses. While discounting the reliance on future earnings, it ends up also discounting the impact of unexpected future losses.

The NPV-criteria, to reject an investment with NPV < 0, is inappropriate in some cases where taking no action is not a viable option. For example, a power company that is required to meet a specified level of demand may have to invest in a new power transmission capacity upgrade even though the NPV-criteria indicates that it is not in its financial interest to do so. In such a case, comparison of NPV for alternative projects is appropriate, even when all are negative.

Net Present Utility

The valuation of capital investment options usually involves more than pure monetary cash-flow considerations. Most organizations have numerous other non-monetary considerations as well. A corporation may consider community good will, strategic fit, human resource development, and fit to corporate mission. Government projects may consider economic development considerations, improvement of citizens' lifestyle, political good will, and other social benefits. Many of these are often very difficult to quantify. However, in most cases, similar discounting considerations may apply -- a little love today may be worth more than that same amount of love on a future date.

The concept of net present value can also be applied to non-monetary metrics. The same Npv function can be applied to compute Net Present Utility or Net Present Score for these cases. In most cases, however, the discount rate appropriate for non-monetary "flows" may legitimately be quite different than the discount rate appropriate for monetary cash flows.


The purchase of a $1M factory would result in $180K earnings for 10 years, starting next year. Compute the NPV assuming a 12% discount rate.

Index Future_Year := 1..10;
-$1M + Npv(12%, $180K, Future_Year) → $17,040

A real estate investment of $200K will result in an annual rental income of $10K for 10 years, and will then be sold (with certainty) for $250K. Compute the Npv assuming a discount rate of 8%.

Index Future_year := 1..11;
-200K + Npv(5%, if Future_Year = 11 then $250K else $10K, Future_Year) → $23,387

A $1.5B nuclear power plant with a 29-year lifetime will generate $200M per year, and then cost $5B to decommission on the 30th year. Plot the NPV-curve for this project for discount rates up to 20%.

index future_year := 1..30;
-1.5B + Npv(discount_rate, if @future_year = size(Future_year) then -5B else 200M, future_year)
Npv plot example.png


Unequal Periods

When cash flows occur at arbitrary points in time, rather than at equally spaced periods, use the XNpv function.

Time-varying Discount Rate

In some instances, it is appropriate for discount rate to vary with time. Since discount rate is already a highly subjective and tricky quantity, it is very uncommon to do so. But there are certainly cases where it is justified. For example, as you age, you may become less physically able to enjoy your wealth, so earnings obtained sooner can be enjoyed more. As you approach old age, this effect becomes more dramatic, justifying a rapid increase in annual discount rate after retirement age.

The current Npv function assumes a constant discount rate (although we have an enhancement to relax this already on the books for a future Analytica release). At present, if you were to supply a first parameter, «rate», indexed by «I», array abstract would give you a separate NPV for each element in the first parameter.

To compute NPV with a time-varying rate parameter, simply use the formulate for NPV directly, as follows:

Sum(values/CumProduct(1 + rate, I), I)


These enhancements were introduced in Analytica 4.2:

  • The «rate» parameter can be indexed by «I», so that a different rate applies to each time period. When there are no Null values in «rate», this is equivalent to
Sum(values/CumProduct(1 + rate, I), I)
  • Null values can appear in «values» or «rate». These points are ignored in the computation (but, they do consume a time period).
  • An optional «offset» parameter has been added. Using offset: 0 treats the first value as occurring in the current time period, rather than at one time period in the future. Example:
Npv(5%, If Time = 0 then -1K else 200, Time, offset: 0)

See Also


You are not allowed to post comments.