Why we switched from ChartMogul to Causal for ARR reporting

We'd been customers of ChartMogul from when we first started going to market in 2021, but recently reached a tipping point where it stopped being worth it for us. This post outlines the different stages we went through to get here, and why we decided to switch to Causal for our ARR reporting.
Why we switched from ChartMogul to Causal for ARR reporting

We'd been customers of ChartMogul from when we first started going to market in 2021, but recently reached the point of outgrowing it.

This post outlines the different stages we went through to get here, and why we decided to switch to Causal for our ARR reporting.

Enjoy!

Revenue maturity

As your company grows, you’ll go through different stages of “revenue maturity”:

Stage 1: Getting your first customers

In the beginning you’re just trying to get your first customer. Once you manage that, you go after the next one, and so on. All the while you’re doing whatever it takes to close the deal — custom pricing, custom payment terms, you name it.

At this stage, you don’t need sophisticated reporting — Stripe’s dashboard can tell you your ARR, and the nuances don’t really matter.

Stage 2: Doubling down

As you get to $500k–$1m ARR, your revenue data starts to become more meaningful. You probably have 50–100 customers, which is enough to start pulling out different segments and spotting trends. You also have enough data to start understanding what churn and expansion look like.

This is where Stripe reporting hits a ceiling — Stripe won’t let you see your SaaS metrics broken down by different products or segments, it won’t tell you anything about your Net Dollar Retention (NDR), and without this information, you risk flying blind as you decide where to focus your team’s energy.

This is where SaaS metrics tools come in — they connect to Stripe, and pull out all the different SaaS metrics that you need to know. Examples: ChartMogul, Profitwell, Baremetrics.

Stage 3: Scaling up

Somewhere between $1m–$5m ARR, you’ll have 100s of customers and the nuances of ARR calculation and your Stripe setup start to meaningfully impact your numbers:

  • Should past ARR be affected by refunds?
  • Does a customer churn if their payments fail, or if they request a cancellation?
  • What happens to one-off payments for services?

This is where out-of-the-box SaaS metrics tools stop scaling:

  1. They don’t offer the customisability that you need to tailor your metrics for your business
  2. They don’t plug into the rest of your customer data to let you slice and dice by different properties
  3. They don’t let you create custom charts and tables to visualise your metrics in the format that your team want to see

At this point, you’ll need to go custom: you’ll have to feed your Stripe data into your data warehouse, set up complex SQL queries to pull things out the way you want, and feed it into a spreadsheet or BI tool. And you’ll probably need a data team to do that for you.

At Causal, we recently moved from Stage 2 → Stage 3. Here’s the “inside baseball” on why we switched and what our new ARR reporting setup looks like in Causal.

Why ChartMogul wasn’t enough for us

As we started to get more customers, particularly on our month-to-month self-serve plan, ChartMogul’s limitations became a problem for 4 main reasons:

  1. Custom segments
  2. Custom calculations
  3. Custom visualisations
  4. Pricing model

Custom segments

ChartMogul has done an incredible job of covering all the metrics that you could possibly want to see. Where it falls short is letting you break these metrics down in the way that’s most useful for your business.

ChartMogul supports breakdowns by Plan. If your company is anything like ours, you’ll quickly end up with dozens of plans as you iterate on your pricing, allow all sorts of contract lengths (e.g. monthly vs annual). To deal with this, ChartMogul helpfully lets you create Plan Groups.

For example, you can put all 20 of your self-serve Stripe plans into a “Self-serve” group and your enterprise plans into an “Enterprise” plan group, and then see your MRR breakdown by “Self-serve” vs “Enterprise”. This is useful, but keeping Plan Groups up-to-date as your Stripe setup evolves is very cumbersome and error-prone.

In reality, there are lots of other ways you might want to slice your revenue data:

  1. By source — what proportion of my ARR comes from channel partners?
  2. By segment — what proportion of my ARR comes from VC-backed companies?
  3. By behaviour — what proportion of my ARR comes from users that have connect to QuickBooks?

To get these breakdowns, you need to be able to join your Stripe data with the rest of your customer data (e.g. “source”, “segment”), and you’ll need a tool that lets you slice and dice in a fully flexible way. ChartMogul has a concept of 'custom attributes' but these attributes need to be set manually, which is time-consuming and easy to mess up.

On top of all this, it's unlikely that your Stripe data will be perfectly clean, and there will be cases where you have multiple Stripe IDs for the same customer. Like with custom attributes, ChartMogul has functionality for 'merging customers' but this operation can't be undone (easy to mess up) and ChartMogul shouldn't be the source of truth for these customer mappings, since you'll want to use them elsewhere in your reporting as well.

Example: Partnerships ARR

We recently started partnering with fractional CFO firms, who use Causal with their clients. Given that we were spending a lot of internal resources on this programme, it was important to understand how much it contributes to our ARR, as well as see which fractional CFO partners were driving the most clients (and therefore, revenue) to Causal. This required joining our Stripe data to extra fields from our data warehouse (Snowflake), which wasn't possible in ChartMogul.

Custom calculations

To make our ARR data actionable, we needed to be able to combine it with other sources and metrics:

  • Customer acquisition cost (CAC): to calculate this, we needed to divide ‘New Customers’ by our sales and marketing spend from QuickBooks.
  • Burn Multiple: Net Burn (from QuickBooks) divided by Net New ARR (from Stripe)
  • CAC payback period: CAC (as above) divided by ACV (from Stripe)

Custom visualisations

Once your numbers are calculated, you need to visualise them. ChartMogul does an okay job at this — for each metric, they’ve picked a sensible chart type. But if you want to present your numbers in your own way, and inevitably you will want to do this, then you’ll need to export your data into a spreadsheet and set up your custom charts.

Price scaling

Most ARR reporting tools charge based on your revenue — the more money you make, the more you pay them. This starts to get steep as you get close to $5m ARR and beyond, where you’ll be paying $1,000+ each month to get your metrics:

$1m ARR $5m ARR $12m ARR Notes
Causal $99 $99 $99
Chartmogul $316 $1,200 $1,500+
Baremetrics $379 $1,000 $1,500
Profitwell Free Free Free Poor reviews
Only supports 1 Stripe account

Our Causal ARR reporting setup

Our ARR reporting is now done fully in Causal, in the same place as we do the rest of our financial reporting and general BI.

Custom segments

Causal connects directly to our Snowflake instance, which is our source of truth for all data. This includes our Stripe data and the rest of our customer data.

Having this all in Causal lets us join data sources together, so that we can segment our Stripe ARR data by fields that come from our enriched customer tables.

Custom calculations

We’ve built custom ARR calculation logic using Causal’s formulas. This is much nicer than building logic in SQL or in Excel:

  • Unlike Excel, Causal’s formulas are human-readable and automatically apply across ‘dimensions’, so a single formula generates a metric across all of our 100s of customers, and across every month of our model
  • Unlike SQL, Causal is built to work with time-series data so the logic in Causal is much simpler than it would be in SQL

Custom visualisations

With all the data in Causal, we’re free to create whatever kind of output we want. This is how we like to look at Expansion vs Churn + NDR:

Bonus: out-of-the-box wizard

🚀 We just launched our Stripe wizard — this gives you the same out-of-the-box metrics that a SaaS reporting tool does, but since it’s in Causal, you can customise your report incrementally as you need to do, and link it to the rest of your data as well.

Conclusion

Stripe is fine for ARR reporting as you get your first customers, but once your business is off the ground you’ll need more insight into important metrics.

Tools like ChartMogul are good, but you’ll quickly need to move away.

With Causal’s new Stripe wizard, you can get the simplicity of out-of-the-box metrics (like ChartMogul) but the flexibility to do custom calculations and segmentation as your business evolves.

‍

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
PERSONAL FINANCE
Buy vs Rent
Should you buy a house or rent?
StartuP
B2B SaaS Revenue
Forecast your inbound and outbound leads to determine revenue, and understand what kind of sales funnel you need to hit your revenue targets.
Finance
Detailed Headcount Model
Understand the breakdown of your headcount and payroll costs by Department (Sales, Engineering, etc.) and plan your future hires.

Why we switched from ChartMogul to Causal for ARR reporting

Apr 5, 2024
By 
Taimur Abdaal
Table of Contents
Heading 2
Heading 3

We'd been customers of ChartMogul from when we first started going to market in 2021, but recently reached the point of outgrowing it.

This post outlines the different stages we went through to get here, and why we decided to switch to Causal for our ARR reporting.

Enjoy!

Revenue maturity

As your company grows, you’ll go through different stages of “revenue maturity”:

Stage 1: Getting your first customers

In the beginning you’re just trying to get your first customer. Once you manage that, you go after the next one, and so on. All the while you’re doing whatever it takes to close the deal — custom pricing, custom payment terms, you name it.

At this stage, you don’t need sophisticated reporting — Stripe’s dashboard can tell you your ARR, and the nuances don’t really matter.

Stage 2: Doubling down

As you get to $500k–$1m ARR, your revenue data starts to become more meaningful. You probably have 50–100 customers, which is enough to start pulling out different segments and spotting trends. You also have enough data to start understanding what churn and expansion look like.

This is where Stripe reporting hits a ceiling — Stripe won’t let you see your SaaS metrics broken down by different products or segments, it won’t tell you anything about your Net Dollar Retention (NDR), and without this information, you risk flying blind as you decide where to focus your team’s energy.

This is where SaaS metrics tools come in — they connect to Stripe, and pull out all the different SaaS metrics that you need to know. Examples: ChartMogul, Profitwell, Baremetrics.

Stage 3: Scaling up

Somewhere between $1m–$5m ARR, you’ll have 100s of customers and the nuances of ARR calculation and your Stripe setup start to meaningfully impact your numbers:

  • Should past ARR be affected by refunds?
  • Does a customer churn if their payments fail, or if they request a cancellation?
  • What happens to one-off payments for services?

This is where out-of-the-box SaaS metrics tools stop scaling:

  1. They don’t offer the customisability that you need to tailor your metrics for your business
  2. They don’t plug into the rest of your customer data to let you slice and dice by different properties
  3. They don’t let you create custom charts and tables to visualise your metrics in the format that your team want to see

At this point, you’ll need to go custom: you’ll have to feed your Stripe data into your data warehouse, set up complex SQL queries to pull things out the way you want, and feed it into a spreadsheet or BI tool. And you’ll probably need a data team to do that for you.

At Causal, we recently moved from Stage 2 → Stage 3. Here’s the “inside baseball” on why we switched and what our new ARR reporting setup looks like in Causal.

Why ChartMogul wasn’t enough for us

As we started to get more customers, particularly on our month-to-month self-serve plan, ChartMogul’s limitations became a problem for 4 main reasons:

  1. Custom segments
  2. Custom calculations
  3. Custom visualisations
  4. Pricing model

Custom segments

ChartMogul has done an incredible job of covering all the metrics that you could possibly want to see. Where it falls short is letting you break these metrics down in the way that’s most useful for your business.

ChartMogul supports breakdowns by Plan. If your company is anything like ours, you’ll quickly end up with dozens of plans as you iterate on your pricing, allow all sorts of contract lengths (e.g. monthly vs annual). To deal with this, ChartMogul helpfully lets you create Plan Groups.

For example, you can put all 20 of your self-serve Stripe plans into a “Self-serve” group and your enterprise plans into an “Enterprise” plan group, and then see your MRR breakdown by “Self-serve” vs “Enterprise”. This is useful, but keeping Plan Groups up-to-date as your Stripe setup evolves is very cumbersome and error-prone.

In reality, there are lots of other ways you might want to slice your revenue data:

  1. By source — what proportion of my ARR comes from channel partners?
  2. By segment — what proportion of my ARR comes from VC-backed companies?
  3. By behaviour — what proportion of my ARR comes from users that have connect to QuickBooks?

To get these breakdowns, you need to be able to join your Stripe data with the rest of your customer data (e.g. “source”, “segment”), and you’ll need a tool that lets you slice and dice in a fully flexible way. ChartMogul has a concept of 'custom attributes' but these attributes need to be set manually, which is time-consuming and easy to mess up.

On top of all this, it's unlikely that your Stripe data will be perfectly clean, and there will be cases where you have multiple Stripe IDs for the same customer. Like with custom attributes, ChartMogul has functionality for 'merging customers' but this operation can't be undone (easy to mess up) and ChartMogul shouldn't be the source of truth for these customer mappings, since you'll want to use them elsewhere in your reporting as well.

Example: Partnerships ARR

We recently started partnering with fractional CFO firms, who use Causal with their clients. Given that we were spending a lot of internal resources on this programme, it was important to understand how much it contributes to our ARR, as well as see which fractional CFO partners were driving the most clients (and therefore, revenue) to Causal. This required joining our Stripe data to extra fields from our data warehouse (Snowflake), which wasn't possible in ChartMogul.

Custom calculations

To make our ARR data actionable, we needed to be able to combine it with other sources and metrics:

  • Customer acquisition cost (CAC): to calculate this, we needed to divide ‘New Customers’ by our sales and marketing spend from QuickBooks.
  • Burn Multiple: Net Burn (from QuickBooks) divided by Net New ARR (from Stripe)
  • CAC payback period: CAC (as above) divided by ACV (from Stripe)

Custom visualisations

Once your numbers are calculated, you need to visualise them. ChartMogul does an okay job at this — for each metric, they’ve picked a sensible chart type. But if you want to present your numbers in your own way, and inevitably you will want to do this, then you’ll need to export your data into a spreadsheet and set up your custom charts.

Price scaling

Most ARR reporting tools charge based on your revenue — the more money you make, the more you pay them. This starts to get steep as you get close to $5m ARR and beyond, where you’ll be paying $1,000+ each month to get your metrics:

$1m ARR $5m ARR $12m ARR Notes
Causal $99 $99 $99
Chartmogul $316 $1,200 $1,500+
Baremetrics $379 $1,000 $1,500
Profitwell Free Free Free Poor reviews
Only supports 1 Stripe account

Our Causal ARR reporting setup

Our ARR reporting is now done fully in Causal, in the same place as we do the rest of our financial reporting and general BI.

Custom segments

Causal connects directly to our Snowflake instance, which is our source of truth for all data. This includes our Stripe data and the rest of our customer data.

Having this all in Causal lets us join data sources together, so that we can segment our Stripe ARR data by fields that come from our enriched customer tables.

Custom calculations

We’ve built custom ARR calculation logic using Causal’s formulas. This is much nicer than building logic in SQL or in Excel:

  • Unlike Excel, Causal’s formulas are human-readable and automatically apply across ‘dimensions’, so a single formula generates a metric across all of our 100s of customers, and across every month of our model
  • Unlike SQL, Causal is built to work with time-series data so the logic in Causal is much simpler than it would be in SQL

Custom visualisations

With all the data in Causal, we’re free to create whatever kind of output we want. This is how we like to look at Expansion vs Churn + NDR:

Bonus: out-of-the-box wizard

🚀 We just launched our Stripe wizard — this gives you the same out-of-the-box metrics that a SaaS reporting tool does, but since it’s in Causal, you can customise your report incrementally as you need to do, and link it to the rest of your data as well.

Conclusion

Stripe is fine for ARR reporting as you get your first customers, but once your business is off the ground you’ll need more insight into important metrics.

Tools like ChartMogul are good, but you’ll quickly need to move away.

With Causal’s new Stripe wizard, you can get the simplicity of out-of-the-box metrics (like ChartMogul) but the flexibility to do custom calculations and segmentation as your business evolves.

‍

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.