Let’s start with decoding growth, i.e. understanding where growth is coming from. You can call it growth accounting as well since we are accounting for where growth is coming from.
User Growth: MoM Trends aren’t Useful
Most products, when asked about their growth, will show you this graph MoM
I have seen this graph on pitch decks. Founders/PMs/investors love talking about MoM growth. If you remember our discussion about BranchOut from measuring the product-market fit, investors actually pumped $49 million in that startup on the basis of MoM growth. In the post, I wrote,
As you see in the chart below, it got massive growth between Feb-Mar 2012 which is investors’ dream.
BranchOut MAU in Feb-Mar 2012 before Series C, $25 M round
However, the growth soon started slowing down. The MAU numbers kept decreasing. This is how later part of 2012 looked for BranchOut.
Rise and Fall of BranchOut MAU: A Nightmare for Growth
Despite all efforts by Rick Marini including a pivot, the company had to sell its assets at $5.1 million in August 2014 to 1-page much lower than the total amount they raised.
So we know that relying on MAU growth isn’t enough. What should we do?
First, we need to define the growth rate in a better way
Reading Growth Rates
We all know the definition of growth rate as the change in users/users (t-1).
growth rate = users(t)/users(t-1) -1
The growth rate is often plotted MoM to see if the growth rate is slowing down. Here is how MoM growth will look for the graph above
The problem with this chart is that it’s very hard to read whether the growth rate is good or bad because of variation.
A good method to deal with this problem is CMGR (cumulative monthly growth rate). A CMGR can be calculated over a period of 3-month, 6-month or 12-month.
CMGR for 3 months (CMGR -3) will be calculated like this:
- Divide the users at the end of the period (say July) by its value at the beginning of that period (April) ~ users (July)/ user (April)
- Raise the result to an exponent of one divided by the number of months (3) ~ [users (July)/ user (April)]^(1/3)
- Subtract one from the subsequent result ~ [users (July)/ user (April)]^(1/3)-1
Here is how CMGR-3 looks like
Much better to read and understand? Looks like it’s growth rate is increasing. Happy? Don’t be so sure :)
Breaking MAUs into Segments
To understand MoM growth well, we need to first define a few terms to represent users falling in different segments:
- New: new users in the current time period (t)
- Churned: Lost users who were active in the previous time period (t-1), but not active in the current one (t)
- Resurrected: Users who had churned at some point in the past and were not active in the previous time period (t-1), but resumed in the current one (t).
- Retained: Users who were active in the previous time period (t-1) and are also active in the current one (t)
From an MAU trend perspective, the time period will be a month. However, the time period could be a day, week, month, or year depending on what trend you are looking at.
Now that we have understood these terms, the next step is to split the MAU into three buckets — new, resurrected, retained.
This is because all users in a month are equal to the sum of new, resurrected, and returned.
users(t) = retained(t) + new(t) + resurrected(t)
This is how the graph looks like now.
Please note that the new users in the graph are increasing at a higher pace than the overall growth. What does that mean? Is it a good thing?
We can answer whether it’s good or bad by defining three metrics.
Useful Metrics for Decoding Growth
There are three useful metrics for decoding growth — gross retention, quick ratio, and net churn.
Gross retention is looking at what % of users got retained from the last period
Gross Retention = retained(t) / users(t-1)
The quick ratio is the sum of gains in users divided by losses in users. QR > 1 for positive growth
Quick ratio = [new(t) + resurrected(t)] / [churned(t)]
Net churn determines if the company can grow without new users. If net churn is positive, the product needs to add users to compensate for the lost growth. If it’s negative, the product will grow even without adding new users.
Net_Churn = [churned(t) – resurrected(t) ] / users(t-1)
Let’s calculate these 3 metrics for the data plotted in the MoM graph above. This is what the calculations look like MoM
As you can see, the QR is fluctuating and you can’t read much from that except that it is >1 and so the product is growing.
Gross retention was stable but is falling steep in Nov and Dec.
Net Churn is interesting, it’s increasing. Now the question is — how come that net churn is increasing, but the growth rate is also increasing in the CMGR-3 curve?
Let’s relook at the data for these months for new, resurrected, churned and retained users (in millions)
As you can see, the makeup for churn is done through an increase in new users. The product is acquiring new users to fill the deficit of users lost. How sustainable is it? Not much. Remember BranchOut? It was doing the same but couldn’t do so in the long run.
To conclude this section, using growth rate and 3 metrics of growth accounting, we can quickly figure out whether there is any problem with current growth and fix it in advance, rather than seeing the dip in growth later when it’s too late.
Okay, so can we use the same model for accounting user engagement or revenue?
Yes, we can.. with some changes.
Growth Decoding for Engagement/ Revenue
There is a fundamental difference between user growth and engagement/revenue growth. Let me take one example,
A user who came last month and came this month is counted as a retained user. The retained user, however, can spend less/more money contracting/expanding the revenue. Same for engagement mins.
To account for this, we have to introduce two more terms
- Expansion: Gained from users increasing time spent/revenue relative to the previous time period.
- Contraction: Lost from users decreasing (but not to zero, otherwise they would be churned) time spent/revenue relative to the previous time period.
All revenue in the current time period (t) is now equal to
revenue(t)= retained(t)+ new(t)+ resurrected(t)+ expansion (t)
The definition of churn also changes
churn(t)= churned(t)+ contraction(t)
Defining Useful Metrics for Engagement/ Revenue
Gross retention is looking at what % of revenue got retained from the last period
Gross Retention = retained(t) / revenue(t-1)
The quick ratio is the sum of gains in revenue (new, resurrected, and expansion) divided by the losses in revenue (churned and contraction)
Quick ratio = [new(t) + resurrected(t) + expansion(t)] / [churned(t) + contraction(t)]
Net churn is the sum of losses minus gains in revenue from existing customers only (i.e. excluding new customers) divided by total revenue from the previous time period.
Net_Churn = [churned(t) + contraction(t) – resurrected(t) – expansion(t)] / revenue(t-1)
Sounds good? Now you may have a few questions. Some of the common questions around growth accounting are addressed below.
Q: Can we apply the same framework to DAU growth, WoW growth, or YoY growth?
Yes, you can. The period definition changes, and nothing else.
Q: This looks daunting to calculate. Should we do it on a regular basis, or as a one-off analysis?
You should ideally automate these reports so that you don’t get daunted by them every month or week.
Q: Isn’t it overkill, or data puke to add all these metrics as you mentioned in earlier posts?
These are not vanity metrics as discussed in our earlier posts around data. All I am asking you is to track 3-4 important metrics around users, engagement, and revenue growth. These will ensure you have a check on the pulse of your growth.
Q: If I am already tracking retention, how does it help?
Retention is a very difficult metric to move. You should usually check your retention every month/quarter or whenever you launch a new feature. Growth accounting, on the other hand, helps you keeping track of growth initiatives on a daily or weekly basis.
Wish you a good Sunday. DM me in case of any suggestions. Read here the next part of this analysis through the cohort analysis and distribution curves to see how it helps us decoding growth further.