Price Agreements
Overview
A sales agreement refers to a formal contract or arrangement between a seller and a customer that outlines the terms, conditions, pricing, and other details related to the products or services being sold. Buyers and sellers agree on the commercial and legal terms as per the sales agreement, with the understanding that the future orders coming from the buyer will honor the agreement and be priced accordingly.
The Price Agreements module allows customers to specify agreement pricing within the Pricing Engine UI, via bulk upload, or with REST APIs. Pricing administrators specify the account details, and then add the applicable agreed upon pricing data. As required, Price Agreement pricing is applied to the calculated price. When the CPQ Pricing applies a Price Agreement to a product or service, the Applied Agreement Name, Number, and Integration ID are included in the transaction line item.
Price Agreements are applied as part of the Base Pricing Rule automatically. When discounts or adjustments are specified in a subsequent Pricing Rule/Model these adjustments are not applied since the Agreement price represents the final price negotiated for that customer.
Sales Agreement Authoring Support in CPQ Pricing
Beginning in Oracle CPQ 24C introduces the Status and Source Transaction ID standard attributes provide better control of which agreements should be applied and to integrate new agreement type quotes with CPQ Pricing Engine. The Status attribute allows pricing administrators to activate and inactivate Price Agreements.
Price Agreement Pages
The Pricing Agreements List Page displays available Price Agreements. Pricing administrators can perform the following tasks from this page:
Item | Description |
---|---|
1 |
Navigate to Pricing Portal. |
2 |
Enter search criteria to filter Pricing Agreements. |
3 |
Add a new Pricing Agreement or Manage Columns. |
4 |
Sort Pricing Agreements using the Name, Number, Account, Account ID, Start date, End date, or Integration ID column headers. |
5 |
Edit an existing Pricing Agreement by clicking on the appropriate Name link or selecting Edit from the line ellipsis drop-down. |
6 |
Edit or Delete an existing Pricing Agreement. |
The Pricing Agreement page allows administrators to manage Basic Details and Pricing Data for a Pricing Agreement. Similar to the Price Models page, the Pricing Agreement page provides a default structured view that provides easy access to manage product Pricing Data Items. Pricing administrators can perform the following tasks from this page:
Item | Description |
---|---|
1 |
Navigate to the Pricing Agreements list page. |
2 |
Navigate to Next or Previous Price Model in the Pricing Agreements list or filtered Pricing Agreements search results list. |
3 |
Click Edit in the Basic Details section to modify the Agreement Name, Start date, End date Description, or Integration ID. You can also click the More Details toggle to display or hide the Integration ID. |
4 |
Enter search criteria to filter associated products. |
5 |
Select Structure View or Table View for the Pricing Data.
|
6 |
Add a new Pricing Agreement or Manage Columns. |
7 |
Sort Pricing Agreements using the Product, BOM Item, BOM Item Variable Name, Root BOM Item, or Root BOM Item Variable Name column headers. |
8 |
Edit an existing product by clicking on the appropriate Product link or selecting Edit from the line ellipsis drop-down. |
9 |
Edit or Delete an existing Pricing Agreement. |
Price Agreement - Table View
The Table View allows administrators to view a summary of information for all Pricing Data Items on a single page. From this view, administrators can click Actions to:
-
Edit Prices directly in the Pricing Data section.
-
Manage Columns that are displayed in the Pricing Data section.
Additional attributes that can be displayed include Type, Product Description, BOM Item, BOM Item Variable Name, Root BOM Item, Root BOM Item Variable Name, Dynamic Pricing, Quantity From, Quantity To, Rate Card, Block Size, Block Price, Service Duration Type, Service Duration, Service Duration Period, Item Price, and pricing items for applicable currencies.
Administration
Complete the following steps to create a Price Agreement in the CPQ Pricing Portal.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
-
Click on the Price Agreements card.
-
Select Add from the Actions drop-down.
-
Select the applicable account form the Accounts drop-down.
-
Enter the Name for the Price Agreement.
-
Enter the Price Agreement Number.
If a Number is not provided, this field will be automatically populated using the Name and Account ID.
-
(optional) Choose a Start Date to set the effective start date.
-
(optional) Choose an End Date to set the effective start date.
-
(optional) Enter a Description.
-
Click Create.
-
Proceed to Add a Product.
Add Dynamic Attribute-based Matrix Pricing to a Price Agreement
Complete the following steps to create dynamic matrix pricing for a Price Agreement.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
-
Click on the Price Models or Price Agreements card (as applicable).
-
Select the applicable Price Model or Price Agreement.
-
A Price Model or Price Agreement must be defined by either product prices and charges OR by a Pricing Matrix.
-
You cannot add Dynamic Attribute-based Pricing to a Price Model or a Price Agreement with existing charges unless all existing charges are based on the same attribute-based charge template.
-
-
Click Edit in the Basic Details section.
-
Expand the More Details section.
-
Select the applicable Pricing Matrix Template from the Dynamic Matrix Pricing drop-down.
-
Click Save or Update.
-
Click the Table View icon in the Pricing Data section.
-
Select Edit from the Actions drop-down.
-
Perform one of the following options:
-
To add new product to the pricing matrix, select Add Charge from the Add drop-down.
-
To add a conditional row item to the last product in the pricing matrix, select Add Matrix Row from the Add drop-down.
-
To add a conditional row item for any existing product in the pricing matrix, click on the line ellipse for the applicable product line item and select Add Matrix Row.
-
-
Enter or select the conditional values for each column.
-
Enter the applicable pricing.
The item pricing is determined by the parent Price Model's or Price Agreement’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 Save or Update.
Complete the following steps to add a product to a Price Agreement.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
- Click on the Price Agreements card.
-
Select the applicable Price Agreement.
-
Select Add Products from the Actions drop-down.
-
Select the applicable item from the Product drop-down.
-
Select a Part or BOM item, or
-
Select Any Item to add a discount or markup for all products.
The Any Item option is only available for Discount Lists and Markup Lists.
-
-
Click Create.
-
Proceed to Add a Rate Plan or Add a Charge.
Complete the following steps to add a Product Price to a product.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
- Click on the Price Models or Price Agreements card.
- Click on the applicable Price Model or Price Agreement.
-
Click on the applicable product.
-
If the desired product is not listed, refer to Add a Product for instructions.
-
Click Add Product Price - OR - select Add Product Price from the Actions drop-down.
-
When enabled, select a Charge Definition.
Charge Definitions standardize charge categories and define the valid combinations of price types and charge types.
- The Price Type and Charge Type are automatically populated when using Charge Definitions.
- Charge Definitions are highly recommended for customers using charge pricing (vs. legacy product pricing) to simplify the setup of prices.
- Charge Definitions are required when CPQ pricing is integrated with Oracle Fusion Pricing.
- For more information, refer to Charge Definitions.
-
Select a Price Type.
The Pricing Type Pricing Lookup provides the following standard values: One time, Recurring, Usage. To add custom values, refer to Pricing Lookups.
-
If applicable, select the Price Period to define the time frequency, periodicity, or recurrence with which the price is levied or charged.
- Price Periods are only applicable for Recurring and Usage Price Types.
- The Pricing Type Pricing Lookup provides the following standard values: Per Month, Per Year. To add custom values (e.g. Per Week, Per Year), refer to Pricing Lookups.
-
Select one of the following Dynamic Pricing options, and perform the included steps:
None (Static Pricing)
- Select None from the Dynamic Pricing drop-down.
- If applicable, select Additional Currencies from the drop-down.
-
Enter the unit price, discount value, or markup value for each applicable currency.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
- Select Volume Pricing from the Dynamic Pricing drop-down.
- If applicable, select Additional Currencies from the drop-down.
- Click Add Range.
- Enter the Quantity From value.
- Enter the unit price, discount value, or markup value for each applicable currency.
-
Click Add Range.
-
Enter the Quantity From value for the new tier.
The Quantity To value for the previous tier will be populated with the same value.
-
Enter the unit price, discount value, or markup value for each applicable currency.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
-
Repeat Step f - Step h to add additional tiers.
- Select Tier Pricing from the Dynamic Pricing drop-down.
- If applicable, select Additional Currencies from the drop-down.
- Click Add Range.
- Enter the Quantity From value.
- Enter the unit price, discount value, or markup value for each applicable currency.
-
Click Add Range.
-
Enter the Quantity From value for the new tier.
The Quantity To value for the previous tier will be populated with the same value.
-
Enter the unit price, discount value, or markup value for each applicable currency.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
-
Repeat Step f - Step h to add additional tiers.
- Select the appropriate Pricing Matrix Template from the drop-down.
-
If additional currencies are required in the pricing matrix complete the following steps.
-
Click the Manage Columns icon.
-
Check the applicable currency items.
-
Click Apply.
-
-
Click the + icon to add a conditional row item.
-
Enter or select the conditional values for each column.
-
Enter the applicable pricing.
-
If a customer implementation uses block pricing, add the Block Size and Block Price attributes.
-
Click the Manage Columns icon and select the Block Size and Block Price options.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
-
-
Repeat Step c - Step f to add additional conditional pricing items.
-
Click Create.
Complete the following steps to create a Rate Plan to a product.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
- Click on the Price Models or Price Agreements card.
- Select the applicable Price Model or Price Agreement.
-
Click on the applicable product.
If the desired product is not listed, refer to Add a Product for instructions.
-
Click Add Rate Plans.
- Enter a Rate Plan Name.
- Enter a variable name in Rate Plan Number.
- (optional) Select a Start date. This effective start date value will apply to all Charges in this Rate Plan.
- (optional) Select an End date. This effective end date value will apply to all Charges in this Rate Plan.
- (optional) Enter a Description.
- Click Create.
- Proceed to Add a Charge.
Complete the following steps to add a charge to a product.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
- Click on the Price Models or Price Agreements card.
- Select the applicable Price Model or Price Agreement.
-
Click on the applicable product.
If the desired product is not listed, refer to Add a Product for instructions.
-
Perform one of the following:
-
To add non-Rate Plan Charges, click Add Charges - OR - select Add Charges from the Actions drop-down.
-
To add Charges to a Rate Plan, click on the Rate Plan ellipsis, and then select Add Charges.
-
-
When enabled, select a Charge Definition.
Charge Definitions standardize charge categories and define the valid combinations of price types and charge types.
- The Price Type and Charge Type are automatically populated when using Charge Definitions.
- Charge Definitions are highly recommended for customers using charge pricing (vs. legacy product pricing) to simplify the setup of prices.
- Charge Definitions are required when CPQ pricing is integrated with Oracle Fusion Pricing.
- For more information, refer to Charge Definitions.
-
Select a Price Type to define the basis on which a price or charge is levied.
- The Price Type is automatically populated and not editable when using Charge Definitions.
- The Pricing Type Pricing Lookup provides the following standard values: One time, Recurring, Usage. To add custom values, refer to Pricing Lookups.
-
Select a Charge Type to define the value that will be received by the customer for a charge price.
- The Charge Type is automatically populated and not editable when using Charge Definitions.
- The Charge Type Pricing Lookup provides the following standard value: Sales Price. To add custom values (e.g. Activation Fee, Call Charge, Data Charge), refer to Pricing Lookups.
-
If applicable, select the Price Period to define the time frequency, periodicity, or recurrence with which the price is levied or charged.
- Price Periods are only applicable for Recurring and Usage Price Types.
- The Pricing Type Pricing Lookup provides the following standard values: Per Month, Per Year. To add custom values (e.g. Per Week, Per Year), refer to Pricing Lookups.
-
If applicable, select or enter the Usage UOM to define the units of measures for usage quantities.
To add custom values (e.g. Per Week, Per Year), refer to Pricing Lookups.
- (optional) Choose a Start Date to set the effective start date for an individual charge.
- (optional) Choose an End Date to set the effective start date for an individual charge.
-
Select one of the following options, and perform the included steps:
None (Static Pricing)
- Select None from the Dynamic Pricing drop-down.
- If applicable, select Additional Currencies from the drop-down.
-
Enter the unit price, discount value, or markup value for each applicable currency.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
- Select Volume Pricing from the Dynamic Pricing drop-down.
- If applicable, select Additional Currencies from the drop-down.
- Click Add Range.
- Enter the Quantity From value.
- Enter the unit price, discount value, or markup value for each applicable currency.
-
Click Add Range.
-
Enter the Quantity From value for the new tier.
The Quantity To value for the previous tier will be populated with the same value.
-
Enter the unit price or discount value for each applicable currency.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
-
Repeat Step f - Step h to add additional tiers.
- Select Tier Pricing from the Dynamic Pricing drop-down.
- If applicable, select Additional Currencies from the drop-down.
- Click Add Range.
- Enter the Quantity From value.
- Enter the unit price, discount value, or markup value for each applicable currency.
-
Click Add Range.
-
Enter the Quantity From value for the new tier.
The Quantity To value for the previous tier will be populated with the same value.
-
Enter the unit price, discount value, or markup value for each applicable currency.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
-
Repeat Step f - Step h to add additional tiers.
- Select Rate Card from the Dynamic Pricing drop-down.
-
Select the Rate Card Name from the drop-down.
- Rate Cards are only available for Price List type Price Models.
- Rate Cards are only available for Usage Price Types.
- Price values are defined by the applicable Rate Card and can't be modified when defining a charge.
- For more information, refer to Rate Cards and Pricing Matrix Templates.
- Select the appropriate Pricing Matrix Template from the drop-down.
-
If additional currencies are required in the pricing matrix complete the following steps.
-
Click the Manage Columns icon.
-
Check the applicable currency items.
-
Click Apply.
-
-
Click the + icon to add a conditional row item.
-
Enter or select the conditional values for each column.
-
Enter the applicable pricing.
-- OR --
Complete the following to enter Block Pricing:
-
Click the Manage Columns icon and select the Block Size option.
-
Enter the Block Size value that is greater than 1.
-
Enter the Block Price value for each applicable currency.
-
Enter the Item Price value for each applicable currency.
-
Repeat Step c - Step e to add additional conditional pricing items.
-
Click Create.
Export and Import Matrix Pricing Data
CPQ provides the ability to ability to author the Price Model and Price Agreement matrix pricing outside of CPQ and use Excel (.CSV) files to load this data directly from the Price Model or Agreement UI. The recommended process for modifying matrix pricing data is:
-
Export Matrix Pricing Data from a Price Model or Price Agreement
-
Modify Matrix Pricing Data Excel Files
-
Import Matrix Pricing Data from a Price Model or Price Agreement
Export Matrix Pricing Data from a Price Model or Price Agreement
Complete the following steps to export a pricing matrix.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
-
Click on the Price Models or Price Agreements card (as applicable).
-
Select the applicable Price Model or Price Agreement.
-
Select Export from the Actions drop-down.
-
When the export is complete, download the exported pricing matrix file.
-
Click the matrixGrid_<priceModelOrPriceAgreementVariableName> link on the Export Status dialog.
-- or –
-
Select Import/Export Status from the Actions drop-down, then click on the applicable matrixGrid_<priceModelOrPriceAgreementVariableName> link.
-
Modify Matrix Pricing Data Excel Files
When updating a pricing matrix grid using an Excel file the first column will specify the action for the line. The following actions can be used:
-
ADD: add a new row/record if one does not already exist. If one does exist, an error will be thrown.
-
MODIFY: modify or add the column data in the row/record. A new row is created if the record is not found.
-
DELETE: delete all the column data from a row/record.
-
UPDATE: modify all the column data in the row/record. Update will fail if the record is not found.
Complete the following procedure to add, modify, or delete row items to a Price Model or Price Agreement pricing matrix grid.
-
Unzip the downloaded matrixGrid_<priceModelOrPriceAgreementVariableName>.zip file.
-
Open the matrixGrid_<priceModelOrPriceAgreementVariableName>.csv file.
-
Populate the rows with the desired data. The first column is used to specify the desired action.
For example, the following file will add six row items to the dynamicPricing Price Model pricing matrix grid. The _matrix_<columnVariableName> are from the associated Pricing Matrix Template.
-
Save and close the updated matrixGrid_<priceModelOrPriceAgreementVariableName>.csv file.
Import Matrix Pricing Data from a Price Model or Price Agreement
Complete the following steps to import a pricing matrix.
-
Navigate to the Admin page.
-
Click Pricing Portal in the Products section.
-
Click on the Price Models or Price Agreements card (as applicable).
-
Select the applicable Price Model or Price Agreement.
-
Select Import from the Actions drop-down.
-
Drop or upload the updated .csv or .zip file into the Import Pricing Data drawer.
-
Click Import.
Notes
-
Refer to Oracle Sales Contract – CPQ Price Agreement Integration to apply pricing from sales agreements authored in Oracle Sales Contracts.
-
Refer to the following documents for more information focused on Oracle Sales to Oracle CPQ integration implementation.