8 Configuring Charges in Charge Offers

Learn how to configure charges in your Oracle Communications Billing and Revenue Management (BRM) charge offers.

Topics in this document:

About Charges

Each charge in a charge offer has a charge category and a charge type. The charge category determines which events the charge can be configured for:

  • Usage events: Charges for the use of a service, such as telephone calls or broadband sessions.

  • Recurring events: Ongoing charges that are not generated or affected by usage, such as a monthly subscription fee.

  • One-time events: Nonrecurring charges, such as setup or cancellation fees.

  • Rollover events: Charges that extend the validity of unused balances to succeeding cycles. For example, included minutes are often rolled over.

  • Fold events: Charges used to zero-out a balance or convert one balance into another. For example, you could configure a fold charge to zero-out unused included hours at the end of each month or convert frequent flyer miles to a dollar amount. Fold charges must be associated with an existing charge selector whose event matches the fold event (see "About Selectors").

The charge type depends on the charge category. For example:

  • If the charge category is Recurring, the charge type could be monthly or yearly.

  • If the charge category is Usage, the charge type could be voice usage or data download.

In addition to the charge category and charge type, you define the following:

Specifying When a Charge is Effective

You can apply a date range to a charge; for example, set a fixed start date and an end date; or specify a date range relative to when the charge offer was purchased. If you include multiple charges in a charge offer, you can configure multiple date ranges for each charge.

If you want to apply the same charge with multiple variations applied in different date ranges, you can use multiple date ranges in a single charge. You can use different pricing for each date range. For example, you could create a charge that charges $10 for the first date range, and $30 for the second date range.

BRM supports the following types of charge date ranges:

  • Fixed: Specifies a period that starts and ends on particular dates. For example:

    • Immediately through 6/1/2012

    • 6/1/2012 through 1/1/2013

    • 1/1/2013 through never ends

    Fixed date ranges cannot overlap.

  • Relative: Begins at a time relative to the time the charge is purchased and continues for a specified length of time, such as days, hours, minutes, or seconds. The purchase date is the day the charge offer is added to the account. Unlike fixed date ranges, relative date ranges can overlap.

Note:

In addition to specifying date ranges for charges, you can specify date ranges for the balance impacts in a charge. See "Configuring Effective Dates for Pricing" for information.

Specifying Whether to Charge Inactive, Canceled, or SuspendedActive Accounts

By default, PDC applies charges to only active accounts with an active service. However, you can configure PDC to also apply charges to accounts with:

  • An Inactive status.

  • A Cancelled status.

  • A SuspendedActive custom life cycle state. This option is valid only if your system includes a custom life cycle state named SuspendedActive.

Note:

These settings affect the rerating process. If you specify to not charge accounts with an Inactive, Cancelled, or SuspendedActive status, charges are not applied to those accounts during the rerating process. If you specify to charge accounts with an Inactive, Cancelled, or SuspendedActive status, charges are applied to only Active accounts during the rerating process.

To configure BRM to apply charges to Inactive, Cancelled, or SuspendedActive accounts:

  1. Enable the ApplyChargeOnInactiveOrCancelledProduct business parameter by doing the following:

    1. Go to BRM_home/sys/data/config.

    2. Create an XML file from the /config/business_params object:

      pin_bus_params -r BusParamsSubscription bus_params_subscription.xml 
    3. In the file, set <ApplyChargeOnInactiveOrCancelProduct> to enabled:

      <ApplyChargeOnInactiveOrCancelProduct>enabled</ApplyChargeOnInactiveOrCancelProduct>
    4. Save the file as bus_params_subscription.xml.

    5. Load the XML file into the BRM database:

      pin_bus_params bus_params_subscription.xml
    6. Stop and restart the CM.

  2. Create a custom life cycle state named SuspendedActive. See "Creating Custom Service Life Cycles" in BRM Managing Customers.

  3. When you create a charge, specify whether the charge should be applied to accounts with an Inactive status, Cancelled status, or SuspendedActive state. To do so, use one of the following:

    • PDC.

      When adding a charge, set the Stop Charging list in the Create Charge dialog box. For more information, see "Adding a New Charge" in PDC Online Help.

    • The ImportExportPricing utility.

      For each charge defined in your import XML file, set the <validIfCancelled>, <validIfInactive>, or <validIfSuspendedActive> element to true to not apply charges or to false to apply charges. For example, the following specifies to not apply charges to accounts with a Cancelled status and to apply charges to accounts with an Inactive status or a SuspendedActive state:

      <chargeOffering xmlns:pdc="http://xmlns.oracle.com/communications/platform/model/pricing" externalID="externalID">      
         <name>co1</name>      
         <internalId>4ae7317b-ba27-49f1-aa45-ab00710b417a</internalId>      
         <pricingProfileName>Product Offering</pricingProfileName>
         ...   
         <chargeEventMap>
            <eventName>EventBillingCycleDiscount</eventName>         
            <validIfCancelled>true</validIfCancelled>         
            <validIfInactive>false</validIfInactive>         
            <validIfSuspendedActive>false</validIfSuspendedActive>         
            ...   
         </chargeEventMap>   
      </chargeOffering>

      For more information, see "Importing and Exporting Pricing and Setup Components".

Configuring Taxation in Charges

You can specify when and how to calculate taxes for each charge in a charge offer. In each charge, you set the following:

  • When to apply taxes:
    • Event time: Taxes are calculated when the event is rated and then added to the customer's account balance. This way, you always have an accurate reading of a customer's account balance at any time in the accounting cycle.
    • Billing time: Taxes are applied to the charge when the customer's bill is generated. Deferring tax calculation to the billing process reduces rounding errors because all events of the same type are calculated together. For example, taxes are calculated on the total amount of usage fees rather than on individual usage events.
    • Dynamically: Taxes are calculated at billing time using the tax rate at the time the event occurred. This provides the benefits of billing-time taxation while allowing you to change tax rates in the middle of a billing cycle. For example, assume a recurring charge's tax rate changes from 2% to 3% on May 15. If a billing cycle ends on May 30, BRM would use the 2% rate to calculate the charge's April 30 through May 14 taxes and the 3% rate to calculate the charge's May 15 through May 29 taxes.
    • None: Do not apply taxes.
  • How to apply taxes:

    • Using a specified tax code to calculate the tax amount.

    • Using a tax selector, which assigns a tax code based on account, service, event, and service attributes.

Note:

You need to define tax codes before you can assign them to charges. For information, see "Creating Tax Codes" in BRM Calculating Taxes.

You can configure the taxes to apply and when to calculate taxes by using the following:

  • The PDC UI. To do so, use the Taxation section of the Create Charge dialog box. See "Taxation Section" in PDC Online Help.
  • The ImportExportPricing utility. To do so, in your input XML file, set the <taxTime> and <taxCode> elements under the <ChargeRatePlan> element. See "Setting Taxation for Charges".

Configuring In-Advance Billing in Charges

In-advance billing enables you to charge customers in advance in the first bill. For each charge, you can configure how far in advance to bill the customer. For example, if a customer purchases an offer on May 1 and the offer's $10 monthly fee is billed three months in advance, the total charge in the customer's first bill is $30. The total charge in the next (June) bill is $10, but from an accounting perspective, the $10 fee applies to August, not to June.

Configuring Cycle Alignment for Recurring Charges

Recurring charges are based on BRM system events that occur on cycles. You can apply recurring charges in the following ways:

  • On the charge offer purchase date. For example, if the billing date is the 1st of the month and the charge offer is purchased on January 10, the charge is applied on the 10th of every month (for the interval January 10 to February 10, February 10 to March 10, and so on).

  • On the customer's current billing date (default). Using the previous example, the charge is prorated and applied on January 10 for the interval January 10 to February 1. For subsequent cycles, the charge is applied on the billing date (for the interval February 1 to March 1, March 1 to April 1, and so on).

About Prorating Recurring Charges and Rollovers

By default, PDC prorates any recurring charges and rollover amounts when customers do the following in the middle of their billing cycle:

  • Purchase charge offers

  • Cancel charge offers

  • Change their billing day of month (DOM)

For example, if a customer cancels a subscription 15 days into a 30-day billing cycle, the customer is charged half of the cycle fee and receives half of the available rollover balance from the previous month.

However, you can configure PDC to apply the full charge or rollover amount, or to not apply a charge or rollover of any available balance in these cases. For example, assume a customer's billing day of month (DOM) is the 15th and on November 30 he purchases a subscription with a $30 monthly fee. If you configure PDC to charge the full amount, the full $30 monthly charge would be applied to the customer's December 15 bill. If you configure PDC to charge nothing, no monthly charge would be applied to the customer's December 15 bill.

You configure whether to prorate recurring charges and rollovers by using the following:

About Creating Charge Offers with Over 500 Charges

While creating large charge offers with 500 or more charges, PDC may generate the following error:

java.sql.SQLException: ORA-12899: value too large for column

To fix this, first try extending the VARCHAR2 data type to MAX_STRING_SIZE in your Oracle database. For more information, see "1.203 MAX_STRING_SIZE" in Oracle Database Reference.

Note:

If the size of your charge offer data exceeds MAX_STRING_SIZE, check with Oracle Support before completing this step.

If you still receive an error after extending the VARCHAR2 data type, do this:

  1. Go to the BRM_Integration_Pack_home/PDC_BRM/sqlscripts/custom_scripts directory, where BRM_Integration_Pack_home is the directory in which BRM Integration Pack is installed.

  2. Do one of the following depending on the exception you receive:

    • For the following exception:

      SEVERE: Error inserting data in crossref table for BRE rateplan java.sql.SQLException: ORA-12899: 
      value too large for column "XREF_BRE_RATEPLAN"."COMPOSITE_PM_IDS" (actual: 22015, maximum: 4000)

      In SQL*Plus, connect to your PDC database as the Xref user and then run the UpdateXrefBreCompositePMIDsCol.sql SQL script:

      sqlplus XrefUser@database_alias
      Enter password: password
      
      SQL> @UpdateXrefBreCompositePMIDsCol.sql

      where:

      • XrefUser is the login name for the Xref schema user.

      • database_alias is the PDC database alias.

      • password is the password for XrefUser.

    • For the following exception:

      SEVERE: Error inserting data in pdc table java.sql.SQLException: ORA-12899: value too large for column 
      "BCSIMPLEATTRIBUTEITEM"."PERMITTEDVALUES" (actual: 22015, maximum: 4000)

      In SQL*Plus, connect to your PDC database as the PDC user and then run the UpdateSimpleAttrItemPermittedValuesCol.sql SQL script:

      sqlplus pdcUser@database_alias
      Enter password: password
      
      SQL> @UpdateSimpleAttrItemPermittedValuesCol.sql

      where:

      • pdcUser is the login name for the PDC schema user.

      • database_alias is the PDC database alias.

      • password is the password for pdcUser.

  3. Enter exit to quit SQL*Plus.

  4. If the script runs successfully, restart the WebLogic Server, real-time rating engine (RRE), and batch rating engine (BRE).