> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getveles.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pricing Rules

> Automatically adjust pricing based on deal conditions: bundle discounts, volume incentives, currency adjustments, and data-sheet-driven markups.

Pricing Rules automatically adjust the price on a quote without requiring manual intervention from the rep. Unlike [Quote Validation](/get-started/rules-and-approval/quote-validation-rules) and [Row Validation](/get-started/rules-and-approval/untitled-page) rules (which warn or block), Pricing Rules change the numbers directly.

When a Pricing Rule fires, it produces a **System Adjustment** on the affected line items. This adjustment appears in the [pricing waterfall](/get-started/calculator/quote-line#the-pricing-waterfall) between the List Price and the System Price, giving both the rep and deal desk full visibility into what changed and why.

```text theme={null}
List Price (from price book)
    ↓
System Adjustment ← Pricing Rules apply here
    ↓
System Price (post-automation, pre-rep)
    ↓
Rep Discount (manual)
    ↓
Net Price
```

Pricing Rules run automatically as reps build quotes. The rep doesn't configure them -- they see the results as adjustments on the line items.

***

## When to use Pricing Rules

Pricing Rules are the right kind when:

* You want to **automatically discount or mark up** prices based on deal conditions
* The adjustment should happen **without rep intervention** (the system applies it)
* The logic depends on **what's on the deal** (product combinations, deal size, currency, category)
* You want the adjustment to be **visible and traceable** in the pricing waterfall (not hidden)

For rules that validate and block/warn without changing the price, use [Quote Validation](/get-started/rules-and-approval/quote-validation-rules) or [Row Validation](/get-started/rules-and-approval/untitled-page). For complex multi-variable calculations, use [Formula Rules](/get-started/rules-and-approval/formula-rules).

***

## Creating a Pricing Rule

1. Navigate to **Admin Console > Price Books > Rules**.
2. Click **Create New Rule**.
3. Set the **Kind** to **Pricing Rule**.
4. Enter a **Name** and **Description**.
5. Set the **Status** to Active.
6. Click **Save**, then click **New Rule Set** to build the logic.

***

## Building the rule set

### Scope

Pricing Rules can evaluate at two levels:

* **Option** -- the rule looks at deal-level metrics (total value, product count, currency) and applies adjustments across line items.
* **Row** -- the rule looks at individual line items and applies adjustments to specific products.

### Available facts

<Tabs>
  <Tab title="Option scope">
    | Fact                  | What it evaluates                          | Example use                                                     |
    | --------------------- | ------------------------------------------ | --------------------------------------------------------------- |
    | **Product Count**     | Number of distinct products on the option. | Apply bundle discount when 3+ products are present.             |
    | **Total**             | Total deal value.                          | Apply volume incentive on large deals.                          |
    | **Recurring Total**   | Total recurring value.                     | Adjust pricing when ARR exceeds a threshold.                    |
    | **One-time Total**    | Total one-time value.                      | Discount services when bundled with recurring products.         |
    | **Currency Code**     | The currency of the option.                | Apply currency-specific markup for international deals.         |
    | **Billing Frequency** | The billing cadence.                       | Adjust pricing for monthly vs. annual billing.                  |
    | **Discount %**        | Overall discount percentage.               | Cap or adjust the system discount based on deal-level discount. |
    | **Year**              | The year of the commitment.                | Apply different rates for Year 1 vs. Year 2 in ramp deals.      |
  </Tab>

  <Tab title="Row scope">
    | Fact                | What it evaluates                                                              | Example use                                    |
    | ------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------- |
    | **Product SKU**     | The SKU on this line.                                                          | Apply a specific adjustment to one product.    |
    | **Product Name**    | The display name.                                                              | Target products by naming pattern.             |
    | **Category**        | The [Product Category](/get-started/pricing-and-packaging/product-categories). | Apply category-wide adjustments.               |
    | **Row Total**       | The line's total value.                                                        | Adjust lines above a certain value.            |
    | **Final Rate**      | The per-unit rate.                                                             | Adjust the rate based on thresholds.           |
    | **Unit of Measure** | The [UOM](/get-started/pricing-and-packaging/units-of-measure).                | Target consumption-based products differently. |
  </Tab>
</Tabs>

### Operators

Same operators as other rule types: Equals, Not Equals, Is Greater Than or Equal To, Is Less Than, Is In, Is None Of.

***

## Actions: the adjustment

When a Pricing Rule's conditions are met, the action is a **price adjustment** rather than a message. The adjustment modifies the System Adjustment column on affected line items.

### Adjustment types

| Type                      | What it does                            | Example                                        |
| ------------------------- | --------------------------------------- | ---------------------------------------------- |
| **Percentage discount**   | Reduces the price by a percentage.      | -5% bundle discount on all recurring lines.    |
| **Percentage markup**     | Increases the price by a percentage.    | +8% currency adjustment for EUR deals.         |
| **Fixed amount discount** | Reduces the price by a dollar amount.   | -\$500 on the implementation fee when bundled. |
| **Fixed amount markup**   | Increases the price by a dollar amount. | +\$1,000 surcharge for expedited onboarding.   |

### Adjustment scope

You can control which line items the adjustment applies to:

* **All lines** -- the adjustment is applied to every line item on the option.
* **Recurring lines only** -- only recurring products are affected (one-time fees are excluded).
* **One-time lines only** -- only one-time products are affected.
* **Specific lines** -- target lines matching a specific SKU, category, or other row-level fact.

***

## Pricing Rules and Data Sheets

For dynamic adjustments that vary by customer attribute, region, or other external data, Pricing Rules can reference [Data Sheets](/get-started/pricing-and-packaging/data-sheets).

Instead of hard-coding a percentage into the rule, the rule looks up the adjustment value from a Data Sheet at quoting time. This means you can change the adjustment by updating the Data Sheet without editing the rule itself.

**Example:** A currency adjustment rule that looks up the markup percentage from an `FX_Adjustments` Data Sheet based on the deal's currency code. EUR gets +8%, GBP gets +5%, JPY gets +12%. When rates change, you update the Data Sheet -- the rule itself stays the same.

***

## Examples

### Multi-product bundle discount

Automatically discount when a customer buys multiple products together.

| Setting       | Value                      |
| ------------- | -------------------------- |
| **Name**      | 3+ Product Bundle Discount |
| **Kind**      | Pricing Rule               |
| **Scope**     | Option                     |
| **Condition** | Product Count ≥ 3          |
| **Action**    | -5% on all recurring lines |

When a rep adds a third product to the option, the 5% discount appears automatically as a System Adjustment on every recurring line item.

### Currency markup

Adjust pricing for international deals to account for currency-specific costs.

| Setting       | Value                    |
| ------------- | ------------------------ |
| **Name**      | EUR Currency Adjustment  |
| **Kind**      | Pricing Rule             |
| **Scope**     | Option                   |
| **Condition** | Currency Code equals EUR |
| **Action**    | +8% on all lines         |

All line items on EUR-denominated deals receive an automatic 8% markup. The rep sees the adjustment in the System Adjustment column but doesn't need to apply it manually.

### Annual billing incentive

Offer a discount for customers who choose annual over monthly billing.

| Setting       | Value                           |
| ------------- | ------------------------------- |
| **Name**      | Annual Billing Discount         |
| **Kind**      | Pricing Rule                    |
| **Scope**     | Option                          |
| **Condition** | Billing Frequency equals Annual |
| **Action**    | -10% on recurring lines only    |

Customers paying annually get a 10% discount on recurring line items. Monthly customers pay the full rate. The rep sees the incentive applied automatically when they select annual billing.

### Category-specific adjustment

Apply a margin-protection markup to a low-margin product category.

| Setting       | Value                      |
| ------------- | -------------------------- |
| **Name**      | Hardware Margin Protection |
| **Kind**      | Pricing Rule               |
| **Scope**     | Row                        |
| **Condition** | Category equals "Hardware" |
| **Action**    | +3% on matching lines      |

Every Hardware product receives an automatic 3% markup. Software and Services products are unaffected.

### Volume incentive on large deals

Reward large commitments with an automatic discount.

| Setting       | Value                       |
| ------------- | --------------------------- |
| **Name**      | Enterprise Volume Incentive |
| **Kind**      | Pricing Rule                |
| **Scope**     | Option                      |
| **Condition** | Recurring Total ≥ 100000    |
| **Action**    | -3% on all recurring lines  |

Deals with \$100k+ in recurring revenue receive a 3% automatic discount. The rep sees it applied to every recurring line item, and can apply additional discretionary discounts on top.

### Data-sheet-driven regional adjustment

Use a Data Sheet to vary the adjustment by region.

| Setting       | Value                                                                       |
| ------------- | --------------------------------------------------------------------------- |
| **Name**      | Regional Pricing Adjustment                                                 |
| **Kind**      | Pricing Rule                                                                |
| **Scope**     | Option                                                                      |
| **Condition** | Currency Code is not equal to USD                                           |
| **Action**    | Apply markup from `Regional_Adjustments` Data Sheet, keyed by Currency Code |

The Data Sheet contains the markup for each currency. The rule looks up the value at quoting time and applies it. No hard-coded percentages in the rule.

***

## How Pricing Rules interact with rep discounts

Pricing Rules and rep discounts operate in different stages of the [pricing waterfall](/get-started/calculator/quote-line#the-pricing-waterfall):

1. **List Price** is calculated from the price book.
2. **System Adjustment** is applied by Pricing Rules (automatic).
3. **System Price** = List Price + System Adjustment.
4. **Rep Discount** is applied manually by the rep.
5. **Net Price** = System Price - Rep Discount.

This means the rep's discount is applied *after* the Pricing Rule adjustment. If a Pricing Rule applies a -5% bundle discount and the rep adds a -10% discretionary discount, the total discount stacks (though [Validation Rules](/get-started/rules-and-approval/quote-validation-rules) may flag the combined discount if it exceeds a threshold).

The System Adjustment column gives full transparency into what the system changed versus what the rep changed. Deal desk and approvers can see both adjustments independently.

***

## Tips

**Make adjustments visible.** The whole point of the System Adjustment column is transparency. Don't use Pricing Rules to hide discounts -- use them to systematize discounts that your organization has already decided to offer.

**Combine with Validation Rules.** A Pricing Rule might automatically apply a -5% bundle discount, but a Quote Validation Rule should still enforce that the total discount (system + rep) doesn't exceed your maximum threshold.

**Use Data Sheets for variable adjustments.** If the adjustment varies by region, customer segment, or product tier, put the values in a [Data Sheet](/get-started/pricing-and-packaging/data-sheets) rather than creating separate rules for each variation.

**Test stacking behavior.** Multiple Pricing Rules can fire on the same quote. Make sure the combined adjustments produce the expected result. Build a test quote that triggers multiple rules and verify the System Adjustment totals.

***

## What's next

<CardGroup cols={2}>
  <Card title="Quote Validation Rules" icon="file-circle-check" href="/get-started/rules-and-approval/quote-validation-rules">
    Enforce deal-level constraints that warn or block.
  </Card>

  <Card title="Row Validation Rules" icon="table-rows" href="/get-started/rules-and-approval/untitled-page">
    Enforce line-item-level constraints.
  </Card>

  <Card title="Formula Rules" icon="function" href="/get-started/rules-and-approval/formula-rules">
    Complex multi-variable pricing logic.
  </Card>

  <Card title="Data Sheets" icon="table" href="/get-started/pricing-and-packaging/data-sheets">
    Reference tables for dynamic, data-driven adjustments.
  </Card>
</CardGroup>
