Posted on July 10, 2012 @ 07:00:00 AM by Paul Meagher
Lately I've been researching formal methods that might be used to decide whether to invest in a project or not. Three commonly used metrics are:
- Payback Period
- Net Present Value (NPV)
- Internal Rate of Return (IRR)
To compute these values, you need to specify a cashflow sequence where the first element in the cashflow sequence is a negative number denoting the investment amount. The next elements in the cashflow sequence are the net income amounts for year 1, year 2, up to year N. An example of a cashflow sequence would be:
year 0 1 2 3
cashflow -10,000 6,000 6,000 6,000
A cashflow sequence like this would be sufficient to compute the payback period for an investment, which is simply the number of years it would take to earn back your initial investment. In this case, the payback period would be 1.67 years which is one useful investment metric to know when evaluating an investment opportunity.
The nice thing about payback period metric is that it is simple number to understand. One problem, however, with this metric is that it does not take into account the time value of money, or the idea that money in your pocket today is worth more than the same amount in your pocket a year from now (because money in your pocket today could be earning interest and be worth more a year from now). The Net Present Value calculation includes a discount rate factor that takes the time value of money into account.
The Net Present Value calculation involves computing the present values of a cashflow sequence given a discount rate. If you have a discount rate of, say, 5%, then the $6000 you estimate that you might earn a year from now, would be equivalent to a present value of $5714.4 (plus a year earning interest at 5%). You compute the present value of each projected cashflow, sum them up, and subtract it from your initial investment. If this "net present value" is greater than 0 than you should consider proceeding with the investment. If the net is less than 0, don't invest. NPV gives you simple rule for making a an investment decision, and the size of the NPV allows you to more accurately gauge how good the investment is because it takes into account the time value of money via a discount rate that you specify.
While technically the rate you enter into the NPV formula is a "discount rate", you can also construe the rate as the percent profit you would want to make in order for the project to be worth your while. As you increase the percent profit you would like to make, the NPV value returned will be smaller and smaller. You can keep increasing the profit percentage until you get an NPV of 0. The profit percentage that gets you an NPV of 0 is called the Internal Rate of Return (IRR) and is another useful number for deciding whether you should invest in a project or not. Obviously, the higher the IRR the better the investment. It is also a useful metric for comparing investment opportunities in an apples-to-apples manner.
Enough theory. How to do we actually compute these investment metrics?
Rather than trot out a bunch of formulas, I will instead trot out a bunch of PHP code that computes these investment metrics:
This code is a port of some python code found here.
To test drive these functions we can create a test script:
The output of this script looks like this:
Payback is 1.67 years
NPV is $ 6339.49
IRR is 36.31%
Each of these numbers gives us a different perspective on a potential investment and together provides a useful set of formal metrics for analyzing the worthiness of an investment opportunity.