Estimate your monthly car lease payments based on MSRP, money factor, and residual value.
24 Months
36 Months
48 Months
60 Months
Estimated Monthly Payment
$0.00
Depreciation
$0.00
Rent Charge
$0.00
Tax
$0.00
Understanding Your Car Lease Calculation
Leasing a car is often more complex than buying because you aren't paying for the whole vehicle; you are paying for the portion of the vehicle's value that you "use up" over the term. This is known as depreciation.
How This Calculator Works
Our calculator breaks down your lease into three primary components to ensure you know exactly where your money is going:
Depreciation Fee: This is the (Adjusted Capitalized Cost – Residual Value) divided by the lease term. It represents the value the car loses while you drive it.
Finance Fee (Rent Charge): Similar to interest on a loan. It is calculated by multiplying (Adjusted Capitalized Cost + Residual Value) by the Money Factor.
Sales Tax: In most states, you pay sales tax on the monthly payment amount rather than the full value of the car.
What is the Money Factor?
The money factor is the lease's interest rate expressed in a different format. To convert the Money Factor to a standard APR, multiply it by 2,400. For example, a money factor of 0.00125 is equivalent to a 3% APR (0.00125 * 2400 = 3).
Example Lease Scenario
Imagine a car with an MSRP of $40,000. You negotiate the price down to $38,000. With a $2,000 down payment, your "Gross Capitalized Cost" becomes $36,000. If the bank sets the residual value at 60% ($24,000) for a 36-month lease, you are responsible for $12,000 of depreciation over three years. Adding the rent charge and local taxes will then give you the final monthly obligation.
function calculateLease() {
var msrp = parseFloat(document.getElementById('msrp').value) || 0;
var negotiatedPrice = parseFloat(document.getElementById('negotiatedPrice').value) || 0;
var downPayment = parseFloat(document.getElementById('downPayment').value) || 0;
var tradeIn = parseFloat(document.getElementById('tradeIn').value) || 0;
var term = parseFloat(document.getElementById('leaseTerm').value) || 0;
var residualRate = parseFloat(document.getElementById('residualRate').value) || 0;
var mf = parseFloat(document.getElementById('moneyFactor').value) || 0;
var taxRate = parseFloat(document.getElementById('salesTax').value) || 0;
// Convert APR to Money Factor if the user entered a whole number like 3.5
if (mf > 0.5) {
mf = mf / 2400;
}
// 1. Calculate Residual Value
var residualValue = msrp * (residualRate / 100);
// 2. Calculate Adjusted Capitalized Cost
var adjCapCost = negotiatedPrice – downPayment – tradeIn;
if (adjCapCost <= residualValue) {
alert("The negotiated price minus down payment must be higher than the residual value.");
return;
}
// 3. Monthly Depreciation
var monthlyDepreciation = (adjCapCost – residualValue) / term;
// 4. Monthly Rent Charge
var monthlyRent = (adjCapCost + residualValue) * mf;
// 5. Monthly Base Payment
var basePayment = monthlyDepreciation + monthlyRent;
// 6. Monthly Tax
var monthlyTax = basePayment * (taxRate / 100);
// 7. Total Payment
var totalMonthly = basePayment + monthlyTax;
// Update Displays
document.getElementById('resultContainer').style.display = 'block';
document.getElementById('monthlyPaymentDisplay').innerText = '$' + totalMonthly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('depreciationDisplay').innerText = '$' + monthlyDepreciation.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('rentDisplay').innerText = '$' + monthlyRent.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('taxDisplay').innerText = '$' + monthlyTax.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Smooth scroll to result
document.getElementById('resultContainer').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}