TVM calculator (time value of money)
Solve for any one of the number of payments, interest rate, present value, payment or future value, with payment timing, compounding, a balance chart and a downloadable schedule.
A clear answer. Here’s how.
Solves PV (1 + i)^N + PMT (1 + i k) ((1 + i)^N - 1) / i + FV = 0 for whichever one of N, I/Y, PV, PMT or FV you choose, given the other four. i is the rate for one payment period and k is 0 when payments fall at the end of each period and 1 when they fall at the start. Money you pay out is negative and money you receive is positive, as in Excel, spreadsheets and financial calculators: a loan you receive has a positive PV and its payments are negative. The balance in the table carries the sign of PV and ends at minus FV. The nominal rate I/Y compounds C/Y times a year while payments are made P/Y times a year, so i = (1 + I/Y / C/Y)^(C/Y / P/Y) - 1, which is I/Y / P/Y when the two are equal; this is how calculator.net and financial calculators convert the rate. PV, PMT, FV and N are solved in closed form, with the zero-rate limits PMT = -(PV + FV) / N and N = -(PV + FV) / PMT; the formulas use expm1 and log1p so small rates keep their digits. N = ln((PMT (1 + i k) - FV i) / (PMT (1 + i k) + PV i)) / ln(1 + i) is usually not a whole number. That fractional N is what the closed form returns, and the tool also shows the whole payments plus a smaller last payment that reaches the same FV. I/Y has no closed form, so the tool tries about 1,400 rates per payment period between -99% and 1,000% and polishes each sign change with Brent’s method. It returns the rate nearest 0% and lists any others, because the equation can have several rates, or none, when the cash flows change sign more than once; two rates closer together than one trial step, or one where the equation only touches zero, can be missed. When P/Y equals C/Y the answers match Excel’s PMT, FV, PV, NPER and RATE (RATE gives up after 20 iterations; this tool does not). Unlike the compound interest and loan repayment tools, which each work out one fixed answer, this solves for any single unknown. The page shows the first 120 periods, and the CSV holds up to 12,000. It does not handle uneven or growing payments (use an IRR tool), continuous compounding, fees, taxes, payments rounded to the penny or a rate that changes. Results are illustrations, not advice.
What this does not include
- Uneven, growing or skipped payments (use an IRR or cash-flow tool).
- Continuous compounding, a rate that changes over the term, fees and taxes.
- Payments rounded to the penny: a lender’s statement can differ from this schedule by a few pence.
How this is checked
5 reference checks passed These 5 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.
See the checks and where each expected answer comes from
Case 1
- Inputs
- Solve for pmtN, number of payments 360I/Y, interest rate per year (%) 6PV, present value 200000FV, future value 0P/Y, payments per year 12C/Y, times interest compounds per year 12Payments are made end
- Expected, and what Toolmoz gave
- Payment (PMT) expected -1199.10105031, Toolmoz -1199.1010503055047Total interest expected 231676.37811, Toolmoz 231676.3781099817
- Where the expected answer comes from
- The ordinary-annuity closed form on the Wikipedia Time value of money page, PMT = -PV i / (1 - (1 + i)^-N), with PV = 200,000, i = 0.06 / 12 = 0.005 and N = 360: (1.005)^360 = 6.0225752123, so PMT = -200,000 x 0.005 x 6.0225752123 / (6.0225752123 - 1) = -1,000 x 6.0225752123 / 5.0225752123 = -1,199.10105 (a 60-digit Python Decimal evaluation gives -1,199.10105031). Total interest = 360 x 1,199.10105031 - 200,000 = 231,676.3781
- Allowed difference
- ±0.0001 absolute
Case 2
- Inputs
- Solve for nI/Y, interest rate per year (%) 12PV, present value -1000PMT, payment each period -100FV, future value 10000P/Y, payments per year 12C/Y, times interest compounds per year 12Payments are made begin
- Expected, and what Toolmoz gave
- Number of payments (N) expected 59.6738657, Toolmoz 59.67386567429462Full payments before the last one expected 59, Toolmoz 59Last payment (adjusted) expected -35.31351083, Toolmoz -35.313510830294035
- Where the expected answer comes from
- Microsoft’s NPER page example =NPER(A2/12, A3, A4, A5, 1) with A2 = 0.12, A3 = -100, A4 = -1000 and A5 = 10000 prints 59.6738657 (the page’s description column swaps the end and start wording, but the formula has type 1, payments at the start). Hand check: i = 0.12 / 12 = 0.01, so (1 + i)^N = (PMT (1 + i) - FV i) / (PMT (1 + i) + PV i) = (-101 - 100) / (-101 - 10) = 201 / 111 = 1.810811 and N = ln 1.810811 / ln 1.01 = 0.593775 / 0.009950 = 59.6739. calculator.net prints N = 59.674 for the same inputs. The whole-payment reading: after 59 payments of 100 at the start of each month the balance is -9,865.68 (a step-by-step Python Decimal loop), so the 60th payment p solves (-9,865.68 + p) x 1.01 = -10,000, giving p = -9,900.99 + 9,865.68 = -35.31
- Allowed difference
- ±0.000001
Case 3
- Inputs
- Solve for rateN, number of payments 48PMT, payment each period -200PV, present value 8000FV, future value 0P/Y, payments per year 12C/Y, times interest compounds per year 12Payments are made end
- Expected, and what Toolmoz gave
- Interest rate per year (I/Y, %) expected 9.241767, Toolmoz 9.241766985842455Rate per payment period (%) expected 0.770147, Toolmoz 0.7701472488202046
- Where the expected answer comes from
- Microsoft’s RATE page example: =RATE(A2*12, A3, A4) with 4 years, a payment of -200 and a loan of 8000 gives the monthly rate (the page shows it as 1% in whole-percent format) and times 12 it prints 9.24%. calculator.net prints I/Y = 9.242% compounded monthly, 0.770% per period and 9.643% when interest compounds once a year. Check: at i = 0.0077014725 a month the annuity factor (1 - 1.0077014725^-48) / 0.0077014725 = 40.000, and 200 x 40 = 8,000 (a 60-digit Python Decimal bisection finds i = 0.00770147249)
- Allowed difference
- ±0.0005 absolute
Case 4
- Inputs
- Solve for fvN, number of payments 120I/Y, interest rate per year (%) 6PV, present value 10000PMT, payment each period -100P/Y, payments per year 12C/Y, times interest compounds per year 4Payments are made end
- Expected, and what Toolmoz gave
- Future value (FV) expected -1778.68, Toolmoz -1778.6833958857771Total interest expected 3778.68, Toolmoz 3778.683395885777
- Where the expected answer comes from
- calculator.net’s Finance calculator, read on 18 October 2026 with N = 120, I/Y = 6, PV = 10,000, PMT = -100, P/Y = 12, C/Y = 4 and payments at the end, prints FV = -1,778.68 and total interest 3,778.68. Hand check of the rate conversion: i = (1 + 0.06 / 4)^(4 / 12) - 1 = 1.015^(1/3) - 1 = 0.0049752063 a month, (1 + i)^120 = 1.015^40 = 1.81401841, so FV = -(10,000 x 1.81401841 - 100 x 0.81401841 / 0.0049752063) = -(18,140.18 - 16,361.50) = -1,778.68; interest = 1,778.68 - 10,000 + 12,000 = 3,778.68
- Allowed difference
- ±0.005 absolute
Case 5
- Inputs
- Solve for pmtN, number of payments 60I/Y, interest rate per year (%) 0PV, present value 10000FV, future value 2000P/Y, payments per year 12C/Y, times interest compounds per year 12Payments are made end
- Expected, and what Toolmoz gave
- Payment (PMT) expected -200, Toolmoz -200Total interest expected 0, Toolmoz 0
- Where the expected answer comes from
- At a 0% rate nothing accrues, so PV + PMT x N + FV = 0 and PMT = -(PV + FV) / N = -(10,000 + 2,000) / 60 = -200 exactly (hand arithmetic). Interest is therefore 0: 60 x 200 = 12,000 = 10,000 + 2,000
- Allowed difference
- ±1e-9
What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.
See a worked example
Worked example
A fixed demonstration, separate from the values you enter above.
- Solve for
- PMT, the payment each period
- N, number of payments
- 360
- I/Y, interest rate per year (%)
- 6
- PV, present value
- 200000
- PMT, payment each period
- 0
- FV, future value
- 0
- P/Y, payments per year
- 12
- C/Y, times interest compounds per year
- 12
- Payments are made
- At the end of each period (ordinary annuity)
Example result
| Period | Payment | Interest | Change in balance | Balance |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 200,000 |
| 1 | -1,199.10105031 | 1,000 | -199.101050306 | 199,800.89895 |
| 2 | -1,199.10105031 | 999.004494748 | -200.096555557 | 199,600.802394 |
| 3 | -1,199.10105031 | 998.004011971 | -201.097038335 | 199,399.705356 |
| 4 | -1,199.10105031 | 996.998526779 | -202.102523526 | 199,197.602832 |
You would receive 200,000.00 at the start, then pay 1,199.10 at the end of each month for 360 months, then have nothing left after the last payment. Signs: money you pay out is negative and money you receive is positive, as in Excel and financial calculators. The balance below carries the sign of PV and ends at minus FV. Rate: 6.0000% a year compounded 12 times a year with 12 payments a year is 0.500000% per month, or 6.1678% effective annually. Over the term payments total 431,676.38 paid and interest adds 231,676.38 to what you owe. The table shows periods 0 to 120 of 360; the CSV has every period. An illustration: no fees, taxes or rounding of payments to the penny.