2 Creating Pricing Setup Components

Learn how to create the Oracle Communications Billing and Revenue Management (BRM) pricing setup components in Pricing Design Center (PDC).

Topics in this document:

About Setup Components

Setup components are the prerequisite data that you configure before creating product offerings. For example, before creating product offerings, you must configure the ratable usage metrics (RUMs) that define how to measure events.

Some setup components are defined in PDC, and some components are managed in BRM and need to be loaded into PDC.

The following setup components are defined in PDC. Any modifications to these components are also handled by PDC and are transformed into the BRM database and Oracle Communications Elastic Charging Engine (ECE).

  • Balance elements
  • Custom rules
  • Deliverables
  • Impact categories
  • Item type selector
  • Policy specifications
  • Profile attribute specifications
  • Ratable Usage Metrics (RUMs)
  • Service-event maps
  • Special day calendars
  • Tax codes
  • Tax exemption codes
  • Value maps
  • Zone models
  • Extended attribute templates

The following setup components are managed in the BRM server and ECE. Any modifications to these components are also handled by the BRM server and ECE and must be synchronized with PDC.

  • Account definition
  • Business profiles
  • Event definitions
  • General ledger (G/L) IDs
  • Provisioning tag names
  • Service definitions
  • Tax suppliers

Note:

Some of the pricing setup data is optional. You must configure the optional pricing setup data only if you plan to use the related feature or perform certain business functions. For example, you configure a zone model only if you use zoning to determine a price in your charge offer.

Configuring Setup Components

You configure the setup components in PDC by using the following applications:

Table 2-1 lists the setup components, the order in which you should configure the data, whether the setup component is required or optional, and the application you use to configure them.

Table 2-1 Setup Components and the Application You Use to Configure Them

Pricing Setup Data Required/Optional Application

RUMs

Required

PDC UI or ImportExportPricing utility

Service-event maps

Required

PDC UI or ImportExportPricing utility

Impact categories

Optional

PDC UI or ImportExportPricing utility

Zone models

Optional

PDC UI or ImportExportPricing utility

Special day calendars

Optional

PDC UI or ImportExportPricing utility

Services

Required

Defined in BRM and pushed to PDC by the SyncPDC utility

Modified in PDC by the ImportExportPricing utility

Events

Required

Defined in BRM and pushed to PDC by the SyncPDC utility

Modified in PDC by the ImportExportPricing utility

Profile attributes

Required

Defined in BRM and pushed to PDC by the SyncPDC utility

Modified in PDC by the ImportExportPricing utility

Account attributes

Required

Defined in BRM and pushed to PDC by the SyncPDC utility

Modified in PDC by the ImportExportPricing utility

Tax codes

Optional

PDC UI or ImportExportPricing utility.

Tax suppliers

Optional

Defined in BRM and pushed to PDC by the SyncPDC utility

Modified in PDC by the ImportExportPricing utility

Tax exemption codes

Optional

PDC UI or ImportExportPricing utility

G/L IDs

Required for some target engines

Defined in BRM and pushed to PDC by the SyncPDC utility

Modified in PDC by the ImportExportPricing utility

Deliverables

Required for deliverable-based revenue recognition

ImportExportPricing utility

Provisioning tag names

Optional

SyncPDC utility or ImportExportPricing utility

Balance elements

Required

PDC UI or ImportExportPricing utility

Value maps

Optional

ImportExportPricing utility

Custom analyzer rules

Optional

PDC UI or ImportExportPricing utility

Profile attribute specifications

Optional

ImportExportPricing utility

Item type selector

Required for ECE

PDC UI or ImportExportPricing utility

Business Profile

Required for BRM and ECE

SyncPDC utility

Policy Specifications

Optional

PDC UI or ImportExportPricing utility

Extended attribute templates Optional ImportExportPricing utility

Sample XML files for each setup component are in the PDC_home/apps/Samples/Examples directory, where PDC_home is the directory in which the PDC software is installed.

The Examples directory contains the following sample and ready-to-use files:

  • PDCSampleBE.xml: Contains all currency balance elements and some frequently used noncurrency balance elements. You can load this file to create balance elements to use when configuring pricing quickly.
  • PDCSampleRum.xml: Contains commonly used ratable usage metrics (RUMs). You can load this file to quickly create RUMs for creating a service-event map and configuring pricing.
  • OOB_ProfileSpecifications.xml: Contains profile attribute specifications referenced in the following custom rules: Friends&Family, SpecialDay, and ClosedUserGroup. This XML file references the names used in the provisioning tags provided by default with the BRM installation.

    Note:

    You must load the OOB_ProfileSpecifications.xml file before loading the OOB_CRs.xml file.

  • OOB_CRs.xml: Contains the custom rules: Friends&Family, SpecialDay, and ClosedUserGroup. You can use these custom rules in a generic selector when configuring a charge based on a subscriber's Friends & Family, Special Day, or Closed User Group profile.
  • Sample_ServiceCUG_ProfileSpecification.xml: Contains the profile attribute specification for configuring a service-level closed user group. See "Configuring Closed User Groups" for more information.
  • Sample_ServiceCUG_CR.xml: Contains the custom rule for configuring a service-level closed user group. See "Configuring Closed User Groups" for more information.
  • OOB_ItemTypeSelector.xml: Contains the default billing item assignments BRM supports without any additional configuration. You must load this file if you are using ECE. See "Loading the OOB_ItemTypeSelector.XML File" for more information.
  • Sample_ItemTypeSelector.xml: Contains the item type selector rules for defining separate bill items for international and national calls. You can use this as a template to quickly create the item type selector for tracking international calls and national calls separately. See "Configuring Item Type Selectors" for more information.
  • SampleDeliverable.xml: Contains sample deliverables. You can use this as a template to add and modify the elements as required. See "Configuring Deliverables" for more information.
  • SamplePolicyLabel.xml: Contains policy labels referenced in the policy specifications. You can use this as a template to add and modify the elements as required. See "Configuring Policy Specifications".
  • SamplePolicySpecification.xml: Contains policy specifications referenced in the charge offers and discount offers used for policy-driven charging. You can use this as a template to add and modify the elements as required. See "Configuring Policy Specifications".
  • Sample_ProductSpecCharacteristicTemplate.xml: Contains sample extended attribute configurations that can be used in charge offers, discount offers, chargeshare offers, bundles, and packages. You can use this as a template to add or modify extended attributes as required. See "Configuring Product Specification Attributes for Pricing Components".
  • Sample_Tax_Code.xml: Contains sample tax codes for both custom and Vertex tax calculation. You can use this as a template to add or modify tax codes. See "Creating Tax Codes Using ImportExportPricing (Patch Set 6 and Later)" in BRM Calculating Taxes.
  • Sample_Tax_Exemption_Code.xml: Contains sample tax exemptions. You can use this as a template to add or modify tax exemptions to be applied at the product level. See "Creating Product-Level Tax Exemption Codes Using ImportExportPricing (Patch Set 6 and Later)" in BRM Calculating Taxes.
  • SampleValueMap.xml: Contains sample value map event attributes. You can use this as a template to associate zone names with values to enable location-based charging. See "Location-Based Charging" in ECE Implementing Charging.

You can load the updated sample XML files into PDC using the ImportExportPricing utility. See "ImportExportPricing" for the utility's syntax and parameter descriptions.

Note:

The Examples directory also contains sample pricing profile files that are provided only for reference and for use as templates for creating custom pricing profiles. You should not load the sample pricing profile files after installing PDC.

Configuring Ratable Usage Metrics (RUMs)

RUMs are ways in which you can measure events. The most common RUMs are Duration and Volume.

Before you create product offerings, you must define the RUMs available for rating. You define RUMs when you create the service-event map. For each event, you specify the RUMs that can be used for rating it.

When you define RUMs, you define the following RUM attributes:

  • The unit of measurement. For example, to rate duration, you might specify seconds or minutes. To measure bytes, you might specify megabytes or kilobytes.

  • How to calculate the quantity. In PDC, use the RUM expression. For example, if you specify Minute as the unit of measurement, and you specify 1 as the expression, the duration is calculated in 1-minute increments.

    You can also perform calculations on fields in the event by using the following operators:

    • Add: +

    • Subtract: -

    • Multiply: *

    • Divide: /

  • How to round quantities:

    • Half Up: A fraction of .5 or greater is rounded up. For example, 1.5 is rounded to 2.

    • Half Down: A fraction of .5 or less is rounded down. For example, 1.5 is rounded to 1.

    • None

    • Round Up: Any fraction is always rounded up.

    • Round Down: Any fraction is always rounded down.

  • Type:

    • Whole: Select this type if the RUM cannot be split; for example, Occurrence.

    • Partial: Select this type if the RUM can be split; for example, Duration.

    • Conditional: Select this type to configure charges with conditional balance impacts.

You create RUMs by using one of the following:

  • The PDC UI. For more information, see "Creating a RUM Configuration" in PDC Online Help.

  • The ImportExportPricing utility. For information about creating RUMs using the utility and an XML file, see the sample RUM XML file (PDC_home/apps/Samples/Examples/PDCSampleRum.xml) and "ImportExportPricing".

Setting up Service and Event Definitions

BRM provides a preconfigured set of service and event definitions. When you run the SyncPDC utility, the preconfigured service and event definitions are stored in PDC. For the list of preconfigured events, see the BRM_home/sys/data/pricing/example/pin_event_map file, where BRM_home is the directory in which you installed BRM.

Note:

Before you run the SyncPDC utility for the first time, ensure that only those services and events that are relevant to your business are available in the pin_event_map file.

If you use ECE for usage rating, the preconfigured event definitions are automatically enriched with the required information for ECE when you run the SyncPDC utility. You can use these definitions for pricing and charging without any further enrichment. Enriching includes:

  • Adding user-defined charging attributes.

  • Defining charge operation types.

  • Mapping event attributes to the external network format.

For example, you add specific attributes that ECE uses to apply a session-based charge for a transaction.

You can also create your own service and event definitions:

  • To offer new services and events

  • To add additional attributes for provisioning, networking, charging, or billing

You can define the custom services and events in Developer Center and use the SyncPDC utility to synchronize the definitions with PDC. If you are defining a new service or event, ensure that you do the following:

  1. Create a subclass for the new service or event in Developer Center. See "Creating Service and Event Storable Classes" in BRM Developer's Guide for more information.

  2. Create a substructure in the event subclass; for example, USAGE_INFO, and add USER_IDENTITY and CALLED_ID fields in Developer Center. See "Substructure" and "Creating Custom Fields" in BRM Developer's Guide for more information.

  3. Map the event to the corresponding service by editing the pin_event_map file and then running the load_event_map utility.

  4. Synchronize the service and event definitions with PDC by running the SyncPDC utility. See "Synchronizing Pricing Setup Components" for more information.

    The service and event definitions are loaded into PDC.

  5. If you are using ECE for usage rating, enrich the event definitions with the information ECE requires for processing usage requests. See "Enabling Charging for Custom Events" for more information.

    The enriched event definition is published to ECE.

  6. If you are using ECE for usage rating and you want to use any service or account attributes for usage rating, ensure that only those service or account attributes are loaded into the ECE cache. See "Using Service and Account Attributes with ECE for Usage Rating" for more information.

Using Service and Account Attributes with ECE for Usage Rating

If you want to use any service or account attributes for ECE usage rating, ensure only those service or account attributes are loaded into the ECE cache by doing the following:

  1. Export the service or account definition into an XML file by running the following command:

    ImportExportPricing -export -metadata MetaDataObjectType -n "ObjectName"

    where:

    • MetaDataObjectType is the metadata object type, which can be EVENT_ATTRIBUTE_SPEC, PRODUCT_ATTRIBUTE_SPEC, PROFILE_ATTRIBUTE_SPEC, or CUSTOMER_ATTRIBUTE_SPEC. If you do not specify MetaDataObjectType, the utility exports all metadata components from the PDC database into the XML file.

    • ObjectName is the name of the service or account to export to the XML file.

    For example, this command would export the definition for TelcoGSM to the productattr_export_config.xml file:

    ImportExportPricing -export -metadata PRODUCT_ATTRIBUTE_SPEC -n "TelcoGSM"
  2. Open the XML file in a text editor.

  3. Search for the attributes you want to use for usage rating and add the following entries for each attribute:

    <attributeItemSupportedBy>
       <targetApplicationSpecName>Pricing</targetApplicationSpecName>
       <targetApplicationSpecName>Convergent Charging</targetApplicationSpecName>
    </attributeItemSupportedBy>
  4. Save and close the file.

  5. Import the XML file into PDC by running this command:

    ImportExportPricing -import -metadata FileOrDirectoryName -ow

    For example:

    ImportExportPricing -import -metadata productattr_export_config.xml -ow

    The utility loads the service or account definition into PDC.

ECE Pricing Updater publishes only the service or account attributes you want to use for usage rating to ECE. Only those attributes are loaded into the ECE cache.

Setting Up the Service-Event Map

Before you can create charge offers, you must set up a service-event map. The service-event map lists all the services to which charge offers can apply. For each service, the map specifies which events can have charges configured for that service. The map also specifies the RUMs to use for rating each event combination.

For events that do not apply to a specific service, you map those events to Account in the service-event map.

For example, in Figure 2-1, the events Cancel Fee, Cycle Fold, GSM Session, Monthly Recurring, and Monthly Recurring Arrear are mapped to the GSM service. The RUMs, Duration and Volume, are mapped to the GSM Session event.

Figure 2-1 Service-Event Map in PDC

Description of Figure 2-1 follows
Description of "Figure 2-1 Service-Event Map in PDC"

Configuring Balance Elements

Before you can create pricing components, you must use PDC to create balance elements. A balance element represents a:

  • Currency, such as US dollars or euros.

  • Noncurrency asset, such as minutes or gigabytes.

  • Counter, such as loyalty points or tokens. Counters are noncurrency assets that allow you to track balances, such as the amount spent or megabytes downloaded by a customer.

  • Temporary balance, such as minutes or gigabytes. Temporary balances are noncurrency assets that retain their balances while processing the discounts for one event. After all discounts for an event are completed, temporary balance elements are reset to 0.

When you configure pricing in a charge or a discount, you specify the balance elements that are debited or credited. For example, a charge of 1 dollar per minute for a phone call debits the USD balance element.

When you create balance elements, you define the following:

  • The balance element name, such as Canadian Dollar or Free Minutes.

  • The reference code for the balance element.

    For currency balance elements, the default reference code is used. For noncurrency balance elements, you must enter a unique reference code.

  • The balance element ID, such as 124. Currency balance element IDs are defined in an ISO standard.

  • The abbreviation or symbol used for display, such as $, Can$, or Minute.

  • For noncurrency balance elements, whether used as a counter or for temporarily tracking balances.

  • Whether the balance element can be used in a fold charge.

  • Whether to notify customers when their balance is about to expire.

  • The order in which to consume sub-balances. For example, if a customer's balance contains minutes with different validity periods, you specify which minutes to use first according to the starting or ending validity date. See "Specifying the Order in Which Sub-Balances Are Consumed".

  • The rounding rules. See "Adding Rounding Rules to Balance Elements".

You create balance elements by using one of the following:

  • The PDC UI. For more information, see "Creating Currency Balance Elements" in PDC Online Help.

  • The ImportExportPricing utility. For information about creating balance elements using the utility and an XML file, see the sample balance element XML file (PDC_home/apps/Samples/Examples/PDCSampleBE.xml) and "ImportExportPricing".

For information about how to add multiple currency balance elements for subscriber currencies under a single pricing tier, see "Enabling Single Currency Graph" for more information.

Adding Rounding Rules to Balance Elements

Rounding rules allow you to control the precision of charge calculations. PDC provides a set of default rounding rules, but you can add new rounding rules for specific events.

When adding a rounding rule, you define the following:

  • The processing stage in which to apply the rounding rule:

    • Accounts receivable (A/R)

    • Charging

    • Discounting

    • Taxation

  • The event category that the rounding rule applies to:

    • Billing-time discount

    • One-time

    • Recurring

    • Fold

    • Rollover

    • Usage

    • Remittance

  • The event that the rounding rule applies to. The applicable events are based on the event category. For example, Basic Usage is an option for the Usage event category.

  • If the selected event has child events, whether to use the rounding rule for both parent and child events.

  • How to round additional numbers beyond the precision value:

    • Up: For example, 10.151 rounds to 10.16.

    • Down: For example, 10.159 rounds to 10.15.

    • Down Alt: Performs the same rounding as Down, except that it compensates for possible loss of precision by first rounding with a mode of Nearest using a scale two digits greater than the scale you configure. See "About Rounding Modes That Correct for Loss of Precision".

    • Nearest: The last significant digit remains the same if the additional digit is 0 through 4. The last significant digit is rounded up if the additional digit is 5 through 9. For example, 10.144 rounds to 10.14, and 10.145 rounds to 10.15.

    • Even: If the additional digit is 0 through 4, the last significant digit remains the same. If the additional digit is 6 through 9, the last significant digit is rounded up. If the additional digit is 5, the last significant digit is rounded to the nearest even digit. For example, 10.155 rounds to 10.16, and 10.165 rounds to 10.16.

    • Floor: Rounds numbers toward a negative value (that is, the rounded number is always less than the unrounded number). This enables you to round balance impacts so that customers always benefit. For example, if the scale is 2, a credit to a customer of -7.999 is rounded to -8.00, and a debit of 7.999 is rounded to 7.99.

    • Floor Alt: Performs the same rounding as Floor, except that it compensates for possible loss of precision by first rounding with a mode of Nearest using a scale that is two digits greater than the scale you configure. See "About Rounding Modes That Correct for Loss of Precision".

  • The rounding precision. For example, to round US dollars to cents, specify a precision value of two places after the decimal point.

  • The minimum and maximum tolerance values and the tolerance percentage that determines how the rounding rule is applied to the balance element. For example, you can specify a tolerance of 4 digits after the decimal point.

For more information about rounding balance elements, see "Configuring Balance Impact Rounding".

Enabling Single Currency Graph

To enable a single currency graph:

Note:

A single currency graph can be used only with ECE.

  1. Go to the PDC_home/apps/bin directory.

  2. Export the pricing data by running the ImportExportPricing utility.

    For example, to export the data to a file named chargeoffer_export_pricing.xml, run the following command:

    ./ImportExportPricing -export chargeoffer -pricing
  3. In the chargeoffer_export_pricing.xml file, search for the balanceElementNumCode attribute. By default, only one currency code is available. You can add more currency codes.

    For example:

    -<subscriberCurrency>
      <currencyCode>USD</currencyCode>
      <currencyCode>EUR</currencyCode>
      -<applicableRum>
          <applicableRumName>Duration</applicableRumName>
          <minQuantity>1.0</minQuantity>
          <minQuantityUnit>NONE</minQuantityUnit>
          <incrementQuantity>1.0</incrementQuantity>
          <incrementQuantityUnit>NONE</incrementQuantityUnit>
          <roundingMode>NEAREST</roundingMode>
          -<crpRelDateRange>
             -<absoluteDateRange>
                 <startDate>0</startDate>
                 <endDate>inf</endDate>
             </absoluteDateRange>
            -<crpCompositePopModel>
                 <name>Pricing</name>
                 -<usageChargePopModel>
                   -<priceTier>
                       <distributionMethod>FROM_BAL_IMPACT</distributionMethod>
                       -<tierBasis>
                          <rumTierExpression/>
                        </tierBasis>
                        <enforceCreditLimit>false</enforceCreditLimit>
                        <rumName>Duration</rumName>
                        <currencyCode>USD</currencyCode>
                       -<priceTierValidityPeriod>
                           <lowerBound>0</lowerBound>
                           <validFrom>0</validFrom>
                   -<priceTierRange>
                      <upperBound>NO_MAX</upperBound>
                     -<scaledCharge>
                       <price>0.0</price>
                       <unitOfMeasure>NONE</unitOfMeasure>
                       <balanceElementNumCode>840</balanceElementNumCode>
                       <discountable>true</discountable>
                       <priceType>CONSUMPTION</priceType>
                       <incrementStep>1.0</incrementStep>
                       <incrementRounding>NONE</incrementRounding>
                      </scaledCharge>
                   </priceTierRange>
        </priceTierValidityPeriod>
    <applicableQuantity>ORIGINAL</applicableQuantity>
    </priceTier>
    </usageChargePopModel>
    </crpCompositePopModel>
    </crpRelDateRange>
    </applicableRum>
    </subscriberCurrency>
  4. Save the XML file as import_pricing.xml file.

  5. Import the import_pricing.xml file using the ImportExportPricing utility.

    For example:

    ./ImportExportPricing -import -pricing import_pricing.xml -ow
  6. Add, edit, or remove balance impacts for all the supported subscriber currencies.

About Offer Profiles

Offer profiles are made up of one or more policy labels, each of which defines a gradation in the quality of service (QoS) based on usage amounts.

For example, you can have an offer profile called Platinum for a data service and define its balance element as Megabytes Used. You can define a policy labeled Fair Usage, which has three levels, Low QoS, Medium QoS, and High QoS, with each level containing a usage range valid for that quality of service.