IRR&NPV "IRR&NPV" significantly extends and improves upon the "Realized Rate of Return" program which appeared in the last issue of CI. Like its predecessor, "IRR&NPV" calculates the internal rate of return (IRR) for a series of cash flows using the modified Fisher Algorithm. The program also permits calculation of net present value (NPV) and net future value (NFV) of a series of cash flows at uniform or varying discount/compounding rates. Finally, "IRR&NPV" allows you to perform sensitivity analysis, i.e., play "what-if" with the data. Net present value is the sum of a series of cash flows appropriately discounted to their present values. Net future value (net terminal value, net cumulative value, etc.) is the cumulative or terminal value of a series of cash flows invested or saved at a given rate of return. (Interim returns are assumed to be reinvested at this same rate. Note that with NFV, each cash flow is compounded into the future, not discounted back to the present as with NPV. Note, also that, with a constant rate of discount, the NPV of an investment is equal to its discounted NFV.) Internal rate of return (realized rate of return, time-weighted rate of return, yield-to-maturity, etc.) is the uniform discount rate equating the present value of an investment with its cost, or in other words, the discount rate resulting in an NPV of zero. There are programs aplenty to compute IRR, NPV, and NFV, but most of them assume equal cash flows (or cash flows growing at a constant rate), regular timing (equal time periods), and/or uniform rates of discounting (compounding). The "IRR&NPV" program presented here has none of these restrictions. It can be used to evaluate a wide variety of investments under interest rate scenarios of your own choosing. The matter of variable discount rates deserves some further discussion. For various reasons (including a desire to simplify the arithmetic), present value analysis usually assumes a constant rate of discount. However, and especially during periods of high inflation and extreme interest rate volatility (as over the last decade), you might want to relax this assumption and test your own expected pattern of discount rates. In this program, the rate you specify applies to the immediately preceding period when computing net present values, and to the immediately following period when computing net future values. When finding internal rates of return, your specified case- by-case discount rates are irrelevant, since the program derives one special, uniform rate of discount (the IRR). In last issue's program, the characterization of cash flows as being either deposits (positive amounts) or withdrawals (negative amounts) works just find when determining IRR, but it has the unfortunate consequence of associating profitable (unprofitable) investments with negative (positive) NPV. So as to identify profitable investments with positive net present values, the convention adopted here is that any costs associated with the investment are negative and characterized as "outflows," whereas any associated benefits-- including the final market value of the investment--are positive and referred to as "inflows." Interim returns not reinvested are entered as positive inflows, but interest and dividends immediately reinvested should be disregarded, as they are accounted for automatically in the final market value. Since we are concerned here mainly with future cash flows (whereas "Realized Rate of Return" dealt mainly with past cash flows), and in order to ease the task of data entry somewhat, "IRR&NPV" only looks for the month and year (and not the precise day) of each cash flow. Another change from the earlier program is that when asked for rates in this program you should enter 12.5% as "12.5" and not ".125." A demonstration example: Suppose an investment will return $50 in January 1986, $50 in July 1986, and finally $1050 in January 1987. You estimate that annual rates of return for comparable investments (with the same risk characteristics) are currently 11%, but you expect them to rise to 12% by January 1986, to 14% six months later, then hold at that level through the beginning of 1987. Assuming it is now September 1985, what is the net present value of this investment? You enter data case by case as follows. (Since we intend to derive the IRR of this investment in a moment, the first cash flow will be zero.) For case # 1 ... What is the inflow/outflow? 0 What is the discount rate? 11 On what month & year? 9,1985 For case # 2 ... What is the inflow/outflow? 50 What is the discount rate? 12 On what month & year? 1,1986 And so on. After entering the fourth and final case, when prompted to enter the inflow/outflow amount, entering "f" signifies that you are finished inputting data. The program then displays the data and a menu of choices: Inflow/ Discount Case Outflow Rate Date 1 0 11 9/1985 2 50 12 1/1986 3 50 14 7/1986 4 1050 14 1/1987 1> Find IRR 5> Modify cases 2> Find NPV 6> Modify flows 3> Find NFV 7> Modify rates 4> Display data 8> Modify dates 9> Quit program What is your selection (1-9)? If you made a mistake in your data entry, you can correct things at this point by selecting menu choices 5 through 8. Assuming the data are correct, enter 2 to determine the net present value. When the program asks for the present date, enter: "9,1985." The computed value of the investment is $980.15. If there is some uncertainty about future returns (when evaluating a stock that pays variable dividends, for instance), you could test the effect of varying cash flows by means of menu choice 6. Or you could test the effect of different discount rate/rate of return assumptions with option 7. You can even extend your analysis farther into the future (when evaluating stocks, for example). To do this, select option 5, then specify a range of cases from one more than the current number of cases to whatever case number you want (so long as it does not exceed 100). If you wish to determine internal rate of return (the first option), you must first enter the cost (purchase price) of the investment as the cash flow for case no. 1. Use options 5 or 6 to change the first cash flow to -1000, the assumed cost of the investment. Then select option 1. The program asks you to provide an estimated rate. Your estimates may range from -99% (under no circumstances guess as low as or lower than -100%) upwards to 100% or more. A guess of zero will usually result in a single, unique answer. If the program tells you to "Try another estimated rate" (meaning it has failed to converge), or if you have one answer and you suspect there might still be others (see last issue's article), you are invited to try additional estimates. In this example, guessing zero results in a computed, and unique, rate of return of 11.68%. (You can verify this IRR figure by changing the discount rates for all four cases to this one uniform rate, then computing the net present value. The answer will be zero, or very close to it--any discrepancy is due to rounding error--confirming that the figure is indeed the investment's IRR.) Knowing the cost of the investment, you can now also evaluate its NPV. If the NPV is positive (negative), the investment is profitable (unprofitable). At a cost of $1000, the NPV as of 9/1985 is a negative $19.85, meaning the investment is unprofitable--given the assumed pattern of discount rates. You can also test the effect on NPV and IRR of alternative costs of the investment by changing the first cash flow figure. In a similar fashion, you can determine the net future value of a series of cash flows--for instance, the future value of your savings-- using any pattern of deposits and interest rates you wish. (In the above demonstration example, with zero initial cash flow, the net future value is $1159.88 as of 1/1987.) Robert Osterlund