> For the complete documentation index, see [llms.txt](https://docs.rillet.com/EjmEP4KZ9BVp9j2ho4Mh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rillet.com/EjmEP4KZ9BVp9j2ho4Mh/reporting/metrics/metrics-definitions/recurring-revenue-arr-mrr.md).

# Recurring Revenue (ARR/MRR)

Recurring revenue represents the predictable income your business generates from customers on a monthly or annual basis, a key indicator of growth, customer retention, and overall financial performance for subscription and SaaS companies. In **Rillet**, the **MRR / ARR** report tracks how recurring revenue changes over time based on your contracts, invoices, credit memos, and overrides, using consistent calculation rules to identify trends such as expansion, churn, and reactivation.

### Understand How ARR/MRR Is Calculated in Rillet

To calculate recurring revenue, **Rillet** uses line items from contracts, invoices, credit memos, and overrides, whether created directly in Rillet or synced from external systems such as Stripe or internal billing tools, evaluating each one to determine whether it contributes to recurring revenue.

Three key inputs are used for each line item:

| Input              | Description                                                                                 |
| ------------------ | ------------------------------------------------------------------------------------------- |
| **Product Type**   | The product must have **Count to MRR/ARR** enabled.                                         |
| **Product Dates**  | The start and end dates defined on the line item from contracts, invoices, or credit memos. |
| **Product Amount** | The monetary value of the line item.                                                        |

<figure><img src="https://612265232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNpXFVFZpTQck3vIrjmHB%2Fuploads%2FrHSUOfZTtmHBaKJcSYq8%2Fimage.png?alt=media&amp;token=8195fe24-9a6e-430d-9760-feff6c82746c" alt=""><figcaption></figcaption></figure>

Using these inputs, **Rillet** applies the following formulas:

| Metric  | Formula                                     |
| ------- | ------------------------------------------- |
| **MRR** | `Line item value ÷ number of months`        |
| **ARR** | `(Line item value ÷ number of months) × 12` |

<figure><img src="https://612265232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNpXFVFZpTQck3vIrjmHB%2Fuploads%2FGmp7R7K4R83meXomG3A7%2Fimage.png?alt=media&amp;token=c8cf8d5e-53c7-46ce-a1ce-2ca4fdd0f2d6" alt=""><figcaption></figcaption></figure>

You can apply overrides to existing invoices or create standalone overrides in **ARR Waterfall** > **Rollforward View**.

<figure><img src="https://612265232-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNpXFVFZpTQck3vIrjmHB%2Fuploads%2Fq42oduNixdIFMfCpIaZf%2Fimage.png?alt=media&amp;token=3a542998-2d60-4e2c-a870-95c563a3e679" alt=""><figcaption></figcaption></figure>

### Understand Types of ARR and MRR Changes

To track changes in recurring revenue, **Rillet** compares each customer's recurring revenue at the end of a month with the previous month, grouping the changes into the categories below so you can quickly understand how your revenue is evolving:

| Category         | Applies When                                                                                                                                                                                                                                                                                                                                                              |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **New Sales**    | A customer begins generating recurring revenue for the first time: no previous recurring revenue in Rillet, prior month recurring revenue equals $0, and current month recurring revenue is greater than $0.                                                                                                                                                              |
| **Churn**        | An active customer stops generating recurring revenue: prior month MRR is greater than $0, and current month MRR equals $0.                                                                                                                                                                                                                                               |
| **Expansion**    | An existing customer increases their recurring revenue compared to the previous month: prior month recurring revenue is greater than $0, and current month recurring revenue is greater than the prior month.                                                                                                                                                             |
| **Contraction**  | An existing customer continues generating recurring revenue but at a lower amount than before: prior month recurring revenue is greater than $0, current month recurring revenue is greater than $0, and current month recurring revenue is less than the prior month.                                                                                                    |
| **Reactivation** | A customer who previously had no recurring revenue becomes active again: the customer previously existed in Rillet, prior month recurring revenue equals $0, and current month recurring revenue is greater than $0.                                                                                                                                                      |
| **Usage Impact** | Changes in recurring revenue driven by variable or usage-based subscriptions, such as metered billing. Calculated separately as the current month's usage overage minus the prior month's usage overage, since usage revenue can fluctuate significantly month to month. Usage overage is the portion of usage-product revenue that exceeds any minimum commitment.       |
| **FX Impact**    | Changes in recurring revenue caused by exchange rate fluctuations on multi-currency contracts, kept separate so you can distinguish true revenue changes from currency movement. See [**Multi-Currency**](/EjmEP4KZ9BVp9j2ho4Mh/integrations/crm/salesforce-integration/salesforce-managed-package-integration-overview/enable-multi-currency-in-salesforce.md) for more. |

### Understand Special Rules for Recurring Revenue

To keep recurring revenue classifications accurate, **Rillet** applies the following additional rules:

| Rule                            | Description                                                                                                                                                                                                                                                           |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Stripe Usage Invoices**       | When importing usage-based invoices from Stripe, recurring revenue impact is limited to the month of usage to prevent retroactive changes to prior months.                                                                                                            |
| **Continuing Revenue**          | If recurring revenue exists on any day within a month and the following month still has recurring revenue, changes are classified as expansion or contraction instead of churn and reactivation, preventing short contract gaps from being treated as customer churn. |
| **Contract Termination Option** | You can enable a configuration option to classify churn only when a contract has been terminated, useful for open-ended, usage-only contracts that invoice monthly in arrears.                                                                                        |

Together, these rules and classifications keep recurring revenue reporting consistent across contracts, invoices, credit memos, and overrides.

### See Also

To learn more about recurring revenue and financial metrics in **Rillet**, review these articles:

* [**Understand How ARR Is Calculated**](/EjmEP4KZ9BVp9j2ho4Mh/reporting/metrics/metrics-definitions/understand-how-arr-is-calculated.md)
* [**ARR Overrides**](/EjmEP4KZ9BVp9j2ho4Mh/reporting/metrics/metrics-definitions/arr-overrides.md)
* [**Net Revenue Retention**](/EjmEP4KZ9BVp9j2ho4Mh/reporting/metrics/metric-reports/net-revenue-retention.md)
* [**Cash Runway**](/EjmEP4KZ9BVp9j2ho4Mh/reporting/metrics/metrics-definitions/cash-runway.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rillet.com/EjmEP4KZ9BVp9j2ho4Mh/reporting/metrics/metrics-definitions/recurring-revenue-arr-mrr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
