Pricing OperationsApr 28, 2024
Curious about the ideal Usage-Based Billing workflow? This article highlights four crucial steps: sourcing and preparing data, loading and calculating data, delivering calculations to billing systems, and establishing continuous billing.
The last few years have brought many conversations around the benefits of usage-based pricing (UBP) – easier adoption, increased NRR, support for Product Led Growth (PLG, and logo churn resiliency, to name a few – but not enough practical guidance on how to actually implement and operate this type of SaaS pricing strategy.
We’ve heard from many Finance and Product professionals about their endless Google searching, trying to find help with questions like:
If you’re wondering about any of these questions, know that the challenges you face are common among SaaS businesses, especially as usage-based and hybrid pricing gain more of a foothold in the industry.
Read on for our take on the “ideal” usage-based billing workflow and overcoming the common challenges that accompany consumption elements in pricing.
The core challenge you’ll need to solve for with UBP is this: If your pricing has consumption-based components, you will need to rate – i.e. apply pricing to – the product usage data. This is the big difference between billing workflows for usage-based pricing versus traditional subscriptions.
The workflow for usage-based billing covers four main steps:
Because every company is different, many of these sections will contain not only guidance, but also questions for you to consider as you build your own ideal usage-based billing workflow.
There are three broad categories of data that will be needed for usage-based billing: account data, pricing and order data, and product usage data. But the sources of truth for these three categories are typically in different places.
This is the core customer record that the Finance stack refers to when generating bills and collecting payments.
Data location examples: NetSuite, Salesforce, your CRM, etc.
This data is a record of what has been sold to a customer and which prices should apply when calculating their bill. The more variability that exists in pricing, the more complexity there will be, ranging from all customers on exactly the same pricing (easiest) to every customer on customized pricing (hardest).
This can be stored in a Sales CRM, CPQ, a subscription management system, a separate price book, or some combination of these.
Data location examples: Salesforce CRM, Salesforce CPQ, etc.
This data is generated from your core production systems, and there are a number of steps in the pipeline:
These product usage data pipelines typically need to be built and managed by people with technical expertise, because 1) the volume of usage events can be massive, and 2) data can be difficult or impossible to rebuild and recategorize if it is incorrect after the events have been generated.
Data location examples: Bespoke analytics database or analytics databases like Oracle DB and AWS.
Once the three types of data are located and prepared, the next step is extracting and loading the data into a mechanism that performs calculations. You’ll first need to consider how much you want to automate extraction for each type of data. For example:
However the data is extracted, it then needs to be loaded into your chosen system to perform the calculations. Many companies do this in spreadsheets: They load the account, pricing, and product usage data into Excel, then set up formulas to calculate bill amounts.
The main challenges with this option? Spreadsheets are prone to errors and they don’t cope well with complex calculations. The chances of error increases when the number of accounts is high and/or the pricing is complex, especially when every customer may have custom prices. Billing this way can also take a really long time as it’s so manual, making it difficult to close the books on time each month. The alternative is to use a task-specific tool, either one built in-house or off the shelf from a provider like m3ter.
It’s also worth noting you need the ability to rerun bill calculations without re-ingesting the usage data, either 1) to reassure auditors and customers that bills are correct, or 2) to correct bills if the wrong pricing was mistakenly used for a customer.
The “ideal” level of automation varies depending on the company: For early-stage companies with relatively simple pricing situations (e.g. few customers, few products, limited custom pricing), spreadsheets are a viable option, though highly limiting to scalability. As companies mature, they will need to introduce a higher degree of automation and move away from spreadsheets to avoid acute operational headaches and significant amounts of revenue leakage.
At billing time, these calculated amounts then need to go to the billing systems: the tools that generate invoices, collect payments, calculate revenue recognition, and post to the general ledger. (If you’re performing your calculations in spreadsheets, that adds another step of manual input here.)
But there are other places that you might need to deliver billing and usage data in SaaS companies:
If your Sales and Customer Success teams need access to that billing data to manage proactive upsells, renewals, or customer billing queries, you'll need to create that workflow, either by asking the BillingOps teams to manually send it through at regular intervals or through enabling self-service. The more efficient workflow is to make billing data self-serve and available in the tools where the teams spend most of their time, like the Sales CRM like Salesforce or a Customer Success Platform.
If the end-customer needs access to their billing data, you’ll need to decide where they will be able to see their bills and understand their usage, whether on an “account dashboard” or something similar, and if that data will be delivered flexibly via API or in another way.
You’ll also need to consider whether the FP&A team needs access in order to generate key management metrics, and if they will need the ability to ingest that data to their Business Intelligence (BI) stack for deeper analysis.
If you have a monthly billing cycle, then you only need to calculate the bills once per month, right?
Wrong (unfortunately). Teams and systems around your business will need to know how bills are tracking based on a customer’s usage so far that month. They might need this “running total” weekly, daily, hourly, or even more frequently.
Teams have various reasons for needing this information:
Having the systems in place to calculate bills at any given moment will help all teams to fully capitalize on the benefits of usage-based pricing by offering great customer experience and having a higher degree of understanding and control.
When the usage-based billing workflow is running smoothly, bills are calculated automatically, with all relevant teams able to access the “running total” of a customer’s bill at any time.
BillingOps teams don’t have to constantly ask engineers to run a report to calculate bills – the extract is automatically delivered on demand.
Sales and Customer Success can proactively initiate customer conversations based on usage patterns and offer more flexible pricing variations without creating more manual operations for the finance team. Deal Desk teams will no longer be a blocker to custom sales pricing because monetizing those deals will be easy.
Product teams can easily launch new features and release pricing and packaging updates and integrate billing dashboards with an exceptional UX into the product, so customers know what their usage will cost them at the end of the month.
To achieve this level of usage-based billing utopia, you’ll need the right tech stack. With m3ter, you don’t have to change any of your other (carefully chosen) tools, as it slots right in, working not only as data infrastructure between these systems but also one detailed source of truth for bill calculations.
Get in touch to see how m3ter can uplevel your usage-based billing workflow.
See a demo, get answers to your questions, and learn our best practices.
Schedule a demo