Normalization
MATRIXX Engine uses a process called normalization to condense large sets of discrete field values into a manageable set of parameters. Each single normalizer parameter value represents an aggregate value set, so that assigning a result to every possible field value is not required.
- Balance filters — The index leads to a balance or meter to update or, if a match is not found, the filter does not apply.
- Balance state update tables — The index leads to a balance state update profile or a skip operation.
- Final unit indicator tables — The index leads to a final unit indicator profile or a skip operation.
- General ledger account tables — The index leads to a general ledger account or a skip operation.
- General ledger transaction type tables — The index leads to a transaction type or a skip operation.
- Offer priority generators — The index leads to a product offer to select, a skip operation, or a deny operation.
- Policy tables — The index leads to a policy profile to use or, if a match is not found, a default to use.
- Rate tables — The index leads to a rating formula or a skip operation.
- Rollover tables — The index leads to a rollover profile to use a skip operation.
- MtxMsg
- MtxProductOfferExtension
- MtxBalanceAdjustNormalizationInfo
- MtxBundleExtension
- MtxPurchasedOffer
- MtxPurchasePackageExtension
- MtxMultiServiceData
- MtxApplicationSessionExtension
- MtxChargingSessionExtension
- MtxPolicySessionExtension
- MtxDiamMediaComponentDescriptionData
- MtxDiamMediaSubComponentData
- MtxEventChargeNormalizationInfo
- MtxRateTagNormalizationInfo
- MtxSubscriberObject
- MtxUserObject
- MtxUserExtension
- MDC fields that are not altered within rating (for example, through data modify actions or normalizer chaining).
- Workspace MDC fields, which never have their results cached.
The MDC field cannot be a BLOB or a field key. If the field is a list or array, the first element is used. For more information about working with workspace MDC fields, see the discussion about message workspaces in MATRIXX Pricing and Rating.
For example, you can normalize on the
StatusValue
field in the MtxSubscriberObject to charge differently
based on a subscriber's life cycle status, or on the EventTime
field in
the MtxDiamRoMsg MDC to charge differently based on the time the event occurred. In this
case, you can use a time normalizer to create Peak, Off-Peak, and Weekend parameters
that represent time ranges. The value received in the EventTime
field
gets mapped into one of these ranges to select an index in the matrix.
Fields can only be used within the context of a specific purchased offer, product offer, bundle, or catalog item. Post-rating generators and FUI generators are not in such a context and normalizers with fields from purchased offers, product offers, bundles, or catalog items cannot be used.
- The Peak parameter represents all time points between 8 AM and 5 PM on weekdays.
- The Off-Peak parameter represents all time points between 5 PM and 8 AM on weekdays.
- The Weekend parameter represents all time points between 12 AM Saturday to 11:59 PM Sunday.
When a network message is received, the event's timestamp value and the event duration are used to map the usage to one of the normalizer parameters and that index is used. For example, if the normalizer is attached to a decision table and a subscriber makes a phone call from 8:00 AM to 8:20 AM on a weekday, the index associated with the Peak parameter is used. Depending on conditions during rating, such as credit limits and available balance amounts, the rating formula associated with that index might be used to charge for the call.
Normalizers enable you to set up one pricing structure and reuse it with any number of pricing items to get different results for the same structure. This is possible because the parameter values defined for the normalizers are independent from the result values you assign to them. For example, you can set up a time-of-day normalizer like the one in the example above, and attach it to a balance filter to determine which balance to impact, to a policy table to determine which policy profile to use, and to a decision table, to determine which rating formula to use.
- Session Duration — First 60 Seconds and Remaining Time.
- Access Type — On Network and Off Network.
- Subscriber's Birthday — Yes and No.
Define one row for each possible combination of values that get assigned to a result. So in this example, the decision table would contain 8 rows: 2 × 2 × 2 or 2 Data Access Duration parameter values × 2 On Network parameter values × 2 Subscriber's Birthday parameter values.
The reusability of normalizers reduces pricing configuration time and speeds rating. The same data does not have to be loaded multiple times and the equations associated with each normalizer do not require recompilation.
- Balance quantity
- Device type
- Device, subscriber, or group life cycle status
- service context
- Service type
- Subscriber ID
- Subscriber email address
- Subscriber IP address
- Subscriber location
- Time-of-day
- Time zone
- Usage quantity
- Life cycle state of a subscriber, group or device
- Tax location, tax status, and tax certificate
Normalization on the life cycle state allows pricing administrators to charge differently or to deny service based on the life cycle state. For example, pricing can be set up to charge subscribers with an active life cycle state a discounted rate and subscribers with an inactive life cycle state a regular rate.
For information about life cycles, see the discussion about status life cycles in MATRIXX Pricing and Rating. For information about MDCs that are valid for normalization, see the discussion about defining normalizer templates in MATRIXX Pricing and Rating. For information about dynamic tax selection, see the discussion about taxes in MATRIXX Pricing and Rating.