# Finance functions
URL: https://docs.valsight.ai/finance-functions/
Description: Use this category when you need standard financial calculations such as present value, future value, annuity payments, discounting, and investment appraisal.
Use this category when you need **standard financial calculations** such as present value, future value, annuity payments, discounting, and investment appraisal.

These functions are typically used for cash flow modeling, financing schedules, valuation, and depreciation.

## Start here if you want to:

* **Discount cash flows**, for example with `NPV` or `PV`
* Use an **investment return metric**, for example `IRR`
* Use **annuity-style calculations** such as payments, periods, or rate
* Use **depreciation logic** per period

## Not here if you want to:

* Use rollforward logic, running totals, or projections → see [Rollforward & time series](/rollforward-time-series/)
* Use numeric helpers such as rounding, min/max, logs → see [Math & numeric](/math-numeric/)

## Mental model

* Most finance functions assume a **rate per period** and a **time series of payments or cash flows**
* Results are sensitive to:

  * the time granularity, for example month vs year
  * the sign convention, for example inflows vs outflows
  * whether inputs are complete, since missing values can break calculations

## Common patterns

| Name                            | What it does                                                                    | Formula                                            |
| ------------------------------- | ------------------------------------------------------------------------------- | -------------------------------------------------- |
| Discount a series of cash flows | Use when you want net present value at a discount rate.                         | `NPV('DiscountRate', 'CashFlow')`                  |
| Compute internal rate of return | Use when you want the discount rate that sets `NPV` to zero.                    | `IRR('CashFlow')`                                  |
| Calculate a periodic payment    | Use for annuity payments like loan repayment, leasing, or savings plans.        | `PMT('Rate', 'Periods', 'PresentValue')`           |
| Solve for number of periods     | Use when rate and payment are known and you want the duration.                  | `NPER('Rate', 'Payment', 'PresentValue')`          |
| Solve for the rate              | Use when periods and payments are known and you need the implied interest rate. | `RATE('Periods', 'Payment', 'PresentValue', …)`    |
| Compute present value           | Use when you want to discount an annuity-like stream into a present value.      | `PV('Rate', 'Periods', 'Payment', …)`              |
| Compute future value            | Use when you want to project an annuity-like stream into the future.            | `FV('Rate', 'Periods', 'Payment', …)`              |
| Model depreciation per period   | Use when you want straight-line depreciation over time.                         | `DEPRECIATION('InitialValue', 'DepreciationTime')` |

## Functions in this category

| Function                       | Description                                                                                                            |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| [NPV](/npv/)                   | Calculates net present value from a discount rate and a series of cash flows.                                          |
| [IRR](/irr/)                   | Calculates the internal rate of return.                                                                                |
| [PV](/pv/)                     | Calculates present value given rate, periods, payments, and future value/type.                                         |
| [FV](/fv/)                     | Calculates the future value of a recurring annuity given interest rate, periods, and payments.                         |
| [PMT](/pmt/)                   | Calculates the periodic payment for an investment given rate, periods, and present value.                              |
| [NPER](/nper/)                 | Calculates the number of periods for an investment given rate, payment, and present value.                             |
| [RATE](/rate/)                 | Solves for the interest rate per period of an annuity given periods, payments, present value, and optional parameters. |
| [DEPRECIATION](/depreciation/) | Calculates straight-line depreciation per period from initial value and depreciation time.                             |

## Choosing between similar functions

**NPV vs PV**

* Use `NPV` to discount a cash flow series into a single net present value
* Use `PV` for present value of an annuity-style stream with structured parameters

**IRR vs NPV**

* Use `NPV` when the discount rate is known and you want the value
* Use `IRR` when the value target is `NPV = 0` and you want the implied rate

**PMT vs PV/FV**

* Use `PMT` when you want the periodic payment
* Use `PV` or `FV` when you want present or future value given payment and rate

**NPER vs RATE**

* Use `NPER` when the rate is known and you want the number of periods
* Use `RATE` when the number of periods is known and you want the implied rate

## Pitfalls & troubleshooting

* **Rate scaling errors:** if results are off by a large factor, confirm your rate is per period, for example monthly vs yearly
* **IRR instability:** `IRR` needs cash flows with at least one sign change (mix of inflows and outflows)
* **Missing values:** if results are missing, check whether inputs are missing at the same intersections
* **Too much dimensionality:** if cash flow nodes have extra dimensions such as Product or Region, validate one representative slice first before rolling up
* **Depreciation timing mismatch:** if depreciation looks shifted, confirm that depreciation time aligns with your project’s time granularity

## Related

* [Math & numeric](/math-numeric/): rounding and helpers often used around finance results
* [Rollforward & time series](/rollforward-time-series/): project cash flows and build time-based schedules
* [Troubleshooting guide](/troubleshooting-guide/): missing values and unexpected results
* [Function catalog](/function-catalog/): full signatures, parameters, and examples
