Categories
Problem & Solution

How to calculate ACV for subscription products in Salesforce CPQ?

The Problem

In Salesforce CPQ, Calculate ACV (Annual Contract Value) for the first year of all subscription products on the Quote, for both: MDQ and non-MDQ products. All subscription products belong to a Product Family of Subscription. All MDQ products in the catalog has Price Dimension set to a Year, Subscription Term is set to 12, and Subscription Term Unit set to Months.

The Solution

In order to calculate an the ACV, you have to crate 2 Custom Fields:

Object API NameField API NameTypePurpose
SBQQ__QuoteLine__cACV__cFormulaCalculate the ACV for a given line.
SBQQ__Quote__cACV__cRoll-Up Summary FormulaSum up Quote Line ACV values.
New fields to be created to implement ACV (Annual Contract Value)

The ACV__c field on the SBQQ__QuoteLine__c object, needs to have the following formula:

IF( Product_Family__c = 'Subscription' && SBQQ__SegmentIndex__c<=1,
    SBQQ__NetTotal__c/SBQQ__ProrateMultiplier__c,
    0
)

The above formula, will return 0 for:

  • all MDQ segments for year 2 and more,
  • all non-subscription products

and will return the value of Net Total for a yearly term for:

  • 1st year of MDQ products
  • 1st year of non-MDQ products

The ACV__c field on the SBQQ__Quote__c object, has to be a Roll-Up Summary Field, that is summing up all Quote Line ACV__c values.

Roll-Up Summary field on the Quote object.

By Marcin Krzych

Author of "The CPQ Implementation Guide" book. In IT since 2007, In Salesforce ecosystem since 2011, In Salesforce CPQ projects since 2016.
8 SF certifications.

6 replies on “How to calculate ACV for subscription products in Salesforce CPQ?”

Hi, I get Error: Field Product_Family__c does not exist.
I have that field Data Type – Formula(Text)

Can you help please.
Thanks

Hey, my bad, I did not have it in a post, that field “Product_Family__c” is supposed to be a field on a Quote Line object, in my case it was a formula field.
Where are you getting this error? Can you post a screenshot?

Hi. this is very helpful. thank you. For some reason, the ACV field that I created on the quote line object, is not visible on the quote object for roll up summary. Any advise?

Hi Kathleen, Is the type of the ACV field on the Quote Line a Number field? Also, the ACV cannot be a cross object formula field, so you need to make sure it only uses data from the Quote Line. Let me know if this helps.

It Is assumed here that. the subscription term is set to 12 –> In case it is 1 ( Monthly calculations).. Need to divide the formula by 12

This only works if your segments are 12 months and your default subscription term on the QL is also 12. If either of these are not true, the formula will give an incorrect value.

Also, you will want to use the lookup to Product2 to check the Subscription Type field there, rather than looking at Product Family. The Product Family has no bearing on whether or not the item is actually treated as a subscription product in CPQ.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.