Discount Methods: Discount Schedules Overview

by Community Manager on ‎08-04-2015 05:47 PM - edited on ‎04-05-2017 01:01 PM by Community Manager


Discount schedules allow you to specify volume discounts. These volume discounts are based on a percentage of the product's price to be discounted using the quantity purchased or term. You can set the quantity or term ranges in tiers of different discount percentages.





Discount Schedule Fields



Schedule Name Enter a meaningful name for the discount schedule that differentiates it from your other discount schedules.

Choose the type of discount that determines how the amount or percentages will be subtracted from price: 

  • Range: Discounted at the rate of whatever tier applies to the quote quantity
  • Slab: Discounted at the blended rate of whatever tier applies to the quoted quantity and all preceding tiers. Slab discounts cannot be applied to Cross Products.
Discount Unit

Choose either: 

  1. Percent: Will allow you to enter the discount as a percentage.
  2. Amount: Will allow you to enter a static value for the discount. This means that sales users can arrive at an exact price without having to calculate discount percentages with a large amount of decimals.
Allow Override

If checked, sales reps can copy the Discount Schedule and adjust the tiers in the Quote Line Editor.

Aggregation Scope

For subscription products, choose from: 

  1. Quote: Use to combine line items in the quote.
  2. Group: Use to combine line items in the group.
  3. None: Use if you want each line item considered independent, even if they are for the same products. This will require that each Quote Line be considered independent of all others, but Cross Orders and/or Cross Products require that each Quote Line be considered in tandem with other lines. Aggregation Scope and Cross Order/Cross Product should not be used together. It is recommended that a Validation Rule be used to enforce this.
Cross Products Select this to combine quantities of different products on the quote, if they have the same discount schedule. Select the checkbox to aggregate quantities of all products using a schedule for the purpose of volume discount calculation
Cross Orders

Select this to combine quantities of this product on this quote, as well as those of prior purchases.

Select the checkbox to aggregate quantities of all products using a schedule for the purpose of volume discount calculation


A quote must be primary for the functionality to work; the product is only being compared against contract subscriptions and active assets. Thus, any expired contracts are expired assets will not factor into the discount schedule calculation.

Product Enter or lookup a value to assign a product to which the discount schedule applies.The Product field can only be used in conjunction with the Price Book field.
Price Book Enter or lookup a value to assign a price book to which the discount schedule applies. The Price Book field can only be used in conjunction with the Product field.
Description Enter a brief description so other users know the purpose for this discount schedule.
Override Behavior

Determines the editability of Discount Tiers:

    • None: Discount Tiers are not editable
    • All: All Discount Tiers are editable
    • Current Tier Only: Only the current Discount Tier that the product falls within is editable

Note: Any customers updating from the Winter Minor Release will need to update their discount schedule records to contain this field instead of Allow Override.

Constraint Field Choose the quote level field you want to constrain. Use with cross-order schedules if you want to limit which subscriptions and assets are used to calculate the volume discount. The Constraint Field cannot target Formula fields and will produce an error if it does so.  

Note: The quote-level field you choose must have a matching field on the subscription or the asset, meaning they have to have identical API names.  This cannot be a formula field.  

Caution: This functionality does not work with amendments because amendments do not look to other orders.  

Excluded Pricebook Ids  Enter a comma-separated list of price book IDs that should not be applied to this discount schedule.    
Include Bundled Quantities Select if the quantities of bundles product options should be included in the aggregation scope.  


Discount Tier Fields



Name Enter a meaningful name for this tier.
Lower Bound Enter the smallest quantity to be included in this tier.
Upper Bound

Enter the largest quantity to be included in this tier.


Note: Upper Bound is not inclusive. Please ensure that your upper bound is 1 digit higher than what you actually want to include. For example, if you want your tier to include numbers 5-10, set your Upper Bound to 11. 

Discount Enter the percentage or amount to be applied as a discount to any products that have the quantity specified in this tier.


Additional Key Fields

  • Term Discount Level: This Product field allows users to specify the Subscription Term level that should be used in calculating term discount. This is useful when you want to show a breakdown of payments in separate groups, for different terms, yet you want to discount reflected for the entire duration of the subscription. Leave Term Discount Level blank if you want discount schedules applied based on the term of each line item.
    • Line
    • Group
    • Quote


  •  Provide discounts by volume


In order for Discount Schedules to be applied correctly, the following objects must already be created.

  • Primary Quote with a Subscription Start Date and Term
  • Contracted Opportunity
  • Contract
  • Asset

Admins may need to modify the following page layouts:

  • Add the Term Discount Level field to the Product page layout.


Create and Apply a Discount Schedule to a Product

  1. Navigate to the Discount Schedules page and click New.
  2. Navigate to the Product that you want to associate with your Discount Schedule.
  3. Click Edit. Navigate to your Product's Discount Schedule field and set the value to the Discount Schedule you just created. If you want to apply this Discount Schedule to a Subscription Term, modify the Term Discount Schedule field value instead.
  4. Click Save. Note: Price changes from a Discount Schedule are not retroactively applied to existing Quotes.

Apply Discount Schedules to Subscription Products based on Quote, Group or Line Item

  1. In addition to the steps above, navigate to your Subscription Product and set the value of the Term Discount Level field.

Create Discount Schedule Tiers

  1. Navigate to an existing Discount Schedule and select the Edit Tiers button.
  2. Fill in the Tier Name, Lower Bound, Upper Bound and Discount Schedule values.
  3. Click the + at the right column of any row to insert a new row.
  4. Click the - at the right column of any row to remove that row.tiers.png

Note: Any further Opportunities will use past volumes when applying Discounts.


  1. You may sell a router for $25, but offer a case discount of 20% when a customer purchases more than 10 routers. This is a simple two-tier discount schedule: a 10% discount for 1-10 routers, and another that specifies a discount of 20% when the quantity is 11 or higher. Remember that the Upper Bound is not inclusive - setting it at 11 means Discount Tier 1 covers 1-10 routers, will Discount Tier 2 covers 11 or more routers.discountsched.png
  2. Setting the Type to Slab would allow you to blend the Discount % of your product's quoted quantity as well as all quantities that fell in preceding discount categories. In the Discount Schedule below, customers ordering 31 or more routers would have their order discounted as follows:
    • First 10 routers: 5% discount each
    • The 11th through 20th routers: 10% discount each
    • The 21st through 30th routers: 15% discount each
    • The 31st router: 20% discount
    • slab.png
  3. You can also apply discount schedules to a Subscription Term. This is helpful if you give a 20% discount on a 2-year subscription purchase, or a 30% discount on a 3-year subscription. A sample Discount Tier setup for such a Subscription Term's Discount Schedule is provided below:subs.png



  1. If you want to apply discount schedules to specific price books, add the Excluded Pricebook ID's field to your discount schedules page layout. Go to the price book that should be exempt from this discount schedule, copy the 15 character code in the URL, and enter this code in the Excluded Pricebook ID field. You can enter multiple ID's by separating each with a comma.
  2. You can access any field on the Discount Tier in order to perform calculations in formula fields on the Quote Line object. For example, you are able to access the discount value (%) in a formula field. 


Salesforce CPQ+ Edition allows you to set up a variety of additional discount methods:

  • Compound Discounts are discount methods, expressed as a percentage, that calculates the discount on a product based on the quantity
  • Partner Discounts can be given to quote and product line items for a quote.
  • Non-Discountable products are selected products that are exempt from additional discounts.

Tip: Select Non-Discountable on the product to exclude products from your discount schedules.

Tip: If you are upgrading from a previous version, you may need to add the Product and Price Book fields to the Discount Schedule page layout.

by chickman2
on ‎05-17-2016 10:28 AM

@Chris @lvoelz2 What does the "Original Discount Schedule" field do? Also, if I have discount schedules assigned at the: product/block price, product option, account contracted price, and parent account contracted price, what is the order of precedence there?

by ksherwin
on ‎07-01-2016 08:14 AM

How do you apply a volume multiplier as a discount schedule? Use Case:


Product is $8000

Volume Multiplier = 2 for 15 users

Math = $8000*2 = $16,000


I would like a way to translate the multipler into a percentage in the discount schedule and get to the amount $16,000. 


Also, the POT products would need to apply to the $16,000, not the net total after the ad hoc discounts. 


by chickman2
on ‎07-01-2016 11:00 AM
Couldn't you just use -200%?
by chickman2
on ‎07-01-2016 11:01 AM
Or rather, -100%
by ksherwin
on ‎07-01-2016 11:06 AM

HI there,


We've tried this:

List Price on Product $8000.

Multiplier for 15 users = 0.2


Discount Schedule LB: 11, UB: 16

Discount Percent = -200%






by antoine_foucher
on ‎11-24-2016 05:29 AM

Hi everyone,


Can Discount Schedules be selected (and applied) manually by Users?


Example :

Product A can be sold with 2 different discounts, or no discount at all.

Ideally, Users would create their quote, select Product A, then be allowed to apply a discount schedule, choosing among the two that are available for this product. 


It seems to me that this is not the way CPQ is supposed to work.

Creating 2 different products, each with its own Discount Schedule : that sounds like the proper way to do it.

But I'm curious and may not know everything : does anybody has an opinion on this?

Thank you in advance,





by dgriffiths
on ‎01-26-2017 12:42 PM

How are "active" assets determined? Is this using a particular set of Status values or some combination of Install Date or Usage End Date?

on ‎01-27-2017 03:51 PM

We determine unit pricing discounts based on total square feet on an order (calculated in a formula per line with a summary variable). 


The problem is, for this particular product family we have 20-30 different products each with a different default price, but the default price is affected based on total square footage of the order. 


Example: Product a default price is $40, product b is $72.00 However if the TOTAL square foot of the order is lets say 50-100, product A now becomes $30 and product b $56.00. There's no static discount "rate" per tier, as it depends on the product (our cost differs for each), and total order square footage. 


How would we set this up using the custom field that holds the summary variable, and configure this to work accordingly? I'd assume I can use price rules, but that would be a LOT of price rules since there are 10-12 tiers and each product is different pricing in each tier. 

by purumahay
on ‎03-10-2017 06:10 PM

Can we determine discount % on the basis of Amount of line. For eg: if configured product price is 60k to 120K then 5%, if 121k to 130K then 10% etc.

on ‎03-13-2017 08:51 AM



You can setup a pricing structure with the amount field as the measurement. Or you can use a price rule 



IF(Amount >= $10,000, Adjust Unit Price to X each, If Not then Null) 


Or something along those lines. 


by abajwa
on ‎03-27-2017 10:24 AM

Hi, there appears to be a Discount Unit option called "Price" that is not detailed here.

by eching
on ‎04-05-2017 12:47 AM

What is the difference between aggregation scope and Cross Product?  

by dgriffiths
on ‎04-05-2017 07:46 AM

How are "active" assets determined? Is this using a particular set of Status values or some combination of Install Date or Usage End Date?

by Adelgado88
on ‎04-10-2017 05:22 PM

Following up on @abajwa comment, there is a new option for Discount Unit which appears to allow users to set the Price for a specific tier. However, upon setting, this is not working, even though the Quote Line is applying the correct Discount Tier. Does anyone have experience with this or is there any new documentation that we can look at?

on ‎04-28-2017 03:06 AM

Is the Discount Type of Price supported?


I am trying to set up a Price type Discount Schedule to effectively support block pricing via discount schedule and cannot get the discount schedule to update the product price based on the defined Discount Tier Price. Is there a trick to getting the defined discount tier Price to overide list unit price? 





on ‎04-28-2017 11:23 AM

Can this be updated to reflect the discount unit selection Price and add instructions on what configurations need to be set to get so that the product price is overriden based on the price defined on the applicable price tier.




Dan Hansen

by Bishwendra
on ‎07-06-2017 05:17 AM

Is there a possibility to associate a Discount Schedule with an Account allowing different discounts on same product for different customers? 

by dgriffiths
on ‎07-06-2017 07:57 AM

@Bishwendra, I believe a contracted price would do that for you.

by Bishwendra
‎07-06-2017 08:02 AM - edited ‎07-06-2017 08:03 AM

@dgriffiths, Thanks for your reply, As you stated, I found out that the Contracted Price record can be associated with a Discount Schedule allowing to have different volume discounts on same product for different customers. 

by dfran
on ‎08-29-2017 02:54 PM

Is there a way to leverage a cross-product discount schedule, but with different tiers for different products?


For example, we need to volume discount by product family where quantities for all products in the family are counted in aggregate, but each product is discounted by a separate amount, like so:

Units     1-5    5-10   10-20

Prod A   $1      $2       $3

Prod B   $2      $3       $4

Prod C   $3      $4       $5


My thought is that we would have a single discount schedule for each family related to all products within the family. However, you can only set the tiers for a discount schedule for all products related to the discount schedule.


Is there any way to do cross-product discounting across discount schedules, but aggregated by a product field such as family?

on ‎08-29-2017 03:01 PM

Block pricing based on quantity? 

by dfran
on ‎08-29-2017 03:03 PM

@wpowell The products still need to be discounted per unit, just all product quantities within a family would be counted towards the discount quantity looked up.

on ‎08-29-2017 03:07 PM



I understand. You can set block pricing based on several criteria. For example, I set my block pricing based on a custom formula field. The more square footage, the lower the pricing. That is on a product by product basis, though. 


If you want something more along the lines with a family, i'm sure my solution is a rube-goldberg method, but you can do this: 


Summary variable for all products within a certain family to sum the quantity value, then use that in a price rule to apply discounting. 

on ‎08-29-2017 03:35 PM

@dfran - you need to use a custom field to drive your discount schedule tier selection, and you need populate the custom field with the summation total of the number products in the given family on the quote in or in a given bundle. You can calculate the number of products on the quote leveraging a summary varible and price rule to inject to total in custom field which is the driver/target for your discount schedule. 

by dfran
on ‎08-30-2017 12:38 PM

@DanHansen - This custom field would be on the Quote Line object, correct? Also, how would I configure the discount schedule to use the custom field to drive the tier selection as opposed to using the standard quantity field?

TIA for your help!

on ‎08-30-2017 02:38 PM

@dfran - you have to add the field you want to use to the Quote Line Quantity picklist (Using you custom field API name) on the Discount Schedule record. It also has to be a number type field. Then the discount schedule will look to this field to select the applicable tier. I believe you want to populate this with the sumation count of the products on your quote of the specific product family.


Quote Line Quantity Field (Managed) - Discount Schedule field

by JamesWalker
‎12-17-2017 02:17 PM - edited ‎12-17-2017 02:28 PM

I no longer see the "Allow Override" field on the discount schedule object. Could this documentation be updated?