Lease payment calculator
Enter the vehicle price, lease term, annual rate, and end-of-term residual value to estimate a monthly lease payment. Amounts are in U.S. dollars ($).
Lease payment formula and the Excel/Google Sheets PMT function
Enter your assumptions and click Calculate. The code below is what computes the monthly payment.
The code behind the monthly payment calculation
const monthlyRate = annualRate / 100 / 12;
const monthlyPayment = monthlyRate === 0
? (vehiclePrice - residualValue) / termMonths
: (vehiclePrice - residualValue / Math.pow(1 + monthlyRate, termMonths)) *
monthlyRate / (1 - Math.pow(1 + monthlyRate, -termMonths));
Java, JavaScript, and Python formula examples
These functions use the same monthly payment formula as the calculate button on this page. Pass the annual rate as a percentage (for example, 5 means 5%), and use the sum of the guaranteed and unguaranteed residual values as the residual value.
View Java code
static double calculateLeasePayment(
double vehiclePrice,
int termMonths,
double annualRatePercent,
double residualValue
) {
double monthlyRate = annualRatePercent / 100.0 / 12.0;
if (monthlyRate == 0.0) {
return (vehiclePrice - residualValue) / termMonths;
}
return (vehiclePrice
- residualValue / Math.pow(1.0 + monthlyRate, termMonths))
* monthlyRate
/ (1.0 - Math.pow(1.0 + monthlyRate, -termMonths));
}
View JavaScript code
function calculateLeasePayment(
vehiclePrice,
termMonths,
annualRatePercent,
residualValue
) {
const monthlyRate = annualRatePercent / 100 / 12;
if (monthlyRate === 0) {
return (vehiclePrice - residualValue) / termMonths;
}
return (vehiclePrice
- residualValue / Math.pow(1 + monthlyRate, termMonths))
* monthlyRate
/ (1 - Math.pow(1 + monthlyRate, -termMonths));
}
View Python code
def calculate_lease_payment(
vehicle_price,
term_months,
annual_rate_percent,
residual_value,
):
monthly_rate = annual_rate_percent / 100 / 12
if monthly_rate == 0:
return (vehicle_price - residual_value) / term_months
return (
vehicle_price
- residual_value / (1 + monthly_rate) ** term_months
) * monthly_rate / (1 - (1 + monthly_rate) ** -term_months)
- If the annual rate is 0%, the monthly payment is (vehicle price − residual value) ÷ number of months.
Excel and Google Sheets PMT example
For example, suppose A1 holds the vehicle price, A2 the lease term (months), A3 the annual rate (%), and A4 the end-of-term residual value:
=PMT(A3/100/12, A2, -A1, A4)
The vehicle price is entered as a negative number (-A1) because it is the amount financed today, and the residual value is entered as a positive number (A4) because it is recovered at the end of the term.
PMT assumes payments at the end of each month by default, and the formula above, like this calculator, uses one-twelfth of the annual rate as the monthly rate.
Payments due at the start of the month, or separate fees, insurance, and taxes, will change the result.
Calculation inputs
Monthly principal and interest are for the first month. Total principal is the amount paid down through the monthly payments (vehicle price − residual value), and total interest is total payments minus total principal. The residual value is not included in total principal, and this calculation does not reflect income recognized under finance or operating lease accounting (K-IFRS). It is a simplified estimate for reference only and leaves out insurance, vehicle taxes, fees, and other taxes. Amounts are shown in U.S. dollars, but this calculator is not an estimate or financial advice, and it does not model U.S. lease conventions, U.S. taxes, or U.S. GAAP.