Calculating Discounted Cash Flow

Discounted Cash Flow (DCF) Calculator

Calculation Results

The Estimated Present Value of these cash flows is:

Understanding Discounted Cash Flow (DCF)

Discounted Cash Flow (DCF) is a valuation method used to estimate the value of an investment based on its expected future cash flows. The fundamental premise is that a dollar today is worth more than a dollar tomorrow due to its potential earning capacity. This calculator helps investors and business owners determine the fair value of an asset by "discounting" future earnings back to their present value.

The Core Components of DCF

  • Future Cash Flows: These are the projected amounts of money an investment will generate over a specific period (usually 5 to 10 years).
  • Discount Rate: This is the rate used to convert future cash flows into present value. It often represents the "Weighted Average Cost of Capital" (WACC) or the required rate of return for the investor.
  • Terminal Value: Since businesses rarely stop operating after 5 years, the terminal value represents the estimated value of the investment at the end of the projection period.

How the Calculation Works

The formula for DCF is the sum of the present value of each individual future cash flow, plus the present value of the terminal value:

DCF = [CF1 / (1+r)^1] + [CF2 / (1+r)^2] + … + [CFn / (1+r)^n] + [TV / (1+r)^n]

Where CF is Cash Flow, r is the Discount Rate, and n is the year number.

Example Calculation

Imagine a project with the following projections and a 10% discount rate:

  • Year 1: 10,000 → Present Value: 9,090.91
  • Year 2: 12,000 → Present Value: 9,917.36
  • Terminal Value (Year 5): 100,000 → Present Value: 62,092.13

By summing these discounted amounts, you arrive at the total value of the investment today.

function calculateDCF() { var cf1 = parseFloat(document.getElementById('cf1').value) || 0; var cf2 = parseFloat(document.getElementById('cf2').value) || 0; var cf3 = parseFloat(document.getElementById('cf3').value) || 0; var cf4 = parseFloat(document.getElementById('cf4').value) || 0; var cf5 = parseFloat(document.getElementById('cf5').value) || 0; var rate = parseFloat(document.getElementById('discountRate').value) || 0; var tv = parseFloat(document.getElementById('terminalValue').value) || 0; if (rate <= 0) { alert("Please enter a valid discount rate greater than 0."); return; } var r = rate / 100; var pv1 = cf1 / Math.pow(1 + r, 1); var pv2 = cf2 / Math.pow(1 + r, 2); var pv3 = cf3 / Math.pow(1 + r, 3); var pv4 = cf4 / Math.pow(1 + r, 4); var pv5 = cf5 / Math.pow(1 + r, 5); var pvTV = tv / Math.pow(1 + r, 5); var totalDCF = pv1 + pv2 + pv3 + pv4 + pv5 + pvTV; document.getElementById('resultDisplay').style.display = 'block'; document.getElementById('finalValue').innerText = totalDCF.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); var breakdownHtml = "Breakdown of Present Values:" + "PV of Year 1: " + pv1.toLocaleString(undefined, {maximumFractionDigits: 2}) + "" + "PV of Year 2: " + pv2.toLocaleString(undefined, {maximumFractionDigits: 2}) + "" + "PV of Year 3: " + pv3.toLocaleString(undefined, {maximumFractionDigits: 2}) + "" + "PV of Year 4: " + pv4.toLocaleString(undefined, {maximumFractionDigits: 2}) + "" + "PV of Year 5: " + pv5.toLocaleString(undefined, {maximumFractionDigits: 2}) + "" + "PV of Terminal Value: " + pvTV.toLocaleString(undefined, {maximumFractionDigits: 2}); document.getElementById('breakdown').innerHTML = breakdownHtml; }

Leave a Comment