How do ChartMogul and Stripe handle messy billing data?
Stripe's analytics report what your Stripe account records, with a few settings for discounts, churn timing, and when subscribers count as active. ChartMogul adds rules for past-due customers and invoices, record-level corrections that leave Stripe untouched, customer merging, and customers billed outside Stripe.
Customers billed outside Stripe. If some customers are invoiced manually, pay through the App Store or Google Play, or sit in another billing system, Stripe's analytics can't see them, so its MRR, churn, and customer counts describe only part of the business. ChartMogul connects to more than 30 billing systems and combines them into one set of metrics.
Data settings. Both tools let you choose whether canceled subscriptions count as churn immediately or at the end of the billing period. Stripe also lets you choose whether recurring and one-time discounts reduce MRR, and whether a subscriber counts as active at the start of the subscription or at the first payment. Past-due subscriptions stay in Stripe's MRR until they are canceled or marked unpaid, which depends on your retry settings. ChartMogul also lets you choose whether past-due subscriptions auto-churn and after how many days, whether MRR is reported when an invoice is issued, partially paid, or fully paid, and whether voided, refunded, and written-off invoices are excluded.
Data editing. Stripe is built to invoice customers and collect payment, and its records often carry decisions that made sense for billing but not for reporting. Stripe calculates MRR from active subscriptions, so a customer whose subscription is canceled and who is then billed by one-time invoice, such as an annual renewal invoiced by hand, shows up in Stripe as churned, with their revenue missing from its reports. ChartMogul lets you correct records at two levels: adjust a subscription's MRR directly, or edit, add, or disable invoices, line items, and transactions, such as reclassifying that one-time invoice as recurring. Every change has an update history, and nothing is written back to Stripe.
Historical data. In Stripe's analytics, the only way to change a number is to change the billing record behind it, and Stripe deliberately restricts that for past records. Finalized invoices are locked so they're retained as issued for tax compliance, paid and voided invoices can't be revised at all, and you can't retroactively change a subscription's service period. So errors in your billing history stay in Stripe's reports. ChartMogul lets you change any subscription data for reporting, including past invoices, line items, and service periods, while Stripe's records stay exactly as issued.
Duplicate customers. A company that signs up twice, pays from two cards, or has separate customers for separate teams shows up in Stripe as several subscribers. ChartMogul detects duplicates on company name, domain, external ID, email, primary contact email, or custom attributes, and merges them manually or automatically, so customer counts, ARPA, and churn reflect companies rather than Stripe records.
Plan groups. A Stripe account that has iterated on pricing can hold many products and prices for one tier. ChartMogul plan groups combine them into one group that every report can use. Stripe lets you filter and group some charts by product or price, and not when you process subscriptions in more than one currency.
How do ChartMogul and Stripe reports compare?
Both cover MRR, churn, LTV, ARPU, trial conversion, and cohort retention, with drill-downs. They differ in how cohorts and trial conversion are calculated, how free subscribers are counted, and how far you can segment the results.
Cohorts. Stripe's retention by cohort shows subscriber retention for each month following the month a customer first subscribed, and can be viewed by subscribers or by MRR. ChartMogul has eight cohort reports, covering subscriber, MRR, and quantity retention and churn, plus trial and non-subscription conversion, at daily, weekly, monthly, quarterly, or annual granularity, filtered by plan, region, or your own custom attributes, and clicking any cell lists the customers behind it.
Trial conversion. Stripe's trial conversion rate covers a rolling 30-day window, and Stripe's documentation notes it can exceed 100% when trials convert after their trial period ends. ChartMogul's trial-to-paid conversion cohorts attribute each conversion to the month the trial started, so a trial that starts in March and converts in September counts toward March's conversion rate, which can never pass 100%.
Free and paid subscribers. ChartMogul tracks free and paid subscribers as separate subscription types, reports churn both across all subscribers and for paid subscribers only, and shows how many customers upgraded from free to paid in each period. ChartMogul.js, a snippet added to your web app, can also create records for free users who never appear in a billing system. Stripe's documentation defines an active subscriber as a customer with non-zero MRR, so free-plan users don't count as subscribers, and its new subscriber count excludes free plans.
Segmentation and enrichment. Stripe lets you filter and group some charts, such as MRR growth and churned revenue, by product or price. ChartMogul segments every metric by plan, region, and custom attributes, including HubSpot properties and ChartMogul's AI-powered enrichment, such as a customer's industry, headcount, and target market, and saves those segments so the whole team works from the same views. Stripe's billing analytics don't segment metrics by customer attributes or by data from other tools, such as a CRM.
Custom analysis. Stripe Sigma, a paid add-on, puts your Stripe data in an SQL editor in the Dashboard, with an AI assistant that writes queries from a natural-language prompt. It can also connect to an AI agent over MCP, and its Query Run API returns query results to your own systems. ChartMogul has no built-in SQL editor. Custom metrics come from its MCP server, API, or warehouse sync, calculated on data that's already been cleaned.
Where can you send ChartMogul and Stripe data?
Stripe sends its raw data to a warehouse through Data Pipeline. ChartMogul sends calculated subscription metrics, along with normalized billing data, to your warehouse, HubSpot, and AI assistants.
Data warehouses. Stripe's Data Pipeline sends your Stripe data to Snowflake, Amazon Redshift, Databricks, or BigQuery, or to cloud storage, refreshed every 3 hours, and your data team builds subscription metrics from it. ChartMogul syncs to Snowflake, BigQuery, and Redshift, plus Amazon S3, Azure Blob Storage, and Google Cloud Storage, on a daily, weekly, or monthly schedule. It sends calculated data, such as MRR and CMRR movements, already reflecting your settings, merges, and corrections, and normalized source data, including invoices, transactions, subscription events, plans, and customers with their attributes.
HubSpot. ChartMogul writes cleaned subscription metrics to the matching HubSpot company record daily, matched on company name, domain, external ID, email, or any custom property, and imports HubSpot properties hourly so you can segment revenue by them.
MCP. Stripe's MCP server gives an AI assistant access to your Stripe customers, subscriptions, invoices, and payments, along with Stripe's documentation. Sigma can also connect an agent over MCP, to run SQL on the same Stripe data. Either way, the assistant works from raw billing data, including any duplicate customers, past-due subscriptions that were never canceled, or customers billed by one-time invoice, and recalculates metrics each time you ask. ChartMogul belongs between the two: Stripe data flows into ChartMogul, where it's normalized and corrected, and ChartMogul's remote MCP server, with more than 80 read-only tools, lets Claude and ChatGPT answer questions from metrics that are already clean.
How do the AI features in ChartMogul and Stripe compare?
Stripe's AI help for analytics sits in Sigma, where an assistant turns a question into SQL over your Stripe data. ChartMogul AI answers open-ended questions about your revenue directly, drawing on billing data, HubSpot properties, connected email, and product activity. ChartMogul AI can also build a chart from a description, or analyze an uploaded file alongside your subscription data.
ChartMogul connects a mailbox over Gmail, Outlook, or IMAP and logs customer correspondence against the right account, and ChartMogul.js records when each user was last seen in your app. So when you ask which customers are at risk, the answer weighs each customer's MRR trend alongside what they've been saying and whether their team is still logging in.
Can you automate actions when a subscription changes?
Both can, but they automate different things. Stripe Billing automations run on billing events inside Stripe, such as a custom dunning flow, notifying your team when a high-value invoice is overdue, or emailing a confirmation when a subscription is canceled.
ChartMogul's workflows act on the customer relationship. When a customer schedules a cancellation, the account manager can be assigned a task and the customer can receive an email while the decision is still fresh. When an account's MRR crosses a threshold, it can be assigned to a different account manager automatically. These are only two examples. Workflows can start from many other changes to a customer's subscription, from a new trial to a subscription going past due, and each can combine tasks, emails, and email sequences to match how your team works.
How do you add ChartMogul to Stripe?
ChartMogul connects to your Stripe account as a billing source and imports its full history of customers, subscriptions, invoices, and transactions, so your MRR timeline reaches back to the first invoice.
To confirm the numbers line up, compare Stripe's MRR per subscriber per month report with ChartMogul's MRR per customer per month export. Expect some differences, usually from how past-due subscriptions, discounts, trials, and scheduled cancellations are counted, and from Stripe customers that ChartMogul merges into one. For example, if Stripe is set to count churn at cancellation, a customer who schedules a cancellation drops out of Stripe's MRR right away and may not appear in its new subscriber count at all, while ChartMogul, recognizing churn at the end of the paid period, counts them until that period ends. The ChartMogul team will help identify and explain any discrepancies.
What does Stripe offer that ChartMogul doesn't?
A few adjacent products. Stripe handles failed payments directly, with Smart Retries and automated recovery emails, and offers Revenue Recognition for accrual accounting. Sigma, a paid add-on, adds SQL over all your Stripe data.
None of these change what Stripe's subscription metrics are built on. The analytics still report what your Stripe account records, with no way to correct those records for reporting, merge duplicate customers, or include customers billed outside Stripe.