# Financial.MIRR(Double[], Double, Double) Method

## Definition

Returns a value specifying the modified internal rate of return for a series of periodic cash flows (payments and receipts).

```
public:
static double MIRR(cli::array <double> ^ % ValueArray, double FinanceRate, double ReinvestRate);
```

`public static double MIRR (ref double[] ValueArray, double FinanceRate, double ReinvestRate);`

`static member MIRR : Double[] * double * double -> double`

`Public Function MIRR (ByRef ValueArray As Double(), FinanceRate As Double, ReinvestRate As Double) As Double`

#### Parameters

- ValueArray
- Double[]

Required. Array of Double specifying cash-flow values. The array must contain at least one negative value (a payment) and one positive value (a receipt).

- FinanceRate
- Double

Required. The interest rate paid as the cost of financing.

- ReinvestRate
- Double

Required. The interest rate received on gains from cash reinvestment.

#### Returns

The modified internal rate of return for a series of periodic cash flows (payments and receipts).

#### Exceptions

Rank of `ValueArray`

does not equal 1, `FinanceRate`

= -1, or `ReinvestRate`

= -1

Division by zero has occurred.

## Examples

This example uses the `MIRR`

function to return the modified internal rate of return for a series of cash flows contained in the array `Values()`

. `LoanAPR`

represents the financing interest, and `InvAPR`

represents the interest rate received on reinvestment.

```
' Define money format.
Dim MoneyFmt As String = "###,##0.00"
' Define percentage format.
Dim PercentFmt As String = "#0.00"
Dim values(4) As Double
' Business start-up costs.
values(0) = -70000
' Positive cash flows reflecting income for four successive years.
values(1) = 22000
values(2) = 25000
values(3) = 28000
values(4) = 31000
' Use the MIRR function to calculate the internal return rate.
' Set the loan rate.
Dim LoanAPR As Double = 0.1
' Set the reinvestment rate.
Dim InvAPR As Double = 0.12
' Calculate internal rate.
Dim RetRate As Double = MIRR(values, LoanAPR, InvAPR)
' Display internal return rate.
MsgBox("The modified internal rate of return for these cash flows is " &
Format(Math.Abs(RetRate) * 100, CStr(PercentFmt)) & "%.")
```

## Remarks

The modified internal rate of return is the internal rate of return when payments and receipts are financed at different rates. The `MIRR`

function takes into account both the cost of the investment (`FinanceRate`

) and the interest rate received on reinvestment of cash (`ReinvestRate`

).

The `FinanceRate`

and `ReinvestRate`

arguments are percentages expressed as decimal values. For example, 12 percent is expressed as 0.12.

The `MIRR`

function uses the order of values within the array to interpret the order of payments and receipts. Be sure to enter your payment and receipt values in the correct sequence.