# RATE
URL: https://docs.valsight.ai/rate/
Description: Solves for the interest rate per period of an annuity, given the number of periods, the periodic payment, and the present value.
**Category:** [Finance functions](/finance-functions/)

## Overview

The **RATE** function **returns the interest rate per period of an annuity** based on a number of periods, the amount of payments per period, a present value, a future value, a value indicating whether payments are due at the beginning or the end of the period (type) and a guess.

Use this function when the number of periods and payments are known and you want to solve for the implied interest rate.

## Syntax

`RATE('Nper', 'Pmt', 'Pv' [, 'Fv' [, "Type" [, Guess]]])`

## Parameters

| Parameter | Description                                                                                                                                                       | Type           | Required | Default |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------- | ------- |
| **Nper**  | Number of periods: the number of payments to be made.                                                                                                             | Node reference | Yes      | --      |
| **Pmt**   | Payment per period: the amount of each payment made. Payments/costs should ideally be entered as a negative number, for example `-500`, but this is not required. | Node reference | Yes      | --      |
| **Pv**    | Present value: the current value of the annuity.                                                                                                                  | Node reference | Yes      | --      |
| **Fv**    | Future value remaining after the final payment has been made.                                                                                                     | Node reference | No       | `0`     |
| **Type**  | Indicates when payments are due (`1` = payment at beginning of period / annuity due, `0` = payment at end of period / ordinary annuity).                          | Keyword        | No       | `0`     |
| **Guess** | A first guess for what the rate will be.                                                                                                                          | Number         | No       | `10%`   |

## Watch out

* `'Pv'` is the leading input node: its levels define the result's shape, and every other input is aligned to it.
* Every other input may use only levels that also exist on `'Pv'`. It may use fewer levels, but not a level that `'Pv'` does not have.
* On the levels it shares with `'Pv'`, each input must cover the same level values, otherwise the rows do not line up and the function returns an error.
* Each input can also be a single number.
* Giving every input the same levels as `'Pv'` skips an internal alignment step and improves performance.
* `Guess` and the result are entered and returned as decimals, for example `10% = 0.1`.
* The rate is solved iteratively (up to 150 iterations). If it cannot converge, the function returns an error; a `Guess` closer to the expected rate helps it converge.

## Example

### Solve for the implied interest rate

This example shows a standard annuity setup with a fixed number of periods, a recurring payment, and a present value.
It returns the implied interest rate per period for the setup.

| Parameter                                                                                                     | Value |
| ------------------------------------------------------------------------------------------------------------- | ----- |
| `Nper`  (Number of Periods)                                                                                   | 60    |
| `Pmt`  (Payment per Period - Amount)                                                                          | -100  |
| `Pv`  (Present Value)                                                                                         | 5000  |
| `Fv`  (Future Value)                                                                                          | 0     |
| `Type`<br>Payment at Beginning of Period (Annuity Due) = 1<br>Payment at End of Period (Ordinary Annuity) = 0 | 0     |
| Guess                                                                                                         | 0.1   |

**Formula:** `RATE('Nper', 'Pmt', 'Pv', 'Fv', "Type", Guess)`

| RATE Result |
| ----------- |
| 0.0062      |

## Related

| Function       | When to use instead                                                                                                      |
| -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| [NPER](/nper/) | When the rate is known and you want to calculate how many periods are needed instead.                                    |
| [IRR](/irr/)   | When you need the break-even discount rate for a cash flow series instead of the implied rate of an annuity-style setup. |
