Q107 - ARPPU

Hey! Why are we saying the below?

If we use refunded = FALSE filter in the WHERE clause (filtering out all users who don’t have purchases) we’d calculate ARPPU.

Don’t we still have all the free/trial customers that shouldn’t be in ARPPU but wouldn’t be filtered out if we only use refunded as a filter? Thanks!


Great question, let’s get into it.

I feel like you already know that for ARPU calculation we need to keep all users in the result set, so that’s what we’re filtering inside our JOIN statement.

It looks like for the ARPPU query we’re doing the same but there’s a difference – we filter out non-paying users in the WHERE clause. ⚠

Using refunded = FALSE filter inside our JOIN statement tells us the story (it’s like self-documenting SQL query): we join valid purchases to users and then filter out non-paying users. PROFIT. 💥 :laugh:

Here’s more on the topic in another question on the Forum.