← Finance

Time Value of Money Calculator

Solve for any TVM variable directly in your browser. Nothing leaves your device.

Solve For

Variable to solve for

Inputs

Use this tool from AI agents

This tool's engine is available to AI agents over MCP as tvm_solve. Add the Clean.tools server, then your agent can call it directly.

Claude Code
claude mcp add --transport http clean-tools https://mcp.clean.tools/mcp
Claude Desktop (mcpServers)
{"mcpServers":{"clean-tools":{"command":"npx","args":["-y","@clean-tools/mcp"]}}}
Cursor
https://mcp.clean.tools/mcp

Or call it over plain HTTP from any script. Same engine, JSON in and JSON out, no key:

curl
curl -s https://api.clean.tools/v1/tvm_solve \ -H 'content-type: application/json' \ -d '{"solveFor":"fv","n":120,"iy":6,"pv":-10000,"pmt":-250,"compoundingPerYear":12}'
JavaScript
const res = await fetch('https://api.clean.tools/v1/tvm_solve', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ solveFor: 'fv', n: 120, iy: 6, pv: -10000, pmt: -250, compoundingPerYear: 12 }) }); const data = await res.json();

How it works

This Time Value of Money calculator solves for any one of five variables: number of periods (N), interest rate (I/Y), present value (PV), payment (PMT), or future value (FV). Enter any four values and the calculator will compute the fifth. It supports different compounding frequencies and beginning or end of period payments.

All calculations use standard financial mathematics and run entirely in your browser. No data is sent to a server. No cost, no signup, no tracking.

The same solver also runs outside the browser: you can call it from scripts or AI agents through the Clean.tools API as tvm_solve, or install the @clean-tools/mcp package from npm to run it as an MCP server.


Frequently asked questions

Why do PV and FV usually have opposite signs?

This calculator follows the standard cash flow sign convention: money paid out is negative and money received is positive. If you deposit money now (a negative PV), you get it back later as a positive FV, so the two normally carry opposite signs. If every value you enter has the same sign, solving for N or I/Y often returns no solution.

Is I/Y the annual rate or the rate per period?

Enter I/Y as the nominal annual interest rate as a percent, for example 6 for 6%. The calculator divides it by the compounding frequency you select to get the periodic rate, and N is counted in those same periods. So 5 years compounded monthly means N is 60, not 5.

What is the difference between End and Begin payment timing?

End (an ordinary annuity) applies each payment at the end of the period, which is typical for loans. Begin (an annuity due) applies each payment at the start of the period, which is typical for leases and rent. The choice changes PMT, PV, and FV results because payments earn or accrue interest for one extra period.

Why does solving for I/Y sometimes say no solution was found?

The interest rate has no closed-form formula, so it is found by Newton-Raphson iteration. If the cash flows you entered do not imply a real rate, for example when the signs are inconsistent or the numbers cannot balance, the iteration cannot converge and no rate is returned. Double-check the signs of PV, PMT, and FV before retrying.

Can I use this from the command line or an AI agent?

Yes. The same solver is a REST endpoint at https://api.clean.tools/v1/tvm_solve, so you can POST your N, I/Y, PV, PMT, and FV values from curl or any script and get JSON back. It is also an MCP server you can add to Claude, Claude Code, or Cursor so an agent can solve TVM problems for you. The @clean-tools/mcp npm package runs that same server locally over stdio if you prefer not to call the hosted endpoint.


More tools from Clean.tools

View all tools

Use Clean.tools from your AI agent

This tool is also tvm_solve on the Clean.tools MCP server — the same engine, callable by your AI agent directly. No key, no signup: requests are processed in memory and request contents are never stored.

Claude Code
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcp
Any MCP client (streamable HTTP, authless)
https://mcp.clean.tools/mcp

Every tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →