Markdown Module Dataset
Markdown Module allows to plan and execute price reductions with respect to the stock levels, set timeframe, and expected demand. There are two different processes for the optimal discount calculation that require slightly different data inputs:
- Short-term Expiration Markdown
- A specialized option for near-real-time calculation of optimal discounts for fresh assortment with short shelf life. To work optimally it needs stock data per Batch = how many items are in stock for each sell by date.
- Long-term Markdown
- A more general option for other types of markdowns (clearances) – seasonal, end-of-life, overstock. This process works with total stock regardless of batches.
Stores table extension
The standard stores file shall be extended with two additional columns specifying the warehouses assigned to each store.
The markdown discount is calculated for each warehouse. For physical stores the best results can be achieved if it is calculated for each store individually based on the local stock level. In that case each store should be also its own warehouse (1 to 1 relationship, same name and id can be used too).
Column | Data Type | Description |
|---|---|---|
warehouse_id | string | Warehouse identifier |
warehouse_name | string | Name of the warehouse |
Stock levels per Batch
This table contains information about remaining stock per product, warehouse, and batch. Needed for expiration markdowns. Not needed for other markdown types.
Primary keys of the tables are highlighted in bold.
Column | Data type | Description |
|---|---|---|
product_id | string | Product identifier |
warehouse_id | string | Warehouse identifier |
batch_id | string | Batch identifier |
expiration_date | date | Expiration date |
quantity | decimal(2) | Latest stock level |
Data Checks
Quantity must not be negative.
The expiration date must be in the future.
Stock levels
This table contains information about remaining stock per product and warehouse.
Primary keys of the tables are highlighted in bold.
Column | Data type | Description |
|---|---|---|
product_id | string | Product identifier |
warehouse_id | string | Warehouse identifier |
valid_at | datetime (ISO 8601) | Date and time as of which the stock data was recorded |
quantity | decimal(2) | Stock level |
Optional Columns
Column | Data type | Description |
|---|---|---|
stock_detail | string | Optional text information that shows in the application with the stock level (e.g. ordering status) |
availability_factor | decimal, 0.00-1.00 | Optional factor indicative of lower expected demand, for example when the product will be available to fewer customers than normally (0.5 = algorithm should expect initially only half of usual sales) |
Data Checks
Quantity must not be negative.
Valid_at must not be in the future.
Availability_factor must be between 0 and 1, if provided.
Product Shelf Life
For expiration markdowns only. Defines rules for when expiration markdown must be initiated per each product.
Column | Data Type | Description |
|---|---|---|
product_id | string | Product identifier |
day_sale_rule | integer | The minimum number of days before expiration when markdown should be initiated (in days). If the field is left blank, the system will automatically determine the start date for the expiration markdown. |
shelf_life | integer | Typical shelf life of the product (in days). |
Data Checks
day_sale_rule and shelf_life must be greater than 0.
shelf_life must always be greater than day_sale_rule.
Other Options for Export
Add the columns day_sale_rule and shelf_life as new columns in the products table.
Sales Extension
Optional for expiration markdowns only. The standard sales file shall be extended with one additional column to indicate the product batch. Typically not available in case of physical store transactions.
Column | Data Type | Description |
|---|---|---|
batch_id | string | Batch identifier |
Write-Offs
Optional dataset, not needed for demand modelling or markdown price calculation. Used only for custom reporting.
- Historical data – One-time export of the write-offs history (1-2 years) into a single file named write-offs-history.csv.
- Daily incremental data – Export write-offs for the last X days (minimum 1, maximum 30) into the file writeoffs.csv.
Column | Data Type | Description |
|---|---|---|
product_id | string | Product identifier |
warehouse_id | string | Warehouse identifier |
date | date | Date when the product was written-off. |
quantity | decimal(2) | Quantity of written-off product. |
Optional Columns
Column | Data Type | Description |
|---|---|---|
reason | string | Reason for write-offs (e.g., expired products, damaged goods). |
Data Checks
Quantity must not be negative.
The date must be in the past.