📢 Attention Salesforce Certified Trailblazers! Maintain your credentials and link your Trailhead and Webassessor accounts by April 19th. Learn more.
close

Configure Partner and Distributor Discounts

Learning Objectives

After completing this unit, you’ll be able to:

  • Describe how partner and distributor discounts affect pricing calculations.
  • Control which field CPQ uses to calculate the partner discount.
  • Configure CPQ to apply partner discounts before volume and manual discounts are applied.
  • Configure CPQ to apply manual discounts after the distributor discount is applied.

Channel Discounts

Partners and distributors often get extra discounts when they sell products on your behalf, separate from the discounts meant for the customer. These kinds of discounts are referred to as channel discounts. Salesforce CPQ accounts for channel discounts by keeping track of them in separate quote line fields: Partner Discount and Distributor Discount.

The Partner and Distributor Discount fields are simple percent fields; they’re pretty basic when compared to the Additional Disc. functionality. Sometimes their values are edited manually during the sales process, other times they’re defined by logic like a price rule. Either way, both fields play a role in the price waterfall. As a reminder, here’s the price waterfall from the first unit.

Pricing Field What It Represents
Original Price
Price book price
List Price
Price book price, percent of total price, block price, or option price override
Special Price
Cost plus markup price, contracted price, or option discount
Regular Price
Result of volume-based discounts
Customer Price
Result of manually editable discounts
Partner Price
Result of partner discount, set manually or through automation
Net Price
Result of distributor discount, set manually or through automation

Just to be clear, Salesforce CPQ calculates Partner Price like so:

Customer Price - Partner Discount = Partner Price

Similarly, CPQ uses Distributor Discount to calculate Net Price:

Partner Price - Distributor Discount = Net Price

There’s a quote-level field named Partner Discount, that works a lot like the quote-level Additional Disc. field. If there’s a value in the Partner Discount field at the quote level, it is used automatically for every quote line that doesn’t otherwise have a specific Partner Discount value. There’s also a quote-level field named Distributor Discount, and yep, you guessed it! It works the same way.

If you don’t want a product to ever receive a partner discount, check the field named Non-Partner Discountable, found on the product record. This locks the field in the Quote Line Editor, and prevents the quote line from inheriting the partner discount from the quote.

Use List Price to Calculate Channel Discount Amount

Because of the way the price waterfall processes channel discounts, the overall amount of the partner discount gets smaller with every prior discount, and the amount of Distributor Discount is reduced even further than that. For example, if you have a $100 product that gets a 20% volume discount and a 10% manual discount, the amount of a 50% partner discount is $36, exactly half the Customer Price. That’s what’s happening on the left of the diagram.

Discount comparison diagram

Some businesses want the amount of partner and distributor discounts to reflect a percent of the List Price, which is unaffected by volume and manual discounts. This results in larger discount amounts when deducted near the end of the Price Waterfall, as we see in the right of the diagram. Using half of the List Price makes the Partner Price significantly smaller. Administrators can control which way channel discounts are handled.

If you create a custom number field on the quote object with the API name of ChannelDiscountsOffList__c and make its value 0, the price waterfall stays the same (see the Standard diagram). But if you make its value 1, that tells CPQ to use List Price as the basis for calculating the Partner Discount amount. This also makes List Price the basis for calculating Distributor Discount (see the Off List diagram).

We actually recommend making ChannelDiscountsOffList__c a formula field that always returns 1, instead of just a number field. This is a good idea because all new quotes will have the correct value, and it can’t accidentally be changed. Also, in the future if you need to toggle between the two waterfalls, you can do so by replacing the 1 with a formula that considers outside conditions to return either 0 or 1.

Note

Note

Large partner and distributor discounts can result in negative prices when using ChannelDiscountsOffList__c. For example, in the diagram above, imagine if the manual discount was 50%. That would’ve made the Customer Price $40. If $50 was deducted from that, you would get a -$10 price.

Move Partner Discount Up the Price Waterfall

Partner discounts are usually handled very late in the price waterfall, making the discount apply after customer-focused discounts like Additional Disc. But what if your business needs partner discount to occur earlier so partner pricing is adjusted before volume and manual discounts are recognized? Using another special field, administrators can make that happen too.

This time the special field API name must be ApplyPartnerDiscountFirst__c. When the field is 0, nothing changes, but when it’s 1, CPQ deducts the partner discount before regular price. The exact order of operations to calculate special price and regular price depends on what pricing tools you’re using.

Pricing flow diagram when ApplyPartnerDiscountFirst__c is 1

The yellow circles are for the Partner Discount—the biggest difference here is whether the discount is applied before or after the special price is calculated. Surprisingly, when setting partner discounts first, cost plus markup pricing is ignored, and CPQ deducts the partner discount directly from the list price.

It’s also worth noting that the partner price is basically removed from the price waterfall above. CPQ knows to deduct the distributor discount straight from the customer price to get net price, as if the partner price never existed.

Note

Note

Do not use ApplyPartnerDiscountFirst__c and ChannelDiscountsOffList__c together on the same quote. This is not supported, and will likely result in incorrect price calculations.

Apply Additional Discounts Last

This last price waterfall adjustment is indirectly related to channel discounts by moving customer price to after net price. In this table, we see the price waterfall before and after the change.

Before After
Original Price
Original Price
List Price
List Price
Special Price
Special Price
Regular Price
Regular Price
Customer Price
Partner Price
Partner Price
Net Price
Net Price
Customer Price

Customer price always contains the result of manual discounts, so moving it to the end makes manual discounts apply after channel discounts, instead of before.

Net Price - Additional Discount = Customer Price

Since Customer price is no longer above partner price, CPQ changes the partner price calculation to use regular price.

Regular Price - Partner Discount = Partner Price

Moving customer price is done in a similar manner to the previous two adjustments. Create a custom number field named ApplyAdditionalDiscountLast__c and give it a value of 1. Just like the other adjustments, a value of 0 leaves the waterfall untouched. As a best practice, administrators should make this field a formula that always returns 1.

Since customer price is at the end of the price waterfall, Salesforce CPQ uses it instead of net price when synchronizing the quote lines to the opportunity. That way, opportunity product pricing accurately represents what the customer is asked to pay.

Note

Note

ApplyPartnerDiscountFirst__c takes precedence over ApplyAdditionalDiscountLast__c. If they’re both set to 1, only ApplyPartnerDiscountFirst__c is applied. Don’t use ApplyAdditionalDiscountLast__c with ChannelDiscountsOffList__c, as this isn’t supported and will result in incorrect pricing calculations!

Adjusting the price waterfall allows administrators to control how prices are calculated when channel discounts are in play. If channel discounts aren’t used, just leave the waterfall as is! You can still use option discounts, volume-based discounts, and old-fashioned manual discounts. When discounting tools and pricing tools are combined, sales teams have many ways to get the prices just right for every quote.

Resources

retargeting