20 Using Impact-Based Candidate Selection

Learn how Oracle Communications Elastic Charging Engine (ECE) selects candidates for charge selectors and generic selectors when configured for impact-based selection.

Topics in this document:

How Impact-Based Candidate Selection Works

During ECE rating, charge selectors and generic selectors normally evaluate matching rules or result branches in configured order and select the first candidate that matches. You can instead use impact-based candidate selection to evaluate all matching candidates and select the one whose rating impact is most appropriate for a configured currency or noncurrency balance element.

Use impact-based candidate selection when the configured rate alone does not show the actual effect of rating. For example, candidate impacts can differ because rating consumes free units, crosses tiers, or produces multiple balance impacts. This feature applies only to charge selectors and generic selectors during ECE rating.

You configure the candidate selection mode and candidate selection balance element in PDC. See "Impact-Based Candidate Selection" in PDC Creating Product Offerings.

The following candidate selection modes are supported:

  • FIRST_MATCH: Selects the first matching candidate in configured order. This is the default.

  • MIN_IMPACT: Evaluates all matching candidates and selects the candidate with the lowest signed immediate impact to the configured balance element.

  • MAX_IMPACT: Evaluates all matching candidates and selects the candidate with the highest signed immediate impact to the configured balance element.

Existing selectors that do not specify CandidateSelectionMode continue to use FIRST_MATCH. Existing generic selectors that do not specify candidate-selection fields continue to use the first matching result branch.

If you use a DSL selector extension, see "Customizing a DSL Selector Extension for Impact-Based Selection" in ECE Implementing Charging.

Selecting Candidates Across Rating Periods

For MIN_IMPACT and MAX_IMPACT, ECE uses the same rating scope for candidate evaluation and final rating. With total-period rating, ECE evaluates each candidate across the full usage period, including a period that crosses a time-of-day tariff boundary. With split-cut rating, ECE evaluates candidates separately for each rating cut. As a result, different cuts can select different candidates when the rate, tier, or balance impact changes.

For example, an event runs from 09:55 to 10:05 and the tariff changes at 10:00. Candidate A produces impacts of -0.20 and -0.80, totaling -1.00. Candidate B produces impacts of -0.40 and -0.10, totaling -0.50. With total-period rating and MIN_IMPACT, Candidate A is selected because -1.00 is lower than -0.50. If ECE splits the event at 10:00, Candidate B can be selected for the first cut and Candidate A for the second cut.

ECE uses that same scope when it simulates and compares candidates, selects a candidate, reevaluates the selected branch, and applies the final charge.

Selecting a Charge Selector Candidate

For MIN_IMPACT and MAX_IMPACT, ECE evaluates all matching charge selector rules in configured order. It evaluates each candidate separately without updating subscriber balances.

ECE creates an overlap group when two or more matching candidates can rate the same portion of a request for the same purchased offering, customer, and balance scope. Candidates in different purchased offerings do not compete because they belong to different overlap groups. Within each group, ECE compares the qualifying candidates, retains one winner, removes the other candidates from that group, reevaluates the applicable RUMs for the winner, and then performs final rating. Candidates outside an overlap group continue through normal rating.

A candidate qualifies only when at least one of its rate plans declares an impact to CandidateSelectionBalanceElementCode and the candidate produces an immediate impact to that balance element during evaluation. If no candidate in an overlap group qualifies, the request follows the existing runtime failure path. ECE does not select a default candidate, return a zero-rate result, or apply a charge selector-specific fallback.

When charge selector candidates produce the same comparable impact, a fully rated candidate is selected over a partially rated candidate. If the tie remains, the candidate associated with the earlier matching charge selector rule is selected.

Selecting a Generic Selector Candidate

Impact-based candidate selection for a generic selector occurs within a single Charge Rate Plan and does not create offer-level overlap groups. For MIN_IMPACT and MAX_IMPACT, ECE evaluates each matching results branch separately and compares its immediate impact to CandidateSelectionBalanceElementCode.

Before comparison, ECE adds all fixed and scaled immediate impacts to the configured balance element. If a matching branch does not produce an impact to that balance element, ECE uses an impact of 0. Impacts to other balance elements do not affect selection, but they still apply if ECE selects the branch. When a request uses multiple RUM paths, ECE performs selection separately within each applicable generic selector path.

After selecting a branch, ECE reevaluates only the selected branch using the original rating input and then continues with normal rating. The comparison does not update subscriber balances. If multiple branches have the same comparable impact, ECE selects the first matching results branch. If no branch matches, the Charge Rate Plan follows the existing no-applicable-rating path. Impact-based candidate selection does not add a default branch or zero-rate fallback.