About this document
The Quicklizard AI Suite provides a powerful toolset for optimizing pricing strategies through big data analytics. Businesses can create comprehensive, informed pricing solutions responsive to market conditions and customer behavior by effectively combining transaction-level data and daily summary data. Leveraging historical data further enhances these capabilities, driving better accuracy and strategic decision-making. Unlock the full potential of your pricing strategy with Quicklizard today.
This document is structured into 3 sections:
- Why we need the data and what benefits it will provide you?
- What is the required data and its purpose?
- How do you feed it into Quicklizard?
Why do we need the data and what benefits it will provide you?
Quicklizard empowers businesses to make smarter, data-driven pricing decisions. In a constantly evolving market, businesses deserve tools to adjust pricing dynamically to meet business goals and customer expectations. By leveraging AI and analytics, we enable companies to be agile, stay competitive, and ultimately grow their profitability.
We achieve this by providing an AI-powered pricing tool suite that analyzes market trends, customer behavior, and internal data to make informed pricing decisions. Our AI Suite integrates seamlessly with existing business data flows, allowing companies to optimize pricing strategies with minimal operational friction. We use sophisticated algorithms for elasticity, seasonality, forecasting, and article segmentation, all with the goal of maximizing your pricing effectiveness.
Quicklizard's AI Suite is a comprehensive pricing solution that includes modules for understanding price sensitivity, predicting sales trends, adjusting for seasonal changes, and segmenting customer behavior. It empowers businesses to optimize their pricing in real-time, drive revenue, and improve operational efficiency.
Our solution integrates the following key modules:
Article Segmentation
Assign the right pricing strategy to groups of articles by understanding their roles in shaping customer perception and profitability using a data-approach leveraging multiple metrics in a multi-dimensional scoring model.
Benefit: Article segmentation helps businesses categorize products according to their role for pricing. Each role requires a different pricing strategy to maximize price perception and profitability.
-
KVIs (Key Value Indicators): These articles shape customers' perceptions of a retailer. To maintain a good price image, retailers must always be competitive.
-
SDs (Sales Drivers): These items are essential for sales volume and have high relevance but do not require aggressive pricing. Prices can match the market average, and promotions can be used strategically to drive sales.
- PGs (Profit Generators): These articles, such as impulse items, are less price-sensitive. Their pricing can be higher than competitors, allowing for higher profit margins that help subsidize the competitive pricing needed for KVIs.
Minimal data required: >20 entries of sales data in the last 210d
Very helpful (Should): transaction-level, competitor prices, basket_pos., traffic_cost, traffic_share_paid
Helpful (Could): anonymous_customer_id
Elasticity Module
Understand how price changes impact sales volume and optimize pricing for revenue growth or profit.
Benefit: By understanding price sensitivity, you can effectively adjust your prices to balance revenue and volume.
Minimal data required: 6+ months of historic sales with at least 5 price changes with 7 days of sales per price + data from the last 30 days + Inventory > 0
Competitor Sensitivity
Understand which competitors your customers take into consideration as relevant set.
Benefit: Save margin by only matching prices of competitors that matter.
Minimal data required: 6+ months of historic competitor data with at least 5 comp. price changes with 7 days of own sales per price and sales data
Seasonality Module
Predict and adjust for sales peaks and sell troughs across different times of the year.
Benefit: Seasonal adjustments help you maximize revenue during high-demand periods and manage inventory better during slower times.
Minimal data required: 2+ years of sales data
Very helpful: promo information, special events
Helpful: transaction-level, daily inventory level, competitor prices, special events
Forecast Module
Forecast sales based on historical data to make proactive pricing decisions.
Benefit: Enables strategic planning by predicting trends, helps avoid inventory issues.
Minimal data required: 2+ years daily sales (shelf & transaction price), competitor prices, inventory level, category information
Very helpful: transaction-level
Helpful: promo information (promo_id)
What is the required data and its purpose?
Data types
We need 4 types of data from you - from static to dynamic:
-
Product Master Data:
List of all SKUs incl. key attributes (brand, supplier, etc.) and categorization (tree)
-
Behavioral Data:
Daily cost information, inventory levels and web analytics (online only)
-
Sales Data: 2 options…
-
Transaction level: preferred
Transaction data provides detailed insights into each individual sale, allowing for more precise pricing optimization and customer behavior analysis than daily aggregations. - Daily aggregation: fall-back
-
Transaction level: preferred
-
Competitor Data:
Competitor prices per product at the highest available frequency
Delivery frequency
For the transaction level sales data it is usually enough to send it only once per day. It doesn’t have to be delivered “real-time”. Just keep in mind that the longer the delay (e.g., daily aggregation with 2 days delay) the less fast you can react to recent changes (e.g., changed competitor prices).
Priority
In the following pages, you will find our data request in tabular form - prioritized as:
- Prio 1 = mandatory
- Prio 2 = should have
- Prio 3 = could have
Sample data
Below you can find a link to example data in CSV / Excel format:
https://docs.google.com/spreadsheets/d/1DQPj8bCD4WnqAQXNP72B6nA4olqwqEA2gizq_bc37J0/edit?usp=sharing
At the end of the document you will also find our JSON API documentation.
1. Product Master Data
List of all SKUs incl. relevant attributes (brand, supplier, etc.) and categorization (tree).
| Variable | Data type | Definition & details | Prio |
| Product classifiers | |||
| client_key | String | The key of your system | 1 |
| channel | String | Channel_key (for omnichannel clients only) | 1 |
| product_id | String | product ID | 1 |
| cost1_per_unit_no_vat | Dec(10,2) | Cost | 2 |
| cost2_per_unit_no_vat | Dec(10,2) | Secondary Cost | 3 |
| url | String | URL to own webshop | 2 |
| product_image_url | String | URL of product image | 2 |
| shelf_price | float | The current Shelf Price in the store | 1 |
| Product Characteristics | |||
| product_name | String | Product name / Title | |
| brand | String | SKU brand (e.g., Royal Canin) | 1 |
| supplier | String | SKU supplier (e.g., wholesaler) | 2 |
| manufacturer | String | SKU producer (e.g., Mars) | 2 |
| Category tree | |||
| category_lvl_1 | String | Hierarchical category 1 | 2 |
| category_lvl_2 | String | Hierarchical category 2 | 2 |
| category_lvl_3 | String | Hierarchical category 3 | 2 |
| category_lvl_4 | String | Hierarchical category 4 | 2 |
| Key attributes | |||
| listing_date | date | When this SKU first was listed in the shop | 2 |
| RRP / MSRP | Dec(10,2) | Recommended Retail Price | 2 |
| MAP | Dec(10,2) | Minimum Advertised Price | 2 |
| product_family_id | String | Identifier for products of the same family | 2 |
| Attributes… | String | Any further attributes to be discussed | 3 |
Prio 1 = mandatory | Prio 2 = should have | Prio 3 = could have
2. Behavioral Data
Daily cost information, inventory levels and web analytics (online only).
| Variable | Data type | Definition & details | Prio |
| Behavioral classifiers | |||
| date | date | date of the day for which the data applies: %Y-%m-%d | 1 |
| client_key | string | The key of your system | 1 |
| channel | string | Channel_key (for omnichannel clients only) | 1 |
| product_id | string | product ID | 1 |
| Web Analytics | |||
| avg_basket_position | dec(10,2) | Avg. position of item in basket that day: e.g, basket position 1.3 | 2 |
| avg_traffic_cost | dec(10,2) | Paid traffic (SEA & PCE) cost / sale at product_id level that day | 3 |
| avg_traffic_share_seo | % | Traffic share coming from SEO (organic search) that day | 3 |
| avg_traffic_share_sea | % | Traffic share coming from SEA (paid search) that day | 3 |
| avg_traffic_share_pce | % | Traffic share coming from Price Comparison Engines that day | 3 |
| avg_conversion_rate | % | Avg. conversion rate (online only) | 2 |
| total_views_per_day | integer | Number of session views on this SKU for the day | 2 |
| Inventory data | |||
| inventory | integer | Inventory level at the end of the day | 1 |
| Cost data | |||
| cost1_avg_per_unit | dec(10,2) | Avg. cost 1 of the SKU for that day: e.g., current purchase price | 1 |
| cost2_avg_per_unit | dec(10,2) | Avg. Cost 2 of the SKU for that day: e.g., logistic cost | 2 |
Prio 1 = mandatory | Prio 2 = should have | Prio 3 = could have
3. Sales Data
Option A - Transaction level (preferred)
| Variable | Data type | Definition & details | Prio | |||||
| Transaction classifiers | ||||||||
| transaction_id | string | Unique identifier of the transaction | 1 | x | x | x | ||
| transcation_line_id* | integer | *If transaction_line_id is missing, ensure only one SKU per transaction | 1 | x | x | x | ||
| transaction_timestamp | datetime | Date & time of the transaction in format %Y-%m-%dT%H:%M:%sZ (“2023-06-27T15:45:30Z”) | 1 | x | x | x | x | x |
| client_key | string | The key of your system | 1 | |||||
| channel | string | Channel_key (for omnichannel clients only) | 1 | |||||
| product_id | string | Product ID (SKU) | 1 | x | x | x | x | x |
| Sales information | Details of the SKU purchase | |||||||
| units_sold | integer | # units purchased in the transaction. Must be positive integer. |
1 | x | x | x | x | x |
| shelf_price_incl_vat | dec(10,2) | The regular shelf price per unit incl. VAT in the transaction (i.e. before promos are applied) | 1 | x | x | x | x | x |
| transaction_price_incl_vat | dec(10,2) | The actual price per unit incl. VAT in the transaction | 1 | x | x | x | x | x |
| vat | % | e.g., 19% or 7% (sometimes different per category) |
1 | |||||
| profit1_per_unit_excl_vat | dec(10,2) | Profit 1 per unit of that SKU (e.g., actual price - VAT - purchase price) excl. VAT | 1 | x | x | |||
| profit2_per_unit_excl_vat | dec(10,2) | Profit 2 per unit of that SKU (e.g., profit 1 - logistic cost) excl. VAT | 2 | x | x | |||
| promo_id | string | If empty, no promotion associated - if filled (link to promo ID), promo was active | 2 | x | x | x | x | x |
| Web Analytics | Online only | |||||||
| transaction_basket_position | integer | Position of item in basket: e.g., first in basket | 2 | (x) | x | |||
| Customer information | ||||||||
| customer_anonymous_id | string | Unique anonymous identifier of customer to trace buying behavior over time | 2 | x | x | x | ||
| membership_flag | boolean | Yes: part of membership/loyalty program | 2 | x | ||||
Prio 1 = mandatory | Prio 2 = should have | Prio 3 = could have
3. Sales Data
Option B - Daily aggregation (fall-back)
Please try to provide transaction level data instead of daily aggregations -
you will get better results, broader coverage and higher accuracy:
- 1. Capturing precise prices paid (e.g., discounts, promotions) and their direct impact on sales, improving the model’s ability to isolate price effects, especially with frequent price changes.
- Transaction data includes basket-level information, such as the order of items in the basket, basket size, and complementary/substitution effects among products. It also allows for more metrics to be calculated.
- Avoiding aggregation bias, which can mask fluctuations (e.g., promotion spikes or weekend sales) or reflect prices never actually paid by consumers. This would improve robustness of models.
| Variable | Data type | Definition & details | Prio | |||||
| Sales classifiers | ||||||||
| date | date | date of the day for which the data applies: %Y-%m-%d | 1 | |||||
| client_key | string | The key of your system | 1 | |||||
| channel | string | Channel_key (for omnichannel clients only) | 1 | |||||
| product_id | string | Product ID (SKU) | 1 | x | x | x | x | x |
| Sales information | Details of the SKU purchase | |||||||
| avg_shelf_price_ incl_vat |
dec(10,2) | Avg. regular shelf price per unit incl. VAT that day (i.e. before promotions are applied) | 1 | x | x | x | x | x |
| avg_transaction_price_ incl_vat |
dec(10,2) | Avg. actual price per unit incl. VAT that day | 1 | x | x | x | x | x |
| avg_vat | % | E.g., 19% or 7% (sometimes different per category) |
1 | |||||
| total_units_sold_per_day | integer | Number of units sold that day. Must be positive integer |
1 | x | x | x | x | x |
| total_profit1_per_day_ excl_vat |
dec(10,2) | Total abs. profit 1 excl. VAT of that SKU generated that day | 1 | x | x | |||
| total_profit2_per_day_ excl_vat |
dec(10,2) | Total abs. profit 2 excl. VAT of that SKU generated that day | 2 | x | x |
Prio 1 = mandatory | Prio 2 = should have | Prio 3 = could have
4. Competitor Data
Competitor prices per product at the highest available frequency.
| Variable | Data type | Definition & details | Prio |
| Competitor classifiers | |||
| product_id | string | Product ID (SKU) | 1 |
| competitor_name | string | Competitor name/banner: e.g., zooplus.de | 1 |
| competitor_pce | string |
Direct Crawl: empty Crawling via Price Comparison Engine: e.g., google-shopping |
2 |
| competitor_link | string | Link to competitor website PDP | 2 |
| competitor_timestamp | datetime | Date and time of the price activation in format "%Y-%m-%dT%H:%M:%s" ("2023-06-27T15:45:30") | 1 |
| Competitor prices | |||
| competitor_price | dec(10,2) | 1 | |
| competitor_currency | String | e.g., € or $ | 1 |
| Comp price attributes | |||
| competitor_delivery_fee | Dec(10,2) | Competitor’s delivery fee | 2 |
| competitor_mov | Dec(10,2) | Competitor’s minimum order value | 2 |
| competitor_fst | Dec(10,2) | Competitor’s free shipping threshold | 2 |
| competitor_is_oos? | boolean | Contextual information of competitor offering: true = out-of-stock | false = in-stock | 3 |
| competitor_is_promotion? | boolean | Contextual information of competitor offering: true = promo price | false = std. shelf price | 3 |
| competitor_is_marketplace? | boolean | Contextual information of competitor offering: true = marketplace price | false = first-party seller | 3 |
Prio 1 = mandatory | Prio 2 = should have | Prio 3 = could have
How do you feed it into Quicklizard?
JSON template for transaction data API
{
"payload": [
{
*"client_key": "string",
*"channel": "string",
*"transaction_timestamp": "%Y-%m-%dT%H:%M:%sZ (“2023-06-27T15:45:30Z”)", // UTC,
*"product_id": "string",
*"shelf_price_incl_vat": “float”,
“promo_id”: “string”, // optional
“transaction_line_id”: “string”, // optional
“transaction_basket_position”: “float”, // optional
*"units_sold": 0, “int”,
*“transaction_id”: “string”,
*“transaction_price_incl_vat”: “float”,
“customer_anonymous_id”: “string” // optional
“membership_flag”: “Boolean” // optional
*“vat”: 0.0, “float”,
*" “profit1_per_unit_excl_vat”: “float”,
“profit2_per_unit_excl_vat”: “float” // optional
}
]
}
How do you feed it into Quicklizard?
JSON template for Master Product data API*
*This isn’t a new endpoint.
We’ll continue using the ProductsCreate/Update endpoints that you can find here
{
"payload": [
{
"attributes": [
{
"name": "brand",
"value": "Acme Pet Foods",
"priority": "Could have"
},
{
"name": "supplier",
"value": "Acme UK Distribution",
"priority": "Could have"
},
{
"name": "manufacturer",
"value": "Acme Manufacturing Ltd.",
"priority": "Could have"
},
{
"name": "category_lvl_1",
"value": "Pet",
"priority": "Should have"
},
{
"name": "category_lvl_2",
"value": "Dog",
"priority": "Could have"
},
{
"name": "category_lvl_3",
"value": "Food",
"priority": "Could have"
},
{
"name": "category_lvl_4",
"value": "Dry",
"priority": "Could have"
},
{
"name": "listing_date",
"value": "2022-10-01",
"priority": "Could have"
},
{
"name": "RRP/MSRP",
"value": "39.99",
"priority": "Could have"
},
{
"name": "MAP",
"value": "48",
"priority": "Could have"
},
{
"name": "product_family_id",
"value": "435feb6c22",
"priority": "Could have"
}
],
"channel": "Online-1 (Priority: Mandatory)",
"client_key": "CL001 (Priority: Mandatory)",
"cost1_per_unit_no_vat": "20.42 (Priority: Should have)",
"cost2_per_unit_no_vat": "28.42 (Priority: Could have)",
"inventory": "400 (Priority: Should have)",
"permalink": "http:/www... (Priority: Could have)",
"product_id": "QL001 (Priority: Mandatory)",
"product_image_url": "http:/www... (Priority: Could have)",
"product_name": "Mini Adult (Priority: Mandatory)",
"shelf_price": "20.99 (Priority: Mandatory)"
}
]
}
Comments
0 comments
Please sign in to leave a comment.