Why does data in ChartMogul differ from my billing system?
You may notice differences between the customers and metrics in your billing system and ChartMogul due to variations in how each system classifies customers and calculates metrics.
In this article, we explore these differences in-depth and provide resources to help you understand what may be happening with your data behind the scenes.
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:
- Differences in MRR, customer status, customer count, and cash flow
- Understanding differences between MRR and Revenue
- Using ChartMogul’s interface to identify import issues
- Using filters to audit your metrics
- Auditing reports to get you started
Resources and further reading:
- Getting started with importing data for Subscription Analytics
- Getting started with importing data for ChartMogul CRM
- Configuring general data settings
- Configuring Subscription Analytics settings
- Customer and subscription statuses
Differences in MRR, customer status, customer count, and cash flow
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 recognizes churn as per your churn recognition setting. 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.

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
ChartMogul calculates MRR from each subscription line item using a unique formula. This forms the basis of the MRR history of a 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: The customer has overdue payments but still contributes to metrics.
We have updated the way ChartMogul recognizes past-due subscriptions and customers. The change is rolling out gradually to all accounts.
The new logic recognizes a subscription as past due if one of the following conditions is met:
- There’s an open invoice (unpaid or partially paid) with a due date in the past.
- The subscription hasn’t been renewed (meaning the last service period’s end is in the past).
- 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 that were excluded via this feature will still show up on your customer list as leads but will be excluded from 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
When enabled, an automation can do things like auto merge duplicate customer records which may impact your customer count. You can identify such customers by filtering for 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
Discrepancies between ChartMogul and your billing system may occur due to issues during data import.
For example, some data may be in an invalid format or use fields not supported by ChartMogul. These issues can arise in customer records, invoices, invoice line items, or transactions. An invalid input will show a ! in the impacted 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.

Using filters to audit your metrics
Filters are a powerful way to audit your subscription metrics in ChartMogul. They help you see how ChartMogul processes and interprets specific groups of customers. You can also combine multiple filters to drill deeper into your data. Below are some common ways to use filters:
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).
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.
Auditing reports to get you started
These reports use some of the filters we discussed to help you identify customers with mismatched MRR to determine the root cause.
- Recently churned customers → Do churn dates match your billing system?
- Customers with MRR > 1 but no net payments → Do they align across systems?
- Customers with lead status and net payments → Are they active in your billing system?
- Top MRR customers → Do your highest-MRR customers match across systems?