PMT

Financial Functions
(4.9/5)

Calculates the payment for a loan based on periodic, constant payments and a constant interest rate. Essential for mortgage calculations, loan payments, lease payments, and determining periodic payment amounts needed to pay off loans or reach savings goals.

Interactive Formula Tester

=PMT("")

Complete Theory & Understanding

Master the fundamentals of Excel PMT function

Core Concept

The PMT (Payment) function calculates the periodic payment amount required to pay off a loan or achieve a savings goal, based on the loan principal, interest rate, and number of payment periods. PMT uses the time value of money principle to determine equal periodic payments that will fully amortize a loan or accumulate to a target future value. This function is fundamental to mortgage calculations, loan structuring, lease payments, and savings planning, enabling borrowers and investors to understand payment requirements under different scenarios.

Why Use PMT?

  • Calculate monthly mortgage payments for home purchases and refinancing
  • Determine payment amounts for auto loans, personal loans, and credit lines
  • Calculate periodic lease payments for equipment and property leases
  • Determine required periodic payments to reach savings or investment targets

Key Characteristics

Amortization Formula

Uses the formula: PMT = PV × [r(1+r)^n] / [(1+r)^n - 1] where r=rate, n=periods, PV=present value. This ensures loan is fully paid over n periods.

PMT(0.05/12, 360, 200000) calculates payment to fully pay $200,000 in 360 months

Constant Payment Amount

Returns the same payment amount each period that fully amortizes the loan. Early payments are mostly interest, later payments are mostly principal.

Payment remains constant while interest/principal split changes over time

Cash Flow Convention

Returns negative value representing cash outflow (money you pay). Use ABS() to display as positive, or enter PV as negative to get positive result.

PMT returns -$1,073.64 (you pay this amount)

Period Consistency Critical

Rate and nper must match payment frequency. Monthly payments require monthly rate (annual/12) and monthly periods (years×12). Mismatch causes incorrect results.

Monthly: rate=0.05/12, nper=360 | Annual: rate=0.05, nper=30

Payment Timing Impact

Type parameter (0=end, 1=beginning) affects payment amount. Beginning-of-period payments are slightly lower due to less interest accumulation.

Type 0: -$1,073.64 | Type 1: -$1,069.22 (same loan, beginning payments)

Loan Term Sensitivity

Payment amount is highly sensitive to loan term. Longer terms significantly reduce monthly payment but increase total interest paid.

30 years: -$1,073.64 | 15 years: -$1,581.59 (same loan, shorter term = higher payment)

Function Anatomy

=PMT(parameters...)
Required
Parameters:

Function-specific parameters

Returns
Return Value:

Function-specific return type

Primary Use Cases

Mortgage Calculations

Calculate monthly mortgage payments for home purchases and refinancing

Loan Payment Planning

Determine payment amounts for auto loans, personal loans, and credit lines

Lease Payments

Calculate periodic lease payments for equipment and property leases

Savings Goals

Determine required periodic payments to reach savings or investment targets

Debt Payoff Planning

Calculate payments needed to pay off debts within specific timeframes

Loan Comparison

Compare payment amounts across different loan terms and interest rates

Theory Summary

Precise

Exact matching required

Position-Based

Returns numeric position

Error-Safe

Handles missing text gracefully

Syntax & Parameters

=PMT(rate, nper, pv, fv, type)
Required
rate:

The interest rate per period. Enter as decimal (5% = 0.05). Must match payment period frequency (monthly rate = annual rate/12 for monthly payments).

Required
nper:

The total number of payment periods. Must be positive. Must match rate period (360 months for 30-year monthly payments, 30 years for annual payments).

Required
pv:

The present value, or total amount of the loan. Typically entered as positive value. For loans, this is the principal amount borrowed.

Optional
fv:

The future value, or cash balance after the last payment. Default is 0 (loan fully paid). For balloon loans, enter remaining balance. For savings goals, enter target amount.

Optional
type:

When payments are due: 0 = end of period (default), 1 = beginning of period. Beginning payments slightly reduce payment amount.

Returns
Return Value:

The payment amount per period (negative value represents cash outflow)

Description: Calculates the periodic payment amount for a loan or investment

Interactive Examples

Mortgage Payment Calculation

Calculate monthly mortgage payment for home loan

"Loan: $200,000, Rate: 5% APR, Term: 30 years"
=PMT(0.05/12, 360, 200000)
-$1,073.64

Calculates monthly payment of $1,073.64 for a $200,000 mortgage at 5% APR over 30 years (360 months). Result is negative (cash outflow).

VBA Implementation & Automation

Basic PMT in VBA

Using PMT function in VBA through WorksheetFunction

Sub PMTExample()
    Dim result As Double
    Dim monthlyRate As Double, months As Integer, loanAmount As Double
    
    monthlyRate = 0.05 / 12
    months = 360
    loanAmount = 200000
    
    result = Application.WorksheetFunction.PMT(monthlyRate, months, loanAmount)
    Range("A1").Value = Abs(result)
    Range("A1").NumberFormat = "$#,##0.00"
    MsgBox "Monthly Payment: quot; & Format(Abs(result), "#,##0.00")
End Sub

' Calculate payment for different loan scenarios
Sub CalculateLoanPayments()
    Dim loanAmount As Double, annualRate As Double, years As Integer
    Dim monthlyPayment As Double
    
    loanAmount = Range("B1").Value
    annualRate = Range("B2").Value
    years = Range("B3").Value
    
    monthlyPayment = Application.WorksheetFunction.PMT(annualRate / 12, years * 12, loanAmount)
    Range("B4").Value = Abs(monthlyPayment)
    Range("B4").NumberFormat = "$#,##0.00"
End Sub

' PMT with balloon payment
Sub PMTWithBalloon()
    Dim result As Double
    result = Application.WorksheetFunction.PMT(0.05/12, 360, 200000, 10000)
    MsgBox "Payment with balloon: quot; & Format(Abs(result), "#,##0.00")
End Sub

' Compare payments for different terms
Sub CompareLoanTerms()
    Dim loanAmount As Double, rate As Double
    Dim payment15 As Double, payment30 As Double
    
    loanAmount = 200000
    rate = 0.05 / 12
    
    payment15 = Application.WorksheetFunction.PMT(rate, 180, loanAmount)
    payment30 = Application.WorksheetFunction.PMT(rate, 360, loanAmount)
    
    Range("A1").Value = "15 Year: quot; & Format(Abs(payment15), "#,##0.00")
    Range("A2").Value = "30 Year: quot; & Format(Abs(payment30), "#,##0.00")
End Sub

' Calculate savings payment
Sub CalculateSavingsPayment()
    Dim goal As Double, rate As Double, months As Integer
    Dim payment As Double
    
    goal = 100000
    rate = 0.06 / 12
    months = 240
    
    payment = Application.WorksheetFunction.PMT(rate, months, 0, goal)
    MsgBox "Required monthly savings: quot; & Format(Abs(payment), "#,##0.00")
End Sub

Business Applications

Mortgage Payments

Calculate monthly mortgage payment amounts

=PMT(0.05/12, 360, 200000)

Auto Loan Payments

Determine monthly car loan payments

=PMT(0.045/12, 60, 25000)

Savings Goals

Calculate payment to reach savings target

=PMT(0.06/12, 240, 0, 100000)

Lease Payments

Calculate periodic lease payment amounts

=PMT(0.005, 36, 20000)

Debt Payoff

Determine payment to pay off debt in specific period

=PMT(0.18/12, 24, 5000)

Loan Comparison

Compare payments across different loan scenarios

=PMT(rate, nper, pv)

Common Issues & Solutions

Negative Payment Result

PMT returns negative value unexpectedly

=PMT(0.05/12, 360, 200000)

Solution: This is normal and correct - PMT returns negative values because payments are cash outflows. Use ABS() to display as positive: =ABS(PMT(...)). Alternatively, enter PV as negative to get positive result: =PMT(rate, nper, -loan_amount).

Incorrect Payment Amounts

PMT results don't match expected loan calculator values

=PMT(0.05/12, 360, 200000)

Solution: Verify period consistency: monthly payments require monthly rate (annual/12) and monthly periods (years×12). Check rate is decimal (5% = 0.05, not 5). Verify loan amount (PV) sign and value are correct.

Period Mismatch Issues

Payment amounts seem wrong - period inconsistency

=PMT(0.05/12, 360, 200000)

Solution: Rate and nper must match payment frequency. For $200,000 mortgage: rate=0.05/12 (monthly), nper=360 (30 years × 12). For annual payments: rate=0.05, nper=30. Always convert consistently.

Payment Too High or Too Low

PMT returns unrealistic payment amounts

=PMT(0.05/12, 360, 200000)

Solution: Check: 1) Rate format (decimal, not percentage), 2) Period count (years to months conversion), 3) Loan amount (PV value), 4) No sign errors. Compare with online loan calculator to validate.

Balloon Payment Not Working

Adding future value doesn't change payment as expected

=PMT(0.05/12, 360, 200000, 10000)

Solution: For balloon loans, enter remaining balance as fv parameter. Payment will increase. Verify fv sign: typically positive for remaining balance. Check fv is included in formula.

#NUM! or #VALUE! Errors

PMT returns error values

=PMT(A1, B1, C1)

Solution: #NUM! indicates invalid numeric input (negative nper, invalid rate). #VALUE! means non-numeric input. Verify all inputs are numbers, nper is positive, rate is valid decimal. Check cell references contain numeric values.

Performance Tips & Best Practices

⚡ Performance Optimization

  • PMT is computationally efficient, using direct amortization formulas
  • Avoid recalculating PMT repeatedly - calculate once and reference
  • Use consistent cell references rather than recalculating constants
  • For loan comparison tables, use data tables instead of multiple PMT calls

🎯 Best Practices

  • Always ensure rate and nper match payment frequency
  • Use ABS() to display payment as positive if desired
  • Convert annual rates to period rates (divide by periods per year)
  • Verify payment timing with type parameter (0=end, 1=beginning)
  • Test with known loan calculators to validate formulas
  • Document rate and period assumptions clearly
  • Consider total interest: (PMT × nper) - PV to see total cost

💰 Loan Analysis Tips

  • Compare payments across different loan terms to see trade-offs
  • Shorter terms = higher payments but less total interest
  • Consider PMT with IPMT and PPMT to see interest vs principal breakdown
  • Account for additional costs (insurance, taxes) when calculating affordability
  • Use PMT to determine if you can afford a loan before applying
  • Compare PMT results with your budget to ensure affordability