Contact Us:

670 Lafayette Ave, Brooklyn,
NY 11216

+1 800 966 4564
+1 800 9667 4558

In modern sales, customers expect pricing that feels fair, transparent, and aligned with the value they receive. Traditional tier or block pricing often creates abrupt price shifts when moving between quantity ranges, which can frustrate buyers and complicate deal negotiations. Curve-Based Pricing in Salesforce Revenue Cloud solves this by applying smooth mathematical formulas that gradually reduce unit prices as volume grows, while ensuring total revenue continues to scale. The result is a more consistent, customer-friendly pricing experience that is easier for sales teams to manage and for businesses to maintain.

What is Curve-Based Pricing?

Curve-based pricing is a dynamic pricing model where the unit price of a product is calculated using a mathematical curve (usually quadratic or polynomial) rather than a flat rate or tiered price.


Why Curve-Based Pricing?

In Salesforce Revenue Cloud, businesses often choose between Block-Based Pricing and Curve-Based Pricing. While both models support tiered discounting, Curve-Based Pricing offers smoother control and flexibility.

Block-Based Pricing

  • Prices are defined in discrete tiers (e.g., 1–10 units = $10 each, 11–20 units = $8 each).
  • When quantity crosses a tier, the price jumps suddenly.
  • Creates sharp changes in pricing that may confuse customers.
  • Easier to set up but less flexible for nuanced discounting.

Curve-Based Pricing

  • Uses a mathematical formula (quadratic curve) to calculate unit price.
  • Price per unit decreases gradually as quantity increases (smooth discount curve).
  • Avoids sudden jumps when crossing a tier boundary.
  • Gives pricing teams more flexibility by tuning coefficients (A, B, C) instead of redefining multiple tiers.

Executive Summary

The business requirement was to implement a banded curve-based pricing model where:

  • Unit Price (PPU) decreases gradually as the purchased quantity increases.
  • Line Total (PPU × Quantity) still grows as quantity increases.
  • Pricing logic is centralized inside the Pricing Procedure, driven by a Curve Table object and a Decision Table for coefficient selection.

This ensures scalability, reusability, and minimal maintenance, while giving business users control over pricing through metadata.


Now, let’s walk through a real-world example to see how curve-based pricing is applied across different product families.

1) Product Setup

Create three products and assigned them to distinct Product Families:

  • Internet Data Plans (GB) — Product Family: Internet Services
  • Delivery Pricing by Distance (KM) — Product Family: Logistics
  • Consumption (kWh) – Electricity Usage — Product Family: Energy

The Product Family is the key driver for curve selection inside the Pricing Procedure.


2) Curve Table Object

A custom object Curve_Table__c created with the following fields:

  • QtyFrom__c (Number) → Lower bound of quantity range
  • QtyTo__c (Number) → Upper bound of quantity range
  • Coefficient_A__c (Decimal) → Quadratic coefficient (x²)
  • Coefficient_B__c (Decimal) → Linear coefficient (x)
  • Coefficient_C__c (Decimal) → Constant term
  • Product_Family__c (Picklist/Text) → Mapped family

This table allows different families to share the same engine while keeping coefficients configurable.


3) Example Curve Table Records

Example records created for each product family:

Internet Services (Internet Data Plans)

QtyFromQtyToCoeff_ACoeff_BCoeff_CProduct_Family__c
1100.01-0.127.000Internet Services
11500.0002-0.036.200Internet Services
511000.0001-0.0256.153Internet Services
10199999990.0000-0.00455.300Internet Services

Logistics (Delivery by Distance, KM)

QtyFromQtyToCoeff_ACoeff_BCoeff_CProduct_Family__c
150.0400-1.200025.000Logistics
6200.0050-0.600020.000Logistics
21500.0005-0.120015.000Logistics
5199999990.0000-0.002010.000Logistics

Energy (Consumption, kWh)

QtyFromQtyToCoeff_ACoeff_BCoeff_CProduct_Family__c  
11000.000200-0.07000015.0000Energy
1015000.000010-0.02000011.9000Energy
50110000.000005-0.0100008.1500Energy
100199999990.000000-0.0002003.3500Energy

💡 Tip: Use QtyTo = 9999999 to represent open-ended ranges. Alternatively, leave QtyTo blank and handle NULL in the logic.


4) Decision Table (Coefficient Mapping)

Create Decision Table (Curve Table Entries) to get data on the basis of Product Family and quantity Range in pricing procedure.

  • Inputs:
    • Product_Family (e.g., Internet Services, Logistics, Energy)
    • QtyFrom (Quantity greater than or equal to QuoteLine.Quantity)
    • QtyTo (Quantity less than or equal to QuoteLine.Quantity)
  • Outputs:
    • Coefficient_A
    • Coefficient_B
    • Coefficient_C

Note:  Before Going to use this Lookup Table in Pricing Procedure Modify Pricing Recipes.


5) Pricing Procedure: Curve Logic Integration

Inside the Pricing Procedure:

  1. List Price Element (Lookup Table)
    • Linked to Curve Table Entries (the lookup table).
    • Inputs: Product Family, Quantity.
    • Outputs: Coefficients A, B, and C.
    • Tags were added to store coefficient values for use in later steps.(These coefficients are context nodes not a variable or constant.

  2. Formula Based Pricing Element
    • Logic applied:
PPU = Coefficient_C + (Coefficient_B * Qty) + (Coefficient_A * Qty ^ 2)

6) Illustrative Example

When a Quote Line is added, the curve-based pricing formula is applied dynamically based on the entered quantity. Below is an example using the coefficients for the Internet Services product family:

A = 0.001, B = -0.12, C = 7.0.

Example Calculations

  • Case 1: Quantity = 1
    PPU = 7 + (-0.12 × 1) + (0.001 × 1 × 1) = 6.881
    Net Unit Price = 6.881
    Line Total = 6.881 × 1 = 6.881
  • Case 2: Quantity = 2
    PPU = 7 + (-0.12 × 2) + (0.001 × 2 × 2) = 6.762
    Net Unit Price = 6.762
    Line Total = 6.762 × 2 = 13.524



    As you can see from the calculations above, curve-based pricing gradually reduces the unit price as the quantity increases. Even though the price per unit decreases, the overall line total continues to grow — demonstrating the balance between volume discounts and revenue.

    Visualizing the Curve with example


Final Notes

  • The curve-based pricing formula ensures smooth price reduction as volume grows, avoiding sudden jumps or negative prices.
  • Business users can maintain coefficients through the Curve Table, without modifying the Pricing Procedure.
  • This implementation is reusable across multiple product families and scalable for new use cases.

1 Comment

Leave a comment

Your email address will not be published. Required fields are marked *