- Overview
- Platform setup and administration
- Platform setup and administration
- Platform architecture
- Data Bridge onboarding overview
- Connecting a Peak-managed data lake
- Connecting a customer-managed data lake
- Creating an AWS IAM role for Data Bridge
- Connecting a Snowflake data warehouse
- Connecting a Redshift data warehouse (public connectivity)
- Connecting a Redshift data warehouse (private connectivity)
- Reauthorizing a Snowflake OAuth connection
- Using Snowflake with Peak
- SQL Explorer overview
- Roles and permissions
- User management
- Inventory management solution
- Commercial pricing solution
- Merchandising solution
Products dataset for the Commercial Pricing solution, containing product metadata required for pricing analysis, segmentation, and guardrail enforcement.
The Products dataset contains detailed metadata for products used in the commercial pricing solution. It defines the items being priced and provides attributes required for pricing analysis, segmentation, and guardrail enforcement.
This dataset is required for application deployment and pricing insights analysis.
→ For the canonical technical schema (data types, validation rules, request/response examples), see Product in the API Guide.
Purpose
The commercial pricing solution uses the Products dataset to:
- Identify products included in pricing analysis
- Enable pricing evaluation at product and category levels
- Support segmentation strategies (for example, bespoke vs standard products)
- Ensure consistent product identifiers across pricing datasets
This dataset is foundational for both List Pricing and Quote Pricing use cases.
Required fields
About the Nullable column: every field below must appear in your data. Nullable: Yes means the field can be sent as null (or left blank in your source) when no value is available; Nullable: No means a non-null value is required for every row.
| Field | Description | Type | Nullable |
|---|---|---|---|
product_id | Unique identifier for each product. Used to join product metadata to quotations and sales for model training. | string | No |
updated_at | Timestamp when the record was updated. Used to identify the most up-to-date data in the UI and to match product metadata to the date of each quote in model training. | timestamp_tz | Yes |
bespoke_product | Whether the product is bespoke (custom-made) or standard. Used in model training as a feature to determine the optimal quote price. | boolean | Yes |
product_name | Product name. Used in the UI to identify products. | string | No |
product_category | Product category. Used in model training as a feature to determine the optimal quote price. | string | Yes |
product_subcategory | Product sub-category. Used in model training as a feature to determine the optimal quote price. | string | Yes |
Custom fields
The fields listed previously are the standard schema for this dataset. A field that your business requires but the standard schema does not include can be added as a custom attribute after the schema is rolled out. Custom attributes are additive, so they extend the dataset without affecting existing fields, and they are validated in the same way as standard fields.
The following request adds a SUPPLIER_CODE column to this dataset:
curl -X POST \
'https://ingestion.peak.ai/api/v2/schema/QP_PRODUCT_OOTB/add-attribute' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"solutionName": "QP_OOTB",
"columnName": "SUPPLIER_CODE",
"dataType": "string",
"validations": [
{ "type": "optional" }
]
}'
curl -X POST \
'https://ingestion.peak.ai/api/v2/schema/QP_PRODUCT_OOTB/add-attribute' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"solutionName": "QP_OOTB",
"columnName": "SUPPLIER_CODE",
"dataType": "string",
"validations": [
{ "type": "optional" }
]
}'
The table name in the request URL is this dataset's fully qualified warehouse name, which includes the prefix and suffix configured when your solution was rolled out — QP_PRODUCT_OOTB in this example. Retrieve the name for your own solution with Describe a solution's schema.
On standard tables the API prefixes the new column name in the warehouse with C_ (Snowflake) or c_ (Redshift), so SUPPLIER_CODE becomes C_SUPPLIER_CODE and warehouse queries must use the prefixed name.
→ For the full parameter reference, supported data types, and validation rules, see Customizations in the API Guide.
Usage notes
- All products referenced in the List Price, Product Cost, Quote Line, and Sales datasets must exist in the Products dataset.
- The
product_idmust be consistent across all related datasets. - The
bespoke_productfield supports differentiation between custom and standard products in pricing strategies. - Accurate categorization improves segmentation-based pricing recommendations.
Why this dataset matters
The Products dataset defines the scope of pricing analysis. Without it, the commercial pricing solution cannot reliably join cost, quote, sales, and list price data or apply product-level pricing strategies.