If you’re one of the growing number of businesses building SaaS products on the cloud, you’ll want to optimise the way your setup accommodates the increasing number of users adopting those products. That doesn’t just mean providing a modern functional replacement for some old on-premises workflow: it also means thinking about how to grant access to SaaS applications that’s fair, flexible and profitable.
The usage tiers for most SaaS products are based on features rather than on consumption. That’s because, for most SaaS vendors, the cost of using the service is small compared with the cost of developing and supporting the platform.
Pricing on features alone isn't the most flexible setup
And besides, one of the most vaunted promises of a move to the cloud is that users can ditch their expensive local hardware and instead only pay for the storage and compute resources they use.
When it comes to billing, the easiest approach is to charge everyone equally. A flat-rate charging model is simplest to apply, and everyone knows where they stand. But it’s also not very fair. In this scheme, the lightest resource users effectively subsidise the heaviest users.
In a multi-tenanted SaaS application, there are some busier tenants and some quieter ones. A flat-pricing model is crude and works only if the tenants’ usage averages out at an acceptable level.
But what if you had a service that had much higher costs of running, such as video processing, training AI models or storing large volumes of data? In those cases, usage becomes a more significant part of the cost of operation, and flat pricing doesn’t seem a fair approach at all.
So, how can we make things better in practice for SaaS platform providers? This billing problem is answered through a data-engineering solution, which should be of interest to everyone invested in creating SaaS products.
Flexible billing in the cloud
Our challenge is to support SaaS providers who need to produce a flexible billing solution so that their platform is profitable regardless of scale.
To make a comparison, it’s a bit like trying to run an all-you-can-eat restaurant. There, anyone who consumes a huge amount is most likely to be dealt with by being banned from the establishment.
This approach isn’t going to work in tech: a customer who doesn’t get the service they’re looking for will be able to find it somewhere else, and all their future revenue will be lost to you.
Treating everyone the same way risks leaving money on the table as people go to more innovative providers whose usage models are tuned to suit their needs. What we really need is a solution that accommodates all users.
So, a well-designed billing system for SaaS applications needs to be set up for the typical user – but should also work to bill heavy users so that all users can be served and be profitable for the platform operator.
Getting the balance right in order to serve all users well is essentially a data problem, where the requirement is to record all the jobs a client requests and to measure the resources required to run each job.
This breaks down as a need for accurate data gathering in the following areas. We’ll make this relatable by comparing it to phone bills on traditional landlines (if you can remember what they were …)
- Metering: recording what has been used and when. This is the equivalent of logging when traditional phone calls start and end.
- Rating: applying tariffs to the usage, to calculate charges, including volume discounts. This is the equivalent of charging evening phone calls cheaper than daytime calls.
- Billing: the cycle of billing and receiving payment. This is the equivalent of generating a monthly phone bill and ensure that the bill has been paid.
This might not sound too challenging...
…but it’s not always straightforward to measure the real costs of providing cloud resources. Getting this input data right is essential to calculating margins so that businesses can understand how their profitability works. As ever, good data is essential for a good outcome.
We need a nuanced approach as an alternative to the crude method of flat-rate SaaS pricing, which is often supported by blunt tiers and clumsy billing tools.
Imagine how SaaS billing could be shaped to provide a much more attractive proposition:
- Dynamic pricing: adjusting prices when the platform is idle. Cloud providers could sell off excess capacity cheap. And for customers who don’t have time-dependent jobs, those jobs could be scheduled to run during a low-use period that’s optimal for the operator.
- Predictive power: integration with other data sets means that it would be possible to forecast billing revenue based on seasonal usage patterns, clients’ usage cycles and even the weather.
- Accuracy and transparency: providers would be able to provide line-by-line itemisation of consumption, giving assurances to users that billing is fair for all.
We’ll go into more detail about how we went about designing such a billing system for one of our clients in a future article.
Inflexible, one-size-fits-all billing isn’t going to work as more and more providers roll out SaaS applications in the cloud. It’s time to get up to speed so that your business can stay relevant and competitive in the world of cloud apps.