Block Pricing - Salesforce CPQ

Hi All,

Welcome Again.

After learning about product setup, Let's move one step forward today.

There can be several instances when we purchase some item which is priced based several bands defined in the system such as Subscription of SonyLiv, Netflix, Hotstar, Purchasing licenses of Salesforce CRM etc.

This product/subscription is priced based on a pre-defined set of band/tier having minimum & maximum quantity and price allocated for that band/tier.

Today, we are going to see some of these use cases which can be achieved using Salesforce CPQ.

In Salesforce CPQ, We have object called 'Block Price' which can be used for pricing a product based on specific bands.

How to Setup ?

  • Set Pricing Method = Block on the product which we wants to price in bands/tiers.
  • Set Block Pricing Field = Quantity - This will be by default, we can change if we wants to price based on other field.
  • Create 'Block Price' records related to product.

Fields we are going to use

  • Name - Name of the band/tier.
  • Lower Bound - Minimum band/tier value.
  • Upper Bound - Maximum band/tier value.
  • Price - Fixed price for the band/tier.
  • Overage Rate - Used to price product per unit (This will not be available by default, we have to create this field.)
No alt text provided for this image
  • Price Book - Lookup of Price Book for which we are creating the band/tier.
  • Product - Lookup of Product for which we are creating the band/tier.
  • Currency - For which currency we are creating the band/tier.

Things to know before we start

  1. Lower Bound is Inclusive - means if the quantity for quote line = Lower Bound, it falls into the same band/tier.
  2. Upper Bound is Exclusive - means if the quantity for quote line = Upper Bound, it falls into the next band/tier.
  3. Use Overage Rate for Per Unit Price.
  4. Upper Bound of current record must match Lower Bound of previous record.
  5. Price coming from Block Price can’t be overridden.

Use Case 1

SonyLIV is selling its subscription which can be used by a fixed set of Person/Profiles.

Subscription needs to be priced based on its price irrespective of the number of users/profiles who uses that subscription till the max limit.

Following are the bands/tiers in which SonyLiv subscription is sold.

No alt text provided for this image

Now let say user purchases SonyLiv subscription

  • for 1-5 user, user will be charged $10 flat fee.
  • for 5-10 user, user will be charged $15 flat fee.
  • for 11-20 user, user will be charged $20 flat fee.

Now to set up this follow below mentioned steps:

  • Create Product 'SonyLiv' with fields Pricing Method & Block Price Field having value.
No alt text provided for this image
  • Create Standard Price Book Entry & Custom Price Book Entry for the product with 0 Price.
  • Go to Related List tab & Click 'New' button on Block Prices related list.
  • Create following records shown in screenshots.
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Note: You might see that the Upper Bound in all 3 screenshots is exactly Maximum Quantity of Band +1 from the table that we have seen earlier. The reason is the Upper Bound is exclusive in Block Price.

Use Case 2

Salesforce is selling its licenses which needs to be charged for each & every user who is going to use it.

Following are the bands/tiers in which for Salesforce Licenses are sold.

No alt text provided for this image

Now let's say user purchases Salesforce Licenses

  • for 8 user, user will be charged 8 times $20 as the quantity falls into 1st band/tier.
  • for 12 user, user will be charged 12 times $15 as the quantity falls into 2nd band/tier.
  • for 25 user, user will be charged 25 times $10 flat as the quantity falls into 3rd band/tier.

Now to set up this follow below mentioned steps:

  • Create Product 'Salesforce CRM License' with fields Pricing Method & Block Price Field having value.
No alt text provided for this image
  • Create Standard Price Book Entry & Custom Price Book Entry for the product with 0 Price.
  • Go to Related List tab & Click 'New' button on Block Prices related list.
  • Create following records shown in screenshots.
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Note:

Here you might have noticed that we have used another field called Overage Rate and has setup per unit price and Price Field is also having some amount.

Following is the formula using which price will be calculated when we use Overage Rate.

Block Price = Price for the block + ((Quantity - minimum quantity for block) * overage rate)

Now taking above example available in screenshot, if we have put Price as $10 then based on the formula following will be the price

Block Price = 10 + ((21-21 * 10) = $10 

This is wrong, the price for 21 quantity must be $210 as it is per user price.

To overcome this issue, we have added price by multiplying Overage Rate by Minimum quantity in Price field.

Now let's consider that user entered quantity as 25 in cart, so the price needs to be $250.

Let's see based on the data we have in screenshot,

Block Price = 210 + ((25-21) * 10) = 210 + (4*10) = 210 + 40 = $250.

Which now looks correct.

Use Case 3

Apple is selling MacBooks in different slabs/cumulative range.

Following are the bands/tiers in which Macbooks are sold.

No alt text provided for this image

Now let's say user purchases Macbooks:

  • for 8 Macbooks, user will be charged 8 times $1,500 as the quantity falls into 1st band/tier.
  • for 12 Macbooks, user will be charged 10 times $1,500 + 2 times $1,450 as its been sold in Slab/Cumulative Range.
  • for 25 Macbooks, user will be charged 10  times $1,500 + 10 time $1,450 + 5 times $1,300 as its been sold in Slab/Cumulative Range.

Now to set up this follow below mentioned steps:

  • Create Product 'MacBooks' with fields Pricing Method & Block Price Field having value.
No alt text provided for this image
  • Create Standard Price Book Entry & Custom Price Book Entry for the product with 0 Price.
  • Go to Related List tab & Click 'New' button on Block Prices related list.
  • Create following records shown in screenshots.
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Note: Here in first screenshot, we have provided price as $1,500 & Overage Rate is $1,500 so the price is being calculated perfectly.

The challenge will come in next tiers/bands as the pricing is slab based/ cumulative that means if user enters quantity as 15 then first 10 quantities needs to be priced as per first tier/band & next 5 quantities needs to be prices as per second tier/band.

To fulfil this scenario, following is the way to derive Price for block price tier.

Price = Overage Rate of Tier in which Quantity falls + Sum of (Overage Rate * (Upper Bound - LowerBound) of Previous Tiers)

Now consider, We are purchasing 25 Macbooks then let's calculate what can we set the in Price Field using above formula.

Price = $1,300 + ($1,450 * 10 + $1,500 * 10) = $1,300 + $29,500 = $30,800

Which is what we are seeing in last screenshot.

Now based on following formula, we can calculate the price for 25 Macbooks.

Block price = price for the block + ((quantity - minimum quantity for block) * overage rate)

Block Price = $30,800 + ((25 - 21) * $1,300 = $30,800 + (4 * $1,300) = $36,000

Which seems to be accurate pricing based on Slabs/Cumulative Range defined.

Now let's test the configuration that we did for all 3 Use Cases.

Configuration Test

  • Create a new Quote.
  • Click 'Edit Lines'.
  • Click 'Add Product'.
  • Select 'SonyLIV', 'Salesforce CRM License' & 'MacBook' from Product Selection screen & click 'Select' button.
  • On cart page, we will be seeing price for quantity 1 for all the products.
No alt text provided for this image
  • Provide the following quantity for each products available in cart.

MacBook = 17

Price for MacBooks = price for the block + ((quantity - minimum quantity for block) * overage rate)

Price for MacBook = $16,450 + ((17-11) * $1,450) = $16,450 + (6 * $1,450) = $25,150
 

Salesforce CRM License = 22

Price for Salesforce CRM License  = price for the block + ((quantity - minimum quantity for block) * overage rate

Price for Salesforce CRM License = $210 + ((22-21) * $10) = $210 + (10) = $220

SonyLiv = 4

Price for SonyLiv  = price for the block 

Price for SonyLiv = $10
No alt text provided for this image
  • Try changing out the quantities of products and check the pricing being calculated correctly.

This is how different pricing scenarios can be achieved using Block Price in Salesforce CPQ.

I hope this will be a good learning for you.

Kindly also subscribe to my youtube channel SFDC Learning to get learning from video tutorials.

Feel free to reach out if you have any questions/suggestions.

Thanks,

Mehul Parmar

Comments

Popular posts from this blog

Pricing Waterfall Model - Salesforce CPQ

Summary Variable - Salesforce CPQ

Percentage of Total Pricing - Salesforce