Managing Recurring Revenue Accounting More Efficiently

If you’re in the business of selling widgets, allocating revenue is pretty straightforward: you sell a widget, your customer pays you, and you book the revenue. But in other businesses, allocating revenue is much more complicated. Consider, for example, a Software-as-a-Service (SaaS) company: customers often enter into service agreements and pay upfront for access to services rendered over a specific amount of time, separating the moment you get paid from the actual delivery of service. To guarantee efficiency of revenue allocation in the typical SaaS business model, companies must know how much money is coming in and what to do with it when it arrives.

Managing Recurring Revenue

Recurring revenue is typically calculated on either a monthly basis (Monthly Recurring Revenue, or MRR) or an annual basis (Annual Recurring Revenue, or ARR). These figures provide data on the incoming revenue occurring for a given reporting period, minus one-time fees or costs related to usage or consumption. Broadly, these calculations normalize revenue from each of a company’s pricing plans and billing periods to provide a single number that can be tracked over time. These metrics are valuable data points to have on hand when reporting business performance to investors, management teams, or other key stakeholders.

For practical purposes, most companies stick to measuring MRR as a performance metric while opting to measure ARR as an indicator of growth momentum.

Calculating Monthly Recurring Revenue

To understand MRR, companies must perform several calculations:

  1. Committed Monthly Recurring Revenue (CMRR), which is found by multiplying the service’s monthly subscription price by the difference between the total number of paying accounts each month and the number of canceled accounts each month. This provides information on revenue gained and lost for all customers.
  2. After finding CMRR, companies can calculate their Average Revenue Per User (ARPU). This calculation involves dividing CMRR by total number of subscribers. This tells companies the average revenue gained from each customer per month.
  3. With this information, it’s simple to calculate MRR. Just multiply the total number of paying customers by ARPU to get MRR—the normalized amount of recurring monthly revenue taken in by the company.

Applying Recurring Revenue

Why does MRR matter? For many companies, MRR is a key value for various performance reports. Efficient management of recurring revenue means understanding these calculations and how the information can be applied for performance assessment from month to month. Growth rates, Customer Lifetime Value assessments, and the impact of customer churn can all be easily assessed when data is normalized through recurring revenue calculations. Otherwise, you risk misinterpreting or over-reacting to particular data points.

But aside from reporting, efficient allocation of the above recurring revenue opens new opportunities for businesses looking to scale. With a clear understanding of projected revenue streams each month, revenue can be allocated to key operational areas most suited to drive growth:

  • Building out sales teams to expand the company’s reach and generate new leads
  • Supporting more personalized and in-depth customer relationships, providing new opportunities for upselling or cross-selling
  • Hiring new staff to support the predictable needs of the recurring revenue business model

In short, correct accounting of recurring revenue is critical to accurately understanding the performance of your business and to making smart decisions about how to drive future growth.

Revenue Recognition Errors That Ruin Your IPO/VC Investment

_linkedin_partner_id = "1168850"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = ""; s.parentNode.insertBefore(b, s);})();