Unlike a traditional car loan where you pay for the entire value of the vehicle plus interest, a lease focuses on depreciation. You are essentially paying for the portion of the car's value that you "use up" during the term of the lease.
1. Depreciation = (Net Cap Cost – Residual Value) / Term
2. Rent Charge = (Net Cap Cost + Residual Value) × Money Factor
Key Lease Terms Explained
Gross Capitalized Cost: This is the negotiated price of the vehicle. It should be at or below the MSRP.
Residual Value: This is the predicted value of the car at the end of the lease. It is set by the leasing company and expressed as a percentage of the MSRP. A higher residual value leads to lower monthly payments.
Money Factor: This represents the interest rate. To convert a Money Factor to an APR (Annual Percentage Rate), multiply it by 2,400. For example, a 0.00125 money factor is equivalent to a 3% APR.
Down Payment (Cap Cost Reduction): Money paid upfront to reduce the capitalized cost, which in turn lowers your monthly payments.
Practical Example
Imagine you are leasing a car with an MSRP of $40,000. The dealer agrees to a $38,000 price. You put $2,000 down. The lease is for 36 months with a residual of 60% ($24,000) and a money factor of 0.0015.
Your monthly depreciation would be approximately $333 ($12,000 / 36), and your rent charge would be $90 ($60,000 * 0.0015), resulting in a monthly payment of roughly $423 (excluding taxes).
function calculateCarLease() {
var msrp = parseFloat(document.getElementById('msrp').value);
var downPayment = parseFloat(document.getElementById('downPayment').value) || 0;
var tradeIn = parseFloat(document.getElementById('tradeIn').value) || 0;
var term = parseFloat(document.getElementById('leaseTerm').value);
var mf = parseFloat(document.getElementById('moneyFactor').value);
var residualPercent = parseFloat(document.getElementById('residualRate').value);
if (isNaN(msrp) || isNaN(term) || isNaN(mf) || isNaN(residualPercent) || term <= 0) {
alert("Please enter valid positive numbers for all required fields.");
return;
}
// 1. Calculate Net Capitalized Cost
var capCost = msrp – downPayment – tradeIn;
// 2. Calculate Residual Value
var residualValue = msrp * (residualPercent / 100);
// 3. Calculate Depreciation Component
// If cap cost is lower than residual (rare but possible), depreciation is 0
var totalDepreciation = capCost – residualValue;
if (totalDepreciation < 0) totalDepreciation = 0;
var monthlyDepreciation = totalDepreciation / term;
// 4. Calculate Rent Charge (Interest)
// Rent Charge = (Net Cap Cost + Residual Value) * Money Factor
var monthlyRentCharge = (capCost + residualValue) * mf;
// 5. Total Payment
var totalPayment = monthlyDepreciation + monthlyRentCharge;
// Display Results
document.getElementById('resCapCost').innerText = "$" + capCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resResidualValue').innerText = "$" + residualValue.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('resTotalPayment').innerText = "$" + totalPayment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('result').style.display = 'block';
}