Configure Partner and Distributor Discounts
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.
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|
||Price book price
||Price book price, percent of total price, block price, or option price override
||Cost plus markup price, contracted price, or option discount
||Result of volume-based discounts
||Result of manually editable discounts
Result of partner discount, set manually or through automation
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.
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.
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.
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.
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.
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.
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.