How We Tackle Subscriptions at Tasman - Package Release!

3 min read
Thumbnail for Blog Post - How We Tackle Subscriptions at Tasman - Package Release! || blog/subscription-package/subscription-package.png

We have built reconfigurable dbt package for subscription analytics that empowers both our analytics engineers and data analysts by locking in the definitions and making them available to everybody on the team. We are now ready to share this tool with the world 🙌

Subscription analytics is hard — particularly for mobile apps. Here’s why: App stores provide limited info, making data extraction difficult. This is where tools like RevenueCat come into play. Subscriptions aren’t static. They’re updated, plans change, exchange rates fluctuate, prices go up. Unlike one-off transactions, this data is always moving. And lastly, metrics are not trivial 🙃

The latter point could use explaining — as the devil is in the details. Some examples are active but canceling subscriptions (ie. under notice) — Do they count towards MRR? Or think about refunds: should they be subtracted from MRR? Or are they a cost of sale? And then we also have comparing monthly plans versus Weekly or Annual — multiplying weekly revenue by four doesn’t equal monthly revenue (yet this is a necessary simplification that tools like Revenuecat make in their aggregate reporting.

There are also quite a few different types of subscriptions as well to take into account:

  • Some are linked specifically to a customer (1 sub, 1 customer), and some are linked to a product (allowing one customer to have multiple subscriptions). This affects e.g. how we view churn by product type.
  • Subscription types are diverse: freemium, tiered plans, licensed models. Each requires a different analytical approach.
  • App Store, Google Play, and Stripe handle taxes and commissions uniquely, affecting financials — and have different mechanisms and allowances for charging during subscriptions (all of which are very hard to model).
  • Most subscription apps sell globally, but have to charge VAT in different jurisdictions — complicating matters further.

So, not easy at all. And yet, getting subscription data right is critical! It underpins all revenue reporting — and attributing this incorrectly will heavily skew CAC, leading to inefficient marketing. Doing this properly also helps identify top customers for targeted marketing, increasing LTV. And, in general, pricing strategies and product initiatives rely on having accurate subscription data.

As with a lot of these domains, mastering subscription data is not just about tracking the right numbers. It’s also about aligning the business around shared definitions, and about making informed decisions that drive growth.

So, we are launching a package to help with this.

This package aims to transform the RevenueCat data to cookiecutter aggregate datasets ready for analysis — but also more detailed reporting tables that allow you to see exactly what is happening.

This package does require to have the RevenueCat scheduled data exports enabled (v4 or later) and loaded into Snowflake.

We then give a set of reporting tables as outputs:

  • Cohort Conversion Report
  • Daily Subscribers
  • Daily Subscription Revenue
  • Daily Subscription States (upgrades, downgrades, expirations)
  • Daily Subscriptions
  • Monthly Recurring Revenue
  • Monthly Subscriptions
  • Weekly Subscriptions.

The idea is that this offers you a common, consistent source of truth for all subscription data — as aggregated or as finely grained as you want it. You can use it to build your own queries on top of, e.g. joining subscription data with other user or aggregated information.

If you are using Snowflake and have a RevenueCat set-up, then this package will get your data models into proper shape.

🔗 👉 Go to our GitHub page to explore further!