How the pricing waterfall works
The pricing waterfall outlines the sequence of pricing layers to determine the final charge price using Dynamic Pricing.
The pricing waterfall defines the ordered sequence of pricing layers used to derive the final price of a charge when using Dynamic Pricing.
Waterfall Levels
The standard pricing waterfall consists of the following levels:
Base Price (base_price) - The default system price defined on the charge (PRPC). For recurring or usage charges, this represents the standard unit price or the per-unit price derived from volume or tiered pricing tables. Quantity is not applied at this stage; pricing is evaluated on a per-unit basis.
Contract / Negotiated / Segment Price (segment_price) - A customer-specific or segment-specific price that overrides the base price, such as a contracted or negotiated price for a customer, pricing for a segment, price group, or geography (for example, State = CA), or prices retrieved from a rate card using attributes like state, ARR, or customer tier. This level typically represents a static price lookup rather than a calculated formula.
Adjusted Charge Price (adjusted_price) - The price after all dynamic PRPC pricing adjustments have been applied, including attribute-based multipliers (for example, price × factor), formulas, and other dynamic pricing rules. This level represents the completion of Dynamic Pricing calculations for the charge.
Discounts (discounted_price) - The price after all applicable offers are applied on top of the adjusted price, using a defined order of operations such as offer codes, cross-catalog offers, and session-, account or segment-level discounts.
Effective Price (effective_price) - The final unit price for the charge after all pricing adjustments, discounts, and any applicable master rules or policy constraints (such as price floors or ceilings) have been applied.
Extended Price (extended_price) - The final price calculated by multiplying the effective (or adjusted) unit price by quantity, including volume or tiered pricing logic where applicable.