Skip to Main Content Skip to Search
Product Documentation

irr - Internal rate of return

Syntax

Return = irr(CashFlow)
[Return, AllRates] = irr(CashFlow)

Description

Return = irr(CashFlow) calculates the internal rate of return for a series of periodic cash flows.

[Return, AllRates] = irr(CashFlow) calculates the internal rate of return and a vector of all internal rates for a series of periodic cash flows.

Input Arguments

CashFlow

A vector containing a stream of periodic cash flows. The first entry in CashFlow is the initial investment. If CashFlow is a matrix, irr handles each column of CashFlow as a separate cash-flow stream.

Output Arguments

Return

An internal rate of return associated to CashFlow. If CashFlow is a matrix, then Return is a vector whose entry j is an internal rate of return for column j in CashFlow.

AllRates

A vector containing all the internal rates of return associated with CashFlow. If CashFlow is a matrix, then AllRates is also a matrix, with the same number of columns as CashFlow and one less row. Also, column j in AllRates contains all the rates of return associated to column j in CashFlow (including complex-valued rates).

Definitions

irr uses the following conventions:

Examples

Find the internal rate of return for a simple investment with a unique positive rate of return. The initial investment is $100,000 and the following cash flows represent the yearly income from the investment.

Calculate the internal rate of return on the investment:

Return = irr([-100000 10000 20000 30000 40000 50000])

This returns:

Return =

    0.1201

If the cash flow payments were monthly, then the resulting rate of return is multiplied by 12 for the annual rate of return.

 

Find the internal rate of return for multiple rates of return. The project has the following cash flows and a market rate of 10%.

 CashFlow = [-1000 6000 -10900 5800]

Use irr with a single output argument:

Return = irr(CashFlow)

A warning appears and irr returns a 100% rate of return. The 100% rate on the project looks attractive:

Warning: Multiple rates of return
 
> In irr at 166

Return =

    1.0000

Use irr with two output arguments:

[Return, AllRates] = irr(CashFlow)

This returns:

>> [Return, AllRates] = irr(CashFlow)

Return =

    1.0000

AllRates =

   -0.0488
    1.0000
    2.0488

The rates of return in AllRates are -4.88%, 100%, and 204.88%. Though some rates are lower and some higher than the market rate, based on the work of Hazen, any rate gives a consistent recommendation on the project. However, you can use a present value analysis in these kinds of situations. To check the present value of the project, use pvvar:

PV = pvvar(CashFlow,0.10)

This returns:

PV =

 -196.0932

The second argument is the 10% market rate. The present value is -196.0932, negative, so the project is undesirable.

References

Brealey and Myers, Principles of Corporate Finance, McGraw-Hill Higher Education, Chapter 5, 2003.

Hazen G., "A New Perspective on Multiple Internal Rates of Return," The Engineering Economist, Vol. 48-1, 2003, pp. 31-51.

See Also

effrr | mirr | nomrr | pvvar | xirr

How To

  


Free Interactive Computational Finance CD

View demos and recorded presentations led by industry experts.

Now On Demand
Network with industry peers and learn the latest applications of the leading software product for computational finance.

 © 1984-2012- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS