Key App Metrics with BigQuery Part 1: DAU/MAU

Matt Kim
Matt Kim
Mar 5, 2020 · 5 min read
Unknown artist.

This post is Part 1 of a series inspired by the a16z podcast episode Metrics and Mindsets for Retention & Engagement. The episode covers the metrics that come after acquisition including engagement metrics like the DAU/MAU, and the power user curve (L7, L28). Inspired, I thought it would be a good idea to put some theory into practice using our Rainbow App.

For this article, I highly encourage listening to the podcast episode and reading this post by Andrew Chen before proceeding.

The Setup

Our app is a plant-based food journal. The hope is that users will engage with it on a daily basis and so the DAU/MAU would be a relevant metric for us.

The DAU/MAU will tell us what percentage of monthly users use our app on a daily basis. A perfect and impossible score here would be a DAU/MAU of 100%, but more importantly, we know that a strong sign of an app finding its product/market fit is a DAU/MAU of 40%.

Reviewing the history of our apps growth to date, in May of 2019 we had about 650 monthly active users (MAU) which grew to 2000 MAU by February of 2020.

Note: The dashboard analytics data is a wider window than our available event logs.

Before we dive in, let’s make some educated guesses about our app using the Firebase analytics dashboard, our app rating and feedback as inputs.

  • Hypothesis 1: Our app has not found product/market fit. Since our Week-1 retention is about 20%, this means 80% of users drop out after the first week. We can answer this by calculating the DAU/MAU.
  • Hypothesis 2: There may be a handful of power users. This is based on enthusiastic app reviews and a 90-day retention rate of 9%. Let’s answer this by calculating the Power User Curve (in Part 2).

For Part 1 of our tutorial, let’s answer our first hypothesis: Our app has not found product/market fit. To do that I’ll use BigQuery to extract metrics from our event logs in Firebase. Note that I’ve already connected BigQuery to our Firebase project, which I don’t cover in this tutorial.

Calculating the DAU/MAU

In order to calculate the DAU/MAU, we use a rolling 30-day window to calculate the respective MAU value for a given DAU value. For example:

To calculate the DAU/MAU for Feb 29 2020:- First, calculate the DAU for Feb 29, 2020
- Second, calculate the MAU for Jan 31 2020 to Feb 29, 2020
- Finally, apply the math DAU/MAU

The below query calculates the daily DAU/MAU values for 30 days pivoting on a start date. In our case NDAYS=30 and STARTDATE=2020–03-01.

-- Special mention to Felipe Hoffa for inspiring and cleaning up this query
-- Replace the fields PROJECT and DATABASE
-- As well as the table name: 'events_202001*'
DECLARE STARTDATE DATE DEFAULT '2020-03-01';
DECLARE NDAYS INT64 DEFAULT 30;
WITH data AS (
SELECT * FROM (
SELECT *, PARSE_DATE('%Y%m%d', '2020'||_TABLE_SUFFIX) day, user_pseudo_id user_id
FROM `PROJECT.DATABASE.events_2020*`
) WHERE day <= STARTDATE
), daysN AS (
SELECT * FROM data
WHERE day >= DATE_ADD(STARTDATE, INTERVAL -NDAYS DAY)
), days60 AS (
SELECT * FROM data
WHERE day >= DATE_ADD(STARTDATE, INTERVAL -60 DAY)
), stopdays AS (
SELECT DISTINCT day stopday FROM data
WHERE day >= DATE_ADD(STARTDATE, INTERVAL -NDAYS DAY)
), maus AS (
SELECT stopday, COUNT(DISTINCT(user_pseudo_id)) mau
FROM days60 JOIN stopdays
ON day BETWEEN DATE_ADD(stopday, INTERVAL -NDAYS DAY) AND stopday
GROUP BY stopday
)
SELECT day, dau, mau, 100*dau/mau daumau
FROM (
SELECT day, COUNT(DISTINCT user_pseudo_id) dau
, (SELECT mau FROM maus WHERE a.day=maus.stopday) mau
FROM daysN a
GROUP BY day
)
ORDER BY dayResults

After averaging the days values into a single monthly metric we can plot it on a line graph, as shown below.

The result reveals a uniform distribution across the 9 months we have data. It also tells us that despite the volume of users growing over time, the app is not increasing in daily engagement. This makes sense because nothing fundamentally changed within the app during this period.

Take away

I’ve also not seen a 10% DAU/MAU product, through sheer effort, become 40% DAU/MAU. — Andrew Chen

Getting from a DAU/MAU of 9% to 40% will be an immense challenge. The next step from here is to develop strategies to increase daily retention rates. For our app we could consider these:

  • Top of the funnel (quick win): If we brand our app storefront to target plant-based journal seekers, we can increase our daily engagement by being more targeted. At the moment there may be some ambiguity in our messaging as voiced by some users. This is a quick win but a short-term fix.
  • Leverage power users (incremental improvements): Get feedback from our power users and A/B test new features optimizing daily engagement. This is what Andrew had warned us against. My instincts tell me incremental improvements will lead us down a dead end.
  • Product pivot (big effort): Getting from 9% to 40% will likely require a product pivot. If we do the work to understand our power user cohort we may uncover a hidden use-case that leads to a successful pivot. The alternative is to appeal to the masses by becoming a calorie tracking app, and that doesn’t align with our mission.

Closing Thoughts

The data suggests that our original hypothesis was correct. The 2000 monthly-active user metric is more vanity than substance. That said the DAU/MAU value of 9% while not strong is our new baseline. We can aim to improve it from here.

In the next part of this series, I’ll cover the Power User Curve. For an early-stage app like ours, figuring out who our power users are will help us navigate to product/market fit 🤞. If we’re successful this should also result in a lift to our daily engagement metric.

Posts in this Series

Get in Touch!

References

Build The Right Thing

Use data and intuition to make better products

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Start a blog

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store