10Creating Discount Matrices

About Discount Matrices

In many industries, prices and price adjustments often depend on both the product that is being sold and other information relevant to the sale. Often, customer and market conditions affect the price for which a product is sold.

Discount matrices allow you to tailor prices and adjustments to specific customer and market segments. They allow you to create and manage prices and adjustments for products in conjunction with other customer and market factors. The discount matrix administrative framework allows pricing administrators to logically group factors that result in a price or adjustment, working in the Siebel client without changing the Siebel repository.

For example, a company that sells laptop computers can create a discount matrix that allows it to charge a different price for laptops based on customer account type and sales region. In this example, customer account type, product, and sales region are the criteria for the price or discount. Therefore, the columns of the matrix would be Product, Account Type, Sales Region, Adjustment Type, Adjustment Amount, and a few additional columns that will be covered later in this chapter. Each row of the matrix defines the price or discount that will be applied when a given product is sold to a given account type in a given sales region, as shown in the following table.

Product Account Type Sales Region Adjustment Type Adjustment Amount

Laptop 2000

Platinum

Europe

% Discount

10

Laptop 2000

Gold

Europe

% Discount

5

Laptop 2000

Platinum

Asia

% Discount

11

Laptop 2000

Gold

Asia

% Discount

6

Discount matrices allow you to maintain all of this critical pricing information in a single matrix, instead of dispersing it across numerous Siebel views.

Discount matrices are recommended in cases where:

  • There is a high volume of prices and adjustments.

  • The criteria for prices and adjustments are known ahead of time and do not change frequently.

Because prices and adjustments are frequently stored in disparate applications, discount matrices:

  • Support integration with SAP condition tables.

  • Can be loaded using Enterprise Integration Manager (EIM) or Enterprise Application Integration (EAI) integration objects.

  • Can be integrated with legacy applications using other XML-based integration technologies.

About Discount Matrix Dimensions

A discount matrix is a logical grouping of prices or adjustments that apply when specific combinations of criteria for prices or adjustments are met. For example, a discount matrix might contain all the adjustments for products when sold to specific account types, or all the adjustments for products when sold in specific regions.

Before you create discount matrices, you must determine the criteria for the prices or adjustments, based on your company's business model. After identifying criteria, you may begin creating the discount matrix. The criteria for the prices or adjustments will be the unique dimensions (or columns) of the discount matrix.

Along with the criteria dimensions, your discount matrix will include other dimensions. To continue the example, assume your company provides different discounts for each product based on the account type it is sold to and the region where it is sold. It would use the following dimensions:

  • Criteria Dimensions. These are the fields that uniquely identify the adjustment. In the example, these dimensions would be Product, Account Type, and Region. For each record, all of the criteria dimensions must be populated.

  • Calculation Dimensions. These fields allow administrators to enter various adjustments for the unique combinations of the discount criteria across various effective dates. These fields include Adjustment Type, Adjustment Amount, Currency Code, Effective Start Date, and Effective End Date.

  • Result Dimensions. These fields allow administrators to associate other information to the adjustment record that may be needed in the quote, order, or agreement later in the pricing procedure, or by back-end applications. These fields include Volume Discount Schedule, Attribute Adjustment Matrix, Pricing Procedure, Aggregate Discount, and Accounting Code.

The discount details list will include the criteria dimensions that were selected when you created the discount matrix, as well as the default calculation and result dimensions. Each set of dimensions is configurable and extensible.

About Discount Matrix Types

The following topics describes the three types of discount matrices, and the criteria, calculation, and result dimensions that are available for each type:

The fields that are available by default are the fields that are most commonly used with each type of adjustment. In case your business model demands different criteria dimensions, each set is configurable and extensible, as described in About Configuring Discount Matrices.

    Product-Based Adjustment Discount Matrices

    Product-Based Adjustment Discount Matrices allow administrators to define adjustments based on product, customer, and market information.

    By default, the administrator can choose from the following dimensions:

    • Criteria dimensions to identify product:

      • Product

      • Parent Product

      • Root Product

      • Product Line

      • Product Class

      • Price Type

    • Criteria dimensions to identify customer:

      • Account

      • Account Type

    • Criteria dimensions to identify market:

      • Region

      • Sales Organization

      • Division Code

      • Distribution Channel

    • Dimensions to identify transaction:

      • Action

      • Approval Status

    • Calculation dimensions:

      • Adjustment Type

      • Adjustment Amount

      • Currency Code

      • Effective Start Date

      • Effective End Date

    • Result dimensions:

      • Volume discount

      • Attribute Adjustment

      • Pricing Procedure

      • Aggregate Discount Sequence

      • Accounting Code

      Entitlement-Based Adjustment Discount Matrices

      Entitlement-Based Adjustment Discount Matrices allow administrators to define adjustments based on product, entitlement, and transactional information.

      By default, the administrator can choose from the following criteria dimensions:

      • Criteria dimensions to identify product:

        • Product

        • Parent Product

        • Root Product

        • Product Line

        • Price Type

      • Criteria dimensions to identify transaction:

        • Entitlement

        • Action

        • Qty from

        • Qty to

        • Reason Code

      • Calculation dimensions:

        • Adjustment Type

        • Adjustment Amount

        • Currency Code

        • Effective Start Date

        • Effective End Date

      • Result dimensions:

        • Volume discount

        • Attribute Adjustment

        • Pricing Procedure

        • Aggregate Discount Sequence

        • Accounting Code

        Training-Based Adjustment Discount Matrices

        Training-Based Adjustment Discount Matrices allow administrators to define adjustments based on account, transaction, and training event information.

        By default, the administrator can choose from the following dimensions:

        • Criteria dimensions to identify training:

          • Training Course

          • Event

          • Event Type

          • Event Location

          • Price Type

        • Criteria dimensions to identify customer:

          • Account

          • Contact

        • Criteria dimensions to identify transaction:

          • Action

          • Reason Code

          • Approval Status

        • Calculation dimensions:

          • Adjustment Type

          • Adjustment Amount

          • Currency Code

          • Effective Start Date

          • Effective End Date

        • Result dimensions:

          • Volume discount

          • Attribute Adjustment

          • Pricing Procedure

          • Aggregate Discount Sequence

          • Accounting Code

          Process of Creating a Discount Matrix

          To create a discount matrix, perform the following steps:

            Defining a Discount Matrix

            When you create a discount matrix, you specify what type of discount matrix it is, and which criteria dimensions will be shown in the Discount Details list applet.

            To define a discount matrix

            1. Navigate to the Administration - Pricing screen, then Discount Matrices View.

            2. Add a new record to the Discount Matrices list and complete the necessary fields, as described in the following table.

              Field Comments

              Name

              Enter a name for the discount matrix.

              Status

              This field displays the status of the discount matrix. When you click the Complete Definition button, the value changes from In Progress to Active. You cannot enter any discount details until the status is Active.

              Discount Matrix Type

              Select one of the discount matrix types. The options are as follows:

            3. In the Discount Criteria list, add records for all the criteria dimensions that you want exposed in the discount matrix.

              The criteria dimensions that you can add depend on the value selected in the Discount Matrix Type field in Step 2.

            4. After all the necessary criteria dimensions are added, click Complete Definition in the Discount Matrix list applet.

              Clicking this button freezes the definition of the discount matrix. After this step, you cannot change the discount matrix type or the criteria dimensions.

            5. In the Discount Matrix list, click the name of the new discount matrix.

              The Discount Details list appears. It includes the criteria dimensions that you selected in Step 3 and the default calculation and result dimensions.

              Entering Discount Matrix Details

              After a discount matrix has been defined, you enter details of each price adjustment in the matrix.

              You must make entries in all the criteria dimension columns that have been defined.

              Enter effective dates in the same way as price lists, as described in Giving a Product Multiple Prices with Different Effective Dates. If you create records with overlapping effective dates, then the product resolves the issues in the same way as price lists, as described in About Effective Dates for Pricing Line Items.

              When you enter Discount Detail records, enter a value in the Currency Code field if the Adjustment Type is Price Override, Discount Amount, or Markup Amount. By default, the Currency Code field value is the system currency.

              To enter details in a discount matrix

              1. Navigate to the Administration - Pricing screen, then Discount Matrices View.

              2. In the Discount Matrices list, click the name of the matrix to which you want to add details.

                The dimensions in the Discount Details list applet are as follows:

                • The criteria dimensions specified on the discount matrix

                • The default calculation dimensions

                • The default result dimensions

              3. In the Discount Details list, add a new record for each combination of criteria dimension values for which you want to define a price adjustment.

                In each record, you must enter values for all the criteria dimensions.

                Modifying the Pricing Procedure - Calculate Net Price Workflow to Include a Discount Matrix

                When you use a discount matrix, you must added an additional step to the workflow Pricing Procedure - Calculate Net Price to apply the discount matrix to the pricing. For more information about this workflow, see Pricing Procedure - Calculate Net Price Workflow.

                To modifying the Pricing Procedure - Calculate Net Price workflow to include a discount matrix

                1. In Web Tools, select the Pricing Procedure - Calculate Net Price workflow process. Revise and edit this workflow process.

                2. After the Tiered Volume Discount Upsell step, add a new business service step that queries the appropriate discount matrix business component for any discounts associated with each account type.

                  1. Define the step as shown in the following table.

                    Name Type Business Service Name Business Service Method

                    Account Type Adjustments

                    Business Service

                    Row Set Transformation Toolkit

                    Simple Look-Up Transform

                  2. Define the input arguments as shown in the following table.

                    Input Argument Type Value Property Name

                    Context

                    Process Property

                    Context

                    Row Set

                    Process Property

                    Row Set

                    Business Object

                    Literal

                    Adjustment Group

                    Business Component

                    Literal

                    Product-Based Adjustment

                    Process Condition

                    Literal

                    {Row.Product Id} IS NOT NULL AND {Context.Account Type} IS NOT NULL

                    Search Specification

                    Literal

                    [Adjustment Group Name] = 'Account Type Discount' AND [Account Type] = {Context.Account Type}

                    On First Match 1

                    Literal

                    {Row.Net Price} = AdjustPrice({Row.Net Price}, {Row.Currency Code}, LookupName("PRICER_CALCULATION_SIMPLE_TYPE",

                    {Match.Adjustment Type}), {Match.Adjustment Amount}, {Match.Currency Code}, {Row.Exchange Date})

                    On First Match 2

                    Literal

                    {Row}.{Net Price Waterfall} += New("Waterfall", [Adjustment Amount] = {Match.Adjustment Amount}, [Adjustment Type] = {Match.Adjustment Type}, [Price] = {Row.Net Price}, [Currency Code] = {Row.Currency Code}, [Text] = LookUpMessage ("Pricer - Account Type Discount",[Account Type] = {Match.Account Type} ,[Discount Matrix] = {Match.Adjustment Group Name}))

                  3. Define the output arguments as shown in the following table.

                    Output Argument Property Name Type

                    Context

                    Context

                    Output Argument

                    Row Set

                    Row Set

                    Output Argument

                3. Deploy the updated workflow process.

                  Discount Matrix Integration

                  You can populate discount matrices with data from other applications, load them using EIM, and systematically update them using EAI. They are designed for integration with SAP condition tables.

                    Loading and Updating Data from Other Applications

                    Siebel Enterprise Integration Manager (EIM) tables are available for each discount matrix table.

                    To initially load data from another application, use EIM. For more information, see Siebel Enterprise Integration Manager Administration Guide.

                    Integration objects are available for each discount matrix table to enable integration using EAI.

                    For systematic incremental updates, use EAI. For more information, see Overview: Siebel Enterprise Application Integration.

                      Integration with SAP Condition Tables

                      The following SAP-specific dimensions columns are available for the product-based and entitlement-based discount matrix types:

                      • Sales Organization Code

                      • Division Code

                      • Distribution Channel Code

                      The following SAP-specific fields are available in the Discount Matrix table (S_ADJ_GROUP):

                      • SAP Condition Type: SAP_COND_NAME

                      • SAP Condition Table: SAP_TABLE_NAME

                        About Configuring Discount Matrices

                        The criteria, calculation, and result dimensions that are available for each discount matrix type are the ones that are most commonly used for that type of adjustment. However, your business model may require you to use additional dimensions that are not available by default.

                        To make these additional dimensions available, you can configure the application with Web Tools. For more information about Web Tools, see Using Siebel Tools.

                        To make additional dimensions available, you must understand the tables used to store the discount matrix data, which are shown in the following schema.

                        The Discount Matrix Data Tables are described in the surrounding text.

                        Discount matrix fields are stored in the following tables:

                        • The Discount Matrix Name, Status, and Type are stored in the S_ADJ_GROUP table.

                        • The criteria dimensions that the administrator has selected for the discount matrix are stored in the S_ADJ_GRP_COL table.

                        • The discount details are stored in the following tables:

                          • S_STDPROD_PMTRX (if the discount matrix type is Product-Based Adjustment)

                          • S_STDENTL_PMTRX (if the discount matrix type is Entitlement-Based Adjustment)

                          • S_STDTRNG_PMTRX (if the discount matrix type is Training-Based Adjustment)

                        To extend the available criteria, calculation, or result dimensions, you may add columns to any or all of these tables.

                        The following topics include instructions for configuring discount matrices:

                          Adding New Dimensions to Existing Discount Matrix Types

                          Note: This topic includes instructions that assume you are familiar with Web Tools. For more information, see Using Siebel Tools. These instructions also assume that you have made the appropriate data model extensions to the appropriate discount details table.

                          You must use Web Tools to add new dimensions to existing discount matrix types.

                          To add new dimensions to existing discount matrix types using Web Tools

                          1. In Web Tools, open a workspace and then navigate to Object Explorer.

                            For more information on using the workspace dashboard, see Using Siebel Tools.

                          2. In the Object Explorer, select the Business Component Object.

                          3. Query to find the appropriate discount matrix Business Component (Product-Based Adjustment, Entitlement-Based Adjustment, or Training-Based Adjustment).

                          4. Add a new Business Component field based on the newly created extension column.

                          5. In the Object Explorer, select the Business Component User Prop object under the Business Component object.

                          6. Add the new field name to the appropriate user property.

                            Note: If the field will be used as a criteria dimension, then add it to the Dimension Columns user property. If the field will be used as a calculation or result dimension, then add it to the Default Columns user property. The appropriate syntax for the user properties is as follows: #FieldName#FieldName#FieldName#
                          7. In the Object Explorer, select the Applet object.

                          8. Query to find the appropriate discount details applet (Product-Based Adjustment list applet, Entitlement-Based Adjustment list applet, or Training-Based Adjustment list applet).

                          9. Create a new list column for the new field.

                          10. Bind the list column to the Edit List Web template.

                          11. Deliver the applet changes to the Siebel runtime repository.

                          If the new field was added as a criteria dimension, then it now appears as a selection in the discount criteria pick applet for the appropriate discount matrix type. If the new field was added as a calculation or result dimension, then it now appears in the Discount Details applet when the user drills down on a discount matrix with the appropriate discount matrix type.

                            Creating New Discount Matrix Types for Custom Tables

                            Note: This topic includes instructions that assume you are familiar with Web Tools. For more information, see Using Siebel Tools.

                            You must use Web Tools to create new discount matrix types for custom tables.

                            To create a new discount matrix based on a custom table using Web Tools

                            1. In Web Tools, open a workspace and then navigate to Object Explorer.

                              For more information on using the workspace dashboard, see Using Siebel Tools.

                            2. Create a Business Component based on the custom table.

                              For example create the Default Columns user property:

                              Name: Default Columns

                              Value: <buscomp field names separated by # sign>

                              This user property controls which columns always display in the Discount Matrix Details List applet for the new Discount Matrix Type.

                            3. Create the Dimension Columns user property:

                              Name: Dimension Columns

                              Value: <buscomp field names separated by # sign>

                              This user property controls which criteria dimensions will appear in the discount criteria pick applet for the new Discount Matrix Type.

                            4. Add the new matrix type to the Discount Matrix Type LOV:

                              Type: ADJ_GROUP_TYPE

                              Display Value: <the new matrix type>

                              LIC: <the new matrix type>

                            5. Modify the Discount Matrix Business Component by adding the following Business Component User Property:

                              Name: <Display Value of New Matrix Type from LOV>

                              Value: Adjustment Group#New Matrix BC Name#

                              This user property inserts the Business Object and Business Component values into the appropriate fields on the discount matrix header when the discount matrix type is selected.

                            6. Create a new Discount Matrix Details list applet for the new Business Component:

                              Name: <any name>

                              Business Component: <new matrix buscomp>

                              Class: CSSSWEFrameListPSPAdjRule

                              List Columns: <all fields from the new matrix Business Component that could possibly appear as criteria or default dimensions>

                              Note: Specialized applet class will only show dimensions defined and default columns from the Business Component user property.
                            7. Create a new Discount Matrix Details view as follows:

                              Name: <any name>

                              Business Object: Adjustment Group

                              View Web Template Items:

                              Adjustment Group form applet

                              New Applet from Above

                            8. Modify the Adjustment Group list applet as follows:

                              Create a New Drilldown Object:

                              Name: <new matrix type>

                              Hyperlink Field: Name

                              Destination View: <name of new details view>

                              Create a Dynamic Drilldown Destination for the new Drilldown Object:

                              Name: <new matrix type>

                              Field: Type - LIC

                              Value: <new matrix type LIC value from LOV>

                              Destination Drilldown Object: <name of drilldown object created in previous step>

                            9. Add the new view to the Administration - Pricing screen:

                              Name: <name of the new view>

                              View: <name of the new view>

                              Type: Details view

                              Parent Category: Adjustment Group Details