Usage Overview

Customers can be charged based on how much of a feature they consume.


Read the article below to learn how usage-based billing works, and take a look at the short video above for guidance on how to implement this billing strategy with Billforward.

Usage-based billing example:

You sell a phone plan, and want to charge for how many texts your users send each month.


You need to add a usage pricing component to the rate plan you sell. Like all pricing components, this can be tiered. You can use price tiering to model “overage”. For example, perhaps your rate plan includes 100 texts per month — but any consumption beyond this incurs a penalty:

0 -> 100    [$0.00/message]
101 -> ∞ [$0.05/message]

You could sell also a “BIG” plan where the customer gets more included texts than this. This is as simple as making that “free” tier wider.

Billing cycle

Every time a subscription enters a new billing period, an invoice (with type Subscription) is produced. In the case of a subscription to a “monthly” rate plan: you will enter a new billing period each month.


As you enter the billing period beginning 10th September, an invoice is raised. The invoice is responsible for in-advance pricing components during 10th September until 10th October. It is also responsible for any charges incurred in the previous billing period, 10th August until 10th September, that use retrospective pricing.

For example:

How much did the customer spend on texts this month? The final usage is known once the month finishes. Thus the consumption incurred in a given period can only be billed once we enter the period which follows it.

Note: An intra-month on-going cost calculation can be performed via a quote.

Quotes API documentation 

Billing retrospectively is called billing “in-arrears”.

Example invoice

So, perhaps your pricing includes:

  • monthly fee of $5
  • usage-based fee for texts

Your monthly invoice could contain the following information:

Invoice generated on:
10th September

In-advance charges for period:
10th September until 10th October

- $5 (monthly fee)

In-arrears charges from previous period:
10th August until 10th September

- 101 text messages = $0.05
- 100 text messages at $0.00/message
- 1 text message at $0.05/message

Reporting Consumption

Reporting consumption of a usage component can be done in one of two ways.

  1. Subscriptions have component values which can be updated using either the API or UI.
  2. You can raise the invoice in the pending state with no usage and then update the quantity on the pending invoice before attempting to take payment. See Usage tracking via pending invoices

Tracking usage via subscription components

To start a subscription via the UI, you can click on Add Subscription under the actions menu of any account. This allows you to chose the default values for the components including usage components but normally you’ll want this set to zero so that you can change it when usage occurs.

The UI for the subscription contains a section allowing you to edit the usage values for the current period and a quick +1 button to add a single usage. All values are shown here, including ones that are set permanently on the subscription and ones that are defined for the current billing period – this means that once you’ve incremented the usage, it will appear twice in the list to show the default value and the current value.

Screenshot 2021-11-01 at 17.21.44

When an invoice is generated for this subscription on 10th September, it will contain arrears and usage charges for the period 10th August to 10th September and advance charges for 10th September to 10th October.

Note: If you select to end a subscription at the end of the current billing period, the invoice will be raised as Pending and needs to be approved manually.

If you select to end the subscription immediately then no more usage can be applied.

Was this article helpful?