Usage Data Billing

← Billing Automation

Generally, usage data billing is a billing model that charges users based on a consumed product or service usage. JustOn implements usage data billing based on specifically configured objects and subscriptions.

Understanding Usage Data Billing

In subscription-based business scenarios, you charge customers repeatedly for a continuous use of a product or service. Since this usage typically varies, you may want to offer a fair, transparent billing approach – track the usage and bill the consumption.

This is what usage data billing (aka metered billing, usage-based billing or pay-per-use) does: Typically, customers subscribe to a product or service plan. It may include a (recurring) base price, but the key feature is to charge the actual consumption.

Usage Data Billing in JustOn

Usage data represent product consumptions (volume or traffic data, service coverage, etc.) that are to be invoiced. To this end, usage data include the following information:

  • the date and time the consumption took place,
  • the quantity for the consumption, like a number of worked hours, or a number of consumed units, etc.,
  • an identifier, which is used to assign the usage data to a subscription item.

In broad strokes, usage data billing works as follows:

Itemizing and billing usage data

JustOn retrieves raw usage data (for example, via data import or a third-party integration) and usually saves it to custom objects. The continuous invoice run creates invoices and invoice line items out of these objects. It uses the transaction builder functionality to itemize the consumption data in the background, and then matches this data against the defined subscription items. Finally, it evaluates the provided quantity information and calculates the item's subtotal, producing the corresponding invoice line item.

Configuring usage data billing with JustOn

Usage data billing usually involves:

Custom object
Set up to hold both the usage data and the controlling data
"Target" subscription and corresponding items
Holds the items set up to match the transactions for the invoice generation
Transaction filter
Defines which objects and records to include in the transaction build process
Continuous invoice run

Creates invoices and invoice line items directly out of the objects that hold usage data

Usage data billing requires the (continuous) invoice run using the transaction filter, triggered either manually or as a scheduled job. Manually generating an invoice from the target subscription (using the New Invoice button) does not invoke the transactional billing.

Minimum fee
Optionally, set up to bill a fix base charge, irrespective of actually incurred costs
Usage data billing, continuous invoice run, transaction builder?

Usage data billing is the general name for JustOn's approach to generate invoices from custom object records that represent product consumptions (volume or traffic data, service coverage, etc.).

The continuous invoice run is the key player in this operation: it creates invoices and invoice line items from the object records that hold usage data. As the name suggests, it can run multiple times, repeatedly aggregating new usage data to existing invoice line items as long as an invoice is Draft.

The continuous invoice run, for its part, relies on the transaction builder. This mechanism itemizes the consumption data – converting it to actually billable items.

Usage Data Billing
Enabling Minimum Fees

Individual Prices or Quantities

Certain business use cases require individual (account-specific) prices, price tiers or quantity information for consumption data. To this end, you can add multiple price and quantity fields to the source object. An (account-specific) subscription item can then retrieve the intended value from the specified source field. Doing so usually requires to aggregate the relevant values from multiple source records.

Retrieving and aggregating individual source prices

Aggregating individually priced source records

Think of usage data records that match with the same subscription item but that each define an individual price in the ON_Price field. Now the continuous invoice run must aggregate these prices. To support this, you configure the following fields on the transactional item:

Field Value
Transaction Price Field ON_Price__c
Aggregate Indiv. Priced Transactions (checkbox) true

Price and Quantity Fields

Usage Data Tables

Your business use cases may require to include the list of itemized usage data records with the invoice. To this end, you can configure JustOn to

  • Directly print a table of itemized usage data records on an invoice, or
  • Generate CSV files for itemized usage data records to be attached to invoices.

Displaying Transaction Records on Invoices
Attaching Transaction CSV to Invoices


When billing usage data, you usually create invoices and invoice line items directly out of objects that hold usage data. The continuous invoice run uses the transaction builder functionality to itemize the consumption data using "transient" transactions. It does, however, not generate "tangible" transaction records. Certain use cases, however, may require to do so.

There are two ways to invoke the transaction builder to generate "tangible" transaction records:

  • Selecting a transaction filter when executing an invoice run
  • Using a transaction build job

Usually, each transaction results in an individual invoice line item. Certain business use cases, however, require transactions to be aggregated but still keeping individual records for transaction tables. To this end, JustOn supports transaction details, which are in a master-detail relationship with transactions.

For aggregating values, JustOn makes use of roll-up summary fields that sum up specific fields over all transactions details that belong to a specific transaction.

Building Transactions
Transaction and Transaction Details