Fair Billing Policy in SaaS Products
Gone are the days when people used to pay and get software installed on each computer. SaaS has become the standard distribution method for software. Even desktop software (Photoshop, IDEs) have started the subscription route.
Let me tell you 3 stories from my own team on how we were paying for SaaS products and I started hating most of them.
I signed up for a project management software (Basecamp) for my team and we were using it initially for a few weeks. Basecamp is quite common among project management tools and one of the most widely used ones too.
But pretty soon, one by one, the team stopped using it and within about 4 months, no one was logging into the tool. There were still projects and open issues in the account, but there was zero activity from users.
Second tool we used was an issue tracker called DoneDone. I figured having an easier and simpler UI will incentivize developers to start using an issue tracker. But it also met with the same fate. After a few months, only a handful of us were using it and soon we also got demotivated since no one was tracking things as it was supposed to be. No one was using it for almost 7 months.
Like every other startup on this planet, we also use Slack for our internal real time communication. Everyone in the company has an account in slack, but not all teams use it for communicating within themselves.
There are a few teams which find Google Hangouts or Whatsapp to be better suited. Those few users eventually become inactive accounts over time, because they don’t use Slack at all. The number of active/inactive users varies by every week and Slack sends us an email of who went inactive in the past week.
Pricing of the above services
In the first two instances (Basecamp and DoneDone), we were charged for each month we had the account open. Till we cancelled the accounts, we were getting invoices and automatically charged on our credit card. We were also paying because we were too lazy to export the data out of the software.
But Slack is different. Slack implements something called the Fair Billing Policy, where you are not billed for the users who are not active. You will pay only for the users who are actively using the product. Even if someone becomes inactive, Slack gives back the prorated money as credits to apply for the next month.
This kind of pricing is interesting and I want to understand the what and why behind this.
Cost of implementing a Fair Billing Policy
For a SaaS company, especially one which doesn’t store huge amount of data, the cost of maintaining a zombie account is practically nil. Even if you are storing a few GBs of files, storage costs you a few cents every month. If you have a few paying customers, you have the money and resources to maintain the few zombie customers for free or a very low price.
Yes it does require some custom code and few if-else conditions to identify if a user/account is active or inactive. But its nothing compared to complex software you are already building. Slack’s rules are pretty simple: If a user hasn’t used Slack for 14 days, then he becomes inactive.
I am pretty sure your users table will have the last_active_on field properly filled in which will be used to calculate the active status of a user. You don’t even have to provide prorated credits like slack does. If you identify a user isn’t active for N days, then just mark him as inactive and don’t bill for him the next month.
Side Note: If you are NOT tracking whether your users are using your products and what actions they are doing when and how, then you are doing SaaS wrong. Start putting in the audit trail and other tracking logic. Using this you will be able to learn a lot more than some user research you do sitting at your desk.
Performance will be affected
I do accept that eventually the number of zombie accounts might be more than the live accounts and the performance of your database is going to be affected because of zombie accounts. For that I would suggest a two step process.
The moment you identify an account turning inactive, stop charging for them and send them emails saying that you have turned off billing for them. Many times on receiving that email, the user would restart using the product or actively go and cancel his subscription.
If the user hasn’t done both of these for a few months (I would suggest 3 months), even after you sending regular emails every month about the billing, send two emails near the end of the 3rd month. In that email give him a deadline for the reactivation of the account and send another reminder.
On the day of the deadline, take a complete export of his data and store it safely and provide an easily downloadable link in the last email to him explaining what has happened. If the user wants to resume using his account, provide an easy one-click button to restore the data from his dump file. (Don’t make him re-upload the dump)
This way you have actively communicated with the customer about the status of his data and also assured him that it is safe and can be restored in a flash. While at the same time, you have cleaned up your database from all the zombie accounts.
Why should you do this?
Now that you have seen that it is pretty easy to implement a Fair Billing Policy, you might ask why one should do this? The customer is paying every month automatically and it is easy money.
Yes, it is tempting to keep getting the steady income every month. But as a service provider to your customer, you have the Moral Obligation to protect the customer even against his own stupidity or ignorance.
Because Slack has a Fair Billing Policy, I am more than happy to use it rather than it’s competitors, even though it costs 2x. This becomes your competitive advantage. By documenting your fair billing policy as a feature in your product, your customers would trust you more than others and will register with you rather than your competitors.
If you are building a SaaS product, make sure to include a Fair Billing Policy in your list of features. It will be an extra couple of months to build and implement it right, but it would be worth the efforts you put in. And you would also gain the goodwill of your customers.
Originally published at Srinivasan Rangarajan.