Subject: Analysis - Internal Rate of Return (IRR)

Last-Revised: 25 June 1999
Contributed-By: Christopher Yost (cpy at, Rich Carreiro (rlcarr at

If you have an investment that requires and produces a number of cash flows over time, the internal rate of return is defined to be the discount rate that makes the net present value of those cash flows equal to zero. This article discusses computing the internal rate of return on periodic payments, which might be regular payments into a portfolio or other savings program, or payments against a loan. Both scenarios are discussed in some detail.

We'll begin with a savings program. Assume that a sum "P" has been invested into some mutual fund or like account and that additional deposits "p" are made to the account each month for "n" months. Assume further that investments are made at the beginning of each month, implying that interest accrues for a full "n" months on the first payment and for one month on the last payment. Given all this data, how can we compute the future value of the account at any month? Or if we know the final value of the account and the investments made over time, what was the interal rate of return?

The relevant formula that will help answer these questions is:

F = -P(1+i)^n - [p(1+i)((1+i)^n - 1)/i]


  • "F" is the future value of your investment; i.e., the value after "n" months or "n" weeks or "n" years--whatever the period over which the investments are made)
  • "P" is the present value of your investment; i.e., the amount of money you have already invested (a negative value - see below)
  • "p" is the payment each period (a negative value - see below)
  • "n" is the number of periods you are interested in (number of payments)
  • "i" is the interest rate per period.

Note that the symbol '^' is used to denote exponentiation (for example, 2 ^ 3 = 8).

Very important! The values "P" and "p" above should be negative. This formula and the ones below are devised to accord with the standard practice of representing cash paid out as negative and cash received (as in the case of a loan) as positive. This may not be very intuitive, but it is a convention that seems to be employed by most financial programs and spreadsheet functions.

The formula used to compute loan payments is very similar, but as is appropriate for a loan, it assumes that all payments "p" are made at the end of each period:

    F = -P(1+i)^n - [p((1+i)^n - 1)/i]

Note that this formula can also be used for investments if you need to assume that they are made at the end of each period. With respect to loans, the formula isn't very useful in this form, but by setting "F" to zero, the future value (one hopes) of the loan, it can be manipulated to yield some more useful information.

To find what size payments are needed to pay-off a loan of the amount "P" in "n" periods, the formula becomes this:

    p =  -----------
         (1+i)^n - 1

If you want to find the number of periods that will be required to pay-off a loan use this formula:

         log(-p) - log(-Pi - p)
    n =  ----------------------

Keep in mind that the "i" in all these formula is the interest rate per period. If you have been given an annual rate to work with, you can find the monthly rate by adding 1 to annual rate, taking the 12th root of that number, and then subtracting 1. The formula is:

    i = ( r + 1 ) ^ 1/12 - 1

where "r" is the rate.

Conversely, if you are working with a monthly rate--or any periodic rate--you may need to compound it to obtain a number you can compare apples-to-apples with other rates. For example, a 1 year CD paying 12% in simple interest is not as good an investment as an investment paying 1% compounded per month. If you put $1000 into each, you'll have $1120 in the CD at the end of the year but $1000*(1.01)^12 = $1126.82 in the other investment due to compounding. In this way, interest rates of any kind can be converted to a "simple 1-year CD equivalent" for the purposes of comparison. (See the article "Computing Compound Return" for more information.)

You cannot manipulate these formulas to get a formula for "i", but that rate can be found using any financial calculator, spreadsheet, or program capable of calculating Internal Rate of Return or IRR.

Technically, IRR is a discount rate: the rate at which the present value of a series of investments is equal to the present value of the returns on those investments. As such, it can be found not only for equal, periodic investments such as those considered here but for any series of investments and returns. For example, if you have made a number of irregular purchases and sales of a particular stock, the IRR on your transactions will give you a picture of your overall rate of return. For the matter at hand, however, the important thing to remember is that since IRR involves calculations of present value (and therefore the time-value of money), the sequence of investments and returns is significant.

Here's an example. Let's say you buy some shares of Wild Thing Conservative Growth Fund, then buy some more shares, sell some, have some dividends reinvested, even take a cash distribution. Here's how to compute the IRR.

You first have to define the sign of the cash flows. Pick positive for flows into the portfolio, and negative for flows out of the portfolio (you could pick the opposite convention, but in this article we'll use positive for flows in, and negative for flows out).

Remember that the only thing that counts are flows between your wallet and the portfolio. For example, dividends do NOT result in cash flow unless they are withdrawn from the portfolio. If they remain in the portfolio, be they reinvested or allowed to sit there as free cash, they do NOT represent a flow.

There are also two special flows to define. The first flow is positive and is the value of the portfolio at the start of the period over which IRR is being computed. The last flow is negative and is the value of the portfolio at the end of the period over which IRR is being computed.

The IRR that you compute is the rate of return per whatever time unit you are using. If you use years, you get an annualized rate. If you use (say) months, you get a monthly rate which you'll then have to annualize in the usual way, and so forth.

On to actually calculating it... We first have the net present value or NPV:

    NPV(C, t, d) = Sum C[i]/(1+d)^t[i]
  • C[i] is the i-th cash flow (C[0] is the first, C[N] is the last).
  • d is the assumed discount rate.
  • t[i] is the time between the first cash flow and the i-th. Obviously, t[0]=0 and t[N]=the length of time under consideration. Pick whatever units of time you like, but remember that IRR will end up being rate of return per chosen time unit.

Given that definition, IRR is defined by the equation:

    NPV(C, t, IRR) = 0.

In other words, the IRR is the discount rate which sets the NPV of the given cash flows made at the given times to zero.

In general there is no closed-form solution for IRR. One must find it iteratively. In other words, pick a value for IRR. Plug it into the NPV calculation. See how close to zero the NPV is. Based on that, pick a different IRR value and repeat until the NPV is as close to zero as you care.

Note that in the case of a single initial investment and no further investments made, the calculation collapses into:

    (Initial Value) - (Final Value)/(1+IRR)^T = 0 or

    (Initial Value)*(1+IRR)^T - (Final Value) = 0

    Initial*(1+IRR)^T = Final

    (1+IRR)^T = Final/Initial

    And finally the quite familiar:

    IRR = (Final/Inital)^(1/T) - 1

You can probably calculate IRR in your favorite spreadsheet program. A little command-line program named 'irr' that calculates IRR is also available. See the article Software - Archive of Investment-Related Programs in this FAQ for more information.

Previous article is Analysis: Goodwill
Next article is Analysis: Loan Payments and Amortization
Category is Analysis
Index of all articles