Apply Billing Discount(s)

Application of Billing Discounts

Billing discounts are applied on multiple levels within the billing process, including:

  • Subscription: Discounts are applied at the Subscription level, allowing for the customization of discounts based on the specific Subscription.

  • Subscriber: Discounts can be applied at the Subscriber level, enabling the application of discounts across multiple Subscriptions associated with the same Subscriber.

  • Account: Discounts can be applied at the Account level, providing a broader scope for discount application across all Subscriptions and Subscribers associated with the Account.

  • Invoice: Discounts can be applied at the Invoice level, allowing for the application of discounts on the final invoice amount.

Discount Application Sequence

The application of discounts follows a specific sequence to ensure accurate and consistent billing calculations. The sequence includes:

  • Priority-Based Implementation: Discounts are applied based on their designated Priority level. This ensures that higher-priority discounts take precedence over others in cases where multiple discounts might be applicable.

  • Order of Application: If there are multiple discounts sharing the same Priority, a hierarchical order of implementation is followed. The system applies the earliest registered discounts before proceeding to the ones that were added at a later stage. This systematic order guarantees consistency and fairness in discount application.

Applicable Amount for Discounts

The applicable amount for discount is aggregated on all events belonging to the same entity by calculating the aggregation key from the following event attributes:

  • Customer: Ref ID of the Customer.

  • Account: Ref ID of the Account.

  • Subscriber: Ref ID of the Subscriber. Not populated when Discount is applied at the Account level.

  • Usage Type: Ref ID of the Usage Type.

  • Charge Type: Type of the Charge. Could be either 'Debit' or 'Credit'.

  • Charging Class: Ref ID of the Charging Class.

  • Offer: Ref ID of the Offer.

  • GL Code: Ref ID of the GL Code.

  • GL Code Tax: Ref ID of the GL Code for Tax.

  • Tax: Ref ID of the Tax.

  • Tax Value: Ref ID of the Tax Value.

  • Currency: Ref ID of the Currency.

  • Units Of Measurement: Units of Measurement.

Following event attributes are aggregated and calculated for the applicable amount for discount:

  • Event Invoiced Price: The price of the event which is invoiced.

  • Event Invoiced Price Net: The net price of the event which is invoiced.

  • Event Invoiced Price Tax: The tax amount of the event which is invoiced.

  • Event Total Price: The total price of the event.

  • Event Total Price Net: The net total price of the event.

  • Event Total Price Tax: The tax amount of the total price of the event.

  • Event Count: The number of event. 1 for non-aggregated events.

  • Volume: The volume of the event as in the Charging Request.

  • Event Total Volume: The total volume of the event after Charging completed.

  • Rated Total Volume: The total volume of the event after Rating completed.

  • Event Catalogue Price: The catalogue price of the event. Normalized to the smallest unit of measurement.

  • Event Catalogue Price Net: The net catalogue price of the event. Normalized to the smallest unit of measurement.

Attribute Units of Measurement is normalized to the "smallest" unit of measurement. For example, if the unit of measurement is "GB" (GigaByte), it will be normalized to "B" (Byte), if the unit of measurement is "MINUTE" (Minute), it will be normalized to "SECOND" (Second), etc.

Aggregated attributes Event Catalogue Price and Event Catalogue Price Net are normalized to the smallest unit of measurement. E.g. if the unit of measurement is "Min" (Minute) and Event Catalogue Price is set to 1,20 EUR per Minute, it will be normalized to 0,02 EUR per Second.

Units of measurement like "EVENT" (Event), "PCS" (Pieces), "MONEY" (Money), "UNIT" (Unit), "PERCENT" (PerCent) and "PERMILLE" (PerMille) are excluded from normalization and they remain as they are.

Within the aggregation algorithm, check for compatibility of Units of Measurement is performed. Each event must have a compatible type of Units of Measurement (e.g., "SEC", "MINUTE", "HOUR"; or "B", "KB", "MB", etc.). If the Units of Measurement (UoM) of all events within the same aggregation are not compatible, the aggregation of the Event Catalogue Price and Event Catalogue Price Net attributes will not be performed. In that case, Discount calculated from the "Catalogue Price" will not be calculated and instead will be calculated from Event Invoiced Price and Event Invoiced Price Net attributes. This may lead to a different result than expected and hence it is important to ensure that Discount is properly configured mainly in terms of Applicable Charging Classes.