...
The following strategies are available. Bundle values should be the smallest meaningful units so rounding is performed only on the first decimal, by rounding half up, e.g. a calculated value of 20.5 will result in 21 while a value 20.49 will be rounded to 20.
The date being calculated against is taken from the subscription_campaign.from_date and occurs upon campaign activation, in the same way that the old ProrateActivation method was invoked by the campaign framework.
Strategy Name | Description | Calculation | Example |
---|---|---|---|
ProrateDayOfMonthUsing30DayMonth | This strategy will prorate based on remaining days of a fixed month length of 30. | bundleValue * ((30-dayOfMonth) + 1) / 30). | For the 5th the calculation would always be bundleValue * (26/30) irrespective of the actual month length. |
ProrateRemainingCalendarDaysUsing30DayMonth | This strategy calculates actual remaining days of the month (including the date itself) but uses a | bundleValue * ((monthLength - dayOfMonth + 1)/30) | Example 1: January 5th would be calculated by bundleValue * (27/30).
|
ProrateRemainingDaysOfMonth | This strategy will prorate a bundle based on the actual remaining days of the month (including the date itself), using the calendar month length. | bundleValue * (remainingDays / lengthOfMonth) | Example 1: February 27, 2018 would be bundleValue * (2 / 28).
|
ProrateRemainingDaysOnInvoiceSchedule | This strategy will prorate a bundle based on the remaining days of the current invoice schedule, compared to the associated billing cycle length. | bundleValue * (remainingDays / billing_cycle.length) | Let the billing_cycle have a length of 14 and the current invoice_schedule be from 1st-14th January.
|
...