Solved

Best practice to track revenue events for SaaS

  • 9 April 2021
  • 1 reply
  • 96 views

Userlevel 2
Badge

Hi Community!

We have a SaaS app with monthly and yearly subscriptions where people can subscribe and pay using their credit cards. We use Stripe for our billing system, and have connected Amplitude through Segment.

Today we only track one type of revenue event to Amplitude, something we’ve called `Added Payment Details`. This fires the first time someone adds their credit card, and includes event properties such as the plan selected and the total price.

In addition, we also have a user property called `company_spend` and a group property called `monthlySpend` that shows the current price paid per month (in other words: MRR) for a user / group. 

However, with this approach we’re not able to capture new charges that happen after the initial credit card was added, for example when the subscription renews, the account adds another seat (we charge on a per seat basis), or upgrades to a higher plan.

To solve this, I currently see two options:

  1. Send an event from our backend via the HTTP API to Segment/Amplitude every time a customer is charged.
  2. Connect Stripe directly with Amplitude or Segment. 


What is the recommended practice here? How do other SaaS companies track revenue in Amplitude?

Thanks!
Marius

icon

Best answer by jarren.patao 12 April 2021, 22:35

Hi @morvik,

Would you be able to clarify a bit more on this statement:

However, with this approach we’re not able to capture new charges that happen after the initial credit card was added, for example when the subscription renews, the account adds another seat (we charge on a per seat basis), or upgrades to a higher plan.

It sounds like you’re not able to track these metrics because you’re only capturing the “Added Payment Details” event for revenue. If this is the case, I would recommend you do either 1 or 2 as both options are feasible here. Segment has logic on their end to capture revenue as well (such as “Order Completed”) so you should refer to their documents if that's going to be the catalyst for your events coming into Amplitude: https://segment.com/docs/connections/destinations/catalog/amplitude/#order-completed

Otherwise, the HTTP API will work just fine, but you’ll need to ensure that you’re sending the appropriate properties for your events to be seen on the revenue charts: https://developers.amplitude.com/docs/tracking-revenue

Hope this helps!

View original

1 reply

Userlevel 2

Hi @morvik,

Would you be able to clarify a bit more on this statement:

However, with this approach we’re not able to capture new charges that happen after the initial credit card was added, for example when the subscription renews, the account adds another seat (we charge on a per seat basis), or upgrades to a higher plan.

It sounds like you’re not able to track these metrics because you’re only capturing the “Added Payment Details” event for revenue. If this is the case, I would recommend you do either 1 or 2 as both options are feasible here. Segment has logic on their end to capture revenue as well (such as “Order Completed”) so you should refer to their documents if that's going to be the catalyst for your events coming into Amplitude: https://segment.com/docs/connections/destinations/catalog/amplitude/#order-completed

Otherwise, the HTTP API will work just fine, but you’ll need to ensure that you’re sending the appropriate properties for your events to be seen on the revenue charts: https://developers.amplitude.com/docs/tracking-revenue

Hope this helps!

Reply