Set up a per-user pricing like Notion, the collaboration software for innovative teams, including plans based on the number of users and prepaid credits.
What's in it for you?
In this article, you will learn how to build a ‘fair’ billing system, with charges calculated according to the number of days of use.
This template is suitable for companies whose pricing depends on persistent metrics, such as productivity software (e.g. number of days users are active), fintechs (e.g. number of days payment cards are active) and data platforms (e.g. number of days integrations are active).
What's the secret sauce?
Notion offers a Personal Pro plan for individuals who want to collaborate with friends or clients, and a Team plan through which members can set up a collaborative workspace. While the Personal Pro plan is limited to one member, the Team plan allows companies to invite as many members as they need.
Personal Pro plan
Pages and blocks
$5 billed monthly
$10 per user billed monthly
In its FAQ section, Notion explains how adding and removing members work:
“If you added members, your account will be charged a prorated amount based on the percentage of the billing cycle left at the time each member was added. If you removed members, your account will be credited in the same way.”
Notion’s per-user pricing is what we call a ‘fair’ pricing model, where fees are calculated based on the number of days each user is active.
In addition to this, users can complete tasks to earn credits with which they can pay their Notion bill:
“You can earn credit by using Notion across your devices and trying out new features. Go to the Earn Credit tab in Settings & Members to learn more.”
Here’s how you can replicate this pricing and billing system with Lago.
What do you need?
The first thing to do is to create your company account on Lago Cloud or deploy Lago Open Source on your existing infrastructure. In both cases, you should ask a back-end developer to help you with the setup.
Our documentation includes a step-by-step guide on how to get started with our solution.
Step 1 – How to create recurring metrics
Lago monitors usage by converting events into billable metrics. Notion’s pricing is based on users, so we need to create a billable metric to keep track of the users associated with each customer account.
There are two types of metrics:
• Metered metrics that are reset to zero at the end of each billing period; and • Recurring metrics that can be carried over several billing periods.
When a new member is added to a Notion account, they are likely to remain active for some time (probably more than just a month). Therefore, we should create a recurring metric for our users.
The aggregation type is a recurring count unique and will allow us to record the period of activity of each user (i.e. from the day the member is added to the account until the day they are removed).
When a new member is successfully added to the customer account, the backend system will generate an event, including the user_id and "operation_type": "add". When a member is removed from the customer account, the backend system will also generate an event, including the user_id and "operation_type": "remove".
At the end of the billing period, Lago will automatically calculate the number of days of activity for each user.
Step 2 – How to set up a ‘fair’ pricing model
When creating a new plan, the first step is to define the plan model, including billing frequency and subscription fee. Notion’s Team plan is ‘pay-as-you-go’, which means that there’s no subscription fee (i.e. customers only pay for what they use).
This plan can be billed annually ($96 per user) or monthly ($10 per user). Depending on the billing cycle, we add a standard charge of $96 or $10, associated with our billable metric. For example, for the monthly plan, one unit represents one active user for a full month.
We turn Prorate charge amount on so that when a new user is added in the middle of the billing cycle, they will be billed a prorated amount that corresponds to the percentage of the billing cycle remaining. This same logic is also applied when users are removed.
To understand how it works, we can add a new customer and assign them the monthly Team plan we just created. Today is October 9th and a member is immediately added to the customer account. In the debugger, we can see the corresponding event, sent by the backend system via the API.
In the ‘Usage’ tab of the customer view, we can see that the customer’s current usage is $7.42. As there’s one active user and 23 days left in October (including October 9th), the billing system plans to bill 0.74194 units at the end of the period (23 days left divided by 31 days in October).
If the same user is removed before the end of the month, Lago will automatically recalculate the number of billable days (i.e. the number of billing units).
Step 3 – How to offer credits to your customers
Now that our pricing is ready, we can set up our credit system. Notion customers earn credits when they use the app across different devices and try out new features.
In the ‘Wallets’ tab of the customer view, we can create a new wallet, which will allow us to grant credits to our customer. If later they complete additional tasks, we’ll be able to top up their wallet with free credits.
Credits are automatically deducted from the customer’s next invoice(s).
For software companies like Notion, implementing a ‘fair’ per-user pricing model is a good way to increase transparency and customer satisfaction.
With Lago, you can create your own persistent metrics to adapt this template to your products and services.