How is tax handled in ChartMogul?

Tax impacts ChartMogul metrics in a number of ways, depending on the metric and the way tax is handled in your billing system. This article will explain how tax impacts your metrics.

How are metrics affected by tax?

ChartMogul handles tax based on these default behaviours:

  • Recurring Revenue metrics such as MRR, MRR movements, ARR, Average sale price and Average Revenue Per Account can be affected by tax. For example, if tax is included in the base payments for subscriptions, this can include taxes in your MRR. Likewise, if tax is excluded from your subscription revenue, this will exclude taxes from your MRR.
  • Cash Flow metrics such as Net cash flow and Non-recurring revenue can be affected by tax. If tax is specified as a separate line item in your customer invoices, taxes will be excluded from your Gross Subscription Revenue and your Non-recurring revenue. Your cash flow metrics may include tax and other fees depending upon how you’ve setup your billing system.
  • Other metrics such as Customers, Subscriptions, Subscription quantity, and Leads and Trials metrics such as Trial-to-paid conversion rate are not affected by tax.

Taxes are reported in the Taxes row in the Chart data table beneath the Net Cash Flow and Gross Cash Flow charts.

How is tax handled for different billing systems?

Taxes may not be broken out into a separate line item if you use tax management software such as Avalara, BBillbo, Octobat, Quaderno, Taxamo, or TaxCloud.

Usually, the default behaviour above will be followed. However, there are specific behaviours and limitations for each billing system that ChartMogul supports. Below we have detailed the behaviours unique to each billing system.

Skip to a billing system section:

  1. Stripe
  2. Braintree
  3. Chargify
  4. Recurly
  5. PayPal
  6. API
  7. Google Sheets


VAT or sales tax billed through Stripe will be recognised correctly if a customer's Stripe subscription has a tax_percent value. In a customer's transactions, ChartMogul will list tax as a line item with the name 'Tax excluded'. If taxes are included in a customer's base charge tax the default tax handling behaviour will not be followed, as ChartMogul is not able to determine if tax is included in a payment without the tax_percent value. Learn how to set this up (Stripe documentation)

Further information: Applying Taxes to Subscriptions (Stripe documentation)


Taxes billed through Braintree will not follow the default tax handling behaviour. Braintree taxes are not broken out into a separate line item in a transaction and will contribute to your subscription revenue. This is because ChartMogul is not able to determine the amount of tax paid as part of a transaction because the tax amount value on a customer's transaction is a Level II data field that does not affect the total transaction amount. In other words, the tax amount value in Braintree is a purely cosmetic field.

Further information: The Tax Amount parameter (Braintree documentation).


Taxes billed through Chargify will be included in MRR. Chargify taxes will be broken out into a separate line item and labelled 'Tax excluded' in a customer's transactions, provided that you use the Custom Taxes feature provided by Chargify. If a Chargify tax is specified on a customer's transaction, taxes will be excluded from your Net Cash Flow. Without a taxable_amount_in_cents specified on a transaction, taxes will not be broken out in your Net Cash Flow or transactions.

Further information: Taxes Intro (Chargify documentation).


VAT and other taxes billed through Recurly will follow the default tax handling behaviour, provided that you use Recurly's Taxes features. If taxes are not applied to the plan or add-on, the default tax handling behaviour will not be observed, and your MRR may be increased by the inclusion of taxes.

Further information: Taxes (Recurly documentation).


This only applies to the PayPal REST API, as this is the only PayPal use case currently supported by ChartMogul. Other PayPal billing methods, such as the PayPal Subscription button, are not supported.

Taxes billed through PayPal do not follow ChartMogul's default tax handling behaviour. Tax will not be broken out into a separate line item in ChartMogul and will be included in your recurring revenue metrics, including MRR, ARR, MRR movements, Average revenue per account, and Average sale price. Tax will not be excluded from your Cash flow metrics, such as Net cash flow and Non-recurring revenue.

This behaviour is due to limitations with PayPal's REST API. ChartMogul uses PayPal transactions to generate invoices and MRR movements. However, any tax paid by the customer isn't specified on a customer's transactions but is specified as part of the PayPal plan. Additionally, there isn't a direct relationship between transactions and plans in PayPal that would enable ChartMogul to accurately report the amount of tax paid by a customer. Tax is specified as part of the PayPal subscription, but because PayPal permits users to define several payment definitions for a plan, this makes it impossible to know exactly how much tax a customer paid in a transaction. It is possible to extrapolate the amount of tax paid by a customer from a PayPal transaction, but ChartMogul wouldn't be able to guarantee that the reported tax amount is accurate. For this reason, tax is included in MRR and is not broken out into a separate line item when reported in ChartMogul.


This section also applies to integrations built on top of the Import API, such as GoCardless, Chargebee, ChargeOver, BillForward, CheddarGetter, and others.

Taxes paid by customers imported via the Import API will follow the default tax handling behaviour in ChartMogul, provided that you specify a tax_amount_in_cents in Import API invoice line_items.

Further information: Import Invoices (ChartMogul Import API documentation).

Google Sheets

Taxes paid by customers imported using ChartMogul's Google Sheets integration will follow the default tax handling behaviour in ChartMogul, provided that you specify a Tax amount when adding invoices to your customers. If no Tax amount value is provided as part of an invoice, the tax will not be excluded from your MRR.

Further information: Import Billing System Data from a Google Sheet (ChartMogul documentation).