Why does data in ChartMogul differ from my billing system?

ChartMogul is a subscription analytics platform — and it calculates metrics differently from your billing system. That's why your MRR, customer counts, and cash flow figures may not match between the two. This article explains the most common causes and shows you how to investigate them.

Read more about how we calculate individual metrics. For a more in-depth analysis, export customer and subscription metric data to CSV to compare them with data exported from your billing system.

Here’s what we cover in this article:

Resources and further reading

Why MRR, customer status, customer count, and cash flow can differ

The MRR, customer status, customer count, or cash flow in your billing system may not always align with what you see in ChartMogul. These differences arise because ChartMogul can classify, process, or calculate data in ways that vary from your billing system. The most common causes are your ChartMogul general data settings, integration source settings, and ChartMogul’s data model.

Global data settings

Time zones

Differences in time zones between your billing system and ChartMogul can affect when MRR changes are reported. For example, if your billing system operates in Pacific Standard Time (PST) and your ChartMogul account is set to Australian Eastern Standard Time (AEST), an invoice issued late in the day in PST may appear as an MRR change on the following day in ChartMogul.

Churn recognition

ChartMogul uses your churn recognition setting to decide when a cancelled subscription stops contributing to MRR. This may differ from how your billing system handles cancellations, which can lead to differences in MRR calculations.

Example

Let’s assume your ChartMogul account is currently set to recognize churn at the end of the final subscription service period.

In this case, ChartMogul keeps MRR active until the subscription’s service period ends, even if it’s canceled earlier in your billing system.

  • Use case - A customer purchases an annual subscription on June 1, 2024 and cancels in your billing system on August 16, 2024.
  • In ChartMogul - They remain active with MRR until June 1, 2025.
  • In your billing system - They churn immediately on August 16, 2024.

Changing the setting to recognize churn when a subscription is marked as canceled in the billing system would reflect churn on August 16, 2024.

Currencies

ChartMogul converts invoices billed in foreign currencies to your account’s primary currency. Read more about how we handle multiple currencies.

Integration source settings

Invoice handling

Your Invoice Handling Settings control when a customer’s subscription becomes Active in ChartMogul and, therefore, when the subscription starts contributing to MRR. The activation timing may not always match your billing system.

In addition, your configuration of the written-off, voided, uncollectible, or fully refunded invoice setting can create differences between the two systems.

 Screenshot of invoice handling settings, showing both automatic and manual collection methods.

Stripe and Chargebee sources have additional settings relating to the handling of pending invoice line items. Settings for manual collection handling are available for Stripe, Recurly, Google Sheets, third-party and custom sources.

Example

Let’s assume your ChartMogul invoice handling is set to create/update MRR when an invoice is fully paid.

  • Use case -  An enterprise customer starts an annual subscription on September 18, but doesn’t pay until October 1.

    How it works - Customers with open invoices don’t contribute to MRR until payment is received.

  • In ChartMogul - MRR is updated retroactively on October 1.
  • In your billing system - In most leading billing platforms such as Stripe, Recurly, and Chargebee, MRR is typically recognized at the moment a subscription is created, even if the invoice hasn’t been issued or paid yet.

Changing the setting to update MRR when the invoice is issued would start MRR on September 18. 

Data model 

One time payments

Some billing systems include one-time (i.e., non-recurring) payments when calculating MRR. ChartMogul does not include one-time payments when calculating MRR, as they are not recurring. View these payments in Non-Recurring Cash Flow.

Proration

Proration — adjusting a charge when a subscription changes mid-period — is handled differently across billing systems. ChartMogul calculates MRR from each subscription line item using a unique formula, which forms the basis of the MRR history for that subscription.

Discounts

ChartMogul deducts discounts before calculating MRR when this data is available.

Taxes

Depending on which integration you use, ChartMogul may include or exclude taxes in your MRR. Read more about how we handle Sales tax/VAT in ChartMogul.  

Customer status

The way customers are classified in your billing system may differ from how ChartMogul categorizes them based on subscription activity and the resulting subscriber status.

In ChartMogul, a customer status falls into four lead statuses or three subscriber statuses:

  • Active Subscriber: The customer has at least one paid or free subscription and no past-due subscriptions.
  • New Lead: The customer is on a free trial, has a 100% discount, or has only made one-time payments. Depending on your sales team’s workflow, a new lead may transition into a working, qualified, or unqualified lead.
  • Past-due Subscriber: A customer with overdue payments who continues to contribute to metrics. A subscription is considered past due if it has an open invoice (unpaid or partially paid) past its due date, or if the last service period has ended without renewal.
  • Cancelled Subscriber: The exact timing of this change depends on your churn recognition setting. Depending on your  past-due handling setting, ChartMogul may automatically set a customer’s status to cancelled.

Cash flow

Learn how ChartMogul calculates Net Cash Flow and Gross Cash Flow, including the treatment of refunds, one-time charges and credit card or transaction fees

Workflows 

Excluding customers from metrics

Customers excluded using Exclude from metrics still appear on your customer list as leads, but don't count toward your metrics.

MRR data editing

ChartMogul enables you to merge customers, connect subscriptions and edit the MRR of a customer to help you clean any duplicate data or billing errors. 

Automations

Automations can auto-merge duplicate customer records, which affects your customer count. To find merged customers, filter by the merged-customer tag.

Manually added subscriptions

Subscriptions can be added manually to your account for data that may be invoiced outside of your billing system. 

Bulk editing customers from the customer list

The lead status and trial dates of customers can be changed in bulk directly from the customer list. 

Editing invoices, invoice line items, or transactions in your data source

Billing data can be added directly from within a source using data tables. 

Understanding differences between MRR and Revenue

MRR and revenue are closely related, but they measure different things:

  • MRR (Monthly Recurring Revenue): The predictable subscription revenue, normalized to a 30.45-day month.
  • Revenue: The actual income recorded in your books, either as cash received (cash basis) or earned income (accrual basis).

Example

Your company signs a customer to a $1,200 annual subscription in January.

  • MRR: You would record $100 MRR each month ($1,200 ÷ 12). This shows the predictable, recurring contribution of that customer to your subscription business.
  • Revenue: If you’re on an accrual basis, you’ll also record $100 in revenue each month. But if you’re on a cash basis and the customer pays the full $1,200 upfront, you’d record $1,200 revenue in January and $0 for the following months.

Using ChartMogul’s interface to identify import issues

Data import issues can cause discrepancies between ChartMogul and your billing system. Invalid formats or unsupported fields in customer records, invoices, invoice line items, or transactions will show a ! in the affected row with an error message.

If you’re an Admin, you can identify such problems by selecting a source and looking for rows with the statuses Invalid input or Processing failed. You can also track items that are still being processed by checking the statuses Queued, Processing or Deleting.

Screenshot of the Customers tab in a Stripe source with the import status drop-down open. The options are: Invalid input, Queued, Processing, Processed, Processing failed and Deleting.

Using filters to audit your metrics

Filters let you audit your subscription metrics by narrowing down to specific groups of customers. You can combine multiple filters to drill deeper into your data. Here are the most useful filters for investigating discrepancies:

Filtering by customer status

Use the Customer status filter to segment customers by their status in ChartMogul. Only customers with the status Active Subscriber or Past-due Subscriber contribute to Monthly Recurring Revenue (MRR) and Annual Recurring Revenue (ARR).

Export customers with a specific status to a CSV file and compare it to data in your integration.

Filtering by customer

If your billing system shows a different MRR than ChartMogul, drill down by filtering to a single customer. Reviewing their subscription charts and MRR movements will help identify whether differences are due to billing frequency, missed payments, or one-time charges. 

Filtering by source

If you’ve connected multiple billing systems, the Source filter lets you compare how ChartMogul calculates analytics for each one. Keep in mind that billing systems can handle customers differently, which may lead to variations in how ChartMogul interprets them.

Filtering by Subscriber since

The Subscriber since filter allows you to focus on specific cohorts of customers based on when they first subscribed.

Filtering by tags or custom attributes

Using tags or custom attributes allows you to better understand the behavior and status of specific customer groups. Some tags are automatically added by ChartMogul to help you audit your data, such as auto-churned-delinquent-subscription , merged-customer,and deleted_customer_in_stripe tags. 

How to audit your data with pre-built reports

These reports use some of the filters we discussed to help you identify customers with mismatched MRR to determine the root cause.  

Still need help? Contact Us Contact Us