- 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
Detailed line-item information for customer quotes, capturing the pricing decisions and behavioral data used in Commercial Pricing analysis.
The Quote Line dataset contains detailed line-item information for customer quotes. It represents individual pricing decisions made during the quoting process and provides the core behavioral data used to analyze quote performance.
This dataset is required for application deployment and pricing insights analysis.
→ For the canonical technical schema (data types, validation rules, request/response examples), see Quote Line in the API Guide.
Purpose
The commercial pricing solution uses the Quote Line dataset to:
- Analyze quoted prices at the product and customer level
- Evaluate win/loss behavior in response to pricing decisions
- Measure discounting patterns relative to list price
- Support pricing recommendations for future quotes
This dataset is essential for 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 |
|---|---|---|---|
quote_id | Unique identifier for each quote. | string | No |
product_id | Unique identifier of the product. Used to join product metadata to the table. | string | No |
original_quote_id | Unique identifier of the original quote being replaced. Used to track re-negotiated quotes through the pricing lifecycle. | string | Yes |
quote_status | Status of the quote (won, lost, pending, or archived). Used in model training to learn which quotes converted. | string | Yes |
price_list_id | Price list used for this quote. | string | Yes |
quoted_at | Timestamp when the record was quoted. Used in model training to understand seasonal effects on the optimal quote price. | timestamp_tz | Yes |
decided_at | Timestamp when the quote was decided — when it was won, lost, cancelled, or replaced. | timestamp_tz | Yes |
customer_id | Unique identifier of the customer. Used to join customer metadata to the table. | string | Yes |
merchant_id | Unique identifier of the merchant. Used to join merchant metadata to the table. | string | Yes |
project_id | Unique identifier of the project. Used to join project metadata to the table. | string | Yes |
region_id | Unique identifier of the region the quote applies to. Used as a model feature, since optimal prices vary by region. | string | Yes |
quantity | Quantity of the product in the quote. Used as a feature in model training as the quantity demanded impacts the optimal price. | float | Yes |
selling_price | Selling price for the product. The price on the quotation for the product. Used to calculate the discount applied to the quote for model training. | float | 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 DISCOUNT_REASON column to this dataset:
curl -X POST \
'https://ingestion.peak.ai/api/v2/schema/QP_QUOTE_LINE_OOTB/add-attribute' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"solutionName": "QP_OOTB",
"columnName": "DISCOUNT_REASON",
"dataType": "string",
"validations": [
{ "type": "optional" }
]
}'
curl -X POST \
'https://ingestion.peak.ai/api/v2/schema/QP_QUOTE_LINE_OOTB/add-attribute' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"solutionName": "QP_OOTB",
"columnName": "DISCOUNT_REASON",
"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_QUOTE_LINE_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 DISCOUNT_REASON becomes C_DISCOUNT_REASON 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 referenced identifiers (
product_id,customer_id,merchant_id,project_id) must exist in their corresponding datasets. - Quote lines should reflect actual quoted pricing behavior, not list prices.
- Quote stage information helps differentiate early-stage quotes from finalized quotes.
- Historical quote data improves pricing model accuracy and recommendation stability.
- Units of measure must align with related datasets (Products, Sales).