Modified Internal Rate of Return Calculation

Modified Internal Rate of Return (MIRR) Calculator

Understanding the Modified Internal Rate of Return (MIRR)

The Modified Internal Rate of Return (MIRR) is a financial metric used to evaluate the profitability of an investment or project. Unlike the traditional Internal Rate of Return (IRR), MIRR addresses some of the IRR's limitations by making a more realistic assumption about reinvestment rates.

Why MIRR is Important

The standard IRR calculation assumes that all positive cash flows generated by a project are reinvested at the IRR itself. This can lead to an overestimation of a project's true return, especially when the IRR is significantly higher than market rates or the company's cost of capital. MIRR overcomes this by allowing for different rates for reinvesting positive cash flows and discounting negative cash flows.

How MIRR Works

The MIRR calculation involves three key rates:

  1. Growth Rate (r): This is the rate at which positive cash flows are assumed to be reinvested. It's often set to the company's cost of capital or a target rate of return.
  2. Discount Rate (c): This is the rate used to discount all negative cash flows (including the initial investment) back to the present. This typically represents the firm's cost of capital.
  3. Final Value of Positive Cash Flows: All positive cash flows are compounded forward to the end of the project's life at the growth rate (r).
  4. Present Value of Negative Cash Flows: All negative cash flows (including the initial investment) are discounted back to time zero using the discount rate (c).

The MIRR is the interest rate that equates the present value of the negative cash flows to the future value of the positive cash flows. Mathematically, it's the rate 'x' that solves the following equation:

PV(Negative Cash Flows) = FV(Positive Cash Flows) / (1 + MIRR)^n

Where 'n' is the number of periods.

When to Use MIRR

MIRR is particularly useful in situations where:

  • Projects have multiple sign changes in their cash flows, which can lead to multiple IRRs.
  • You want to make a more conservative and realistic assumption about the reinvestment of project profits.
  • Comparing mutually exclusive projects with different scales or timings of cash flows.

Example Calculation

Let's consider an investment with the following details:

  • Initial Investment: $10,000
  • Cash Flow Year 1: $3,000
  • Cash Flow Year 2: $4,000
  • Cash Flow Year 3: $5,000
  • Growth Rate (r): 12% (0.12)
  • Discount Rate (c): 10% (0.10)

Steps:

  1. Calculate the Future Value (FV) of positive cash flows:
    • FV of Year 1 cash flow: $3,000 * (1 + 0.12)^2 = $3,763.20
    • FV of Year 2 cash flow: $4,000 * (1 + 0.12)^1 = $4,480.00
    • FV of Year 3 cash flow: $5,000 * (1 + 0.12)^0 = $5,000.00
    • Total FV of positive cash flows: $3,763.20 + $4,480.00 + $5,000.00 = $13,243.20
  2. Calculate the Present Value (PV) of negative cash flows:
    • PV of Initial Investment: -$10,000 / (1 + 0.10)^0 = -$10,000.00
    • PV of Year 1 cash flow: $3,000 / (1 + 0.10)^1 = $2,727.27
    • PV of Year 2 cash flow: $4,000 / (1 + 0.10)^2 = $3,305.79
    • PV of Year 3 cash flow: $5,000 / (1 + 0.10)^3 = $3,756.57
    • Total PV of all cash flows: -$10,000 + $2,727.27 + $3,305.79 + $3,756.57 = -$170.37

    Note: A more common approach for MIRR is to only discount initial outflow and compound future inflows. For the formula-based calculator, we'll follow the structure of compounding inflows and discounting outflows to find the MIRR. The standard MIRR formula often directly solves for the rate that equates future value of inflows with present value of outflows.

  3. Using the MIRR formula: The MIRR is the rate that solves: FV(inflows) = PV(outflows) * (1 + MIRR)^n Where: FV(inflows) = Sum of all positive cash flows compounded at the growth rate (r) to the end of the project. PV(outflows) = Sum of all negative cash flows discounted at the discount rate (c) to time zero. For our example: Let's assume the project lasts 3 years. FV(inflows) = $3,000(1.12)^2 + $4,000(1.12)^1 + $5,000(1.12)^0 = $3,763.20 + $4,480.00 + $5,000.00 = $13,243.20 PV(outflows) = $10,000 / (1.10)^0 = $10,000.00 Now, we need to find MIRR such that: $13,243.20 = $10,000 * (1 + MIRR)^3 (1 + MIRR)^3 = $13,243.20 / $10,000 = 1.32432 1 + MIRR = (1.32432)^(1/3) ≈ 1.0975 MIRR ≈ 1.0975 – 1 = 0.0975 or 9.75% The calculator below implements a numerical approximation for this.
  4. function calculateMIRR() { var initialInvestment = parseFloat(document.getElementById('initialInvestment').value); var growthRate = parseFloat(document.getElementById('growthRate').value); var discountRate = parseFloat(document.getElementById('discountRate').value); var cashFlowsText = document.getElementById('cashFlows').value; if (isNaN(initialInvestment) || isNaN(growthRate) || isNaN(discountRate) || cashFlowsText === "") { document.getElementById('result').innerHTML = "Please enter valid numbers for all fields."; return; } var cashFlows = cashFlowsText.split(',').map(function(item) { return parseFloat(item.trim()); }); if (cashFlows.some(isNaN)) { document.getElementById('result').innerHTML = "Please enter valid comma-separated numbers for cash flows."; return; } var n = cashFlows.length; var fvInflows = 0; var pvOutflows = 0; var totalCashFlows = initialInvestment; // Start with the initial outflow // Calculate PV of all outflows (initial and any negative future cash flows) if (initialInvestment > 0) { pvOutflows += initialInvestment / Math.pow(1 + discountRate, 0); // At time 0 } for (var i = 0; i 0) { // Compound positive cash flows to the end of the project (period n) fvInflows += cashFlows[i] * Math.pow(1 + growthRate, n – 1 – i); } else if (cashFlows[i] < 0) { // Discount negative cash flows to time 0 pvOutflows += cashFlows[i] / Math.pow(1 + discountRate, i + 1); } } if (fvInflows === 0) { document.getElementById('result').innerHTML = "No positive cash flows to compound. MIRR cannot be calculated."; return; } // The MIRR equation is: FV(inflows) = PV(outflows) * (1 + MIRR)^n // Rearranging to solve for MIRR: // (1 + MIRR)^n = FV(inflows) / PV(outflows) // 1 + MIRR = (FV(inflows) / PV(outflows))^(1/n) // MIRR = (FV(inflows) / PV(outflows))^(1/n) – 1 // Numerical method to find MIRR if simple formula doesn't work or for more complex cases // This implementation directly uses the rearranged formula assuming a single terminal period. // For a more robust MIRR, a financial calculator or iterative solver is often used. // Let's refine based on standard MIRR presentation: // Net Future Value = Sum of FV of inflows – PV of outflows // The MIRR is the rate 'r' where Net Future Value = 0 // A common MIRR calculation approach: // 1. Calculate the Future Value (FV) of all positive cash flows, compounded at the growth rate (r). // 2. Calculate the Present Value (PV) of all negative cash flows, discounted at the discount rate (c). // 3. The MIRR is the rate that equates the FV of positive cash flows to the PV of negative cash flows. // FV_positives = PV_negatives * (1 + MIRR)^n — This is NOT the standard MIRR. // The correct equation is: // Sum of FV of positive cash flows = Initial Investment + Sum of PV of negative cash flows (if any) // Let's re-implement using a common financial formula structure for MIRR. var terminalValuePositiveCashFlows = 0; for (var i = 0; i 0) { terminalValuePositiveCashFlows += cashFlows[i] * Math.pow(1 + growthRate, n – 1 – i); } } var presentValueNegativeCashFlows = initialInvestment; // Initial outflow is discounted at time 0 for (var i = 0; i < n; i++) { if (cashFlows[i] < 0) { presentValueNegativeCashFlows += cashFlows[i] / Math.pow(1 + discountRate, i + 1); } } // We need to find MIRR such that: // terminalValuePositiveCashFlows = presentValueNegativeCashFlows * (1 + MIRR)^n // If presentValueNegativeCashFlows is 0 or negative, MIRR is not calculable in the standard way. if (presentValueNegativeCashFlows <= 0) { document.getElementById('result').innerHTML = "Present value of outflows is zero or negative. MIRR cannot be calculated with these inputs."; return; } if (terminalValuePositiveCashFlows === 0) { document.getElementById('result').innerHTML = "No positive cash flows to generate a terminal value. MIRR cannot be calculated."; return; } var ratio = terminalValuePositiveCashFlows / presentValueNegativeCashFlows; var mirr = Math.pow(ratio, 1 / n) – 1; document.getElementById('result').innerHTML = "Modified Internal Rate of Return (MIRR): " + (mirr * 100).toFixed(2) + "%"; }

Leave a Comment