Over the years, the landscape of SaaS pricing has undergone a remarkable transformation to better cater to customer needs and enable more accessible software solutions. The traditional annual license-based pricing models gave way to subscription based pricing, where customers pay on a monthly basis. This shift provided companies with greater flexibility in managing their software expenditures and democratized access to high-quality software for small and medium-sized businesses.
As subscription based pricing gained popularity, specialized subscription management tools emerged to handle the unique requirements of this pricing approach. These tools allowed software companies to outsource their billing processes, freeing up valuable resources to focus on product development and improvement.
But soon enough, evolving software products along with the rising wave of product led growth drove another shift in pricing strategies. Previously, software value was based on the number of users, hence, it was priced "per user per month'. However, with SaaS products that don't require human end users, value is now tied to usage metrics such as SDK consumption, API hits, and more. As a result, pricing is moving towards variable, consumption-based models to align with customer value. This has given rise to consumption based pricing, also known as usage based pricing (UBP).
However, the implementation of usage based pricing requires an integrated billing infrastructure that can handle the complexities of managing usage data.
Requirements of usage based billing
To effectively implement usage-based billing, it's crucial to establish a seamless system for integrating usage data into the billing process. Metering is a process that involves tracking product usage and other relevant metrics by the product team for internal tracking. However, sending this data from metering to the billing system can be a complex task.
There are several challenges involved in building a reliable system to accomplish this. Firstly, the data flow from the metering system, which measures usage, to the billing system must be robust and capable of handling a high throughput of data. It should also be able to process raw data into aggregated usage metrics, which serve as the basis for customer charges.
Secondly, the element of time plays a significant role. Let's consider the scenario of charging per GB of storage. If a client adds an additional GB of storage, it becomes crucial to track how long they have utilized this storage. This requires a system that can accurately record the duration of usage and transmit the processed data to the billing system. However, this additional processing can be a burden for the product team.
Moreover, raw product usage events are not inherently tied to billing cycles, such as monthly, quarterly, or annually. Usage events are tracked in real-time without any aggregation based on a specific timeline. However, for billing purposes, it's necessary to
Establish a start date and an end date during which the usage is considered for invoicing.
The rush to capitalize on the rising popularity of usage based pricing led traditional subscription management platforms to introduce this pricing model into their existing infrastructure. However, attempting to force usage based billing onto their systems revealed significant gaps and limitations. Like selling shovels during a gold rush, these platforms saw an opportunity but lacked the specialized infrastructure required for seamless implementation.
Challenges of implementing usage based pricing on subscription billing tools
Implementing usage-based pricing on popular subscription billing tools introduces a range of challenges that businesses must address. While these tools may offer add-on features for metered billing, integrating usage data with pricing information requires additional operations and engineering efforts. The list below is not exhaustive but definitely covers the biggest gaps.
1: Mapping users in your product to customers in billing
The first challenge lies in mapping users in your product to customers in the billing system. To send usage data to billing tools, you need to associate it with the appropriate invoice or subscription. This requires maintaining records of the billable metric for each customer, as specified in their contract, and the subscription item ID, which identifies the corresponding plan or product. Handling multiple products used by a single customer adds complexity, necessitating the tracking of multiple subscription item IDs to ensure accurate data transmission. This process can be cumbersome, requiring engineering resources to segregate product usage per customer, track subscription ID changes, and transmit usage data.
Consider the example of Stripe, where usage-based pricing is implemented by sending usage through an API. This practice is common across billing tools, but it imposes additional burdens on engineering teams. They need to separate product usage per customer, verify the updated subscription item ID (which changes with subscription modifications), and then send the usage data. Building and maintaining an in-house system solely for sending usage data to a billing tool designed for usage-based pricing is inefficient.
But it doesn’t end here.
2: Limits force aggregation at source - More work for your engineering team!
Another challenge arises from various limits that billing tools impose because of their limited infrastructure. Consider the image below -
A limit of 5,000 usage records for the lifetime of the subscription is just not enough. To work with above limit, you will need to restrict the frequency of sending usage data to the billing tool. You will need to build a way to aggregate usage data over a specific time period, store it, and periodically send aggregated usage to the billing tool. This places an added workload on the engineering team, diverting their attention from core product development. Simply put, the traditional billing tools aren’t designed to natively handle usage data.
3: Lack of flexibility in making changes
Traditional tools also lack flexibility when it comes to making changes. Modifying a usage-based component requires ending the previous subscription and starting a new one. This process results in the deletion of all previous usage data associated with the subscription, necessitating the recollection of usage data, termination of the previous subscription, creation of a new subscription with the desired changes, and re-sending of aggregated usage data.
4. Limited flexibility in iterating on usage metrics for pricing
The way current billing systems handle usage data not only poses challenges but also restricts your ability to fully leverage the advantages of usage-based pricing. One significant limitation is the inability to iterate on billable metrics easily in a simulation environment. If you want to experiment with the billable metrics to maximize revenue, most billing tool won't be able to handle this. Instead, you will need to collect the required data from the tech/data teams, do manual calculations on spreadsheets or use SQL queries, and then toggle various variables to compare different models. This manual process will be time-consuming and error prone, impeding your ability to optimize your pricing strategies.
5. Rate limits - well, they are limiting
When it comes to usage-based pricing, billing systems may not play nice with real-time usage data. These systems often impose strict rate limits, hindering the smooth flow of data. Transmitting usage data through APIs can be challenging, especially when dealing with high data volumes produced at rapid rates. Sadly, traditional billing solutions place the responsibility on customers to manage these limits, requiring them to invest significant engineering resources just to handle rate limits. Such constraints can divert focus from core product development.
All these challenges highlight the need for a solution that simplifies and automates the process of feeding data into billing tools, rather than adding complexity. So, what is the answer, and why do these challenges persist?
The hidden unsolved challenges [And how to solve them]
There is a distinct difference between simple subscription pricing and usage-based pricing models when it comes to billing. In a subscription model, the contract contains all the necessary information to generate an invoice.
A contract is a legally binding agreement between the sales team and the customer. It outlines various aspects of the business arrangement, including payment terms and other relevant details.
However, in usage-based billing, the additional element of usage is not inherently part of the subscriptions in the billing system. As a result, when usage-based pricing is applied to existing tools, specific requirements must be met to capture and utilize usage data effectively for invoicing.
This places the responsibility of managing usage data on the customer, particularly the product teams. They need to tightly integrate their existing metering systems with the billing tools, understanding the intricacies of contracts, billable metrics, and mapping to ensure data is fed into the right place in the billing system. The tight coupling between metering and contracts (or subscriptions) gives rise to the challenges we discussed earlier. To address these challenges, a solution lies in decoupling metering from contracts, which requires fundamental architectural changes in subscription-first billing tools.
Drawing inspiration from the telecom industry, where usage-based pricing has been successfully implemented for years, serving millions of customers in real-time, we can learn from their decoupled architecture approach.
What does this truly mean for your business?
Decoupled metering and contracts: unleash your superpowers!
In the world of usage-based pricing, product usage data holds immense potential beyond mere invoice generation—it can be a catalyst for driving growth and optimizing revenue.
By decoupling metering from contracts, you unlock a world of possibilities. You can seamlessly incorporate raw events or product usage directly into the billing process, without the need for complex code or cumbersome integrations. Engineers can focus solely on metering usage, independent of the billing system, freeing them from the constraints of subscriptions and customer terms.
This newfound freedom empowers you to effortlessly iterate on pricing models. You can explore different pricing approaches without disrupting your usage metering or aggregates. With the necessary aggregates seamlessly pulled into the invoice based on signed terms, you can iterate rapidly and adapt your strategies to maximize revenue potential.
But the benefits don't stop there. Decoupling metering and contracts allows you to gain valuable insights from your customers' usage patterns. You can understand how their behavior directly impacts your revenue, enabling data-driven decision-making. With this comprehensive understanding, you can optimize your pricing strategies effectively and unlock hidden growth opportunities.
Decoupled metering and contracts give you the superpowers you need to thrive in the world of usage-based pricing. Embrace this architectural shift, and unleash your true revenue optimization potential.
Usage-based pricing offers flexibility and benefits for both SaaS providers and customers. It aligns pricing with value, promotes fairness, and enables scalability. However, traditional tools struggle with implementation, requiring significant engineering resources.
The key to seamless implementation of usage based pricing is decoupling metering from contracts. This would offer the space to experiment, use advanced analytics, and empower businesses to optimize pricing and revenue.
At Zenskar, we understood this fundamental problem and built the infrastructure that supports decoupled metering and contracts. As a result, we eliminate the hassle and unlock the superpowers needed for success in usage based pricing. Take a free demo to learn how a modern billing infrastructure can solve your billing issues!