Contents
Overview
This document defines the framework for analyzing recurring revenue using ARR (Annual Recurring Revenue) and MRR (Monthly Recurring Revenue).
It standardizes how revenue movements, retention, and performance metrics are calculated and reported across all analytics reports.
The framework also supports flexible reporting configurations such as Order Date / Booked Date-based revenue reporting.
Objectives
- Provide a consistent revenue reporting framework
- Enable accurate tracking of revenue movements
- Support business decision-making across Finance, Sales, and Product teams
- Ensure alignment across all ARR and MRR reports
Key Concepts
ARR vs MRR
- MRR: Monthly recurring revenue
- ARR: Annual recurring revenue
Formula: ARR = MRR × 12
Revenue Movement Framework
Revenue movements represent how recurring revenue changes over time across different dimensions such as customer, subscription, product, or parent account.
Each reporting period (typically monthly) tracks how revenue evolves using standardized movement categories.
Revenue Movement Flow Diagram
This diagram illustrates how revenue transitions from Opening to End of Period through different movement types (New, Expansion, Contraction, and Churn).
It provides a high-level view of how recurring revenue evolves during a reporting period.
This flow applies consistently across all ARR and MRR movement reports regardless of aggregation level.
The following definitions apply to all ARR and MRR movement reports, regardless of aggregation level (Customer, Parent Customer, Subscription, or Product).
Movement Definitions
Opening
The starting revenue (ARR or MRR) at the beginning of the reporting period.
- Represents the revenue carried forward from the previous period
- Equal to the End of Period value from the previous period
- Calculated at the selected aggregation level
New
Revenue from entities (customers, subscriptions, or products) that became active during the period and have not generated any revenue prior to this period.
- Applies only when the entity has no historical revenue before the current period
- The entity may have existed previously, but is considered New only if it has never generated revenue before
Expansion
Increase in revenue from existing entities that had active revenue in the previous period.
Examples
- Subscription upgrades
- Added products or services
- Increased pricing
- Increased usage (if enabled)
Contraction
Decrease in revenue from existing entities that still remain active.
Examples
- Subscription downgrades
- Reduced quantities or pricing
- Decreased usage
- Partial cancellations
Churn
Revenue lost from entities (customers, subscriptions, or products) that had positive revenue in the previous period and have zero revenue in the current period.
- Occurs when there is no remaining active revenue in the current period
- Represents full loss of recurring revenue
End of Period
The final revenue (ARR or MRR) at the end of the reporting period.
It is calculated as:
End of Period = Opening + New + Expansion − Contraction − Churn
- This value becomes the Opening for the next period
Example Scenario (Applicable to All ARR & MRR Reports)
The following example illustrates how revenue movements are calculated across periods.
Scenario
An entity (customer, subscription, or product) has the following revenue changes:
- Month 1: New subscription → 1,000
- Month 2: Upgrade → 1,500
- Month 3: Downgrade → 1,200
- Month 4: Cancellation → 0
Monthly Movement Breakdown
| Month | Opening | New | Expansion | Contraction | Churn | End |
| Month 1 | 0 | 1000 | 0 | 0 | 0 | 1000 |
| Month 2 | 1000 | 0 | 500 | 0 | 0 | 1500 |
| Month 3 | 1500 | 0 | 0 | 300 | 0 | 1200 |
| Month 4 | 1200 | 0 | 0 | 0 | 1200 | 0 |
Key Observations
- Opening always equals previous period’s End
- Expansion reflects growth from existing entities
- Contraction reflects reduction without full loss
- Churn reflects complete loss of revenue
- End of Period is the final calculated value
Standard Calculation Logic
Movement = Current Value – Previous Value
Movement Rules
- New → No previous revenue
- Expansion → Increase from existing customer
- Contraction → Decrease but still active
- Churn → Complete loss of customer revenue
Reporting Dimensions
Reports can be analyzed at different levels:
- Customer
- Parent Customer
- Subscription
- Product
Report Categories
Reports are grouped into categories based on how recurring revenue is analyzed and presented. Each category serves a specific reporting purpose, such as tracking revenue movements, viewing current revenue distribution, or analyzing retention trends.
For a complete list of reports available under each category, refer to the respective report list.
How to Choose the Right Report
| Use Case | Recommended Report |
| Track customer churn | MRR Movements by Customer |
| Executive revenue view | ARR Movements by Parent Customer |
| Product performance | Movements by Product |
| Subscription insights | Movements by Subscription |
| Retention analysis | Cohort Analysis |
| Presentation / dashboards | Waterfall / Stacked Bar |
Filters
All reports support standard report filters, enabling flexible and targeted data analysis. These filters help to refine report outputs based on business needs and reporting dimensions.
The following filters are commonly available across all reports:
| Filter | Criteria | Default Settings | Description |
| Customers Customer Name (Customer ID) | is | any value | Filters results by customer name or customer ID. |
| MRR/ARR Start Date | is | Service Start Date | Determines when MRR/ARR begins appearing in the report. |
| Period Date | is this | Year | Determines when ARR/MRR begins appearing in the report |
| Show Discounted Values (Yes / No) | is | No | Excludes discounted values by default. |
| ARR Movement | is not | 0 | Excludes records with no ARR movement. |
| Parent Customer ID | is | any value | Filters results by parent customer ID. |
| Parent Customer Name | is | any value | Filters results by parent customer name. |
| Subscription ID | is | any value | Filters results by subscription ID. |
| Plan ID | is | any value | Filters results by plan ID. |
| Plan Name | is | any value | Filters results by plan name. |
| Product ID | is | any value | Filters results by product ID. |
| Product Name | is | any value | Filters results by product names this Year” |
| Include Draft Subscriptions | is | No (draft subscriptions are excluded by default) | Filters allow you to control whether draft subscriptions are included in report calculations and results. |
| Line ID | is | any value | Filters results by line-item ID. |
| Include Usage Based Charges (Yes / No) | is | No | Excludes usage-based charges by default. |
| Reporting Currency | is | USD | Displays transactions in the base currency. You can select a different currency to convert all values. Read more in our Filter Report Data article. |
Important Note
The Include Draft Subscriptions filter is available in all ARR Movement, MRR Movement, and MRR by Month reports. The default value is No, which excludes draft subscriptions from revenue calculations and reporting outputs. You can set the filter to Yes to include draft subscriptions in the report results.
MRR/ARR Start Date Options
The MRR/ARR Start Date filter allows you to control how revenue is attributed across reporting periods.
| Option | Description |
| Service Start Date | Revenue starts from the service start date. |
| Billing Start Date | Revenue starts when billing begins. |
| Contract Effective Date (Booked MRR/ARR) | Revenue starts from the contract effective date. |
| Order Date / Booked Date | Revenue starts from when the contract is booked, even if service begins later. |
Behavior
- When Order Date / Booked Date is selected:
- Revenue is reported from the order date period
- Reporting may begin before service start date
- This is intended for management and investor reporting
Example
- Order Date: Nov 15, 2025
-
Service Start: Jan 1, 2026
Selected Option Revenue Start Service Start Date Jan 2026 Order Date / Booked Date Nov 2025
How to Use This Framework
All MRR/ARR reports follow the same:
- Calculation logic
- Movement definitions
- Data sources
Reports differ only by:
- Metric (ARR vs MRR)
- Aggregation level
- Inclusion of discounts
Comments
0 comments
Please sign in to leave a comment.