Volume pricing
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.| Aspect | Volume pricing | Tiered pricing |
|---|---|---|
| Rate determination | Total quantity picks one rate for all units | Each portion gets its own rate |
| Price cliff at boundaries? | Yes — crossing a boundary changes the rate for every unit | No — smooth progression |
| Invoice display | Single line item (one rate) | Multiple line items (one per tier) |
| Best for | Bulk discounts, committed volume deals | Progressive rates, usage-based incentives |
How PIT volume pricing handles accumulation
PIT products are charged per consumption event, and 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.| Scenario | Behavior | Retroactive adjustments? |
|---|---|---|
| Tier reset = billing period (both monthly) | Each billing period is independent | No |
| Tier reset > billing period (annual reset, monthly billing) | Usage accumulates across billing periods; the bracket may change as cumulative usage grows | Yes — credit notes (descending prices) or additional invoices (ascending prices) |
| Tier reset < billing period (weekly reset, monthly billing) | Each reset period is shown as a separate calculation on the invoice | No |
How POT volume pricing differs
POT products are charged for access over a time period (seats, licenses, servers) — price is expressed per unit per period, like $20/seat/month. Quantity here is typically a current snapshot rather than an accumulating total, and changes happen through amendments rather than usage events.| Aspect | PIT volume | POT volume |
|---|---|---|
| Quantity nature | Cumulative consumption | Current snapshot |
| Price expression | Per unit | Per unit per period |
| Tier reset period | Required config for cross-period accumulation | Open — currently defaults to billing period |
| Bracket change trigger | Cumulative usage crossing a boundary | An amendment (adding or removing seats) crossing a boundary |
| Retroactive repricing | Yes — always on, when tier reset exceeds billing period | Not applicable — amendments don’t trigger retroactive repricing |
Review note: POT volume pricing behavior above is derived from PIT implementation docs and conceptual design work, and needs engineering validation before being treated as final.
Proration
Proration works differently depending on whether the product is PIT or POT, and which axis it applies to:| Scenario | What’s prorated | Bracket based on |
|---|---|---|
| POT: mid-period start or end | Per-unit price (by days), then × quantity | Full quantity, not prorated |
| POT: mid-period amendment | Per-unit price per segment (by days), then × segment quantity | The segment’s quantity |
| PIT: prepaid, fixed quantity, mid-period start | The quantity grant itself (by days) | The prorated quantity |
| PIT: postpaid, metered, mid-period start | Nothing — actual usage is used | Actual usage |
How it interacts with other pricing features
Volume pricing can be combined with other features, and the order they’re applied in matters:How to configure volume pricing on a line item
- On the line item, set the pricing model to volume.
- Define the bracket boundaries as an ascending array of end-points, with the final boundary set to infinity (
inf) — for example,[100, 200, inf]. - Define a price for each bracket, with one price per boundary — for example,
[$3, $2.50, $2]. - Choose whether each boundary is inclusive (the boundary value belongs to the current bracket; this is the default) or exclusive (the boundary value belongs to the next bracket).
- For PIT products, set the tier reset period if it should differ from the billing period — for example, an annual reset on monthly billing. Leave it unset to default to the billing period.
- For POT products, the tier reset period currently defaults to the billing period and isn’t independently configurable.
- Optionally set a breakdown frequency to control invoice display granularity — this is presentation only and never affects the calculation.
- Save and preview the invoice to confirm bracket assignment and any retroactive adjustments behave as expected.
Reference
Bracket configuration
Validation rules| Rule | Valid example | Invalid example |
|---|---|---|
Must end with inf | [100, 200, inf] | [100, 200] |
| Boundaries strictly ascending | [100, 500, inf] | [500, 100, inf] |
| At least 2 boundaries | [100, inf] | [inf] |
| Prices array matches boundaries in length | 3 boundaries, 3 prices | 3 boundaries, 2 prices |
| All prices positive | [$0.10, $0.05] | [$0.10, -$0.05] |
inf.
| Setting | Boundary = 100 | Meaning |
|---|---|---|
| Inclusive (default) | 100 is in bracket 1 | Bracket 1: 0–100, Bracket 2: 101–200 |
| Exclusive | 100 is in bracket 2 | Bracket 1: 0–99, Bracket 2: 100–200 |
| Field | Description | Default |
|---|---|---|
| Tier reset period | When cumulative usage resets (PIT only). Open for POT — currently defaults to billing period | Billing period |
| Breakdown frequency | Invoice display granularity. Must be ≤ billing period. Presentation only | None |
| Billing offset | Prepaid or postpaid | System default |
| Usage aggregate | Links metered quantity to the volume bracket | Default per pricing model |
Order of operations (full calculation stack)
Scope
| Dimension | Coverage |
|---|---|
| Product types | Point-in-time (PIT) and period-of-time (POT) |
| Bracket directions | Descending prices (volume discounts) and ascending prices (overage/penalty) |
| Quantity subtypes | Homogeneous (fungible units) — heterogeneous deferred |
Glossary
| Term | Definition |
|---|---|
| Bracket | A range within which a specific rate applies; in volume pricing, all units get the bracket’s rate |
| Tier reset period | The window over which PIT cumulative usage accumulates before resetting. Defaults to billing period for POT (open for design) |
| Retroactive adjustment | Automatic repricing of prior billing periods when a bracket changes within a tier reset window (PIT only, when tier reset > billing period) |
| Credit note | A billing document reducing the amount owed, issued when a bracket upgrade lowers the rate (descending prices) |
| Additional invoice | A billing document increasing the amount owed, issued when a bracket upgrade raises the rate (ascending prices) |
| Forward split | POT behavior where an amendment creates two segments — pre-amendment at the old rate, post-amendment at the new rate — with no repricing of the prior segment |
| Price cliff | The phenomenon where crossing a bracket boundary causes a large change in total cost |
| Breakdown frequency | Invoice display granularity — presentation only, never affects calculation |
Risks and edge cases
| Scenario | Handling |
|---|---|
| Credit exceeds current charges | When a retroactive credit for prior periods exceeds the current period’s charges, the invoice subtotal can be negative |
| Ascending prices surprise customers | Additional charges for past usage can be unexpected; clear communication is important when configuring ascending (overage) brackets |
| Quantity discount shifts bracket | Free units can push a customer into a lower bracket with a higher rate — correct behavior, but can be confusing on the invoice |
Open questions
| # | Question | Status |
|---|---|---|
| 1 | Tier reset period for POT isn’t fully designed yet; it currently defaults to billing period | Open |
| 2 | For on-demand POT volume pricing purchased as a one-time event, what governs the expiry of that purchase — contract end, a fixed duration, or something else? | Open |
Out of scope / deferred
| Feature | Description |
|---|---|
| Heterogeneous products | Unique-identity units (e.g., reports, documents) with deduplication before bracket determination |
| Entitlement lifecycle | Quantity-based grants, rollover, and cost-basis tracking |
| Cross-product volume aggregation | Shared brackets across multiple products, with optional normalization for different unit types |
| On-demand periodic evaluation | On-demand purchases accumulating within a tier reset period (currently per-purchase only) |
| Mid-contract bracket changes | Changing the bracket structure itself during an active tier reset period, as distinct from a quantity amendment |
| Prorated brackets for mid-period joins | Bracket boundaries scaled proportionally for customers joining mid-tier-reset-period |
| Turn-off retroactive adjustments | An option to disable retroactive repricing for PIT volume pricing |