15 About Bill Suppression

Learn how to implement bill suppression in Oracle Communications Billing and Revenue Management (BRM), which allows you to postpone finalizing a bill until the end of a future billing cycle.

Topics in this document:

About Suppressing Bills

BRM finalizes a bill at the end of each billing cycle. When a bill is finalized, the status of its bill items is changed from pending to open so that they stop accumulating charges and so that payments can be applied to them. In addition, a due date is added to the bill. A new bill is created to handle bill items for the next billing cycle.

Bill suppression, however, enables you to postpone finalizing a bill until the end of a future billing cycle. When a bill is suppressed, it is extended to include bill items for the next cycle, and the bill continues to accumulate charges until the end of that cycle.

Note:

Charges accrued during all cycles in which a bill is suppressed do not age, get invoiced, go into collections, or have a due date set for them until suppression ends and the bill is finalized.

You use bill suppression to avoid sending out unnecessary bills and incurring wasteful expenses. For example, if the cost to create and mail a bill is greater than the balance due, you can suppress the bill until its balance due is greater than its production costs.

Bills can be suppressed in several ways. See these topics:

All types of bill suppression can be overridden by exceptions. See "Exceptions to Bill Suppression".

About Automatic Bill Suppression

At the end of a billing cycle, BRM can automatically suppress bills whose balance is less than a user-specified minimum required to finalize a bill. Such bills are suppressed for one billing cycle. If their balance is still below the minimum at the end of that cycle, they are suppressed for another billing cycle.

Note:

  • Bills with negative balances are not suppressed.

  • If both bill suppression and open item purging are enabled for a bill unit (/billinfo object), the bills for the bill unit are always suppressed because its bill total will always be 0. For more information about open item purging, see "Enabling Open Items to Be Purged" in BRM System Administrator's Guide.

If the number of consecutive billing cycles for which a bill is suppressed reaches your specified maximum number of cycles, the bill is generated even if its balance is still below the minimum. This ensures that an excessive amount of time does not pass between customer bills.

To implement automatic bill suppression, you specify minimum balance amounts and maximum cycle limits for each customer segment that includes accounts whose bills you want to suppress automatically. A customer segment's specifications apply to all the bill units in the accounts that belong to the segment.

For example, a customer segment for low-usage accounts with bad payment histories might have a bill-generation threshold of only $5 and a limit of only three consecutively suppressed cycles, whereas a customer segment for high-usage accounts with good payment histories might have a bill-generation threshold of $15 and a limit of six consecutively suppressed cycles.

Note:

If an account belongs to more than one customer segment, the lowest minimum balance and the lowest maximum cycle settings associated with the customer segments apply to the account. These settings can be from different customer segments.

For example, account X belongs to customer segments A and B. Segment A's minimum balance is $5 and its maximum cycle setting is 4. Segment B's minimum balance is $10 and its maximum cycle setting is 2. Thus, account X's minimum balance is $5 (from segment A) and its maximum cycle limit is 2 (from segment B).

For more information, see "Automatically Suppressing Bills".

About Manual Bill Suppression

Manual bill suppression enables you to suppress individual bills programmatically or through a custom user interface on a case-by-case basis.

For example, if you use automatic bill suppression, you can use manual bill suppression to suppress bills whose balance does not qualify for automatic suppression, as in this situation: Customer A's account belongs to customer segment X. The minimum balance required to finalize bills associated with accounts in customer segment X is $10. Midway through the current billing cycle, customer A's balance is $105, so his bill does not qualify for automatic bill suppression and will be finalized at the end of the billing cycle. Because customer A is having cash flow problems, however, he calls a customer service representative (CSR) and asks her to suppress his bill for two billing cycles. Using an interface that interacts with the manual bill suppression feature, she manually suppresses his bill for the requested number of cycles.

Note:

Unlike automatic bill suppression, the default manual bill suppression feature does not use customer segments.

For more information, see the chapter about billing in BRM Opcode Guide.

About Manual Account Suppression

Manual account suppression enables you to suppress accounts on request. With this feature, customers who will not be using their account for an extended period of time can retain all their services and connection IDs without accumulating any of the charges usually associated with their account.

Optionally, charges associated with one account-level bundle can accumulate during account suppression. You can use this bundle to handle any special fees you want to charge while an account is suppressed. For example:

  • Charge a purchase fee for suppressing an account.

  • Charge a low monthly cycle fee for retaining a suppressed account's services and connection IDs.

    Note:

    Unlike automatic bill suppression, account suppression does not use customer segments.

To prevent owner accounts from being suppressed, add the appropriate logic to the PCM_OP_BILL_POL_CHECK_SUPPRESSION policy opcode. For more information, see the chapter about billing in BRM Opcode Guide.

Suppressed Accounts versus Inactive Accounts

A suppressed account differs from an inactive account as shown in Table 15-1:

Table 15-1 Differences between Suppressed and Inactive Accounts

Condition Account Type Status

Is the account inactive?

Suppressed account

No.

Is the account inactive?

Inactive account

Yes.

Are the account's services inactive?

Suppressed account

Yes.

Are the account's services inactive?

Inactive account

Yes.

Are the account's bills finalized?

Suppressed account

No. Accrued charges do not age, get invoiced, or go into collections.

Are the account's bills finalized?

Inactive account

Yes. Charges accrued before the account is inactivated age, get invoiced, and go into collections.

Can new charges accrue in the account?

Suppressed account

Yes. Optionally, charges associated with one account-level bundle can accrue.

Can new charges accrue in the account?

Inactive account

No.

Does the status of the account's child accounts change?

Suppressed account

No. Bills for any nonpaying child bill units of the parent account's paying parent bill units are finalized. Their charges continue to accrue in the suppressed parent account's bill that is not yet finalized.

Does the status of the account's child accounts change?

Inactive account

Yes. All child accounts that have nonpaying bill units are inactivated.

Is charge sharing affected?

Inactive account

Yes. Charge sharing is suspended. Formerly sponsored charges accrue in member account bills while the owner account is inactive.

Is discount sharing affected?

Inactive account

Yes. Member account events impact member accounts' balances, not the inactive owner account's balance.

Is charge sharing affected?

Suppressed account

No. Member accounts' sponsored charges continue to accrue in the suppressed owner account's unfinalized bill.

Is discount sharing affected?

Suppressed account

No. Member account events continue to impact the balance of the suppressed discount sharing group owner's unfinalized bill.

Exceptions to Bill Suppression

All types of bill suppression can be overridden by exceptions. The default exceptions are listed in Table 15-2:

Table 15-2 Exceptions to Bill Suppression

Exception Description

Payment received

The receipt of a payment requires that a bill be finalized to record the payment against the bill.

By default, this exception is disabled. To enable it, see the chapter about billing in BRM Opcode Guide.

Adjustment or credit applied

If an adjustment or a credit is made to an account, the bill is finalized to notify the customer about the change in the balance.

Maximum consecutive cycle suppressions exceeded

The maximum number of consecutive billing cycles for which a bill can be suppressed is specified for the customer segment to which the bill's account belongs. See "Associating Bill Suppression Information with Customer Segments".

Note

  • If the maximum number of consecutive cycles for the customer segment is 0, the bill can never be suppressed.

  • If the maximum number of consecutive cycles for the customer segment is missing, the bill is not suppressed. It is considered as zero cycles.

First or last bill

An account's first and last bills are always finalized at the end of their billing cycles, even if their balance is below the minimum balance required to finalize bills.

Account closed

Bills associated with closed accounts cannot be suppressed.

To add or delete exceptions, see the chapter about billing in BRM Opcode Guide.

Note:

The Bill Now functionality and on-purchase billing for bundles and packages do not override bill suppression. Although they finalize a suppressed bill, they do not:

  • Reset the counter in the /billinfo object that tracks consecutively suppressed billing cycles (PIN_FLD_NUM_SUPPRESSED_CYCLES).

  • End manual bill or manual account suppression.

How Exceptions Affect Manual Bill and Account Suppression

Exceptions do not end manual bill or manual account suppression. Rather, they cause the PCM_OP_BILL_MAKE_BILL opcode to do the following:

  • Finalize the manually suppressed bill at the end of its current billing cycle.

  • Reset the counter in the /billinfo object that tracks the bill's consecutively suppressed billing cycles (PIN_FLD_NUM_SUPPRESSED_CYCLES) to 0.

  • Decrement the counter in the /billinfo object that tracks the bill's remaining manually suppressed cycles (PIN_FLD_SUPPRESSION_CYCLES_LEFT) by 1.

For example, a bill is manually suppressed for 10 billing cycles. At the end of the fifth cycle, however, it is finalized because of an exception. At that time, the bill's consecutively suppressed cycles counter is reset to 0, and its remaining manually suppressed cycles counter is decremented by 1. Because the latter counter was also decremented by 1 at the end of the four previous suppressed billing cycles, its value is now 5, which indicates that the bill should be suppressed for 5 more cycles.

Automatically Suppressing Bills

To implement manual bill suppression and manual account suppression, see BRM Opcode Guide.

To set up automatic bill suppression:

  1. Set up customer segments in your system and add accounts to them. See "Creating and Managing Customer Segments" in BRM Managing Customers.

    Note:

    Whether or not you set up customer segments, all accounts belong to customer segment 0. Thus, to implement automatic bill suppression without creating customer segments, perform step 2 for customer segment 0. The suppression specifications associated with customer segment 0 apply to all the accounts in your system.

  2. For each customer segment that includes accounts whose bills you want to suppress automatically, specify the following information:

    • Minimum balance required for a bill to be finalized.

    • Maximum number of consecutive billing cycles that a bill can be suppressed.

    See "Associating Bill Suppression Information with Customer Segments".

Editing the Bill Suppression Configuration File

In the BRM_home/sys/data/config/pin_bill_suppression.xml file, you specify the following information for each customer segment that includes accounts whose bills you want to suppress automatically:

  • Minimum balance required for a bill to be finalize.

  • Maximum number of consecutive billing cycles that a bill can be suppressed.

To edit this configuration file, open it in an XML editor or a text editor.

In the file, the CustomerSegmentArray parent element must contain a CustomerSegment child element for each customer segment to which you want to add bill suppression information. A CustomerSegment child element looks like this:

<CustomerSegment ID="int">
    <MinBillAmount>decimal</MinBillAmount>
    <MaxSuppressionCycles>int</MaxSuppressionCycles>
</CustomerSegment>

To specify bill suppression information for a customer segment, add a CustomerSegment child element to the CustomerSegmentArray parent element. In the child element, specify values for the items listed in Table 15-3:

Table 15-3 Customer Segment Bill Suppression Elements

XML Element or Attribute Description Possible Values

ID

The ID of the customer segment.

Customer segments are defined in an array in the /config/customer_segment object. The index of each array entry is the ID of a customer segment.

The IDs of the customer segments to which an account belongs are specified in the PIN_FLD_CUSTOMER_SEGMENT_LIST field of the /account object.

Any nonnegative integer.

Note:

  • Suppression data associated with nonexistent customer segment IDs is ignored until the IDs are defined in the /config/customer_segment object.

  • Customer segment ID 0 is the default customer segment. All accounts belong to this customer segment.

MinBillAmount

Minimum balance required to finalize a bill. If the balance is less than this amount, the bill is automatically suppressed.

Any positive number with two decimal places.

Note: Although balances are stored in account currency, this value is not converted to a particular currency. For example, if this value is 5.00, it represents 5 US dollars, 5 Australian dollars, 5 euros, and so on.

MaxSuppressionCycles

Maximum number of consecutive billing cycles for which a bill can be suppressed.

Any integer greater than 0.

Sample Bill Suppression Configuration File

The following is a sample pin_bill_suppression.xml file:

<?xml version="1.0" encoding="UTF-8"?>

<BusinessConfiguration
   xmlns="http://www.portal.com/schemas/BusinessConfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.portal.com/schemas/BusinessConfig business_configuration.xsd">
   
<!-- Sample file. Modify according to guidelines -->
   <BillSuppressionConfiguration>
      <CustomerSegmentList>
         <CustomerSegment ID="1001">
            <!-- Bad customer -->
            <MinBillAmount>5.55</MinBillAmount>
            <MaxSuppressionCycles>2</MaxSuppressionCycles>
         </CustomerSegment>
         <CustomerSegment ID="1002">
            <!-- Good customer -->
            <MinBillAmount>99.99</MinBillAmount>
            <MaxSuppressionCycles>5</MaxSuppressionCycles>
         </CustomerSegment>
      </CustomerSegmentList>
   </BillSuppressionConfiguration>

</BusinessConfiguration>
Validating Your Bill Suppression Configuration File Edits

After editing the contents of the XML file, you use the "load_pin_bill_suppression" utility to load the contents of the file into the /config/suppression object in the database. See "Associating Bill Suppression Information with Customer Segments".

Before loading the contents of the file, the utility validates the contents against the file's schema definition. If the contents do not conform to the schema definition, the load operation fails. The schema definition is in this file:

BRM_home/xsd/pin_bill_suppression.xsd

The XML file is not directly linked to its schema definition file. Instead, it is linked to the BRM_home/sys/data/config/business_configuration.xsd reference file.

Associating Bill Suppression Information with Customer Segments

To implement bill suppression, edit the bill suppression configuration file (pin_bill_suppression.xml) and then load its contents into the /config/suppression object in the BRM database.

  1. Open the pin_bill_suppression.xml file in an XML editor or a text editor.

    By default, the file is in the BRM_home/sys/data/config directory, where BRM_home is the directory where you installed BRM components.

  2. In the file, specify the following information for each customer segment that contains accounts whose bills you want to suppress:

    • Minimum balance required for a bill to be finalized.

    • Maximum number of consecutive billing cycles that a bill can be suppressed.

    See "Editing the Bill Suppression Configuration File".

  3. Save the file.

  4. Use the following command to run the "load_pin_bill_suppression" utility from the directory in which the pin_bill_suppression.xml file is located:

    load_pin_bill_suppression pin_bill_suppression.xml

    Note:

    When you run the utility, the pin_bill_suppression.xml and business_configuration.xsd files must be in the same directory. By default, both files are in BRM_home/sys/data/config. See "Validating Your Bill Suppression Configuration File Edits".

    If you do not run the utility from the directory in which pin_bill_suppression.xml is located, include the complete path to the file, for example:

    load_pin_bill_suppression BRM_home/sys/data/config/pin_bill_suppression.xml

    For more information, see "load_pin_bill_suppression".

  5. Stop and restart the Connection Manager (CM).

  6. To verify that the bill suppression information was loaded, display the /config/suppression object by using Object Browser or the robj command with the testnap utility.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information about reading an object and writing its contents to a file, see "Reading an Object and Writing Its Contents to a File" in BRM Developer's Guide.