Set up a per-user (or ‘per-seat) pricing like Notion, the collaboration software for innovative teams, including plans based on the number of users and prepaid credits.

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).

Summary

1

Create recurring metrics

Create a billable metric to track user activity. (More here).

2

Set up a 'fair' pricing model

Set up prorata pricing for a pay-as-you-go plan. (More here).

3

Offer credits to your customers

Create a wallet to assign credits. (More here).

Pricing structure

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.

ModelPersonal Pro planTeam plan
Pages and blocksUnlimitedUnlimited
MembersJust oneUnlimited
GuestsUnlimitedUnlimited
File uploadsUnlimitedUnlimited
Collaborative workspaceNoYes
Price$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-seat 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.

Step 1: 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.

How to create a recurring metric

Step 2: 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.

How to create a 'pay-as-you-go' plan

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.

Example of event when adding a user

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).

Usage report updated in real time

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: 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.

Notion 'Earn credit' tab

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.

How to create a new wallet

Credits are automatically deducted from the customer’s next invoice(s).

Wrap-up

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.

Give it a try, click here to get started!