This calculator helps you determine the discount rate needed to achieve a specific present value from a future cash flow.
function calculateDiscountRate() {
var futureValue = parseFloat(document.getElementById("futureValue").value);
var presentValue = document.getElementById("presentValue").value;
var periods = parseFloat(document.getElementById("periods").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(futureValue) || isNaN(presentValue) || isNaN(periods)) {
resultDiv.innerHTML = "Please enter valid numbers for all fields.";
return;
}
if (futureValue <= 0) {
resultDiv.innerHTML = "Future Value must be positive.";
return;
}
if (presentValue <= 0) {
resultDiv.innerHTML = "Present Value must be positive.";
return;
}
if (periods futureValue) {
resultDiv.innerHTML = "Present Value cannot be greater than Future Value for a positive discount rate.";
return;
}
// The formula for the discount rate (r) is derived from FV = PV * (1 + r)^n
// Rearranging gives: r = (FV / PV)^(1/n) – 1
var discountRate = Math.pow((futureValue / presentValue), (1 / periods)) – 1;
// Format the result as a percentage
var formattedDiscountRate = (discountRate * 100).toFixed(2) + "%";
resultDiv.innerHTML = "The required discount rate is: " + formattedDiscountRate;
}