Redefining Monthly Active Users

Mar 29, 2023

We recently rolled out some pretty massive changes to Weavy. In addition to a fresh coat of paint and numerous quality of life improvements to the customer experience, we decided to completely revamp our pricing. For each of our products: Chat, Files, and Feeds, we now offer both a Free and a Pro version. Our CEO, Rickard Hansson, has graciously agreed to explain his rationale for making a Free plan for all of our products in an another post, so I’m going to focus now on our Pro plans.

For the new Pro plans for Chat, Files, and Feeds we transitioned from a flat pricing scheme to a new usage based model. After more hours of back and forth than I think any of us would like to admit, we came to a billing model that we felt was the most equitable: for each Pro product, we charge $0.09 per Monthly Active User, or MAU. But in discussing this approach we found ourselves with a conundrum: what really is a monthly active user?

Defining an MAU

As far as business jargon goes, MAU feels like a fairly self-explanatory term. Monthly active users, after all, is the number of people who actively use a platform in a one month time period. Open and shut, we can all go home. Thanks for reading!

Except once you dig a bit deeper you run into a pretty big problem: there’s no standard definition for active, and depending on who you ask there isn’t even a standard definition of user. For many social media platforms an active user is anyone who is logged onto the platform, in many data-based platforms an active user is anyone who performs a single query, and for many API providers an active user is anyone who happens to be in their database. Suddenly our clean, simple metric is terribly ambiguous.

This means that by moving the goalpost even slightly on how you define MAU, you can dramatically change how much you’re charging a customer - which in our case, are product teams. For a company built by developers to help developers get the best possible competitive advantage, this level of ambiguity just doesn’t sit well with us. So with all that in mind, we felt that we couldn’t possibly charge per Monthly Active User without providing a stable, simple definition of Monthly Active User.


Putting the Active back in MAU

At Weavy we take the Active in Monthly Active Users very seriously: you only pay for users that are actively using Weavy products within your app. We’re under no illusion that our products are the centerpiece of the apps they’re installed in, and we understand that as a developer you may reasonably expect that not all of your users will interact with the functionality we provide. So why should we charge you for them?

There is no cost for you to add users to Weavy and connect them to our API. Cost is only incurred when a user is active during a billing cycle. To us active doesn’t mean the person who logs in to read a DM exchange or browse through some posts in an activity feed; active means taking action like sending a message, reacting to a post, or uploading a file. At the end of each billing cycle the number of users who took an action is automatically tabulated and the developer is charged accordingly.


Avoiding the $250 customer

Speaking of competitors, let’s talk about their pricing tiers. More specifically, let’s talk about why we continue to dislike them. The majority of SaaS service providers operate on a tiered pricing model, and under this model businesses set a price for a set number of MAUs (usually rounded off by big, easy to remember numbers like 5,000 or 10,000). What’s important is that this number cannot be crossed without moving on to the next pricing tier or paying an overage. 

On paper there’s an appeal to this approach: a supposedly fixed monthly cost and what appears to be an incredibly low cost per user. But the devil, as they say, is in the details. Let’s take our dear competitor Sendbird as an example. At the time of writing Sendbird’s pro plan is charged at $599/month for up to 5,000 MAU. Napkin math says that nets a cost of roughly $0.12 per MAU. 

But this assumes that an app's MAUs are predictable, stable, and fit tidily within the cap of the tier. 

Reality tells a different story, because in truth what’s happening is that your cost per user is only at its lowest when you’ve reached the cap of your pricing tier. As an example, let’s say that you implement chat at the lowest pro tier with 500 MAU, that means you’re paying roughly $1.20 per user. As you add users the cost per user trends down, at 1,500 users you’re paying about $0.40 per user, at 2,500 your users cost you $0.23 each, and so on.

But then something happens, something you want to happen: you acquire a new user, bringing your total MAU up to 5,001. Well the bad news is your bill for the next month is going up by about $250, which means you’re effectively paying $250 for one user you have, and about 4,999 users you’ve yet to acquire. Once again you’re placed in a position where the only way to keep your costs down is to grow. As this cycle continues the cost per customer will continue on this ridiculous sine curve that only truly trends down each time you reach the limit of your pricing tier.

But there’s another wrinkle to this, one that feels especially egregious when you consider how it hinders growth: limits on concurrent users. Most API providers who offer tiered pricing per MAU also have a limit on how many of those users can be active at any given time, typically 10%. This means that if you’re paying for 5,000 users, you’re doing so with the understanding that at any given time you can only have 500 users actually active. In effect, this means on a $599 plan your true cost per average user is nearly $1.20. If you exceed this limit, you’re charged a steep penalty for each additional user over the limit, which can dramatically raise your monthly costs

To put it as plainly as possible: we don’t think that’s very fair. There’s no reason your first customer should cost more than your most recent customer, and we certainly don’t believe that you should be penalized for your success. This is the same reason we also still refuse to impose limits on how many of your MAUs can be active at any given time.

Pricing based on Monthly Active Users is nothing new, and fairly standard across our industry. But upon closer inspection, you soon run into ambiguous terms, hidden costs, and a sense that “MAU” can mean many different things. That's why we've decided not to enter the fray at all. Instead we're going to be charging based on a new term, a term that really encapsulates what a monthly active user is: monthly engaged user.


Share this post