Dynamic Attribute-based Matrix Pricing
Pricing for many industries require that pricing be calculated based on multiple inputs (multiple UIs, from / to country, value in excess of an allocated value, etc.) and in some cases that multiple charges or prices also be output from the Pricing Engine (e.g. a price for Mobile and a separate one for Landline call minutes).
Oracle CPQ 24B introduces the Pricing Matrix Templates module to support pricing that requires the Pricing Engine to use a custom dynamic matrix as the basis for calculating runtime prices. Pricing Matrix Templates can be used to price both one-time or recurring product prices and charges. Usage charges require a Rate Card since a specific unit price cannot be determined until later when actual usage metrics are available. Pricing Matrix Templates are used to define the specific metadata or columns that will be used to specify conditional pricing. After a Pricing Matrix Template has been defined, it can be selected as a Dynamic Pricing type when creating a charge. Conditional pricing can then be defined by using the pre-defined columns to specify the criteria for desired conditions.
The process for defining a dynamic attribute-based matrix pricing involves four steps:
- Define Lookups with valid values for any menu type attributes you will use in your dynamic pricing.
- Create a Pricing Matrix Template to define the specific metadata or columns you will use to define one or more dynamic pricing attributes (ex. market, industry) use Lookups to define the list of valid values.
- Select the Pricing Matrix Template as the Dynamic Pricing type for a product charge.
- Define the specific column values and the resulting per unit prices for each combination of these values.
The Pricing Matrix Templates page lists available Attribute-based Charge Templates and Rate Card Templates.
Note: The Rate Card Templates are now supported inside the Pricing Matrix Templates module and are no longer a stand-alone Pricing Portal module. Rate Card Template functionality has not been changed.
Each Attribute-based Charge Pricing Matrix Template can be used to define one or more Charges. Pricing administrators can perform the following tasks from this page:
- Navigate to Pricing Portal.
- Enter search criteria to filter Pricing Matrix Templates.
- Add a new Pricing Matrix Template (Attribute-based Charge or Rate Card) or manage columns.
- Sort Pricing Matrix Templates using the Name, Variable Name, Template Type, or Status column headers.
- Edit an existing Pricing Matrix Template by clicking on the Name link or selecting Edit from the line ellipsis drop-down.
- View linked Price Models or Rate Cards by clicking on the Linked Objects number.
- Edit or Delete an existing Pricing Matrix Template by clicking on the line ellipsis.
- Note: Pricing Matrix Templates with linked Price Models cannot be inactivated or deleted.
The Pricing Matrix Template page for an Attribute-based Charge type Template shows the basic details. It also lists the Input Columns and Output Columns that define the custom dynamic matrix. Pricing administrators can perform the following tasks from this page:
- Navigate to Pricing Matrix Templates list page.
- Navigate to Next or Previous Pricing Matrix Template in the Pricing Matrix Template list or filtered Pricing Matrix Template search results list.
- Modify the Basic Details for the Attribute-based Charge Template. If applicable, a Charge Definition Constraint can be specified in this section.
- Add, Reorder, or Manage Columns for the input column lines.
- Edit an existing input column by clicking on the Name link or selecting Edit from the line ellipsis drop-down.
- Edit or Delete an existing input column by clicking on the line ellipsis.
- Add Block Size/Price attributes, Add an Item Price Attribute, Reorder, or Manage Columns for output columns.
- Note: Both Block Size and Block Price attributes are added when Add Block Size/Price is selected. Correspondingly, if the Block Size attribute or the Block Price attribute is deleted, both of these interdependent attributes are also deleted.
- Edit an existing output column by clicking on the Name link or selecting Edit from the line ellipsis drop-down.
- Edit or Delete an existing output column by clicking on the line ellipsis.
To add dynamic matrix pricing to a Price Model Item charge, the pricing administrator begins by selecting a customer pre-defined Attribute-based Charge Pricing Matrix Template from the charge Dynamic Pricing drop-down.
After selecting the appropriate Pricing Matrix Template, the pricing administrator clicks the + icon to add a conditional row item to specify conditions and pricing.
- The column items are determined by the selected Pricing Matrix Template Input Column definitions. In the example below, the selected definitions are Sales Channel, Market, and Industry.
- The column menu items are defined by the Lookup item selected for the given column in the Pricing Matrix Template. For example, the Sales Channel column from the Supremo Dynamic Adjustment template is linked to a Pricing Lookup that provides the 'Direct' and 'Distributer' values.
- The item pricing is determined by the parent Price Model's list type and adjustment type (for discount and markup lists). For example, Item Markup % is defined by the parent Markup List type Price Model with a Percent adjustment type. If a customer implementation uses block pricing, Block Size and Block Price attributes can also be added.
Customers can now use dynamic pricing matrices to calculate pricing based on multiple inputs.
Steps to Enable
Add an Attribute-based Charge Pricing Matrix Template
Complete the following steps to create an Attribute-based Charge type Pricing Matrix Template in the CPQ Pricing Portal.
- Navigate to the Admin page.
- Click Pricing Portal in the Products section.
- Click on the Pricing Matrix Template card.
- Select Add from the Actions drop-down.
- Enter a name in the Name field.
- Enter the Variable Name.
- Select Attribute-based Charge from the Template Type drop-down.
- (optional) Enter a Description.
- Click Create.
- If required, add a Charge Definition Constraint.
- Click the Basic Details Edit button.
- Click on More Details.
- Click inside the Charge Definition Constraint field, and the select the applicable Charge Definitions.
- Click the Basic Details Update button.
- Add Pricing Matrix Template Input Columns
- Select Add from the Input Columns - Actions drop-down.
- Enter a Name for the input column.
- Enter the Variable Name for the input column.
- Select the Data Type.
- Select a Pricing Lookup from the Lookup drop-down.
- Note: This field is only available for string data types. Refer to Pricing Lookups for more information.
- Select the Operator function to use for the specified Pricing Attribute.
- Select the applicable Pricing Attribute.
- Note: You can enter text in the Pricing Attribute field to filter the Pricing Attributes list.
- (optional) Select or enter a Default Value.
- Check Default Value Overridable if the default value can be modified by a sales user.
- This option is only editable when a Default Value is specified.
- The default value cannot be specified for currency data types.
- Only True or False values can be selected for Boolean data types.
- When a Lookup is selected, you can select a default value from values defined in Pricing Lookups.j
- Check Required to make this field mandatory.
- Check Null as Wildcard to regard a Null value in the pricing matrix as a wildcard in matching the input condition.
- For example, a customer has the following discounts for T-shirt based on sizes and colors. (When the Size is large, the discount is 10% regardless of Color):
- Size: large, Color: red, Discount: 10%
- Size: large, Color: white, Discount: 10%
- Size: small, Color: red, Discount: 5%
- Size: small, Color: white, Discount: 15%
- When this option is enabled, the setup can be simplified by setting Color as Null instead of enumerating all color choices. (Size: large, Color: null, Discount: 10%)
- For example, a customer has the following discounts for T-shirt based on sizes and colors. (When the Size is large, the discount is 10% regardless of Color):
- (optional) Enter a Description.
- Click Create.
- Repeat Step 11 to create addtional input columns.
- If required, select Add Block Size/Price from the Output Columns - Actions drop-down to add block pricing output columns.
- Note: Both Block Size and Block Price attributes are added when Add Block Size/Price is selected. Correspondingly, if the Block Size attribute or the Block Price attribute is deleted, both of these interdependent attributes are also deleted.
Add Dynamic Attribute-based Matrix Pricing to a Price Model Item Charge
Complete the following steps to create dynamic matrix pricing for a Price Model Item Charge.
- Add product Charge in the CPQ Pricing Portal or from the Product Workbench.
- For detailed instructions refer to the applicable topic - procedure in the CPQ Administrator Online Help:
- Pricing > Pricing Portal > Price Models - Add a Charge in CPQ Pricing
- Configuration > Product Workbench – Add a Charge in Product Workbench
- For detailed instructions refer to the applicable topic - procedure in the CPQ Administrator Online Help:
- Select the desired Charge Definition, Price Type, and Charge Type options.
- If applicable, select or enter the Price Period, Usage UOM, Start Date, and End Date options.
- Complete the following steps to add dynamic matrix pricing to a charge item.
- Select the appropriate Attribute-based Charge Pricing Matrix Template from the Dynamic Pricing drop-down.
- If additional currencies are required in the pricing matrix complete the following steps.
- Click the 'book' icon.
- Check the applicable currencies.
- Click Apply.
- Click the + icon to add a conditional row item.
- Enter or select the conditional values for each column.
- Enter the applicable pricing.
- The item pricing is determined by the parent Price Model's list type and adjustment type (for discount and markup lists). For example, Item Markup % is defined by the parent Markup List type Price Model with a Percent adjustment type. If a customer implementation uses block pricing, Block Size and Block Price attributes can also be added.
- Click Create.
Tips And Considerations
- Rate Card Templates and columns are no longer supported in bulk service, but they continued to be supported in Migration. This is consistent with CPQ's direction to use migration for moving schema-type data.
- Pricing Matrices, including Rate Cards, are not supported in Migration.
- Fields not relevant to a specific row in the CSV file will be ignored. (e.g. Block Size, Block Price for a charge that is defined by a rate card or attribute-based matrix are ignored in the PART_PRICES.csv)
- Upload of pre-24B CSV files with the older rate card entity names will still be supported.
- Incremental migration for Pricing Matrix Templates is not supported when a matrix template column with the same variable name has been created independently in n-1 and n sites.