Of the five fields (number of periods N, annual rate I/Y, present value PV, payment PMT and future value FV), leave blank only the one you want to find and fill in the other four. The blank field is solved.
Table of Contents
-
What you can do on this page
-
What is this calculation used for?
-
How to Use
-
Formulas and graphs
-
Symbols and terms
-
Good to know before you start
-
How to calculate it in Excel
-
How to calculate it in Google Sheets
-
How to calculate it in Python
-
How to write it in LaTeX and other math languages (copy and paste)
-
How to have ChatGPT do the calculation
-
DataChef Features
-
Related Features
-
NumberChef Calculators List
What you can do on this page
- Enter any four of the number of periods \(N\), annual rate \(I/Y\), present value \(PV\), payment \(PMT\) and future value \(FV\), and the fifth is solved (the same five-key TVM design as financial calculators such as the BA II Plus and HP 12C)
- The sign convention is also the same as a financial calculator: money that leaves you (deposits, savings, repayments) is negative, and money that comes to you (a loan you receive, payouts) is positive. Example: to save $2,000 a year, PMT = -2000
- You can set the payment timing (end of period, as in most loans and savings plans, or beginning of period), P/Y (payments per year) and C/Y (compounding periods per year)
- Along with the solved value, you also get the total of all payments and the total interest. When the number of periods is a whole number up to 20, a period-by-period table of interest and balance is shown too
- Includes a balance graph. A plain-language explanation of the formulas and copy-and-paste formulas for Excel (FV, PV, PMT, RATE and NPER functions), Google Sheets and Python are all on this page
What is this calculation used for?
The six standard interest factors that students often memorize for engineering economics and finance courses (F/P, P/F, F/A, A/F, P/A and A/P) are all rearrangements of this one TVM equation. For example, F/P is just \((1+i)^N\), and F/A is \(\dfrac{(1+i)^N-1}{i}\).
Checking them on this page with different numbers lets you understand the six as "one equation read in different ways" instead of six separate things to memorize, which also helps with harder problems.
"Borrow $400,000 with a 30-year fixed-rate mortgage at 6.5%" is PV = +400,000, N = 360 (30 years × 12), monthly payments (P/Y = C/Y = 12) and FV = 0, and you solve for PMT. The answer is about $2,528.27 a month. The payments total about $910,178, so the total interest is about $510,178.
When you can see how the amount is built, you can check for yourself how much the loan amount, the rate and the term each matter. This is principal and interest only; a real monthly payment often also includes property taxes and insurance, plus fees, so check the exact amount with your lender.
"I want to withdraw $40,000 a year for 25 years. If my savings earn 4% a year, how much do I need at the start?" is PMT = +40,000, N = 25 and FV = 0, and you solve for PV. The answer is about $624,883 (PV = −624,883, the money you put in at the start).
You receive $1,000,000 in total, so investment growth covers the difference of about $375,117. Seeing in numbers how much the needed amount changes when the rate changes is a big help in retirement planning (in real investing, returns are not fixed, and you can lose money).
"If I save $500 a month at 3% (compounded monthly), when will I reach $50,000?" is PMT = −500, FV = +50,000 and P/Y = C/Y = 12, and you solve for N. The answer is about 89.4 months (about 7.4 years).
At 0% it would take 100 months, so interest gets you there about 10 months sooner. Seeing how much the interest helps, in numbers, is what makes solving for N interesting.
For a $30,000 car loan at a 4% APR for 60 months, set PV = +30,000, N = 60, P/Y = C/Y = 12 and FV = 0 and solve for PMT. The payment is about $552.50 a month and the total is about $33,150, so about $3,150 is interest.
In the other direction, if you are only told the monthly payment and the total, solving for I/Y reveals the real annual rate. This helps you compare car loans, leases, "buy now, pay later" plans and phone installment plans.
Formulas and graphs
Symbols and terms
Symbols
| \(PV\) | P V | Present value. The money that moves now. Positive if you borrow or receive it, negative if you deposit or invest it. |
| \(FV\) | F V | Future value. The money that moves at the end of the time period. Positive if you receive it at the end, negative if you pay it. |
| \(PMT\) | payment | The payment each period. The money that moves every period. Money that leaves you, such as savings or loan payments, is negative; money that comes in, such as rent you collect, is positive. |
| \(N\) | N | The number of periods (number of payments). With yearly payments it equals the number of years, but with monthly payments (P/Y = 12) you count months (10 years is \(N = 120\)). |
| \(I/Y\) | I over Y | Interest per year. The annual interest rate in %. The name comes straight from the key on a financial calculator. |
| \(P/Y\) | P over Y | Payments per year. How many payments \(PMT\) there are in one year: 1 for yearly payments, 12 for monthly payments. |
| \(C/Y\) | C over Y | Compounding periods per year. How many times a year interest is added to the balance. Usually the same as \(P/Y\); if it differs, the compounding is converted to the payment period. |
| \(i\) | lowercase i | The interest rate per period as a decimal. With yearly payments it is the annual rate itself (for 6%, \(i = 0.06\)); with monthly payments it is the rate per month. |
| \(g\) | g | A switch for the payment timing: \(g = 1\) for the beginning of the period and \(g = 0\) for the end. With beginning-of-period payments, the \(PMT\) term is multiplied by \((1+i)\) one extra time. |
| \(\ln\) | natural log | The natural logarithm. A tool that finds how many times you multiply to reach a given multiple. It is used to solve for the number of periods \(N\). |
Terms
| time value of money (TVM) | The idea that $10,000 today is worth more than $10,000 in the future, because money you have now can earn interest. It is the foundation of finance, and the equation on this page puts that idea into one formula. |
| present value | What future money is worth in today's money. For example, at 2% a year, $10,200 one year from now is worth the same as $10,000 today. |
| future value | How much money now, or regular savings, will be worth in the future, including interest. |
| discounting | Turning future money into its present value. You divide the future amount by \((1+i)^N\), so the value goes down. It is exactly the reverse of adding interest (compounding). |
| future value annuity factor | The multiple \(\dfrac{(1+i)^N - 1}{i}\): how much a payment of $1 per period grows to with interest. In engineering economics it is the F/A factor, one of the six standard interest factors. You multiply it by the payment each period. |
| present value annuity factor | The multiple \(\dfrac{1-(1+i)^{-N}}{i}\): what the right to receive $1 per period is worth today (the P/A factor). It is the present value version of the future value annuity factor, used for annuities and mortgages (the link between the loan amount and each payment). |
| cash flow | The flow of money in and out. TVM looks only at when, how much and in which direction money moves, and shows the direction with a sign (plus or minus). |
| sign convention | The rule that money leaving you (deposits, savings, repayments) is negative and money coming to you (a loan you receive, payouts) is positive. Financial calculators and Excel's financial functions share this rule, and it lets loans, savings and annuities all use the same single equation. |
| ordinary annuity (end mode) | Payments (PMT) made at the end of each period. Most loan payments and savings plans work this way, and it is the default on this page. |
| annuity due (begin mode) | Payments (PMT) made at the beginning of each period. The same payment starts earning interest one period earlier, so the \(PMT\) term is multiplied by \((1+i)\) one extra time. Rent paid in advance and lease payments work this way. |
| financial calculator | A calculator with special TVM keys (N, I/Y, PV, PMT, FV). The Texas Instruments BA II Plus and the HP 12C are well known and are used in exams such as the CFA and CFP and in the workplace. This page is a web version of the same five-key design. |
| bisection method | A numerical method that finds an approximate answer by cutting the interval that contains the answer in half again and again, used when the answer cannot be isolated by rearranging. Solving for the annual rate I/Y requires solving an equation of degree N, which has no general formula, so this page uses bisection. |
Good to know before you start
Here is what helps you use the calculation on this page with real understanding, not just by pressing the button.
| Positive and negative numbers (Grades 6–7) |
|
| Percents (Grades 6–7) |
|
| Exponents (Grades 6–8) |
|
| Basics of compound interest ("Compound Interest Calculator" on this site) |
|
| Logarithms (Algebra 2 and precalculus, advanced) |
|
How to calculate it in Excel
| Rate per period (6% = 0.06) | 0.06 |
| Number of periods N | 10 |
| Payment PMT | -2000 |
| Present value PV | 20000 |
| Future value FV | =FV(B1,B2,B3,B4,0) |
| Rate per period (6% = 0.06) | 0.06 |
| Number of periods N | 10 |
| Present value PV | 20000 |
| Future value FV | 0 |
| Payment PMT | =PMT(B1,B2,B3,B4,0) |
| Number of periods N | 5 |
| Payment PMT | 0 |
| Present value PV | -1000 |
| Future value FV | 1500 |
| Rate per period | =RATE(B1,B2,B3,B4) |
| Rate per period (8% = 0.08) | 0.08 |
| Payment PMT | 0 |
| Present value PV | -1000 |
| Future value FV | 2000 |
| Number of periods N | =NPER(B1,B2,B3,B4) |
| Rate per period (5% = 0.05) | 0.05 |
| Number of periods N | 20 |
| Payment PMT | -100 |
| Future value FV | 0 |
| Present value PV | =PV(B1,B2,B3,B4,1) |
The first table shows -9,455.36 in B5, the second -2,717.36, the third about 0.0845 (an annual rate of 8.447%; format the cell as a percentage to read it easily), the fourth about 9.006, and the fifth 1,308.53.
The last argument of FV, PMT and PV is the payment timing: 0 or omitted = end of period, 1 = beginning of period. For monthly payments, enter the rate per month (annual rate ÷ 12) and N in months.
How to calculate it in Google Sheets
| Rate per period (6% = 0.06) | 0.06 |
| Number of periods N | 10 |
| Payment PMT | -2000 |
| Present value PV | 20000 |
| Future value FV | =FV(B1,B2,B3,B4,0) |
| Rate per period (6% = 0.06) | 0.06 |
| Number of periods N | 10 |
| Present value PV | 20000 |
| Future value FV | 0 |
| Payment PMT | =PMT(B1,B2,B3,B4,0) |
| Number of periods N | 5 |
| Payment PMT | 0 |
| Present value PV | -1000 |
| Future value FV | 1500 |
| Rate per period | =RATE(B1,B2,B3,B4) |
| Rate per period (8% = 0.08) | 0.08 |
| Payment PMT | 0 |
| Present value PV | -1000 |
| Future value FV | 2000 |
| Number of periods N | =NPER(B1,B2,B3,B4) |
| Rate per period (5% = 0.05) | 0.05 |
| Number of periods N | 20 |
| Payment PMT | -100 |
| Future value FV | 0 |
| Present value PV | =PV(B1,B2,B3,B4,1) |
How to calculate it in Python
import math
# Set the value you want to find to None (this example finds fv)
n = 10 # number of periods N (number of payments)
annual_rate = 6 # annual rate I/Y (%)
pv = 20000 # present value PV (money in = positive, money out = negative)
pmt = -2000 # payment PMT
fv = None # future value FV
is_beginning = False # True = beginning of period, False = end of period
g = 1 if is_beginning else 0
# Rate per period (yearly payments; for monthly payments divide by 12 and count n in months). Leave as None when solving for the rate
i = annual_rate / 100 if annual_rate is not None else None
def tvm_left_side(i_, n_, pv_, pmt_, fv_):
"""Left side of the TVM equation (the answer makes it 0)"""
if abs(i_) < 1e-12:
return pv_ + pmt_ * n_ + fv_
growth = (1 + i_) ** n_
return pv_ * growth + pmt_ * (1 + i_ * g) * (growth - 1) / i_ + fv_
if fv is None:
fv = -(pv + pmt * n) if abs(i) < 1e-12 else -(pv * (1 + i) ** n + pmt * (1 + i * g) * ((1 + i) ** n - 1) / i)
print(f"Future value FV = {fv:,.2f}")
elif pv is None:
pv = -(fv + pmt * n) if abs(i) < 1e-12 else -(fv + pmt * (1 + i * g) * ((1 + i) ** n - 1) / i) / (1 + i) ** n
print(f"Present value PV = {pv:,.2f}")
elif pmt is None:
pmt = -(pv + fv) / n if abs(i) < 1e-12 else -(pv * (1 + i) ** n + fv) / ((1 + i * g) * ((1 + i) ** n - 1) / i)
print(f"Payment PMT = {pmt:,.2f}")
elif n is None:
if abs(i) < 1e-12:
n = -(pv + fv) / pmt
else:
k = pmt * (1 + i * g) / i
n = math.log((k - fv) / (pv + k)) / math.log(1 + i)
print(f"Number of periods N = {n:.3f}")
else:
# The annual rate cannot be isolated by rearranging, so search with bisection (some inputs have no solution)
low, high = -0.9999, 10.0
if tvm_left_side(low, n, pv, pmt, fv) * tvm_left_side(high, n, pv, pmt, fv) > 0:
raise SystemExit("No solution in this range. Check the direction (sign) of the money")
for _ in range(200):
mid = (low + high) / 2
if tvm_left_side(low, n, pv, pmt, fv) * tvm_left_side(mid, n, pv, pmt, fv) <= 0:
high = mid
else:
low = mid
i = (low + high) / 2
print(f"Annual rate I/Y = {i * 100:.3f} %")
total_interest = abs(pv + pmt * n + fv)
print(f"Total interest = {total_interest:,.2f}")
How to write it in LaTeX and other math languages (copy and paste)
PV(1 + i)ᴺ + PMT × ((1 + i)ᴺ − 1)/i + FV = 0
PV(1+i)^{N} + PMT \cdot \dfrac{(1+i)^{N}-1}{i} + FV = 0
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>PV</mi>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>i</mi><mo>)</mo></mrow>
<mi>N</mi>
</msup>
<mo>+</mo>
<mi>PMT</mi>
<mo>⋅</mo>
<mfrac>
<mrow>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>i</mi><mo>)</mo></mrow>
<mi>N</mi>
</msup>
<mo>−</mo>
<mn>1</mn>
</mrow>
<mi>i</mi>
</mfrac>
<mo>+</mo>
<mi>FV</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
</math>
PV(1+i)^N + PMT((1+i)^N-1)/i + FV = 0
pv (1 + i)^n + pmt ((1 + i)^n - 1)/i + fv == 0
pv*(1 + i)^n + pmt*((1 + i)^n - 1)/i + fv = 0;
pv*(1 + i)^n + pmt*((1 + i)^n - 1)/i + fv == 0
PV(1+i)^N + PMT((1+i)^N-1)/i + FV = 0
FV = −(PV(1 + i)ᴺ + PMT × ((1 + i)ᴺ − 1)/i)
FV = -\left( PV(1+i)^{N} + PMT \cdot \dfrac{(1+i)^{N}-1}{i} \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>FV</mi>
<mo>=</mo>
<mo>−</mo>
<mrow>
<mo>(</mo>
<mi>PV</mi>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>i</mi><mo>)</mo></mrow>
<mi>N</mi>
</msup>
<mo>+</mo>
<mi>PMT</mi>
<mo>⋅</mo>
<mfrac>
<mrow>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>i</mi><mo>)</mo></mrow>
<mi>N</mi>
</msup>
<mo>−</mo>
<mn>1</mn>
</mrow>
<mi>i</mi>
</mfrac>
<mo>)</mo>
</mrow>
</mrow>
</math>
FV = -(PV(1+i)^N + PMT((1+i)^N-1)/i)
fv = -(pv (1 + i)^n + pmt ((1 + i)^n - 1)/i)
fv := -(pv*(1 + i)^n + pmt*((1 + i)^n - 1)/i);
fv = -(pv*(1 + i)^n + pmt*((1 + i)^n - 1)/i);
FV = -(PV(1+i)^N + PMT((1+i)^N-1)/i)
N = ln(−FV/PV) / ln(1 + i)
N = \dfrac{\ln\left(-\dfrac{FV}{PV}\right)}{\ln(1+i)}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>N</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>ln</mi>
<mrow>
<mo>(</mo>
<mo>−</mo>
<mfrac><mi>FV</mi><mi>PV</mi></mfrac>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mi>ln</mi>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>i</mi><mo>)</mo></mrow>
</mrow>
</mfrac>
</mrow>
</math>
N = ln(-FV/PV) / ln(1+i)
n = Log[-fv/pv]/Log[1 + i]
n := ln(-fv/pv)/ln(1 + i);
n = log(-fv/pv)/log(1 + i);
N = ln(-FV/PV)/ln(1+i)
PV + PMT × N + FV = 0
PV + PMT \cdot N + FV = 0
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>PV</mi>
<mo>+</mo>
<mi>PMT</mi>
<mo>⋅</mo>
<mi>N</mi>
<mo>+</mo>
<mi>FV</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
</math>
PV + PMT * N + FV = 0
pv + pmt n + fv == 0
pv + pmt*n + fv = 0;
pv + pmt*n + fv == 0
PV + PMT N + FV = 0
How to have ChatGPT do the calculation
You are a finance (time value of money, TVM) calculation assistant. Do the following calculation by actually running Python code, and base your answer only on the numbers from the execution result (do not answer by mental math or guessing). Use the standard TVM equation PV(1+i)^N + PMT(1+i*g)*((1+i)^N - 1)/i + FV = 0 (g=1 for payments at the beginning of each period, g=0 for the end). The sign convention is the same as a financial calculator: money that leaves you is negative, and money that comes to you is positive. You borrow $20,000 at 6% a year (PV = +20000) and pay it off with equal payments at the end of each year for 10 years (FV = 0). Find each of the following: 1. The yearly payment PMT 2. The total of all payments (PMT × 10) 3. The total interest (|PV + PMT×N + FV|) Show the formulas you used and the numbers from the execution result.
How to Use
-
1Enter your numbersType the numbers you want to calculate with into the input fields
-
2CalculatePress the "Calculate" button
-
3Check the resultThe result appears on the spot. The same page also explains the idea behind the calculation and the formula
DataChef Features
No technical knowledge required.
Intuitive and user-friendly operation.
Can be used without registering personal information.
Automatic file deletion by clicking "download".
and rapid file conversion.
No attribution required.
No need to contact us for commercial use permission.
