Amount Split Bundle

The functionality that makes split billing possible is the Amount Split bundle. It analyzes the rating result (Invoice Detail Lines) and manipulates and splits them according to the bundle's configuration.

Code

Code of the Bundle as seen in the GUI.

AMOUNT-SPLIT

Description

Short description of the Bundle, e.g. what does it aim at.

This bundle has the capacity of discounting all invoice detail lines or subscription fee lines (that apply to the bundle), until the limit defined in VALUE1 is reached. It includes a few different ways to discount as well. 
The bundle can also change the billing group on the detail lines inside the bundle to an external billing group defined on subscription campaign parameters.

Business scenario

See examples

Applies to

Types of traffic (plan elements) that the bundle should be associated with.

No limitations

Core info

Is this bundle available in Core? If yes, specify which version.

Available only in the Rator-bundles project (from the very first version).

Values

The meaning and use of the values of this bundle are as follows:

Value1

The maximum limit of usage inside the bundle. A Value1 of zero means unlimited

Value2

The current usage spent

Value3

Used by PercentageDecreaseDiscountLineValueStrategy

Value4

Not used

Logic

The bundle starts by forwarding the rating in order to get invoice detail lines or subscription fee lines (mentioned as "detail lines" from here on) returned. Afterwards, it processes the result of the actual rating. Value2 is incremented, until it reaches Value1. The value processed is the total monetary amount of the detail lines returned by the rating, with respect to the configured detail line calculation strategy.

Please note

Give the bundle a high priority (low number) as other bundles should likely be used before this one

Strategies

The Amount Split Bundle implements different strategies for its  three main functionalities:

Main strategy

Key

Description

Discounting

DISCOUNT_STRATEGY

Defines how a discount should be processed

Calculate Remaining Units 

REMAINING_UNITS_STRATEGY

Defines how a bundle's remaining units should be calculated

Billing group retrieval

BG_RETRIEVAL_STRATEGY

Defines how the bundle should find and retrieve an external billing group

Value of detail linesCALCULATE_IDL_VALUE_STRATEGYDefines how the value of detail lines is calculated

All strategy types are defined using the bundle parameters as used by many other bundle types (i.e. DISCOUNT_STRATEGY=CREATE_NEGATED_LINE). The current implementations of the main strategies are:

Main strategy

Strategy name

Name

Default

Description

Discounting

Zero rate discount line

DecreaseDiscountLineValueStrategy
or 
DECREASE_AMOUNT

Yes

Discounts the detail line by decreasing the total value of the detail line. If the entire detail line is inside the bundle the detail line will be zero rated.

Discounting

Create negated discount line

CreateNegatedDiscountLineStrategy
or 
CREATE_NEGATED_LINE

 

Discounts by creating a copy of the discounted detail line with an opposite sign and adding it to the rating result.

Two optional arguments are provided: serviceCode and priceCode.
If any argument is not present, the charge item for the discount line is the same as discounted detail line.
If both arguments are present, the charge item for the discount line is looked up in the number plan identified by serviceCode and plan element identified by priceCode. The rate plan used for number plan identification is given by the billing context.

Discounting Create customized negated discount lineWorkflowEnabledNegateDiscountLineStrategy 

Discounts by creating a customized detail line, where amount to be discounted is set.

The customized detail line is returned from workflow invoked by the hookpoint having static key "BUNDLE.STRATEGY.DISCOUNT.NEGATE".

DiscountingPercentage Discount StrategyPercentageDecreaseDiscountLineValueStrategy
 Discounts the detail line by decreasing the total value of the detail line by the discount percentage defined in Value3.

Calculate Remaining Units

Get current subscription bundle value

GET_CURRENT_VALUE

Yes

Subtracts the maximum value (usually VALUE1) with the current units (usually VALUE2).

Calculate Remaining Units

Compare with BillingGroup balance

COMPARE_BILLING_GROUP_BALANCE 

 

Executes the logic in "GET_CURRENT_VALUE"-strategy and compares it with the current BillingGroup's balance in the BillingContext. The smaller of the two will be used.

Note: If a billing group retrieval strategy is defined, that billing group will be used in the BillingContext.

Billing group retrieval

Get BillingGroup from billing context

BILLING_CONTEXT

Yes

As the billing context is generated using the current subscription/service's billing group using this strategy is the same as not forwarding the detail lines to an external billing group

Billing group retrieval

Get BillingGroup from subscription campaign parameter

SUBSCRIPTION_CAMPAIGN_PARAMETER

 

Use this strategy if the bundle should bill everything inside the bundle to a different billing group. The billing group's ID should be set on a subscription campaign parameter named SPLIT_BILLING_BG_ID

Value of detail linesTotal for billing groupCalculateDetailLinesValueForBillingGroupYesThe value of detail lines are calculated as a sum of total excl VAT and total VAT for the billing group in billing context (might be different for "normal" billing group if detail lines have been created for other billing group).
Value of detail linesTotal as percentageCalculateDetailLinesValueByPercentage The value of detail lines are calculated as a sum of total excl VAT and total VAT, regardless of billing group. The returned value is the configured percentage of the value of detail lines.

 

Parameters

The parameters available for the Amount Split Bundle are described in the Strategies section.

Examples

Company Paid Usage

Scenario: A company would like to pay the first DKK 200 of an employee's national voice usage. Any usage inside the bundle should generate three detail lines for the employee:

  • a negative detail line
  • a positive detail line, and
  • a negative detail line billed to the company's billing group.

This requires configuring an Amount Split Bundle to react on the national voice number plan. Value1 would be set to 200 and the parameters should be:

  • Bundle parameters: DISCOUNT_STRATEGY=CREATE_NEGATED_LINE;BG_RETRIEVAL_STRATEGY=SUBSCRIPTION_CAMPAIGN_PARAMETER 
  • Subscription campaign parameters: SPLIT_BILLING_BG_ID=[the ID of the company's billing group] 

Discount Bundle

Scenario: A bundle is required that discounts all detail lines inside the bundle, until DKK 100 is reached. It discounts by zero-rating the usage inside the bundle and decreases the total value of the splitting detail line.

Create an Amount Split Bundle and configure it to react on the desired plan elements. Set Value1 to 100. No bundle parameters are necessary as the desired strategies are already selected by default.

Discount Until Balance is 0

Scenario: A billing group should pay for usage, until no more money is left. The balance must not fall below zero.

Create an Amount Split Bundle and configure it to react on the desired plan elements. Set Value1 to 0 (for unlimited usage). The following parameters should be applied to the bundle.

Bundle parameters: BG_RETRIEVAL_STRATEGY=SUBSCRIPTION_CAMPAIGN_PARAMETER;REMAINING_UNITS_STRATEGY=COMPARE_BILLING_GROUP_BALANCE;

The bundle will charge the external billing group, until the balance reaches zero.