Subscription Prorate Precision

by Community Manager on ‎10-08-2015 05:03 PM - edited on ‎01-09-2017 04:15 PM by Community Manager


The package-level Subscription Prorate Precision setting controls how Salesforce CPQ prorates subscription pricing. You can set this field to DayMonth, or Monthly + Daily.



  1. Navigate to: Setup | Installed Packages | Configure Salesforce CPQ.
  2. Click the Subscriptions and Renewals tab.
  3. Choose DayMonth, or Monthly + Daily.



The package-level setting Subscription Prorate Precision controls whether subscriptions are prorated by day, month or both.



Prorate subscriptions by day:


For example, if you quote a Product for 830 days and have a Default Subscription Term of 365 days, Salesforce CPQ will calculate 830 / 365 = 2.2740 as your prorate multiplier.


Customers often use daily proration when they need to differentiate between a customer owning a subscription by a month's specific number of days - 28, 29, 30 or 31, as opposed to customers who only care that a term is on month.



Prorate subscriptions by month:


For example, if you quote a Product for 35 months and have a Default Subscription Term of 12, Salesforce CPQ will calculate 35 / 12 = 2.9167 as your prorate multiplier. 


If you quote a Product with an uneven number of months, Salesforce CPQ will round the Subscription Term up to the nearest whole number before dividing by the Default Subscription Term. For example, quoting a Product from January 1, 2017 through January 10, 2018 would produce 12.1 months, rounded to 13 months.


Customers often use this setting when their Products and Quotes are always in terms of full months.


Month + Day

Prorate subscriptions by whole month plus a fraction calculated by the remaining days. Salesforce CPQ first calculates the whole months of the effective Subscription Term, then converts the number of remaining days into a decimal. Remaining days are calculated as follows:


Remaining days decimal = (Number of remaining days) * (Number of days in current year / default Subscription Term in months.)


The number of days in the current year will either be 365, or 366 if the current year includes a Leap Day / February 29.


For example, a Subscription Term of 2/23/15 through 9/30/17 would calculate as 31.263 months:

  • 2/23/15 through 9/22/17 = 31 full months. 
  • 9/23/17 through 9/30/17 = 8 days: 8 / (365/12) = .263 months

Customers often use this setting when they sell and price Products by the month or year, but don't regularly quote for specific periods of time.


Ignore Leap Year Days

Note: Salesforce CPQ Minor Releases contain features and upgrades, for specific customers, that are not yet available in a public release. The feature noted below will be publicly available in the next Major Release.

Leap years may be an issue if you have a daily subscription proration and an annual-priced Product with a Subscription Term of 365 days: 

  • If it's a Standard Product, Salesforce CPQ will create a Subscription Term of (366 / 365) days.
  • If it's an Annual MDQ Product, Salesforce CPQ will use a proration multiplier of (366/365) days for any Segments that fall under a Leap Year.

Selecting Day in package settings will also display the Ignore Leap Year Days setting. Select Yes and Salesforce CPQ will ignore Leap Year days and use a value of 365 days per year when calculating all daily Subscription Terms. In the above example:

  • Standard Products will have a prorate multiplier based on a 365-day-per-year term.
  • The Leap Year Segment for an Annual MDQ Product will calculate its Prorate Multiplier as 365/365 days.
by kbednarski
‎09-23-2016 01:13 PM - edited ‎09-23-2016 01:27 PM




by kbednarski
‎09-23-2016 01:26 PM - edited ‎09-26-2016 11:39 AM

 I believe the DAYS in Subscription Prorate Precision = Monthly + Daily, calculates to Days/(365/12) rounded to 4 didgets. 

by cirwin
on ‎10-21-2016 07:45 AM

I agree with kbednarski, I can also see that the Monthly + Daily calculation is actually Months + days/(365/12) approximately. However, the calculation is not exact, or is using rounded figures somewhere along the line.

by Elissa
on ‎11-01-2017 11:59 AM

I believe that the same is true when "Subscription Prorate Precision" is set to "Day."  I have a quote where the term is 272 days (we are populating both Start and End Date fields on the quote, rather than using the Subscription Term field; 272 is the different between Start and End Dates.)  In this scenario the prorate multiplier is .7452.  But this is a rounded number - and so we end up charging our customer for 271.998 days rather than 272 days.  Is this expected behavior?