Calculating Offer Priority During Rating
When MATRIXX Charging Application receives a usage event to rate, it uses the dynamic offer priority formula to calculate a priority value for all candidate product offers. The event is then rated using the product offer with the highest numerical priority value, and any supplemental product offers that might also apply. The dynamic offer priority formula calculates the offer priority value using priority settings from the offer, priority settings from priority generators, and priorities based on the expiration date of any product offer primary balances.
- Determines a list of candidate product offers that could rate the event. The candidates list includes all purchased subscription or global product offers for the device, subscriber, or group that generated the event. This includes supplemental and non-supplemental product offers.
- Calculates priority values for each of the offers using the offer priority formula.
- Arranges the list of offers in order of their priority values, from highest to lowest. Note: A supplemental offer might have a higher or lower priority than a non-supplemental offer. The order of two offers with the same priority value is undefined.
- Begins evaluating each supplemental or non-supplemental offer in the list, selecting those that apply to that usage, until a non-supplemental offer is selected.
- Continues considering each supplemental offer remaining in the list, selecting those that apply to that usage.
This prioritized offer selection is performed twice, once to select offers to apply charges, and again to select offers to apply discounts to those charges.
This section explains the second step, calculating the priority values for each product offer using the dynamic offer priority formula.
For usage events, all subscription and global product offers that can be applied to the event service type are included in the list of candidate offers. Subscription and global product offers are selected if their service type matches that of the event, or is an ancestor of the event service type in the service type hierarchy. Candidate product offers can include different instances of the same offer purchased individually or as part of a bundle.
Usage events can be divided into multiple segments, each of which applies different charges and discounts. In this situation, the priorities are recalculated for each segment. The resulting priority can differ between segments because different periods of a periodic or on-demand balance are used. Priorities can also differ because the normalization results for a priority generator are different.
This priority calculation does not usually apply to non-usage events. However, there are exceptions for product offers with auto-renew options. For more information, see the discussion about calculating priority for non-usage events.
Dynamic Offer Priority Formula
MATRIXX Charging Application uses this formula to calculate a priority value for each candidate offer that could rate an event. It then rates the event using the offer with the highest priority (highest numerical priority value):
Offer Static Priority + (Priority Generator Result * Priority Generator Coefficient ) - (Primary Balance Expiration Ranking * Balance Expiration Coefficient) = Product Offer Priority
Element | Description |
---|---|
Offer Static Priority | A signed 32-bit integer or the values lowest and highest that you enter on the product offer Priority tab in the Static Priority
field. For information about setting this value, see the discussion about applying priorities in My MATRIXX Help. |
Priority Generator Result | The result of the priority generator calculation for the priority generator specified on the product offer Priority tab. If the product offer does not contain a priority generator, a value of zero is used. For information about creating and using priority generators, see the discussion about creating product offer priority generators in My MATRIXX Help. |
Priority Generator Coefficient | A signed 32-bit integer that you enter on the product offer Priority tab in the Priority Generator Coefficient field. This entry modifies the result of the priority generator calculation. For information about setting this value, see the discussion about applying priorities in My MATRIXX Help. |
Primary Balance Expiration Ranking | This setting gives the product offer with a primary balance that expires first the highest priority. If a primary balance is set for a product offer, select Balance
Expiration on the offer Priority tab to make
the primary balance expiration dates affect the dynamic offer priority formula. You set a primary balance on the offer Balances tab. See My MATRIXX Help for information about setting these values. Note: An offer is ranked last if a primary balance is not set or is not valid at the time of the event. If the primary balance is a periodic balance, the expiration time is whichever of the following comes first for the
entire balance:
If the primary balance is an on-demand balance, the charging period is determined and the expiration time is whichever of the following comes first for the
entire balance:
Among these offers, the offer with the primary balance that expires first receives a Primary Balance Expiration Ranking of 0. The offer with a balance that expires second has a Primary Balance Expiration Ranking of 1, and so forth. If multiple offers have a primary balance that expires at the same time, their Primary Balance Expiration Ranking values are set the same, and that number of values are skipped before ranking the remaining values. For example, if there are five offers, where one offer expires first, three others expire simultaneously some time later, and a fifth offer expires last. The offer that expires first is assigned a Primary Balance Expiration Ranking of 0; the three offers that expire simultaneously are assigned a rank of 1; the final offer is assigned a rank of 4. If a balance is unusable, its priority is set to the highest level. This might occur, for example, if the balance filters prevent it from being used, or it is at its credit limit. In addition, if the primary balance is an on-demand balance for which no existing period covers the input event time, the balance is ranked last. Note: Offers that
do not specify the balance expiration priority setting act as if their Primary Balance Expiration Ranking is set to 0. |
Balance Expiration Coefficient | A 32-bit integer that you set in My MATRIXX on the product offer Priority tab by clicking Balance
Expiration and adding a 32-bit integer in the Balance Ranking Coefficient field. This entry modifies the result of the
Primary Balance Expiration Ranking calculation. For information about setting this value, see the discussion about applying priorities in My MATRIXX Help. Note: The balance expiration term
is subtracted in the dynamic ranking formula. Therefore, use a positive coefficient to give offers with primary balances that expire later a lower priority. Use
a negative coefficient if you want offers whose balances expire later to have a higher priority. |
Use for Policy | Use for Policy is automatically selected if either or both Balance Expiration and Priority Generator are selected. Deselect Use for Policy so that dynamic priorities are applied only when the Policy Quota Action Type is defined on the product offer General tab. For more information about general properties, see the discussion about general product offer properties. |
Using the Coefficient Settings
Use the coefficient entries in the priority ranking formula to over-weight or under-weight the priority generator result or primary balance values. For example, if you use a large number for the balance expiration coefficient, and a smaller number for the static priority, the balance expiration has a greater effect on the formula outcome. The static priority determines of the two offers with a primary balance that expire at the same time (or between two offers that do not have primary balances).
Examples
The following examples use the priority generator shown in Figure 1.
- Static Priority (checked)
Static Priority Value = 5
- Balance Expiration (checked)
Balance Expiration Coefficient = .5
- Priority Generator (checked)
Priority Generator Coefficient = 2
# | Offer Static Priority | Priority Generator Result | Priority Generator Coefficient | Primary Balance Expiration Ranking | Balance Expiration Coefficient | Result |
---|---|---|---|---|---|---|
1 | 1 | 12 | 1 | 0 | 1 | 13 |
2 | 5 | 9 | 2 | 1 | .5 | 22.5 |
3 | 1 | 8 | 5 | 2 | 3 | 38 |
4 | 20 | 6 | 1 | 3 | -4 | 38 |
Calculating Priority for Usage Events
If MATRIXX Charging Application does not find any candidates for rating an event, it tries applying auto-renew non-usage events to see if that changes the offer priorities. It provisionally applies all charges for auto-renew pricing components, and then probes the purchased offers again to see if that gives any product offers a priority value. If not, MATRIXX Charging Application aborts the renew charges. If charging for auto-renew pricing components does add a priority value for one or more product offers, the charge is implemented and the highest priority offer is selected for rating the event.
- Usage charge for roaming data + roaming auto-renew.
- Usage charge for all-purpose data + all-purpose auto-renew.
- Last-resort overage charge.
If MATRIXX Charging Application tries to rate a roaming event, but the subscriber has used up their data roaming allotment, the offer is not initially a candidate for rating the event. However, once you apply the auto-renew charges, the subscriber receives another allotment of roaming data, and the product offer now is a candidate for rating and given a priority value. If the roaming data renewal cannot be renewed, or the subscriber is no longer roaming, the second product offer with an auto-renew charge for all-purpose data applies. If the all-purpose plan is exhausted, the final option is to charge last-resort overage charges.
Calculating Priority for Policy
When you create a subscription or global product offer, Use for Policy is selected on the product offer Priority tab and the dynamic offer priority formula is used when either or both Balance Expiration and Priority Generator are selected. You can deselect Use for Policy so that dynamic priorities are applied only when the Policy Quota Action Type is defined on the product offer General tab. For more information about product offer properties, see the discussions about applying priorities and general product offer properties in My MATRIXX Help.