Item Pricing

← Billing Automation

Subscriptions include items. They represent the products to be charged and will figure as invoice line items on the created invoices.

Basic Item Pricing Concepts

With respect to item pricing, the following basic concepts are important.

Depending on the nature of the product, you can define a specific billing type for an item. It specifies the general billing behavior:

  • One-Time: The item is billed only once. After the item has been invoiced and the corresponding invoice has been finalized, JustOn deactivates it so it will not be included in subsequent invoice runs.

    As soon as an item specifies a billing period, billing unit, start date and end date, JustOn Billing & Invoice Management considers it as recurring and, consequently, calculates proportional price amounts, even if its type is explicitly set One-Time.

  • Transactional: There is no quantity defined for the item. Instead, the information (quantity or quantity + price) is provided by usage data that match the subscription item.

  • Recurring: The item is billed with the given amount in each invoice run.
  • Recurring Prorated: The item is billed with the given amount in each invoice run, with support for the partial calculation of months defined as the billing unit. Every whole month in the billing period is counted as one, whereas a part of a month is calculated as Days / NumberOfDaysInThisMonth.
  • Recurring Prorated AVG: This is a variant of the Recurring Prorated billing type with a different billing factor calculation. With Recurring Prorated AVG, JustOn calculates the billing factor the same way as Salesforce CPQ with a subscription prorate precision of Monthly + Daily (see Subscription Prorate Precision in the Salesforce Help).

The actual price of an item can be of two types.

  • Flat: With a flat price, the item's quantity is assumed as 1 and the item's subtotal equals the configured flat price.
  • Default: When specifying a default price, the item's subtotal is determined by the specified default price multiplied by the actual item quantity.

For an overview of common pricing models and their implementation in JustOn, see Price Models.

General Billing Settings

The following details control the item's general billing behavior:

Section Field Description
Generic Billing Values Billing Type Specifies the general billing behavior
Recurring – item is billed with the given amount in each invoice run
One-Time – item is billed only once, then it is deactivated
Transactional – there is no quantity defined for the item, it is calculated based on usage data records instead
Recurring Prorated and Recurring Prorated AVG – item is billed proportionally to a partial billing unit
Price Specifies the item price, is ignored when using price tiers
Price Type Specifies the item's price type, is ignored when using price tiers
Default – using a default price, the item's subtotal is determined by the specified default price multiplied by the actual item quantity
Flat – using a flat price, the item's quantity is assumed as 1 and the item's subtotal equals the configured flat price
Charge Model Defines the commission calculation type for specific pricing scenarios
Mark Up – the invoice run creates an additional invoice line item for which the price is calculated based on the original invoice line item total multiplied by the percentage that is defined in the commission field
Mark Down – the invoice run creates an additional invoice line item; the prices for the two items are re-calculated such that the sum of the item totals equals the original total, and the price for the additional invoice line item is based on the percentage in the commission field of the original item
Discount Specifies a percentage discount rate that is applied to all prices of the item
Commission Specifies a percentage commission that calculates the line item total based on the unit price and the defined percentage
Recurring & One-Time Billing Values Billing Period Specifies the time interval (in days, months or years) for the item to be considered in an invoice run
Billing Unit Specifies the time frame (Day, Month or Year) used for the price calculation of the billing period
Next Service Period Start Specifies the next billing date for the item
Sync With Specifies a time with which the next invoice date of a recurring item is to be synchronized
Transactional Billing Values Order No. Specifies the key to match source data to a subscription item
Transaction Price Field Specifies the source field for the item price when calculating transactions
Transaction Quantity Field Specifies the source field for the item quantity when calculating transactions
Transaction Aggregation Fields Specifies additional fields to be aggregated for calculating transactions
Timed Quota Specifies the quantity that triggers the timed quota functionality: If the quantity over all line items within a year from the start date of the item is greater than the timed quota, JustOn applies the alternate price (set in the Price field) instead of the standard price (taken from a price tier).
Timed Quota Period Specifies the aggregated quantities of the invoice line items per period. The period is updated when an invoice is finalized.
This field is not intended to be displayed, as it is used for internal calculation purposes.

Price Tiers

You can set price tiers. These are a means to specify multiple prices for an item, each being valid for a defined quantity range.

Price tiers without defined validity period

The following settings control the price tier behavior:

Field Description
Quantity Specifies the item quantity until which the price defined in this tier is valid. If left empty, the defined tier price is valid for all quantities.
Price Specifies the price to apply to quantities within the range of this tier. If left empty, the tier is not considered in the price lookup.
Price Type Specifies the price calculation method for the current price tier:
Default - When specifying a default price, the item's subtotal is determined by the specified default price multiplied by the actual item quantity.
Flat - With a flat price, the item's quantity is assumed as 1 and the item's subtotal equals the configured flat price.
Split Quantity (checkbox) Specifies whether the item is to be split into a new invoice line item when it exceeds the quantity defined in this tier, can be used for scaled prices or if you want to state a basic charge separately.

You can set up price tiers to be valid for a defined time, specifying a start date and an end date. In this case, JustOn arranges the prices with the same start date and end date into one price tier group.

Price tiers grouped by validity period

Be aware that price tier groups must not overlap.

With multiple price tier groups, JustOn selects the matching price of a subscription item during the invoice run based on

  • the quantity and
  • the transaction date for transactional items or
  • the service period for recurring items.

That is, transactions that have taken place in the time of one price tier group are aggregated, but separated from those that have taken place in the time of another price tier group. This results in multiple individual invoice line items, each based on one price tier group.

If the price tier group changes within the service period of a recurring item, JustOn separates the service period into multiple parts. The item price for each service period part is calculated using a split billing factor that corresponds to the split period. This also results in multiple individual invoice line items, each based on one price tier group.

When using two or more price tier groups, the last one must not specify an end date. If, however, there is an end date set for the last price tier group, then the subscription items must also specify an end date (earlier or the same as the price tier end date). Otherwise, the price calculation may fail, stating

An Apex error occurred: ONB2.AbstractPriceCalculator.PriceNotFoundException: No matching price found for item "<title>" with quantity <#>.

As long as you do not define start date and end date for a price tier, there will be only one valid price tier and no item separation will take place.


You can have price tiers created automatically from source records when automatically building subscriptions.

Be aware, however, of the following limitations:

  • Some Salesforce objects are not allowed to be the target of a lookup relation, including, for example, Order Product. When using one of these objects to create subscription items, it is not possible to configure a subchild object for creating price tiers.
  • When updating subscriptions automatically, any created price tiers are not included.

Using Price Tiers
Configuring Subchild Object

Timed Quota

When billing usage data, your business may require to apply different prices after an allocated usage quota is exceeded. To this end, you can define a timed quota for a transactional item. Once set, JustOn selects an alternate price for a transactional item if the achieved quantity is larger than the quota defined for the given period.


The timed quota support is available as of JustOn 2.59.

For the feature to work, you need two prices – a (standard) price to apply for quantities within the quota, and an alternate price for quantities that exceed the quota.

  • The price for invoice line items within the defined quota is taken from a price tier. That is, you create at least one price tier to define the standard price(s) to apply.
  • To set the price for invoice line items that exceed the quota, you use the Price field of the item. With the timed quota set and filled, JustOn bypasses the price tier and applies the price defined here.
  • To set a different title and description for invoice line items that exceed the quota, you can use the item fields Additional Title and Additional Description.

With respect to the timed quota functionality, the following specifics apply:

  • The period considered for the quota is one year starting with the item start date. If there is no start date set on the item, the subscription start date is used as fallback.
  • The service period start date of a transaction is used to determine the quota quantity period. If there is no service period start on the transaction, the transaction date is used as fallback.

    Example period definition
    Item Start Date Transaction Start Date Timed Quota Period
    2018-03-01 2018-03-01 2018-03-01 - 2019-02-28
    2018-03-01 2018-02-28 2018-03-01 - 2019-02-28
    2018-03-01 2019-07-01 2019-03-01 - 2020-02-29
    Example periods with leap years
    Item Start Date Timed Quota Periods
    2019-02-28 2019-09-28 - 2020-02-27
    2020-02-28 - 2021-02-27
    2021-02-28 - 2022-02-27
    2020-02-29 2020-09-29 - 2021-02-27
    2021-02-28 - 2022-02-27
    2022-02-28 - 2023-02-27
  • If the quantity of a transaction exceeds the timed quota, JustOn splits the transaction into two invoice line items: one for the price below the quota and one for the price above the quota.

  • If the timed quota is set for an item, JustOn aggregates the transactions by the quota period.

    Transaction aggregated by quota period

    Transactions for an item with the start date 2018-03-01 before the aggregation:

    Transaction Start Date Quantity
    2018-03-01 2
    2019-02-28 3
    2019-03-01 7

    The same transactions after the aggregation:

    Transaction Start Date Quantity
    2018-03-01 5
    2019-03-01 7
  • If an invoice is cancelled, the quantities of the cancellation line items are removed from the timed quota of the related item.

  • In case of a partial credit, the quantity of the cancellation line item is removed from the timed quota of the related item if the partial credit has been created by quantity. Partial credits based on an amount refund do not affect the quota quantity.

    If a partial credit has been created by quantity, JustOn first reduces the quantity above the quota. Only when this quantity is used up, JustOn starts to reduce the originally priced quantity below the quota.

Using Timed Quota

Commissions and Commission Tiers

Certain business use cases require commissions to be charged as a (variable) remuneration for rendered services or sold products. For determining the payment, you can define a fixed commission for the corresponding item. This is a percentage rate for calculating the line item total based on its unit price and the defined percentage. The quantity is always assumed as 1.


There may be some logic involved to define the unit price as the base for calculating the commission. You can, for example, aggregate order values or "feed" a fixed value taken from some other object.

You can set up commission tiers, a means to calculate different commissions for an item based on the sales volume. Basically, they work the same way as price tiers do: You define price ranges and a commission for each. Depending on the actual unit price (which represents your sales volume), JustOn determines the commission percentage to be applied.

General Billing Settings
Using Commission Tiers

Minimum Fees

Certain business models require invoicing a minimum fee, usually on a monthly base, irrespective of the actually incurred costs.

With JustOn, you can put such scenarios into practice as follows: You create a subscription item with the billing type Minimum Fee. The price of this item represents your base charge. The subscription items that you intend to charge up against this minimum, like usage data items, for example, must be marked as included accordingly.

Now if the sum of the included items is lower than or equal to the minimum price, only the minimum fee item shows up on the invoice as a single invoice line item. If, however, the sum of these grouped items is larger than the minimum price, the individual items appear on the invoice as individual invoice line items. Any items not marked as included in the minimum are not subject to this calculation.

For transactional items, there are two modes for applying the minimum comparison:

  • Global minimum: Compares the sum of all included items to the minimum
  • Group minimum: Compares the sum of included items that are grouped by a transaction criterion to the minimum

The corresponding calculations are performed on net prices.

Enabling Minimum Fees

Subscription Price Increases

Certain business use cases require the prices for subscription items to be increased automatically on a regular basis.

The following subscription details control this behavior:

Field Description
Price Increase Specifies the percentage value by which to increase the prices of this subscription. Note that the price increase affects all items equally.
Price Increase Date Specifies the date (MM-dd) on which the price increase is made effective.

The subscription price increase feature makes use of price tier groups. If set up accordingly, a scheduled job duplicates the latest price tier group and increases the price of all subscription items by the defined percentage value once a year at the defined date.

For Price Increase Date, the following options are available by default:

Value Description
01-01 January 1st
06-01 June 1st
Start Date Month and day of the subscription start date
End Date Month and day of the subscription end date

You can add more month/day combinations to the picklist. For details, see Adding Price Increase Date Options.

The price increase considers subscriptions and items if the following conditions are true:

  • The subscription status is Active
  • The corresponding price increase settings at the subscription are set
  • The subscription end date is empty or after the current date
  • The item status is Active
  • The item end date is empty or after the current date
  • The item has price tiers whose

    • End date is empty
    • Start date is empty or at least nine months in the past from the current date

Once set up properly, JustOn creates the new price tier groups at the earliest nine months before the price increase becomes valid (according to the value in Price Increase Date).

Configuring Subscription Price Increases