Solved

Best practice to track revenue events for SaaS

  • 9 April 2021
  • 3 replies
  • 1028 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

View original

3 replies

Userlevel 4

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!

You require effective SaaS billing software to help you scale your business over time. When starting a new SaaS business, experts take the time to consider SaaS billing platforms that can assist them in building the ideal tech stack. It is a critical time for SaaS businesses, with long-term consequences for the company's growth. So, be cautious when looking for SaaS billing software for your company.
 

Userlevel 3
Badge +2

As a followup to this, it seems like the right thing is for your service to subscribe to the stripe billing webhooks. Every time a payment is processed, you log a revenue event. Is that what you did?

Reply