TVM & Fund Performance
Deterministic time-value-of-money and fund-performance tools for AI agents — future value, present value, CAGR, annuities, perpetuities, loan payments…
От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение
Что умеет
- Calculate Future Value: Calculate the future value of a single lump sum: what a present amount grows to at a given rate over a given number of periods, with compounding. Formula: FV = PV x (1 + r)^n.
- Calculate Present Value: Calculate the present value of a single future amount: what a future lump sum is worth today discounted at a given rate over a given number of periods. Formula: PV = FV / (1 +
- Calculate Cagr: Calculate the Compound Annual Growth Rate (CAGR): the smoothed annual growth rate that takes a beginning value to an ending value over a given number of years. Formula: CAGR = (End Val
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Deterministic time-value-of-money and fund-performance tools for AI agents — future value, present value, CAGR, annuities, perpetuities, loan payments, payback, discounted payback, DPI, RVPI and TVPI via Model Context Protocol. Useful for corporate finance, financial projections, financial analysis, quantitative analysis, financial formulas and financial modeling.
Список инструментов сервера (11)
Технические названия из tools/list. Нужны только разработчикам.
| calculate_future_value | Calculate the future value of a single lump sum: what a present amount grows to at a given rate over a given number of periods, with compounding. Formula: FV = PV x (1 + r)^n. WHEN TO USE: Use to project what an investment or cash balance will be worth at a future date under compound growth (e.g. an invested lump sum, or a liability growing at a stated rate). WHEN NOT TO USE: Do NOT use for a series of multiple, uneven cash flows — this tool compounds a single present amount. For level periodic payment streams use the annuity tool, or when you need the required starting amount (use calculate_present_value). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { future_value: number (currency), inputs }. PARAMETERS: present_value (required): Starting amount in currency units, e.g. 100000. May be negative for a liability. rate (required): Periodic rate as a decimal, e.g. 0.08 = 8% per period (never pass percentage points). Rate and periods must share frequency (annual/annual or monthly/monthly). periods (required): Number of compounding periods, e.g. 5. Must be >= 0. |
| calculate_present_value | Calculate the present value of a single future amount: what a future lump sum is worth today discounted at a given rate over a given number of periods. Formula: PV = FV / (1 + r)^n. WHEN TO USE: Use to discount a single known future cash flow back to today (e.g. a future exit value, a balloon payment, or a single future receipt). WHEN NOT TO USE: Do NOT use for multiple cash-flow streams (use calculate_payback_period or calculate_discounted_payback_period for series recovery) or for perpetual/annuity streams (use the perpetuity or annuity tools). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { present_value: number (currency), inputs }. PARAMETERS: future_value (required): Future amount in currency units, e.g. 250000. May be negative for a future payment. rate (required): Discount rate as a decimal, e.g. 0.10 = 10% per period (never pass percentage points). Rate and periods must share frequency. periods (required): Number of discounting periods, e.g. 5. Must be >= 0. |
| calculate_cagr | Calculate the Compound Annual Growth Rate (CAGR): the smoothed annual growth rate that takes a beginning value to an ending value over a given number of years. Formula: CAGR = (End Value / Begin Value)^(1/n) - 1. WHEN TO USE: Use to state multi-year growth as a single comparable annualised rate (revenue growth, asset growth, fund performance) — the standard "growth per year" figure. WHEN NOT TO USE: Do NOT use when the beginning value is zero or negative (undefined), or when you need period-by-period volatility rather than a smoothed rate. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { cagr: decimal (e.g. 0.201 = 20.1%), cagr_pct: number (e.g. 20.1), inputs }. PARAMETERS: begin_value (required): Value at the START of the period, e.g. 100000. Must be > 0. end_value (required): Value at the END of the period, e.g. 250000. Must be > 0. periods (required): Number of years between the two values, e.g. 5. Must be > 0. |
| calculate_annuity_present_value | Calculate the present value of an ordinary annuity: a series of equal payments received (or paid) at the END of each period, discounted at a given rate. Formula: Annuity PV = PMT x (1 - (1 + r)^-n) / r. WHEN TO USE: Use to value a fixed stream of level payments (e.g. lease income, lottery-style payouts, bond coupons held to maturity, or a stream of loan repayments received). WHEN NOT TO USE: Do NOT use for payments at the START of each period (annuity due — adjust by multiplying by (1 + r)), for growing payments (growing annuity), or for perpetual streams (use calculate_perpetuity_value). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { annuity_present_value: number (currency), inputs }. PARAMETERS: payment (required): Payment amount per period, e.g. 50000. Must be > 0 for a normal inflow annuity. rate (required): Periodic discount rate as a decimal, e.g. 0.06 = 6% (never pass percentage points). Use rate = 0 for an undiscounted sum. periods (required): Number of payments/periods, e.g. 10. Must be >= 1. |
| calculate_perpetuity_value | Calculate the present value of a perpetuity: a constant (or constant-growth) cash flow received forever, discounted at a required rate. Formula: Perpetuity PV = CF / r; Growing perpetuity PV = CF / (r - g). WHEN TO USE: Use to value perpetual streams such as preferred dividends, ground rents, endowment-style income, or the terminal-value leg of a discounted-cash-flow valuation (Gordon Growth Model). WHEN NOT TO USE: Do NOT use for finite cash-flow streams (use calculate_annuity_present_value), and do NOT set growth_rate >= rate — the formula is undefined there (it implies an infinite value). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { perpetuity_value: number (currency), inputs }. PARAMETERS: cash_flow (required): Periodic cash flow received forever, e.g. 30000. Must be > 0 for a normal perpetuity. rate (required): Required return / discount rate as a decimal, e.g. 0.08 = 8% (never pass percentage points). Must be strictly greater than growth_rate. growth_rate (optional): OPTIONAL perpetual growth rate of the cash flow as a decimal, e.g. 0.03 = 3% (never pass percentage points). Defaults to 0 (no growth). Must be strictly less than rate. |
| calculate_loan_payment | Calculate the level periodic payment (PMT) that fully amortises a loan: the constant payment per period covering principal and interest over the loan term. Formula: PMT = P x [r(1 + r)^n] / [(1 + r)^n - 1]. WHEN TO USE: Use to size loan/mortgage payments, check affordability, or reverse-engineer what a borrower can service — given principal, periodic rate and number of periods. WHEN NOT TO USE: Do NOT use for interest-only facilities, balloon structures with uneven payments, or when you need the total interest paid rather than the payment itself. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { loan_payment: number (currency per period), inputs }. PARAMETERS: principal (required): Loan principal amount, e.g. 500000. Must be > 0. rate (required): Periodic interest rate as a decimal, e.g. 0.005 = 0.5% monthly for a 6% annual rate (never pass percentage points). Must match period frequency. periods (required): Total number of payments, e.g. 60 for a 5-year monthly loan. Must be >= 1. |
| calculate_dpi | Calculate Distributions to Paid-In capital (DPI): cumulative distributions returned to investors divided by paid-in capital — the realised multiple of a fund or investment. Formula: DPI = Total Distributions / Paid-In Capital. WHEN TO USE: Use for private equity / venture fund reporting to show how much cash investors have actually received back relative to what they put in. WHEN NOT TO USE: Do NOT use to measure total performance — DPI ignores unrealised residual value (pair with RVPI; TVPI = DPI + RVPI captures both). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { dpi: number (e.g. 0.8 = 0.8x of paid-in returned as cash), inputs }. PARAMETERS: distributions (required): Cumulative distributions returned to investors, e.g. 800000. Must be >= 0. paid_in (required): Paid-in capital contributed by investors, e.g. 1000000. Must be > 0. |
| calculate_rvpi | Calculate Residual Value to Paid-In capital (RVPI): the current (unrealised) value of remaining assets divided by paid-in capital. Formula: RVPI = Residual Value / Paid-In Capital. WHEN TO USE: Use for fund reporting to show the unrealised multiple still held in the portfolio (mark-to-market or fair value of remaining investments). WHEN NOT TO USE: Do NOT use alone as a performance measure — residual value is an estimate, not cash (combine with DPI for the full TVPI picture). BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { rvpi: number (e.g. 1.2 = 1.2x of paid-in still held), inputs }. PARAMETERS: residual_value (required): Current fair value of remaining (unrealised) investments, e.g. 1200000. Must be >= 0. paid_in (required): Paid-in capital contributed by investors, e.g. 1000000. Must be > 0. |
| calculate_tvpi | Calculate Total Value to Paid-In capital (TVPI): (distributions + residual value) divided by paid-in capital — the total multiple of a fund or investment including both realised and unrealised value. Formula: TVPI = (Distributions + Residual Value) / Paid-In Capital. WHEN TO USE: Use as the headline multiple for private equity / venture fund performance (equivalent to DPI + RVPI). WHEN NOT TO USE: Do NOT use TVPI to compare funds of different vintages/ages — it ignores the time value of money; combine it with a time-adjusted return analysis for cross-vintage comparison. BEHAVIOUR: pure deterministic calculation — no side effects, no network or storage access; idempotent and non-destructive; identical inputs always produce identical outputs. Division by zero, non-finite inputs, or mathematically undefined combinations return an explicit error instead of a number. RETURNS: JSON object { tvpi: number (e.g. 2.0 = 2.0x total value on paid-in), inputs }. PARAMETERS: distributions (required): Cumulative distributions returned to investors, e.g. 800000. Must be >= 0. residual_value (required): Current fair value of remaining investments, e.g. 1200000. Must be >= 0. paid_in (required): Paid-in capital, e.g. 1000000. Must be > 0. |
| calculate_payback_period | Calculate the payback period: how many years (including a fractional final year) until cumulative cash flows recover the initial investment, ignoring the time value of money. Formula: Payback = the year t where cumulative cash flow turns positive. WHEN TO USE: Use as a quick liquidity/risk screen — shorter payback means capital is at risk for less time. Use it only as a screening input, never as the sole investment criterion. WHEN NOT TO USE: Do NOT use as the primary decision metric — it ignores cash flows after payback, profitability, and the time value of money (use calculate_discounted_payback_period when you need a time-value-adjusted recovery measure). BEHAVIOUR: If cumulative cash flow never turns positive, an explicit error is returned ("investment is never recovered within the provided cash flows") rather than a number. RETURNS: JSON object { payback_period_years: number (e.g. 3.4), inputs }. If the cash flows never recover the investment, returns an explicit error stating no payback occurs. PARAMETERS: cash_flows (required): Ordered cash flows starting at time 0 (first element is the initial investment, typically negative), e.g. [-250000, 50000, 75000, 100000, 125000]. Must contain at least one negative (investment) followed by inflows. |
| calculate_discounted_payback_period | Calculate the discounted payback period: how many years until the DISCOUNTED cumulative cash flows recover the initial investment, incorporating the time value of money. Formula: Discounted payback = the year t where cumulative discounted cash flow turns positive. WHEN TO USE: Use when you want a payback-style risk screen that still respects the cost of capital — a project can pay back nominally but never on a discounted basis. WHEN NOT TO USE: Do NOT use for the final go/no-go decision (it still ignores flows after payback); use calculate_payback_period for the nominal (undiscounted) recovery view and combine with profitability and return analysis for the full decision. BEHAVIOUR: If discounted cumulative cash flow never turns positive, an explicit error is returned rather than a number. RETURNS: JSON object { discounted_payback_period_years: number (e.g. 4.2), inputs }. If the discounted flows never recover the investment, returns an explicit error stating no payback occurs. PARAMETERS: cash_flows (required): Ordered cash flows starting at time 0 (first element is the initial investment, typically negative), e.g. [-250000, 50000, 75000, 100000, 125000]. The time-0 flow is not discounted. rate (required): Discount rate as a decimal, e.g. 0.10 = 10% (never pass percentage points). Must be >= 0. |