Skip to main content

Concepts

What volume pricing is

Volume pricing is a pricing model where one single rate applies to all units, determined by which bracket the total quantity falls into. The total quantity picks a bracket, and every unit, including the very first one, is charged at that bracket’s rate.
This is fundamentally different from tiered pricing, where each portion of usage gets its own rate. Volume pricing creates a price cliff at bracket boundaries: buying one more unit can dramatically reduce total cost (for example, 99 units at 5eachis5 each is 495, while 100 units at 4eachis4 each is 400). This incentivizes customers to commit to higher volumes. Brackets can run in two directions: descending prices (standard: higher volume means a lower per-unit price) or ascending prices (overage or penalty pricing: higher volume means a higher per-unit price).

Tier boundaries: inclusive and exclusive

Every bracket boundary in volume pricing is set to be either inclusive or exclusive, and this choice decides which side of the line a boundary value falls on. This toggle is specific to volume pricing; tiered pricing always treats boundaries as inclusive (see tiered: tier boundaries).
  • Inclusive (default): the tier boundary includes the value, shown as ≤ in the UI. A boundary of 100 means usage up to and including 100 belongs to that bracket.
  • Exclusive: the tier boundary excludes the value, shown as < in the UI. A boundary of 100 means usage up to but not including 100 belongs to that bracket; 100 itself falls into the next bracket.

How accumulation differs by product type

Point in time (PIT) and period of time (POT) products both support volume pricing, but “quantity” means something different for each, so accumulation and bracket changes behave differently. For PIT products, usage can accumulate across billing periods within a tier reset window. The tier reset period controls how long cumulative usage builds up before resetting back to zero, and it always anchors to the product’s anchor date. When tier reset is longer than the billing period and cumulative usage crosses a bracket boundary in a later period, prior periods are reconciled: because volume pricing promises all units get the same rate, once cumulative usage settles into a new bracket, previously billed units are reconciled against that bracket’s rate as part of the automatic calculation for the current tier reset window. This happens automatically and can’t be turned off for PIT volume pricing. Which direction the correction runs, and how it reaches the customer, depends on whether the brackets are descending or ascending. Descending brackets: a correction that lowers what’s owed An API-access product billed monthly, with volume brackets that reset annually: 0 to 1,000,000 cumulative calls at 0.004/call,1,000,000to5,000,000at0.004/call, 1,000,000 to 5,000,000 at 0.003/call, 5,000,000+ at $0.002/call.
Ascending brackets: a correction that raises what’s owed A data-transfer product with overage pricing, billed monthly, brackets resetting annually: 0 to 500 GB at 0.10/GB,500to2,000GBat0.10/GB, 500 to 2,000 GB at 0.15/GB, 2,000 GB+ at $0.25/GB.
How the correction is delivered A correction never changes an invoice that’s already been issued. Instead, it’s delivered separately, and how depends on its direction:
Corrections that lower what’s owed are always delivered by offsetting future invoices. Delivering that kind of correction as a standalone credit note isn’t supported yet.
For POT products, quantity is a snapshot rather than an accumulating total, so there’s no accumulation to reset in the first place: a tier reset period isn’t a concept that applies here. Quantity changes through amendments rather than usage events, and each amendment is billed from a fresh snapshot: if quantity changes three times within a billing period, that’s three segments, each priced independently, shown as three line items on the invoice. When an amendment crosses a bracket boundary mid-period, POT performs a forward split rather than a retroactive correction: the period before the amendment stays at the old bracket rate for its remaining days, and the period after the amendment is charged at the new bracket rate for all units, old and new combined. The pre-amendment portion is never retroactively repriced.

Proration

Proration works differently depending on whether the product is PIT or POT, and which axis it applies to. For POT, the bracket is always determined by the full, un-prorated quantity: it’s the per-unit price that gets scaled down for a partial period, not the quantity used to pick the bracket. For PIT, it’s the reverse in the prepaid case: the quantity grant itself shrinks for a partial period (or is charged in full, if partial period handling is set to full rather than the default prorate), and that quantity is what determines the bracket.

How it interacts with other pricing features

Volume pricing can be combined with other features, and the order they’re applied in matters. Raw usage is first floored by any minimum quantity commitment, then reduced by any quantity discount, and only that effective quantity is used to find the bracket and calculate the amount. Retroactive reconciliation (PIT only) is applied next, followed by any minimum spend commitment, and finally any percentage or fixed discount. A quantity discount applied before bracket determination can shift which bracket the customer lands in, sometimes into a higher rate, which is correct behavior but can be surprising to a customer reading their invoice. A minimum quantity commitment, if usage falls short of it, sets the floor used for both the bracket lookup and the billing calculation, not just the final amount. The full calculation stack is laid out step by step in the reference section below.

How-to guides

How to configure volume pricing for a metered PIT product

  1. Open the price editor and set the pricing model to Volume, with currency set to the currency you’re billing in.
  2. Set the Tier boundary to Inclusive or Exclusive. Inclusive is the default, and means a boundary of 100 belongs to the bracket below it.
  3. Add tiers as a list of upper bounds and rates, for example 0 up to 100 at 3.00,100upto200at3.00, 100 up to 200 at 2.50, and 200 and above at $2.00.
  4. Set the Tier Reset Period, for example Monthly to match the billing period. This is the simplest configuration: each billing period starts its cumulative count from zero, so no reconciliation against a prior period is possible.
  5. Leave Usage is metered checked and select the usage aggregate that supplies the quantity.
  6. Save. A customer using 150 units in a month falls entirely into bracket 2, and is billed 150 × 2.50=2.50 = 375 for the month, in a single line item.
If you instead set the tier reset period to a window longer than the billing period, for example annual with monthly billing, cumulative usage carries over from one billing period to the next, and a bracket change partway through the year is reconciled automatically against what was already invoiced in that tier reset window.

How to configure volume pricing for a seat-based POT product

  1. Open the price editor and set the pricing model to Volume, with currency set to the currency you’re billing in.
  2. Set the Tier boundary to Inclusive or Exclusive.
  3. Add tiers, for example 0 up to 10 seats at 25.00,10upto50at25.00, 10 up to 50 at 20.00, and 50 and above at $15.00.
  4. Set the Pricing Period the volume rate applies over, for example Monthly. There’s no tier reset period to set: quantity is a snapshot recalculated on each amendment, not an accumulating total.
  5. Leave Usage is metered unchecked if quantity is a fixed count you set directly rather than derived from usage events.
  6. Save. A customer starting the month with 30 seats lands in bracket 2 at $20 per seat. If the customer amends the contract mid-period to cross into a higher bracket, that segment closes and a new one opens at the new bracket’s rate for all units, a forward split rather than a retroactive correction.

How to change tier boundaries or rates on an existing price

A pricing preset can’t be edited or removed once created, only added to. To change the bracket structure, the inclusive/exclusive setting, or any tier’s rate:
  1. Create a new pricing preset on the product with the updated tiers or boundary setting.
  2. Mark the new preset as default if it should apply to new contracts going forward, or select it explicitly on the contracts that should use it.
  3. Contracts already referencing the previous preset keep billing against the tiers they were set up with.

How to reason about a quantity discount shifting the bracket

  1. Before saving a quantity discount alongside volume pricing, check the resulting adjusted quantity against the tier boundaries.
  2. Run the numbers both with and without the discount to confirm the resulting bracket and total. A quantity discount can push a customer into a lower bracket with a higher rate, increasing the invoice relative to the undiscounted quantity, even though fewer units are being billed.
  3. If that outcome isn’t intended, consider tiered pricing instead, where a quantity discount never produces a higher total than the undiscounted quantity would.

How to read the volume calculation on an invoice

  1. Open the invoice and find the product’s line item. Volume pricing produces a single line item at one rate, unlike tiered pricing’s multiple lines.
  2. For a PIT product with a tier reset period longer than the billing period, compare the cumulative quantity for the tier reset window against the tier boundaries to see which bracket applies, and check whether the amount reflects a reconciliation against a bracket change earlier in that window.
  3. For a POT product, each amendment within the period produces its own line item at its own bracket’s rate.

Reference

Bracket configuration

Tiers are configured as an ordered list, each entry specifying the upper bound of that tier (up_to) and the rate applied to all units when the total quantity falls into it (unit_amount). The last tier’s up_to is unbounded (inf). Validation rules Input format: brackets are defined by end-point boundaries; each value is the upper limit of a bracket, and the last bracket must be unbounded.
Optional configuration Invoice breakdown granularity (how usage within a period is grouped for display) is configured separately from the pricing model itself and doesn’t change the calculation, only how it’s presented.

Order of operations (full calculation stack)

Glossary