AutoMaat
Knowledge base· By industry

SaaS billing leakage

How your billing system quietly under-invoices through plans, coupons, proration, metering and dunning, and how to check it subscription by subscription.

Ricardo Mastenbroek9 min read
Lees dit artikel in het Nederlands

SaaS billing leakage is the part of your revenue leakage that arises inside billing itself: the system invoices exactly what is in it, but what is in it differs from what was agreed or used. Think of subscriptions on the wrong plan, coupons without an end date, upgrades without a pro rata invoice, usage that is not metered through and failed payments that are not followed up. It is also known as subscription revenue leakage, because the leak repeats every subscription period.

Why is billing where revenue leaks?

A billing system such as Stripe or Chargebee, or the subscription module in an accounting package, is built to repeat reliably. That is its strength and its weakness. If a subscription is set up correctly, every invoice is correct. If it is set up wrongly, every invoice is wrong, and the system has no way whatsoever of knowing.

Billing does not know the contract. It knows the plan, the price, the quantity, the coupon and the invoice date someone set up. Anything outside that does not exist for it. That makes billing leakage a specific form of revenue leakage in SaaS: it is not about agreements nobody made, but about agreements that did not land correctly in the system.

How billing fits into the whole of CRM, contract and product usage is covered in Revenue Intelligence for SaaS.

The building blocks of a subscription, and what goes wrong in each

Every subscription in a billing system consists of a handful of components. Revenue can leak at each one.

Component What it determines Typical error
Plan or product Which price applies Standard plan chosen instead of the agreed custom plan
Unit price Amount per seat, per module or per volume Old price version linked after a price change
Quantity Number of seats or units Not updated after an expansion
Coupon or discount Reduction of the price No end date, or an end date that does not match the contract
Billing interval Month, quarter, year Set to monthly when annual in advance was agreed, or the reverse
Proration setting What happens at a mid-term change Switched off, so upgrades are only billed at renewal
Metered component Usage charged per period Usage not sent to billing, or only partly
Payment method and dunning What happens when payment fails Account stays active, follow-up stops after three emails

This table is also your checklist. If you put these eight components next to the contract for each subscription, you will find most of the billing leakage.

Five mechanisms that leak most often

Price versions and grandfathering

When you raise your prices, most billing systems have you create a new price version. Existing subscriptions stay on the old version. That is called grandfathering, and sometimes it is a deliberate choice. Often it is not. Under the contract terms the new price should apply at renewal, but nobody moved the existing subscriptions.

The result is that after a few price changes you have customers on three or four different price levels for the same product, without anyone having decided it that way. Related to this: revenue leakage from wrong subscriptions.

Coupons

In billing, a coupon is a separate object with a percentage or amount and a duration: once, a number of months, or forever. The "forever" option is the default or the quickest one in many interfaces. A first-year discount created as a permanent coupon is a permanent price cut.

A second pattern: coupons created for one customer and later reused on other customers, because they are in the list and someone assumed it was the standard discount.

Proration

When a customer upgrades mid-period, billing has to decide what happens with the difference. An immediate pro rata invoice, settling the difference on the next invoice, or doing nothing until renewal. If proration is switched off, or someone manually chooses "no proration" at the change so as not to surprise a customer, the functionality is free until the next period. On annual contracts that can be months.

Metering

With usage-based pricing, your product sends a count to billing each period. That count literally is your invoice. Anything that goes wrong in between is a direct loss of revenue:

  • The count is not sent because a job failed, and nobody gets an alert.
  • The count is sent per customer ID, but the customer ID in the product does not match the one in billing.
  • The count arrives after the billing period has closed and is ignored.
  • A new feature is used but not counted, because it was never added to the metering.

Dunning and failed payments

A failed payment is not leakage as long as you follow it up. It becomes leakage when the account stays active and the follow-up stops. Many billing systems retry a number of times, send a number of emails, and then mark the subscription as unpaid or cancel it. What happens in the product after that depends on how the link between billing and product was built. Often nothing happens.

Manual invoices and credit notes

Alongside the automated subscriptions, almost every SaaS company has a stream of manual invoices: implementation, custom work, extra days of consultancy, a one-off migration. These are created by hand in billing or in the accounting system. Two things often go wrong here.

They are not created. The work is done, but because it is not a subscription, it never comes up on its own. Nobody gets a reminder.

Credit notes are not reversed. A customer gets a credit note because of an outage or a dispute. Sometimes it is set up as a recurring discount on the subscription instead of a one-off credit. Then the customer gets the compensation again every month.

How do you check for billing leakage?

You can do this without special software, as long as you can export per subscription. The steps:

  1. Export all active subscriptions with plan, price, quantity, coupon, coupon duration, interval and proration setting.
  2. Export all active coupons with their duration and the number of subscriptions they are applied to. Every coupon with a "forever" duration is a question that needs answering.
  3. Put the twenty largest subscriptions next to the contract. Does every row in the table above match?
  4. Count the price levels per product. How many customers are on each price version, and is that a decision or an accident?
  5. Compare metered usage with billed usage. Per customer, for the last three periods. Every difference above a few percent is a question.
  6. List all unpaid invoices on active accounts. Sort by age. Anything over thirty days gets an owner.
  7. Check last quarter's manual invoices against quotes and closed deals with one-off items.

The monthly version of this check, in which you structurally align contract, billing, payment and usage, is called SaaS revenue reconciliation. A wider approach to checking invoicing without going through everything by hand is in how do you check billing automatically.

Worked example: one wrong coupon

Suppose a sales manager created a 25 percent coupon two years ago, intended for the first six months of one large customer. The coupon was given a "forever" duration. The same coupon was then used on 14 other new customers, because it was in the list. Average subscription: EUR 1,200 a month. This is an example to show the calculation.

  • Per customer, 25 percent of EUR 1,200 = EUR 300 a month in discount that was never agreed.
  • Across 15 customers that is EUR 4,500 a month, EUR 54,000 a year.
  • If those customers received the discount on average 14 months longer than intended, around EUR 63,000 has already leaked away.

One object in billing, one click when it was created. It is not fraud, and not carelessness in the usual sense. It is a default setting that nobody checked.

How do you prevent it structurally?

Limit who can create subscriptions and coupons. Not everyone with access to billing needs to be able to create coupons. Build a small set of standard discounts with a fixed duration, and route anything custom through finance.

Check every new subscription against the contract. A second pair of eyes before the first invoice is sent. This takes five minutes per deal and prevents most of the leaks.

Monitor the metering itself. An alert when the usage export has not arrived, or when a customer with an active account reported zero usage for a period while they were active in the product.

Link billing status to product access. If a subscription is unpaid after the dunning period, the product needs to know. Whether you then restrict the account or only create a task is a commercial choice. Letting it run on unnoticed is not.

Treat price changes as a project with an end. A new price has only been implemented once every subscription that should move under the contract has actually been moved.

Frequently asked questions

What is the difference between SaaS billing leakage and subscription revenue leakage?

In practice both terms are used for the same thing: revenue that leaks because subscriptions in billing differ from what was agreed or used. Billing leakage emphasises where it arises, subscription revenue leakage the kind of revenue it affects.

Can my billing system detect this itself?

To a limited extent. A billing system can report on failed payments and active coupons, but it does not know your contracts. So it cannot see that a price is too low or a discount is running too long. For that you need to put billing next to another source.

How large is billing leakage on average?

There is no reliable average for that. It depends on how much custom work you sell, whether you bill on usage, how often you change prices and how many people create subscriptions. Companies with many standard subscriptions and little manual work tend to leak less than companies with many custom deals.

What is the quickest check I can do today?

Export all coupons with a "forever" duration and the number of subscriptions they are applied to. For each coupon, ask: is this a deliberate, permanent agreement? If not, you have found your first leak.

Share this article
Knowledge base · By industry

More in this cluster

All 19 topics in this cluster

More from AutoMaat

Rather know what this costs you specifically?

The Revenue Audit puts a euro amount on where your revenue leaks.

Plan the Revenue Audit