...
- When the bundle is used as a surplus bundle by another bundle, then value_4 is updated with the amount of units used by that other bundle.
- Note that the process that updates value_4 shall make sure to also update value_2 with the same amount of units.
- When value_2 is updated it needs to be checked if the total units available in the bundle is now less than the number of units that can be used as surplus. If this is the case, then value_4 needs to be updated such that this is no longer the case.
- In more mathematical terms, if (value_1-value_2)<(value_3-value_4), then adjust value_4 such that the '<' becomes '='. This means that value_4 shall be set equal to value_3-(value_1-value_2).
ExamplesExample how value_4 is used for current period
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.
...
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 = 0.
...
usage 200 | 500 | 500 | 200 | 200 | value_2 = 500 as 375+200 exceeds value_1. value_4 = 200 as available rollover units are exhausted. |
Example how value_4 is used for rollover periods
Now lets assume a subscription bundle is created initially but no usage is added for the subscription bundle period. Now the subscription bundle period is used by another period using rollover functionality:
value_1 | value_2 | value_3 | value_4 | comment | |
---|---|---|---|---|---|
500 | 0 | 200 | 0 | Initial values | |
usage 90 | 500 | 90 | 200 | 90 | value_2 = 0+90. Still 410 units left. value_4 = 0+90 as usage is added due to rollover. Still 110 units left for rollover. |
usage 80 | 500 | 170 | 200 | 170 | value_2 = 90+80. Still 330 units left. value_4 = 90+80 as usage is added due to rollover. Still 30 units left for rollover. |
usage 30 | 500 | 200 | 200 | 200 | value_2 = 270+30. Still 200 units left. |
Note, the last usage may actually be higher than 30, however the actual subscription bundle do only allow usage up to 30 units to be handled.
Example how value_4 is used for combined usage in current and rollover periods
Actual period | Other periods (rollover) | 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. Still 200 units available for rollover. |
usage 80 | 500 | 270 | 200 | 80 | value_2 = 190+80. Still 230 units left. value_4 = 0+80 as used for rollover. | |
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 = 70+5 as used for rollover | |
usage 200 | 500 | 500 | 200 | 200 | value_2 = 500 as 375+200 exceeds value_1. value_4 = 200 as available rollover units are exhausted. |
Subscription Bundle Update Manager
...