Understanding car lease math can save you thousands of dollars at the dealership. Unlike a traditional car loan where you pay for the entire vehicle, a lease only charges you for the value the car loses during the time you drive it, plus financing fees and taxes.
The Core Components of a Lease
Gross Capitalized Cost: This is the negotiated price of the vehicle plus any added fees or taxes rolled into the lease.
Cap Cost Reduction: This includes your down payment, trade-in value, and any manufacturer rebates that reduce the amount being financed.
Residual Value: This is the predicted value of the car at the end of the lease term. Higher residuals lead to lower monthly payments.
Money Factor: This is essentially the interest rate expressed as a small decimal. To convert Money Factor to APR, multiply it by 2400.
The Lease Formula
Your monthly payment is broken into three main parts:
Sales Tax: A percentage applied to the sum of the depreciation and finance fees.
Example Scenario
Imagine you negotiate a car for $32,000. The MSRP is $35,000. You put $2,000 down, and the bank sets a 60% residual ($21,000) for a 36-month term with a money factor of 0.00125.
Your Adjusted Cap Cost would be $30,000 ($32,000 – $2,000). Your monthly depreciation is ($30,000 – $21,000) / 36 = $250. Your finance fee is ($30,000 + $21,000) * 0.00125 = $63.75. Before taxes, your payment is $313.75.
function calculateLeasePayment() {
var msrp = parseFloat(document.getElementById('msrp').value);
var salesPrice = parseFloat(document.getElementById('salesPrice').value);
var downPayment = parseFloat(document.getElementById('downPayment').value);
var tradeIn = parseFloat(document.getElementById('tradeIn').value);
var term = parseInt(document.getElementById('term').value);
var moneyFactor = parseFloat(document.getElementById('moneyFactor').value);
var residualPerc = parseFloat(document.getElementById('residualPerc').value);
var taxRate = parseFloat(document.getElementById('taxRate').value);
if (isNaN(msrp) || isNaN(salesPrice) || isNaN(term) || isNaN(moneyFactor)) {
alert("Please enter valid numeric values.");
return;
}
// 1. Adjusted Cap Cost
var capCostReduction = downPayment + tradeIn;
var adjCapCost = salesPrice – capCostReduction;
// 2. Residual Value
var residualVal = msrp * (residualPerc / 100);
// 3. Monthly Depreciation
var monthlyDepreciation = (adjCapCost – residualVal) / term;
if (monthlyDepreciation < 0) monthlyDepreciation = 0;
// 4. Monthly Finance Fee (Rent Charge)
var monthlyFinance = (adjCapCost + residualVal) * moneyFactor;
// 5. Subtotal
var subtotal = monthlyDepreciation + monthlyFinance;
// 6. Tax
var taxAmount = subtotal * (taxRate / 100);
var totalMonthly = subtotal + taxAmount;
// Display Results
document.getElementById('results-area').style.display = 'block';
document.getElementById('final-payment').innerText = '$' + totalMonthly.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res-depreciation').innerText = '$' + monthlyDepreciation.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res-finance').innerText = '$' + monthlyFinance.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res-val-amt').innerText = '$' + residualVal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res-cap-cost').innerText = '$' + adjCapCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// Smooth scroll to results
document.getElementById('results-area').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}