Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt

Use this file to discover all available pages before exploring further.

The Competitor Prices dataset allows you to upload, monitor, and analyze competitor pricing at SKU level over time. This dataset powers:
  • Competitive positioning analysis
  • Price gap and price index calculations
  • Dynamic pricing automation
  • Promo monitoring
  • AI elasticity and competitive pressure modeling
Each row represents:
One competitor price observation for one product at a specific point in time

Dataset structure

Competitor Prices is a time-series dataset. You can upload:
  • Historical snapshots (6–24 months recommended)
  • Daily / weekly price updates
  • Automated feeds (scraping, Google Shopping, APIs)

Data schema

All required and optional fields are listed below.
Field NameRequiredTypeFormatDescriptionAlternative NamesExample
productId✅ YesstringTextProduct identifier linked to your Products datasetproduct_id, sku_id, item_id, product_codeP001
datetime✅ YesdatetimeYYYY-MM-DD HH:MM:SSDate & time of price observationdate, timestamp, observed_at, price_date2026-02-22 14:35:00
competitorName✅ YesstringTextCompetitor / retailer namecompetitor, seller, shop_name, retailerBauhaus
regularPrice✅ YesfloatDot separatorCompetitor regular (non-discounted) priceprice, list_price, base_price125
promoPrice⬜ NofloatDot separatorCompetitor promotional price (if applicable)sale_price, discounted_price, promo_price119.99
currency⬜ NostringISO 4217Currency codecurr, currency_codeEUR
url⬜ NostringURLSource product pagelink, product_url, source_urlhttps://bauhaus.fi/product123
barcode⬜ NostringTextEAN / UPC barcodeean, ean13, upc, gtin5901234123457
sku⬜ NostringTextCompetitor SKUcompetitor_sku, seller_skuSKU-1001
status⬜ NostringTextLifecycle status (active / discontinued)availability_status, product_statusactive
stock⬜ NofloatNumericOn-hand inventory quantity (if available)inventory, stock_qty, quantity_available125
You may add additional attributes as separate columns.

Product matching

Retailgrid matches each competitor price observation to a product in your Products dataset using this priority order:
  1. productId — used first when present.
  2. barcode (EAN / UPC) — used as fallback when productId is missing.
  3. sku — used as a final fallback when neither productId nor barcode matches.
Provide all three when possible. Provide productId at minimum — it gives the highest match accuracy and the fewest unmatched rows. Matching rules are configurable during dataset setup. Custom product codes and composite keys are also supported. Formatting tips:
  • Ensure consistent formatting between datasets.
  • Avoid leading/trailing spaces.
  • Keep barcode values numeric without formatting.

Price interpretation logic

Retailgrid applies the following logic:
  • If promoPrice exists → it is treated as the active selling price
  • If promoPrice is empty → regularPrice is used
  • If both exist → system calculates:
    • Discount %
    • Promo depth
    • Effective price
    • Price gap vs your price
    • Price index

Currency handling

  • If all data is in one currency → no conversion required
  • If multiple currencies are present → FX conversion rules must be configured
Recommendation:
Upload competitor prices in the same currency as your product prices.

Time-series behavior

Competitor Prices are stored historically. This enables:
  • Price change tracking
  • Promo frequency analysis
  • Volatility scoring
  • Price war detection
  • EDLP vs Hi-Lo classification
  • AI elasticity modeling
Each upload should include a valid datetime value. Do not overwrite history.

Data format requirements

Supported formats:
  • CSV (recommended)
  • XLSX
Encoding:
  • UTF-8
  • Dot (.) as decimal separator
Rules:
  • One row = one product × one competitor × one timestamp
  • Do not combine multiple competitors in one row
  • Do not store historical prices in multiple columns
Correct example:
productIddatetimecompetitorNameregularPrice

Validation rules

Upload will fail if:
  • Required fields are missing
  • datetime format is invalid
  • regularPrice is empty or non-numeric
  • Matching with Products dataset fails
  • Duplicate identical rows are detected

Example row

productIddatetimecompetitorNameregularPricepromoPricecurrencyurlbarcodeskustatusstock
P0012026-02-22 14:35:00Bauhaus125119.99EURhttps://bauhaus.fi/product1235901234123457SKU-1001active125