...
- VALUE_1 - maximum number of units inside available for current subscription bundle ,period.
- VALUE_2 - total number of units used of current subscription bundle period, i.e. the sum of units used by the subscription bundle itself and by other subscription bundles bundle periods (when the bundle is used as a surplus bundle),.
- VALUE_3 - maximum number of units that can be rolled over (, i.e. the maximum number of units that can be used as surplus by other subscription bundles)bundle periods. As this value indicates a part of value_1, it will not make sense to have a number greater than value_1.
- VALUE_4 - total number of units used by rolloverother subscription bundle periods. Value cannot exceed value_3. Note that value_4 is not a simple value, it is used as "a value from which other information can be calculated" (for more information, see below).
...
The difference between value_3 and value_4 (i.e. value_3 - value_4) is supposed to indicate how many units are available for rollover.
This means that every time units are used (i.e. some value is added to value_2), also value_4 is likewise increased with the same number of units, as this now indicates that less units are available for rolloverfor the current subscription bundle period, value_4 is not updated unless the number of free units (value_1 - value_2) exceeds the rollover limit (value_3). In this case value_4 is decreased to ensure the available rollover units do not exceed the number of free units.
The rules for how/when to update value_4 are:
...
Suppose a bundle has value_1 = 500, value_3 = 200. This means the bundle has 500 units for charges in actual period, from which 200 units may be used by charges from other periods.
Lets assume a subscription bundle is created initially and some usage is added to this subscription bundle period:
value_1 | value_2 | value_3 | value_4 | comment | |
---|---|---|---|---|---|
500 | 0 | 200 | 0 | Initial values | |
usage 190 | 500 | 190 | 200 | 0 | value_2 = 0+190. Still 310 units left. |
usage 80 | 500 | 270 | 200 | 0 | value_2 = 190+80. Still 230 units left. |
usage 100 | 500 | 370 | 200 | 70 | value_2 = 270+100. Still 130 units left. value_4 is incremented as free units in current period now is less than rollover units |
usage 5 | 500 | 375 | 200 | 75 | value_2 = 370+5. Still 125 units left. value_4 is incremented as free units in current period now is less than rollover units |
Suppose now that 190 units have been used in a period, i.e. value_2 = 190 and value_4 = 1900.
- If some usage with 25 units is processed by the bundle within the actual period, all 25 units will be added to value_2 (as all units belong to the actual period), but value_4 will only be added 10 units as there is a limit of 200 units. Consequently, value_2 = 215 and value_4 = 200.
- Instead, if some usage with 25 units is processed by the bundle outside the actual period (i.e. rollover), only 10 units will be added to both value_2 and value_4. Consequently, value_2 = 200 and value_4 = 200. This means that the period still allows 300 units to be used inside the period, but no units are left for rollover.
...