MicroSaaS Pirate Metrics AARRR
Introduction
Now that the main three MVPs have been launched on Airtable, and we have customers coming in, the main question is - how can we move forward. One of the things I focused on was gathering as much feedback as possible from the customers, but in order to actually have customers that give feedback, they need to get something in return. Alas, the app needs to take the customer on the journey to actually receiving value. To get eyes into that customer journey, we have Pirate Metrics. It’s called Pirate Metrics because of the sound the acronym makes: AARRR. It stands for Acquisition, Activation, Retention, Revenue, and Referral. As I started implementing this, Posthog read my mind and sent me a wonderful article for that in their newsletter. If you’re interested in reading in more depth about it, that’s one of the neater ways to do that.
The metrics
So how did I actually get to the metrics? It’s kind of a creative process where you try thinking exactly what each of these stages mean to you. Each of these stages is generally represented as a percentage of the first stage. So in the end you’ll have basically a percentage of people that come to your app having paid you.
Each of the following stages I calculated from my SQL database. Initially using SQLite, but later on transitioned to PostgreSQL.
Just before we dive in, there is actually a more general way to defining these metrics on a more usual B2B SaaS app on a higher level, but because we’re trying to squeeze out as much useful information as possible for the micro SaaS, then we’ll be using a more nuanced approach here.
Acquisition
For me, I took Acquisition as each customer that had installed the extension. It is a meaningful metric to me as all of my products are technically freemium, and the more installs I have the higher frequency I also get paying customers. In normal Pirate Metrics usage, all free trials are counted which basically already is an intent signal to buy. The difference here is that I’ll have many installs without them ever actually intending to buy. The danger with that is if you focus on customers that are paying customers, every optimization you make is centered on them. But if you optimize serving free and/or trial customers, then you might get off-target more easily and drop the ball on your offering that actually creates the value.
For Airtable, the marketplace does not actually tell you whenever someone installs your app. But because each installed user has their session context using the extension, I can remember this information and consider users that I have never seen before as new users to my extension. Later on, I realized that there are two types of users: the users that actually click on ‘Install’, and then there are users that use the extension only because someone else in their team had added that to the base that they also belong to. To be super careful here, you could, in theory, not consider the latter type of users until they actually perform a meaningful action with the extension. Then again, the nice thing is that this is technically Referral.
Acquisition as a stage represents 100% of the users pretty much as a definition, and I use it this way too.
Activation
The Activation stage is probably the most critical part of the funnel. What that means is whether the user has received value from your offering. It depends a lot on how well you know your customers, and initially what Activation points to can change a lot as you learn more about your users. The question is whether the user receives value if they do an action in your app, or do they receive value only when that action actually solves their problem. And if it’s this case, then how do you even measure it? I think it’s important to get that as close as possible to the real truth.
Because it’s such a complicated metric to get right, I initially had a stage called Pre-Activation. I did this because many users just randomly clicked around, but didn’t do anything. But this was still better than installing the app and not even trying to click anywhere. As I was trying to lead the users to activate by making the app simpler to use, making the UX clearer, then eventually I got rid of Pre-Activation as well.
For my most important app, the activation % is between 50-73%, considering how you slice the users and the time horizon. For SaaS, this is generally a strong sign as it tends to be around 30-40%. What it also tells me is that as I am considering where to invest my resources, it is unlikely to be that stage.
Retention
Retention is an important metric that basically represents if users are receiving repeated value. Any customer that does not receive repeated value is extremely unlikely to pay for the offering.
I started off measuring this as whether the user has done anything in my app for 2 calendar days or more. Then I added whether they’ve done anything in 2 calendar weeks or more. Same for months. There’s a lot of fall-off by that point.
Most users fall off after having used the app once, and they never come back. The reasons for that could be many: either the app served its purpose at that moment in time and not needed any more, or the app did not actually provide enough value in which case how we measure Activation is probably poorly set up.
Once the user comes back after having been activated, I ask them a question whether they actually were able to achieve what they set out to do. 20% of the activated users (or 15% of the acquired users) actually answer that question. Of these users, two third answer positively. As this shows that the user has come back, and said that they achieved their goals the first time around, this is a healthy metric for retention in my freemium case. So for me that sits about 10% in the context of Pirate Metrics.
But I must warn you that this is completely different from what you’d see in a more normal paid SaaS where the retention represents the opposite of churn of subscription revenue coming in. So whether the user pays for multiple months, basically. And in big ol’ SaaS, this is more like 80-90%. This makes sense, because the people that pay are very likely to stay. There is no better signal of someone having value from your service when they pay for it. It is known that free and freemium services have insane churn, it’s just the game here and that is arguably the worst part of freemium. But because you have actually paying users, then in theory you could just build a longer funnel visualization where you represent different kind of retention.
Revenue
Revenue represents simply the number of users that actually pay with real money. Once the dollars are in your account, it counts as a customer in the Revenue stage. Not much to say here other than in a freemium this is at best at some single digit percentage points as the Acquisition stage, that this is a percentage of, has a lot of people coming in never intending to pay. This is different in a more normal SaaS.
Referral
Referral is a critical part of a SaaS flywheel as this ensures that the more customers you have, the more new customers you also get. Usually things like referring to other paying customers belong here, but also whenever someone leaves a positive review or rating. Because there isn’t a good way for me to measure it, and the app isn’t so complex that I can give out referral codes with which they can do anything useful, then currently I just ignore this stage. In reality, there is some referral going on, especially amongst the people in the same company, but it’s unknown how much of this there is. For bigger projects, thinking this through yields very long-tailed results.
Funnel visualization
For a low-cost solution I found that running my own Metabase instance suffices for my usage. For bigger projects probably something like ChartMogul is probably better, but I like that with Metabase you can just define your SQLs on how you want each stage in the metrics to appear.
I went through a lot of iterations in what information am I actually listening in on with the queries against my database, and kept updating the funnel charts as I learned more about my users, and what kind of information I need.
The first thing you probably notice is that the stages don’t exactly match AARRR, but again this is because I have modified it to fit my needs. With a big SaaS you probably want both the standard AARRR funnel visualization, and then breakdown into smaller charts for each of the stages. Like separating different Acquisition sources.
The stages seen are:
- Acquisition: All qualified buyers that actually pressed “Install”, so not people that use the app through other means. I also only count the users since making the paid offer for the app, so the percentages are a bit more useful as information.
- Post-Install Feedback: 86% of users, after having installed the app, either left me feedback on how they use the app for, where they found the app, or they just clicked that prompt away
- Activation: 71% of users did something seemingly useful with the app, i.e. performed an extraction (the core logic of the app)
- PA Feedback: After having activated, I ask the users whether they actually achieved what they wanted to do. I ask this the next time around they use the app, so in a way this is also a retention metric. 16% of (acquired) users answered that, and I only allow them to either click Yes or No with an optional added comment. They cannot close the window otherwise. This gives me some insights into it.
- Positive PA Feedback: 11/16 out of the answered people tend to answer positively, meaning that the alignment between my marketing and value provided is pretty solid.
- Week Retention: I see the user across multiple weeks
- Month Retention: I see the user across multiple months
- >=8: 4% of the total acquired user base have done 8 or more of core actions with the app. Note that this might be lower than the actual revenue count as a lot of customers seem to buy before hitting the limit. The limit for me currently is at 10, so this is just a trigger in a sense.
What to do with this information?
With your own insightful knowledge about your customer base, you can estimate whether the percentages you see across the funnel make sense, or are completely off. Sometimes you see that a percentage is much higher in a stage than the industry average, and then you can peacefully just move on optimizing other aspects of the micro SaaS and you have one less thing to worry about.
One of the easiest things to change with code is making users get properly activated, i.e. receiving value quicker and more intuitively from your app. Even though this might not actually significantly improve the funnel down the line in turn, then at least this stone is unturned that someone is just too confused to use your app. This happens all the time. Even if you think your app is intuitive, there’s always someone who doesn’t get it. And that’s okay, because we have such different backgrounds and experiences. If they pay you money, why not help them out.
What would I do differently next time around?
There’s a reason why AARRR is quite strictly defined actually and isn’t as loose as I made it to be. It’d be wise for any serious project to actually do the thing and set it up as it is standard first. And only then when you start optimizing, you drill down to a particular stage, e.g. Activation, and break it down in another funnel visualization so you have eyes into the customer journey better. This kind of approach lets you better estimate how well you’re doing against your peers in the industry, and then solve problems with a more fine-grained approach.
Final thoughts
Pirate metrics have become an essential part of how I think about SaaS, and will probably continue being an important way of reasoning about the business. But of course this is just a tool for having ‘eyes’ into your operations, and not a panacea. But I like seeing clearly, don’t you?