PMT
BET in Dutch Excel
Calculates the fixed payment per period on a loan or lease, given the interest rate per period, the number of periods and the amount borrowed.
Last updated: 13 October 2026
| Row | A | B | C | D |
|---|---|---|---|---|
| 1 | Loan amount | Annual rate | Months | |
| 2 | €250,000.00€ 250.000,00 | 4.8%4,8% | 6060 | -€4,694.94€ -4.694,94=PMT(B2/12, C2, A2)=PMT(B2/12; C2; A2) |
Swipe sideways to see all columns
Result: -€4,694.94€ -4.694,94
=PMT(B2/12,C2, A2)
=PMT(B2/12;C2; A2)
What PMT does and when to use it
What it does: it calculates the fixed payment that repays a loan or a lease liability over equal periods at a constant interest rate, for example the monthly installment of a bank loan.
When to use it: in an audit, to recompute the installment in a loan or lease contract and compare it with what the client pays or has recorded. It gives one payment only; for the interest and repayment inside it, use IPMT and PPMT.
Two main gains:
- One function: it replaces the long annuity formula with powers and fractions.
- Timing and balloon built in:
typehandles payment in advance andfvhandles a balloon payment or residual value.
How Excel evaluates it
Excel reads the rate and nper and builds a growth factor per period: (1 + rate) raised to nper. It then takes the amount you borrow (pv), adds the balance that stays open at the end (fv) and spreads that over the periods with the standard annuity formula.
With type 1, each payment falls one period earlier, so Excel divides the result by (1 + rate). The sign follows cash flow: money received is positive, money paid is negative, so a positive pv gives a negative payment.
Watch out: Rate and nper must use the same unit: a monthly payment needs a monthly rate.
Mental model
Think of a bank account: you receive the loan today, and PMT finds the equal withdrawals that bring the balance to exactly fv after the last one.
PMT(rate,nper, pv, [fv], [type])
PMT(rate;nper; pv; [fv]; [type])
| Argument | Type | Meaning | Default |
|---|---|---|---|
rate | Required | Interest rate per period, not per year. | |
nper | Required | Total number of payments over the term. | |
pv | Required | Present value: the amount borrowed or the lease liability. | |
fv | Optional | Balance left after the last payment (balloon or residual value). | 0 |
type | Optional | 0 = payment at period end, 1 = payment at period start. | 0 |
Return value:The payment per period, as a negative number when pv is positive
Formulas use commas (,) between arguments, as in English Excel. Formulas use semicolons (;) between arguments, as in Dutch Excel. Formulas use commas (,) between arguments, as in English Excel; Dutch Excel uses semicolons (;).
Worked examples
Beginner
Recompute the monthly installment of a bank loan
Veldhuis Installatie BV took a bank loan of 250,000.00250.000,00 at 4.8% per year to finance a new workshop, repayable in 60 equal monthly installments. The loan agreement is in the audit file. You recompute the monthly installment to test the amount the client pays.
| Row | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Loan amount | Annual rate | Months | ||
| 2 | €250,000.00€ 250.000,00 | 4.8%4,8% | 6060 | -€4,694.94€ -4.694,94=PMT(B2/12, C2, A2)=PMT(B2/12; C2; A2) | |
| 3 |
Swipe sideways to see all columns
Formula in D2
=PMT(B2/12,C2, A2)
=PMT(B2/12;C2; A2)
Result: -€4,694.94€ -4.694,94
Step by step
- Excel evaluates the first argument, B2/12.
B2is 4.8%, which is 0.048, and 0.048 / 12 = 0.004. That is the interest rate per month, the unit of the payments. - The second argument,
C2, is 60: the number of monthly payments. The third,A2, is 250,000250.000, positive because the client received the money. - fv and type are left out, so both are 0: the loan is fully repaid after payment 60, and each payment falls at the end of the month.
- Excel builds the growth factor: 1.004 raised to the 60th power = 1.27064. The annuity formula then gives 250,000250.000 × 0.004 × 1.27064 / (1.27064 - 1) = 1,270.641.270,64 / 0.27064 = 4,694.944.694,94.
- The result is -4,694.944.694,94, shown here to the cent; the cell holds more decimals (-4,694.93554.694,9355). The minus sign means the payment leaves the client.
- Over 60 months the client pays 60 × 4,694.93554.694,9355 = 281,696.13281.696,13, so the interest over the term is 31,696.1331.696,13. If the agreement shows a different installment, the rate, the term or the timing differs from what you assumed.
Watch out: Writing PMT(B2, C2, A2) without dividing by 12 treats 4.8% as a monthly rate. The result is far too high, but it still looks like a valid installment.
More on this example: why it works, 1 more pitfall, 1 variation
Why it works
PMT needs the rate and the number of periods in the same unit. Dividing the annual rate by 12 and counting 60 months gives both in months, so the annuity formula produces the monthly payment. The sign follows the cash flow: pv is money in, so the payment is money out.
More to watch out for
- The cell shows 2 decimals because of the currency format, but it holds more (-4,694.93554.694,9355). Compare to the cent only after rounding (see the next example), because the bank rounds each installment.
Variations
=-PMT(B2/12,C2, A2)
=-PMT(B2/12;C2; A2)
Flips the sign so the installment is positive, which suits a comparison with a contract better.
Intermediate
Test a lease installment that is paid at the start of the month
Veldhuis Installatie BV leases service vans. Discounted at an incremental borrowing rate of 3.6% per year, the present value of all 36 monthly payments is 84,000.0084.000,00.
The first payment is due on the commencement date, so the lease liability under IFRS 16 at that date is 84,000.0084.000,00 - 2,457.722.457,72 = 81,542.2881.542,28, because only payments not yet paid count. The contract states an installment of 2,457.722.457,72, and you check that figure.
| Row | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Present value of payments | Annual rate | Months | Contract installment | ||
| 2 | €84,000.00€ 84.000,00 | 3.6%3,6% | 3636 | €2,457.72€ 2.457,72 | €2,457.72€ 2.457,72=ROUND(-PMT(B2/12, C2, A2, 0, 1), 2)=ROUND(-PMT(B2/12; C2; A2; 0; 1); 2) | |
| 3 |
Swipe sideways to see all columns
Formula in E2
=ROUND(-PMT(B2/12,C2, A2, 0, 1), 2)
=ROUND(-PMT(B2/12;C2; A2; 0; 1); 2)
Result: €2,457.72€ 2.457,72
Step by step
- Excel evaluates PMT first. The rate is B2/12 = 0.036 / 12 = 0.003 per month, nper is
C2= 36 and pv isA2= 84,00084.000. - The fourth argument, fv, is 0 because the lease ends without a residual value. It must still be written, because type is the fifth argument and Excel counts by position.
- With type 0 (end of the month) the payment would be 84,00084.000 × 0.003 × 1.113868 / 0.113868 = 2,465.102.465,10, using the growth factor 1.003 to the power 36 = 1.113868.
- The fifth argument is 1: each payment falls one month earlier, so one month of interest less builds up. Excel divides by (1 + 0.003): 2,465.09582.465,0958 / 1.003 = 2,457.72262.457,7226, returned as -2,457.72262.457,7226.
- The minus in front of PMT flips the sign to 2,457.72262.457,7226, and ROUND with 2 digits gives 2,457.722.457,72. This equals
D2, so the contract installment agrees with the present value and the rate. A2is the present value of all 36 payments, the liability before the first payment. The first payment is made on the commencement date, so the liability recognized then is 84,00084.000 - 2,457.722.457,72 = 81,542.2881.542,28.- Had the lessor calculated in arrears, the installment would be 2,465.102.465,10: 7.38 more per month and 265.68 more over 36 months. That is the difference type makes.
Watch out: Leaving out the last two arguments gives 2,465.102.465,10, which is 7.38 too high. It looks like a rounding difference but is a timing error.
More on this example: why it works, 1 more pitfall, 1 variation
Why it works
Type 1 moves every payment to the start of its period, which lowers the installment because the lessor receives the money sooner. ROUND brings the unrounded result to the cents the contract uses, so the comparison with D2 is exact.
More to watch out for
- The result agrees with
D2to the cent only. If the lessor rounds the installment in another way, a difference of 0.01 is a rounding choice, not an error; set a tolerance before you conclude anything.
Variations
=ROUND(-PMT(B2/12,C2, A2), 2)
=ROUND(-PMT(B2/12;C2; A2); 2)
The same lease with payments at the end of the month (2,465.102.465,10). Use it when the contract says payment in arrears.
Advanced
Flag loan installments that disagree with the contract, balloon included
The client's loan list shows three loans of Veldhuis Installatie BV, each with a balloon payment due together with the last monthly installment. You recompute each installment and compare it with the amount in the client's list. A difference of more than 5 cents (cell I2) needs follow-up.
| Row | A | B | C | D | E | F | G | H | I | J |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Loan | Principal | Annual rate | Months | Balloon | Client installment | Tolerance | |||
| 2 | L-01 | €120,000.00€ 120.000,00 | 6%6% | 4848 | €30,000.00€ 30.000,00 | €2,818.20€ 2.818,20 | Investigate=IF(ABS(ROUND(-PMT(C2/12, D2, B2, -E2), 2) - F2) <= $I$2, "OK", "Investigate")=IF(ABS(ROUND(-PMT(C2/12; D2; B2; -E2); 2) - F2) <= $I$2; "OK"; "Investigate") | €0.05€ 0,05 | ||
| 3 | L-02 | €85,000.00€ 85.000,00 | 5.4%5,4% | 6060 | €10,000.00€ 10.000,00 | €1,474.13€ 1.474,13 | ||||
| 4 | L-03 | €42,000.00€ 42.000,00 | 6.5%6,5% | 3636 | €6,000.00€ 6.000,00 | €1,135.84€ 1.135,84 | ||||
| 5 |
Swipe sideways to see all columns
Formula in G2
=IF(ABS(ROUND(-PMT(C2/12,D2, B2, -E2), 2) - F2) <= $I$2, "OK", "Investigate")
=IF(ABS(ROUND(-PMT(C2/12;D2; B2; -E2); 2) - F2) <= $I$2; "OK"; "Investigate")
Result: Investigate
Step by step
- Excel starts with the innermost function, PMT. Its arguments: C2/12 = 0.06 / 12 = 0.005 per month,
D2= 48,B2= 120,000120.000, and -E2 = -30,00030.000 for fv. The balloon is the opposite sign of pv because it is still owed at the end. - The growth factor is 1.005 to the 48th power = 1.270489. Then 120,000120.000 × 1.270489 = 152,458.70152.458,70, and adding fv gives 152,458.70152.458,70 - 30,00030.000 = 122,458.70122.458,70.
- PMT multiplies by the rate and divides by the factor minus 1: 122,458.70122.458,70 × 0.005 / 0.270489 = 2,263.652.263,65, returned as -2,263.65262.263,6526. The minus in front flips it, and ROUND gives 2,263.652.263,65.
- Next,
F2is subtracted: 2,263.652.263,65 - 2,818.202.818,20 = -554.55. ABS removes the sign and leaves 554.55. - IF tests 554.55 <= $I$2, which is 554.55 <= 0.05. That is FALSE, so IF returns the third argument:
Investigate. - The cause is visible: PMT without the balloon gives 2,818.202.818,20, exactly the client's amount. The client's list ignores the balloon payment of 30,00030.000.
- Copied down,
G3recomputes 1,474.131.474,13 and finds 0.00 difference:OK.G4recomputes 1,135.861.135,86 against 1,135.841.135,84, a difference of 0.02, within the tolerance:OK.
Watch out: If the balloon is entered as +E2 instead of -E2, the installment goes up instead of down, and L-02 and L-03 flip to Investigate as well. A whole list failing at once points to a sign problem, not to the client.
More on this example: why it works, 1 more pitfall, 1 variation
Why it works
PMT is evaluated first and rounded to cents, then compared with the client's figure inside a tolerance. The balloon enters as a negative fv, so PMT spreads only the part of the principal that the balloon does not repay. The tolerance absorbs the cent differences caused by rounding.
More to watch out for
- A tolerance that is too wide hides real errors. 5 cents covers rounding; do not raise it to make the list turn green.
Variations
=ROUND(-PMT(C2/12,D2, B2, -E2), 2) - F2
=ROUND(-PMT(C2/12;D2; B2; -E2); 2) - F2
Returns the difference itself (-554.55) instead of a flag. Use it when you want to total the differences for the audit file.
MasterExcel 2021 or later (This example needs Excel 2021 or later)
Total finance cost of a quarterly lease with a guaranteed residual value
Veldhuis Installatie BV leases a warehouse crane. Discounted at 5.2% per year, the present value of the 20 quarterly installments and the guaranteed residual value of 12,000.0012.000,00 is 180,000.00180.000,00.
The client pays in advance, so the first installment is paid at commencement and the liability recognized then is 180,000.00180.000,00 - 9,624.339.624,33 = 170,375.67170.375,67. You recompute the installment and the total finance cost over the term (total paid minus 180,000.00180.000,00), to test the total interest in the client's lease schedule.
| Row | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 1 | Present value of payments | Annual rate | Years | Payments per year | Residual value | Type | ||
| 2 | €180,000.00€ 180.000,00 | 5.2%5,2% | 55 | 44 | €12,000.00€ 12.000,00 | 11 | €24,486.60€ 24.486,60=LET( presentValue, A2, perYear, D2, rate, B2 / perYear, periods, C2 * perYear, residual, E2, timing, F2, payment, ROUND(-PMT(rate, periods, presentValue, -residual, timing), 2), payment * periods + residual - presentValue )=LET( presentValue; A2; perYear; D2; rate; B2 / perYear; periods; C2 * perYear; residual; E2; timing; F2; payment; ROUND(-PMT(rate; periods; presentValue; -residual; timing); 2); payment * periods + residual - presentValue ) | |
| 3 |
Swipe sideways to see all columns
Formula in G2
=LET( presentValue,A2, perYear, D2, rate, B2 / perYear, periods, C2 * perYear, residual, E2, timing, F2, payment, ROUND(-PMT(rate, periods, presentValue, -residual, timing), 2), payment * periods + residual - presentValue )
=LET( presentValue;A2; perYear; D2; rate; B2 / perYear; periods; C2 * perYear; residual; E2; timing; F2; payment; ROUND(-PMT(rate; periods; presentValue; -residual; timing); 2); payment * periods + residual - presentValue )
Result: €24,486.60€ 24.486,60
Step by step
- LET names the inputs. perYear is 4, so rate = 0.052 / 4 = 0.013 per quarter and periods = 5 × 4 = 20. presentValue is 180,000180.000, residual is 12,00012.000 and timing is 1.
- payment calls PMT(0.013, 20, 180000, -12000, 1). The growth factor is 1.013 to the 20th power = 1.294759, and 180,000180.000 × 1.294759 = 233,056.60233.056,60. The residual enters as fv = -12,00012.000, so 233,056.60233.056,60 - 12,00012.000 = 221,056.60221.056,60.
- For payments in arrears the installment would be 221,056.60221.056,60 × 0.013 / 0.294759 = 9,749.4459.749,445. Type 1 divides by (1 + 0.013): 9,749.4459.749,445 / 1.013 = 9,624.339.624,33.
- The minus sign flips -9,624.3299.624,329 to positive, and ROUND stores payment as 9,624.339.624,33, the amount that will appear in the contract and in the bank statements. The first installment is paid at commencement, so the liability recognized then is 180,000180.000 - 9,624.339.624,33 = 170,375.67170.375,67.
- The last LET argument is the result: 9,624.339.624,33 × 20 = 192,486.60192.486,60 in installments, plus the residual of 12,00012.000 = 204,486.60204.486,60 in total cash out.
- Subtracting the present value of 180,000180.000 leaves 24,486.6024.486,60: the total finance cost over the term. This must equal the sum of the interest column in the client's lease schedule.
Watch out: Entering the residual with a plus sign (fv = +12,00012.000) raises the installment instead of lowering it. The result looks plausible, but the total finance cost is overstated. Always test the sign with a residual of 0 and see that it moves the installment down.
More on this example: why it works, 2 more pitfalls, 1 variation
Why it works
Total interest equals everything paid minus what was received, so it follows from the installment, the number of periods and the residual. Using the rounded payment in the total means the figure ties to the contract, where the installment is rounded to the cent. LET gives each step a name that matches the lease terms, and perYear is used twice so rate and periods cannot get out of step.
More to watch out for
- Using 12 instead of perYear for quarterly payments gives a rate of 0.4333% per quarter, far too low. Both rate and periods must follow perYear.
- When not to use this: the total says nothing about how much interest falls in a given financial year, or how the liability splits into current and non-current at 31 December 2025. For that, use a schedule with IPMT and PPMT, one row per quarter, so you can compare every interest charge and balance with the client's schedule.
Variations
=ROUND(-PMT(B2 / D2,C2 * D2, A2, -E2, F2), 2) * C2 * D2 + E2 - A2
=ROUND(-PMT(B2 / D2;C2 * D2; A2; -E2; F2); 2) * C2 * D2 + E2 - A2
The same total in one line. Shorter, but the reviewer has to decode B2 / D2 and C2 * D2 without names; prefer LET when someone else will read the formula.
Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
| Installment far too high | You pass the annual rate with a monthly nper, as in PMT(B2, 60, A2). Excel reads 4.8% as the rate per month and the installment is far too high. | Divide the rate by the number of payments per year (B2/12) and count nper in the same unit (years × 12). |
| A negative result that looks like an error | The result is negative and you read it as an error, or you compare it with the contract amount without flipping the sign. | The negative sign is intended: the payment leaves the client. Write -PMT(...) when you need a positive amount to compare, or enter pv as a negative number. |
| Installment slightly too high | The contract says payment in advance, but you leave out type. The installment is slightly too high, which looks plausible. | Pass 0 for fv and 1 for type: PMT(rate, nper, pv, 0, 1). |
| Installment goes up with a balloon | A balloon payment or residual value is entered with the same sign as pv. The installment goes up instead of down. | fv has the opposite sign of pv. With a positive loan amount, a balloon payment of 30,000 is entered as -30000. |
| Installment off by a few cents | The contract quotes an effective annual rate, and you divide it by 12. The recomputed installment differs by a few cents or more. | Dividing by 12 assumes a nominal annual rate. For an effective rate use (1+B2)^(1/12)-1 as the monthly rate. |