Skip to main content
Product Master Data Specification Check the sample Sample_products.csv

1. Objective The Product Master dataset supports:

  • Linking transactions to products
  • Margin calculation (via unit_cost)
  • Category-level analytics
  • Brand & assortment analysis
  • Elasticity modeling
  • Price corridor analysis
Each row represents:
One sellable product (SKU level)

2. Referential integrity (critical)

The following fields must match exactly with Transaction History:
Product FileTransaction File
product_idproduct_id
Ifproduct_iddoes not match, transactions cannot be linked.

3. Product Master – Unified Specification

Field NameRequiredTypeFormatDescriptionExampleAlternative Names
product_id✅ YesstringUniqueUnique product identifier (used in transactions)P001
product_name✅ YesstringTextFull product nameCordless Drill 18V BlueSKU Name, Product Title, Product Variant Name
price✅ Yesdecimal(12,2)Dot separatorThe actual selling price. Current Price129.99Current Price, Actual Price
unit_cost✅ Yesdecimal(12,2)2 decimalsCost per unit at time of sale80.00Cost Price, Purchase Cost, Purchase Price
sku⬜ OptionalstringTextStock Keeping UnitSKU-1001SKU Code
barcode⬜ OptionalstringEAN/UPCBarcode value5901234123457EAN, UPC, GTIN
brand⬜ OptionalstringTextBrand nameBoschBrand Name, Label, Trademark
manufacturer⬜ OptionalstringTextManufacturer nameBoschProducer, Vendor, Supplier
product_group⬜ OptionalstringTextLogical product groupDrill-18VPricing group, Assortment Group, Product family
status⬜ Optionalstringactive / inactiveProduct lifecycle statusactiveLifecycle Status, Availability status
stock⬜ Optionalinteger≥ 0Current stock level125Inventory level, Stock_on_hand, Available quantity
product_type⬜ OptionalstringTextProduct classificationPower ToolsItem type
category1⬜ OptionalstringTextTop-level categoryToolsDepartment
category2⬜ OptionalstringTextSubcategoryPower Tools
category3⬜ OptionalstringTextSubcategory level 3Drills
category4⬜ OptionalstringTextSubcategory level 4Cordless
category5⬜ OptionalstringTextSubcategory level 518V
image_url⬜ OptionalstringURLProduct image URLhttps://…
product_url⬜ OptionalstringURLProduct page URLhttps://…
rrp⬜ Optionaldecimal(12,2)2 decimalsRecommended retail price129.99MSRP, List Price, Recommended Price
regular_price⬜ Optionaldecimal(12,2)Dot separatorThe standard, non-discounted price of the product139.99Base price, Normal price, Standard price
product_created_date⬜ OptionaldateYYYY-MM-DDProduct creation date2024-01-15Product Launch date
price_effective_date⬜ OptionaldateYYYY-MM-DDPrice effective date2026-02-01Price start date, Price valid from
cost_effective_date⬜ OptionaldateYYYY-MM-DDCost effective date2026-01-15Cost start date, Cost valid from
size⬜ Optionaldecimal or stringNumeric or textSize value12Cariant size
uom⬜ OptionalstringUnit codeUnit of measurepcsUnit, Measurement unit
tax_rate⬜ Optionaldecimal(5,4)0–1VAT rate (0.20 = 20%)0.20Tax rate, Vat percentage
currency⬜ Optionalstring(3)ISO codeCurrencyEURCurrency code, Iso currency

4. Alignment with transaction schema

4.1 Keys Mandatory alignment:
transaction.product_id = product.product_id
**4.2 Currency Consistency If transactions include currency, product file must include **currency **4.3 VAT Consistency **If VAT is included in transaction prices:
  • Provide vat_rate in product file
  • Clarify whether unit_price in transactions is gross or net

5. Data format requirements

5.1 Dates
YYYY-MM-DD
Example:
2026-02-18
5.2 Numeric Fields
  • Decimal separator: .
  • No currency symbols
  • No thousand separators

6. Custom attributes (extensibility model)

You can add additional attributes as extra columns. Examples:
  • material
  • color
  • season
  • gender
  • supplier_id
  • competitor_reference
  • margin_group
  • elasticity_cluster
Rules for custom attributes
  • Must not overwrite required column names
  • Must follow consistent naming
  • Must contain a single value per row
  • No nested JSON inside Excel cells
Example:
product_idproduct_namematerialcolor
P001Tent 3PPolyesterGreen

7. File format

Accepted:
  • CSV (UTF-8 preferred)
  • XLSX
**One row per SKU. ** No pivot tables.
No formulas.
Raw data only.

8. Minimal product dataset (absolute minimum)

If system limitations exist:
product_id
product_name
price
unit_cost
However, for pricing analytics it is strongly recommended to include:
product_id
product_name
price
unit_cost
brand
category 1–3
rrp
regular_price
vat_rate
currency

9. SQL schema example

CREATE TABLE product_master (
    product_id VARCHAR(64) PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    sku VARCHAR(64),
    barcode VARCHAR(64),
    brand VARCHAR(128),
    manufacturer VARCHAR(128),
    product_group VARCHAR(128),
    status VARCHAR(32),
    stock INT,
    product_type VARCHAR(128),
    category1 VARCHAR(128),
    category2 VARCHAR(128),
    category3 VARCHAR(128),
    category4 VARCHAR(128),
    category5 VARCHAR(128),
    image_url TEXT,
    product_url TEXT,
    size VARCHAR(64),
    uom VARCHAR(32),
    product_created_date DATE,
    rrp DECIMAL(12,2),
    regular_price DECIMAL(12,2),
    vat_rate DECIMAL(5,4),
    currency CHAR(3),
    price_effective_date DATE,
    cost_effective_date DATE
);