---
title: "Ecommerce price monitoring: a practical guide"
url: https://www.datawebot.com/blog/price-monitoring-guide-for-ecommerce
description: "Design an ecommerce price monitoring workflow that distinguishes real price changes from variant, currency and collection changes. Run schedules and notifications in your own application. Download or store results within seven days; extraction history is not a permanent price-history database."
updated: 2026-10-23
author: datawebot team
---

Extraction guide

# Ecommerce price monitoring: build a reliable comparison series

Design an ecommerce price monitoring workflow that distinguishes real price changes from variant, currency and collection changes.

Updated October 23, 2026 · datawebot team

[← All guides](https://www.datawebot.com/blog)Field map ↓Try the workflow ↗

01 / INPUT**Same source + variant at two times**

02 / YOUR WORKFLOW**Validate identity → compare amount**

03 / OUTPUT**Change candidate for review**

## Keep the right fields.

Workflow field map

| Field / step | Input | Rule |
| --- | --- | --- |
| Series | Source + variant + currency | Do not join on the product title. |
| Delta | New amount minus previous amount | Calculate only for comparable observations. |
| Alert | Threshold + evidence links | Keep missing data separate from price drops. |

Synthetic catalog data · not a retrieval result

01 / Example record Fictional product

### Cotton Crewneck T-Shirt

`No source URL`

Products

1

Variants

4

Record origin

Synthetic

Page visits

Not applicable

[Field definitions](https://www.datawebot.com/docs/data)

02 / Inspect the example

| Variant | SKU | Example price | Example availability |
| --- | --- | --- | --- |
| Small / Navy | `DEMO-TEE-S-NV` | USD 32.00 | Example: available |
| Medium / Navy | `DEMO-TEE-M-NV` | USD 32.00 | Example: available |
| Medium / Sand | `DEMO-TEE-M-SD` | USD 34.00 | Example: unavailable |
| Large / Navy | `DEMO-TEE-L-NV` | USD 32.00 | Example: unknown |

All names, identifiers, prices and availability values are fictional. They do not describe a merchant’s catalog or inventory.

Illustrative schema · synthetic records

[Example CSV](https://www.datawebot.com/samples/catalogue-example.csv) · [Example JSON](https://www.datawebot.com/samples/catalogue-example.json) · [Use with an agent](https://www.datawebot.com/docs/agents)

## Build a comparable series before setting alerts.

A useful ecommerce price monitor compares the same offer on the same basis. Keep collection failures and identity changes outside the price-change calculation.

| Keep | Record | Decision |
| --- | --- | --- |
| 01 · Select | Source, product, variant, market, currency, pack and condition | Review the match once; reopen it when the source or configuration changes. |
| 02 · Collect | Bounded run with source URL, retrieval time and warnings | Schedule collection in your own application. Save results within the seven-day retention window. |
| 03 · Validate | Non-null price, known currency, acceptable age and complete required fields | Quarantine missing prices and stale records; neither is a zero-price offer. |
| 04 · Compare | Current price minus previous comparable price | Only calculate a percentage when the previous price is greater than zero. |
| 05 · Review | Threshold, previous/current evidence and delivery basis | Send a candidate alert to your workflow; the observation does not authorize repricing. |

[Wayfair scraper and product data ↗](https://www.datawebot.com/scraper) · [Alibaba.com scraper and product data ↗](https://www.datawebot.com/scraper) · [Best Buy scraper and product data ↗](https://www.datawebot.com/scraper)

## An observation can change without a price change.

These are comparison rules. The linked price-history exercise uses fictional records and timestamps to demonstrate matching and calculation; it contains no live store prices.

| Keep | Record | Decision |
| --- | --- | --- |
| Same price and comparable identity | Record another observation | Keep the collection time; an unchanged result is still fresh evidence. |
| Different currency or pack | Separate comparison series | Do not report a large drop caused by mixing currencies or pack sizes. |
| Missing product or failed run | Record a collection exception | Do not infer discontinuation from one failed observation. |
| Availability changes | Record an availability event | Preserve true, false and unknown as different values. |

[Runnable price-history exercise ↗](https://www.datawebot.com/blog/build-product-price-history-database) · [Synthetic example record · JSON ↗](https://www.datawebot.com/samples/price-history-example-first.json)

## Choose source pages before choosing a monitoring interval.

A useful ecommerce price monitoring tool needs stable inputs. Document the page type, variant key, seller, market and currency before deciding how frequently to collect.

| Source decision | Keep | Avoid |
| --- | --- | --- |
| Page type | Product URL for exact offers; category URL for discovery | Comparing a category-card price with a configured product price |
| Variant identity | Source product ID plus option or SKU key | Joining observations by product title alone |
| Seller and condition | Merchant, condition and fulfillment context | Combining marketplace offers into one unexplained price |
| Market | Country storefront, currency and delivery context | Treating regional storefronts as one price series |

[Taobao scraper and API considerations ↗](https://www.datawebot.com/scraper) · [Tmall scraper and product data ↗](https://www.datawebot.com/scraper) · [Zara scraper and product data ↗](https://www.datawebot.com/scraper) · [Trendyol scraper and product data ↗](https://www.datawebot.com/scraper)

Content reviewed 2026-10-23.

## Before you use the output

Run schedules and notifications in your own application. Download or store results within seven days; extraction history is not a permanent price-history database.

## Check one record first.

Start with the smallest useful scope. Compare the returned record with its source, confirm variant identity and inspect missing fields before applying the mapping to a larger dataset.

Keep extraction warnings and the retrieval timestamp with downstream output. When a required field is missing, leave it unresolved or return to the source; do not fill it from an assumption.

Working references [Product and variant schema ↗](https://www.datawebot.com/docs/data) · [Supported endpoints ↗](https://www.datawebot.com/scraper) · [Incomplete or unavailable results ↗](https://www.datawebot.com/docs/troubleshooting)

[Continue this workflow](https://www.datawebot.com/blog/build-product-price-history-database)
