Pricing Waterfalls
Every line’s price is the result of an ordered sequence of steps — start from the list price, override with a contracted price, apply volume and term discounts, mark up, clamp to a floor or ceiling, and so on. That sequence is the Pricing Waterfall, and it’s exactly what the configurator’s “Why this price?” trace replays step by step. Pinion ships a packaged Default waterfall that reproduces its built-in pricing order; on Pinion+ you can clone it and author your own.
They’re org-wide, managed in the Pinion admin app → Pricing Waterfalls (/lwr/application/ai/pinion-pinionAdmin).
The list and the locked Default
The list shows each waterfall’s Name, Applies To, Active state, and Version. The packaged Default carries a “Default · Locked” badge — it reproduces Pinion’s current pricing order and can’t be edited. Use Clone to edit to produce an editable copy; New waterfall (Pinion+) starts one from scratch.
Anatomy of a waterfall
Expand a row to see its two sections.
Steps (in sequence order)
The ordered steps Pinion runs. On an editable (cloned) waterfall you can drag (or use the up/down arrows) to reorder, toggle a step on/off, add, configure, and delete steps; on the locked Default these controls are disabled. Once a waterfall has priced a line, it can no longer be edited in place: any change to its name, steps, step conditions or applicability rules is refused, so the rules that priced existing deals stay on record exactly as they were. To change an in-use waterfall, clone it, edit the clone, and assign the clone where you want the new rules to apply. Each step has a Step Type, an Enabled toggle, and an optional Condition / Configuration. The thirteen step types:
| Step type | What it does | Parameters |
|---|---|---|
| List Price Lookup | Seeds the running price from the pricebook list price | none (context) |
| Contract Price Override | Overrides with a contracted price when one applies | none (context) |
| Block Price Lookup | Seeds from the matching block-price tier | none (context) |
| Volume Discount | Applies the discount schedule for the quantity | none (context) |
| Term Discount | Applies the term-length discount schedule | none (context) |
| Manual Discount (Percent) | Applies the line’s manually-entered % discount | none (context) |
| Manual Discount (Amount) | Applies the line’s manually-entered amount discount | none (context) |
| Markup | Marks the running price up | Percent or Amount + value |
| Promo Code | Applies the deal’s promo-code discount | none (resolved at runtime) |
| Pricing Rule Hook | Runs the configured Pricing Rules at this point | none (authored on the Pricing Rules tab) |
| Floor | Clamps so the price never falls below an amount | amount |
| Ceiling | Clamps so the price never rises above an amount | amount |
| Approval Gate | Flags the line for approval when price breaches policy | none (rules on the Approvals tab) |
Steps that take parameters (Floor, Ceiling, Markup) open a small editor; the rest read entirely from line/segment context. A step can also carry a Condition — always run (default), run only when quantity is ≥/≤ a threshold (Line or Segment scope), or a Custom JSON predicate. If a Ceiling is set below a Floor, the panel shows a warning (it warns rather than blocks).
Applicability — which lines this waterfall prices
The rules that route lines to this waterfall: each has a Priority, Name, and optional Account Type, Industry, Region, and Currency match (blank = Any). With no rules, the locked Default acts as the org-wide fallback, while an editable waterfall is selected only by explicit per-record assignment until you add a rule.
Related
- Pricing Methods — what each step (List, Block, MDQ, discounts, contracted, promo, Percent-of-Total) actually computes.
- Configurator — Rule Transparency — the rep-facing “Why this price?” waterfall trace.
- Block Pricing · Discount Schedules — inputs several steps read.