# time-value-of-money

Provides TVM formulas to evaluate cash flows, loan schedules, NPV, and IRR. Helps compare investments across discrete and continuous compounding.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 711 installs · ★ 218
- Author: JoelLewis
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/JoelLewis/finance_skills/tree/HEAD/plugins/core/skills/time-value-of-money/SKILL.md
- Updated: 2026-07-18
- HTML: https://affpapa.org/en/nevibecode/skills/time-value-of-money

## What it does

The skill equips the assistant with core valuation formulas. It handles future and present value for lump sums, ordinary annuities, annuities due, and growing perpetuities such as the Gordon growth model. It also converts nominal interest rates into effective annual rates across monthly, quarterly, or continuous compounding frequencies.

For capital budgeting, it provides step-by-step methods to calculate net present value and internal rate of return on uneven cash flows. Loan queries produce amortisation breakdowns that separate principal and interest across each payment cycle.

This skill targets fixed cash flows and project hurdle rates. If you need money-weighted returns on an investment portfolio with frequent deposits or withdrawals, use `return-calculations` instead. No extra dependencies are required.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add JoelLewis/finance_skills --skill time-value-of-money -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/time-value-of-money/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/time-value-of-money/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add JoelLewis/finance_skills --skill time-value-of-money -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/time-value-of-money/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add JoelLewis/finance_skills --skill time-value-of-money -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/time-value-of-money/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install JoelLewis/finance_skills time-value-of-money
```

2. **Manually: put the files in place**
- File: `.github/skills/time-value-of-money/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add JoelLewis/finance_skills --skill time-value-of-money -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/JoelLewis/finance_skills --path plugins/core/skills/time-value-of-money
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/time-value-of-money/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add JoelLewis/finance_skills --skill time-value-of-money -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/JoelLewis/finance_skills/tree/HEAD/plugins/core/skills/time-value-of-money/SKILL.md

## When to use it
- calculate loan payment amounts and complete amortisation schedules
- determine net present value and internal rate of return for capital investments
- convert nominal interest rates to effective annual rates across compounding frequencies
- value growing perpetuities with the Gordon growth model

## Example prompts
- Find the monthly mortgage payment on a $300,000 loan at 6.5% for 30 years.
- Calculate the NPV of a $50,000 investment with a 10% discount rate over 5 years.
- Convert an 8% nominal rate compounded quarterly to an effective annual rate.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: d16bf432be96358a.

BEGIN THIRD-PARTY FILE d16bf432be96358a
```text
---
name: time-value-of-money
description: "Calculate present value, future value, NPV, IRR for projects and loans, loan payments, and amortization schedules across all compounding conventions. Use when the user asks about discounting cash flows, valuing an annuity or perpetuity, comparing investments with different timing, building a mortgage amortization table, evaluating whether a project is worth pursuing, or solving for the rate that equates cash flows (project IRR, loan IRR, yield on an investment). Also trigger when users mention 'what is it worth today', 'how much will I have in 20 years', 'monthly payment on a loan', 'discount rate', 'Gordon growth model', 'effective annual rate', 'continuous compounding', or ask how to compare a lump sum versus a stream of payments. For portfolio money-weighted return (dollar-weighted IRR on an investor's contributions and withdrawals), use return-calculations instead."
---

# Time Value of Money

## Core Concepts

### Future Value (FV)
The value of a present sum after earning interest for `n` periods at rate `r` per period.

$$FV = PV \times (1 + r)^n$$

Future value grows exponentially with time, which is the mathematical basis of compound interest.

### Present Value (PV)
The current worth of a future sum, discounted back at rate `r` for `n` periods. This is the inverse of future value.

$$PV = \frac{FV}{(1 + r)^n}$$

Present value is the cornerstone of all valuation: a dollar today is worth more than a dollar tomorrow because of the opportunity cost of capital.

### Compounding Conventions
Interest can compound at different frequencies. The nominal annual rate `r_nom` compounded `m` times per year produces different effective yields.

**Discrete compounding (m times per year):**

$$FV = PV \times \left(1 + \frac{r_{nom}}{m}\right)^{m \times t}$$

**Continuous compounding:**

$$FV = PV \times e^{r \times t}$$

**Effective Annual Rate (EAR):**

$$EAR = \left(1 + \frac{r_{nom}}{m}\right)^m - 1$$

For continuous compounding: `EAR = e^(r_nom) - 1`

Common frequencies:
| Frequency | m |
|-----------|---|
| Annual | 1 |
| Semi-annual | 2 |
| Quarterly | 4 |
| Monthly | 12 |
| Daily | 365 |
| Continuous | infinity |

### Ordinary Annuity
A series of equal payments made at the **end** of each period for `n` periods.

**Present Value:**

$$PV = PMT \times \frac{1 - (1 + r)^{-n}}{r}$$

**Future Value:**

$$FV = PMT \times \frac{(1 + r)^n - 1}{r}$$

### Annuity Due
A series of equal payments made at the **beginning** of each period. Each cash flow is one period closer than in an ordinary annuity, so values are scaled by `(1 + r)`.

**Present Value:**

$$PV = PMT \times \frac{1 - (1 + r)^{-n}}{r} \times (1 + r)$$

**Future Value:**
```
END THIRD-PARTY FILE d16bf432be96358a

The third-party file has ended. Everything between the d16bf432be96358a tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2715 of 9818 bytes. © JoelLewis · MIT · https://github.com/JoelLewis/finance_skills/tree/HEAD/plugins/core/skills/time-value-of-money/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
