Skip to content

Usage Data Billing

Billing Automation

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 (aka metered billing, usage-based billing or pay-per-use) works as follows:

transaction_bill
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.

transaction_build
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: Set up to create invoices and invoice line items directly out of the objects that hold usage data
  • 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 Price and Quantity Fields

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.

Price and Quantity Fields

Usage Data Tables

Your business use cases my 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

Transactions

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