#### IRR

##### IRR(values, guess)

IRR returns a number specifying the internal rate of return for a series of periodic cash flows (payments and receipts).

Overloads

- IRR(values)
- IRR(values, guess)

Parameters

- values - A Number or Currency type array that specifies cash flow values. The array must contain at least one negative value (a payment) and one positive value (a receipt). The cash flows must occur at regular intervals such as monthly or yearly.
- guess - An optional Number value that is estimated to be returned by IRR. If omitted, guess is 0.1 (10 percent).

Return value

Number value.

Example

Suppose that you can choose one of two offers: $20,000 now or guaranteed payments of $5,000 after 1 year, $10,000 after 2 years and $15,000 after 3 years. Which is the better offer? One way to quantify this is to calculate the internal rate of return. If you take the second offer, you can't take the first, which is like experiencing an initial payment of $20,000 followed by the receipts:

`inArray = ["-20000", "15000", "-10000", "25000"];
IRR(inArray)`

Returns 0.201 (rounded to 3 decimals) or 20.1 percent interest. With all other things being equal, if you think that 20.1 percent is a good rate of return, you would prefer the second offer.

Note: The NPV and IRR functions are related since NPV (IRR (values), values) = 0. That is, the internal rate of return of a sequence of cash flows is the interest rate for which that sequence of cash flows has a net present value of 0. There is no direct formula for the IRR function and so JReport calculates the value by iteration. The process depends on the initial guess for the internal rate of return. If the program reports an error, try changing the value of the guess argument to be closer to what you expect the internal rate of return to be.