Determine your monthly lease payment and finance charges using the money factor.
Net Capitalized Cost:
Monthly Depreciation:
Monthly Rent Charge:
Equivalent APR:
Base Monthly Payment:
Total Monthly Payment (incl. tax):
How are Lease Rates Calculated?
Calculating a car lease is significantly different from calculating a standard auto loan. While a loan is based on the total price of the vehicle, a lease is essentially paying for the depreciation of the vehicle over a set period, plus a financing fee known as the Money Factor.
The Core Components of a Lease Rate
To understand how your payment is derived, you must look at these three primary factors:
Capitalized Cost: This is the "selling price" of the car. The Gross Cap Cost includes the vehicle price plus any fees or taxes rolled into the lease. The Net Cap Cost is this amount minus any down payment or trade-in (Cap Cost Reduction).
Residual Value: This is the estimated value of the car at the end of the lease term. It is usually set by the manufacturer. You only pay for the difference between the Net Cap Cost and the Residual Value.
Money Factor: This is the lease interest rate expressed as a small decimal. To convert a money factor to a standard APR, you multiply it by 2,400.
The Step-by-Step Formula
The math follows a specific sequence that most dealerships use:
Monthly Depreciation: (Net Cap Cost – Residual Value) ÷ Lease Term
Final Payment: Base Payment + (Base Payment × Sales Tax Rate)
Realistic Example
Imagine a car with a price of $40,000, a residual value of $22,000, and a lease term of 36 months. If the money factor is 0.0015 (3.6% APR):
The monthly depreciation would be ($40,000 – $22,000) / 36 = $500. The monthly rent charge would be ($40,000 + $22,000) * 0.0015 = $93. The base payment would be $593 per month before taxes.
function calculateLeasePayment() {
var grossCapCost = parseFloat(document.getElementById('grossCapCost').value);
var capReduction = parseFloat(document.getElementById('capReduction').value) || 0;
var residualValue = parseFloat(document.getElementById('residualValue').value);
var leaseTerm = parseFloat(document.getElementById('leaseTerm').value);
var moneyFactor = parseFloat(document.getElementById('moneyFactor').value);
var taxRate = parseFloat(document.getElementById('taxRate').value) || 0;
if (isNaN(grossCapCost) || isNaN(residualValue) || isNaN(leaseTerm) || isNaN(moneyFactor)) {
alert("Please enter all required fields with valid numbers.");
return;
}
if (leaseTerm <= 0) {
alert("Lease term must be greater than zero.");
return;
}
var netCapCost = grossCapCost – capReduction;
// 1. Monthly Depreciation
var monthlyDepreciation = (netCapCost – residualValue) / leaseTerm;
// 2. Monthly Rent Charge (Money Factor Calculation)
var monthlyRentCharge = (netCapCost + residualValue) * moneyFactor;
// 3. Base Payment
var basePayment = monthlyDepreciation + monthlyRentCharge;
// 4. APR Conversion
var apr = moneyFactor * 2400;
// 5. Total Payment with Tax
var totalTax = basePayment * (taxRate / 100);
var totalMonthlyPayment = basePayment + totalTax;
// Display Results
document.getElementById('resNetCap').innerText = "$" + netCapCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resDepreciation').innerText = "$" + monthlyDepreciation.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resRentCharge').innerText = "$" + monthlyRentCharge.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resAPR').innerText = apr.toFixed(2) + "%";
document.getElementById('resBasePayment').innerText = "$" + basePayment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resTotalPayment').innerText = "$" + totalMonthlyPayment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('leaseResults').style.display = 'block';
}