---
title: "Monitor prices across retailers"
description: "Build a multi-retailer price tracker from a product catalogue, schedule it, match the same product across sites, and put a dashboard on top. About twenty minutes."
url: "https://www.jsonify.com/docs/tutorials/price-monitoring"
---

[Documentation](https://www.jsonify.com/docs/) Filter pages

## Getting started

*   [What is Jsonify?](https://www.jsonify.com/docs/)
*   [How pipelines work](https://www.jsonify.com/docs/how-jsonify-works)
*   [Your first pipeline](https://www.jsonify.com/docs/getting-started/first-pipeline)
*   [Workspaces](https://www.jsonify.com/docs/getting-started/workspaces)
*   [Glossary](https://www.jsonify.com/docs/getting-started/glossary)

## Tutorials

*   [Track the Hacker News front page](https://www.jsonify.com/docs/tutorials/hacker-news)
*   [Monitor prices across retailers](https://www.jsonify.com/docs/tutorials/price-monitoring)
*   [Get a Slack alert when a price drops](https://www.jsonify.com/docs/tutorials/slack-price-alert)
*   [Use a dataset from your agent](https://www.jsonify.com/docs/tutorials/agent-query)

## Jason

*   [Chatting with Jason](https://www.jsonify.com/docs/jason/chat)
*   [Changing a pipeline](https://www.jsonify.com/docs/jason/changing-a-pipeline)
*   [Agents, workers and repairs](https://www.jsonify.com/docs/data-agents)

## Pipelines

*   [The pipeline page](https://www.jsonify.com/docs/pipelines/overview)
*   [Statement of work and steps](https://www.jsonify.com/docs/pipelines/statement-of-work)
*   [Inputs and parameters](https://www.jsonify.com/docs/pipelines/inputs)
*   [Settings reference](https://www.jsonify.com/docs/pipelines/settings)
*   [Versions and changelog](https://www.jsonify.com/docs/pipelines/versions)

## Runs

*   [Running a pipeline](https://www.jsonify.com/docs/runs/running)
*   [Scheduling](https://www.jsonify.com/docs/runs/scheduling)
*   [Run detail](https://www.jsonify.com/docs/runs/run-detail)
*   [Run lifecycle](https://www.jsonify.com/docs/runs/lifecycle)
*   [Verification and repair](https://www.jsonify.com/docs/runs/verification-and-repair)

## Datasets

*   [Dataset pages](https://www.jsonify.com/docs/datasets/overview)
*   [Versions](https://www.jsonify.com/docs/datasets/versions)
*   [Query and export](https://www.jsonify.com/docs/datasets/query-and-export)
*   [Row detail and provenance](https://www.jsonify.com/docs/datasets/provenance)
*   [Sharing](https://www.jsonify.com/docs/datasets/sharing)

## Analytics

*   [Dashboards](https://www.jsonify.com/docs/analytics/dashboards)
*   [Newsletters](https://www.jsonify.com/docs/analytics/newsletters)

## Alerts

*   [Alert rules](https://www.jsonify.com/docs/alerts/rules)
*   [Alert history and notifications](https://www.jsonify.com/docs/alerts/history)

## Integrations

*   [Integrations overview](https://www.jsonify.com/docs/integrations/overview)
*   [Slack and email](https://www.jsonify.com/docs/integrations/slack-and-email)
*   [Sheets, warehouses and webhooks](https://www.jsonify.com/docs/integrations/destinations)
*   [Ingest and serve API](https://www.jsonify.com/docs/integrations/api)
*   [Connect your agent (MCP)](https://www.jsonify.com/docs/integrations/mcp)
*   [Command line](https://www.jsonify.com/docs/integrations/cli)

## Workspace and account

*   [Workspace settings](https://www.jsonify.com/docs/workspace/settings)
*   [Team](https://www.jsonify.com/docs/workspace/team)
*   [Billing and usage](https://www.jsonify.com/docs/workspace/billing)
*   [Data retention](https://www.jsonify.com/docs/workspace/data-retention)

## Plans

*   [Radar or Benchmark? Enterprise](https://www.jsonify.com/docs/radar-vs-benchmark)
*   [Row pricing and managed service](https://www.jsonify.com/docs/pricing-model)

## More

*   [Connect your agent](https://www.jsonify.com/connect)
*   [Pricing](https://www.jsonify.com/pricing)
*   [Contact support](https://www.jsonify.com/contact)

[Docs](https://www.jsonify.com/docs/)/Tutorials

# Monitor prices across retailers

Build a multi-retailer price tracker from a product catalogue, schedule it, match the same product across sites, and put a dashboard on top. About twenty minutes.

This tutorial follows the Market Radar workspace used throughout these docs. It starts from a spreadsheet of products and ends with five scheduled pipelines, a canonical product catalogue matched across twelve retailers, a dashboard and a morning brief. You will build a smaller version, then grow it.

You need

A product list (CSV or sheet)

Sources

2 to 12 retailer sites

Time

About 20 minutes plus the build

Result

Daily prices, promotions and stock per retailer

1.  **Catalogue**your product list
2.  **Discover pages**find each product on each retailer
3.  **Match products**one canonical product across sites
4.  **Track prices**daily price, promo, stock
5.  **Analyse**dashboard + brief

How the workspace is shaped. Each step is its own pipeline, so each can run, fail and be repaired on its own.

## 1\. Start from your catalogue

1.  **Prepare a product list.** One row per product with whatever identifiers you have: SKU, brand, name, pack size, and any known retailer URLs. A dozen products is enough to start.
2.  **Describe the job and attach the file.** In the setup dialog, write the brief and attach the catalogue.

    > Track the price, promotion and availability of the products in the attached catalogue across Amazon, Walmart, Best Buy and Target, every morning. Match the same product across retailers so I can compare them in one row per product per retailer. Keep the product page link, the list price, the current price, any promotion text, and whether it is in stock. Flag price drops of 10% or more.

3.  **Review the proposal.** Jason proposes the fields, the retailers it can reach, the matching rule (identifier first, then brand plus name plus pack size) and a daily schedule. Refine here if a retailer is missing or a field is wrong.
4.  **Build.** Jason explores each retailer, builds the pipelines, runs them once on a sample of your catalogue and sends the result for review. Expect this to take a while for four sites; you will get a notification when it is done.

![The build conversation ending with a task-completed card listing the pipelines, datasets, dashboard and alerts Jason created](/assets/images/product/tut-price-chat.png)

The end of the Market Radar build. Jason reports what it made and links to each piece.

## 2\. Understand what Jason built

Open **Pipelines**. Rather than one large pipeline, Jason split the job into stages that depend on each other. That is deliberate: a retailer changing its page layout only breaks the stage that reads it.

![Pipelines page showing Catalogue discovery, Product identity matching, Price & promotion tracking, Inventory monitoring, Change detection and Retail Signal Fusion cards](/assets/images/product/tut-price-pipelines.png)

Six pipelines, each with its last run and next scheduled run.

| Pipeline | What it does | Reads | Publishes |
| --- | --- | --- | --- |
| Catalogue discovery | Finds the product page for each catalogue item on each retailer | your catalogue | product pages |
| Product identity matching | Decides which pages are the same product | product pages | product matches |
| Price & promotion tracking | Collects list price, current price, promotion text | product matches | price observations |
| Inventory monitoring | Collects stock state | product matches | inventory signals |
| Change detection | Compares today with yesterday and flags meaningful moves | observations | daily rollups |
| Retail Signal Fusion | Joins everything into one product-level view | all of the above | live product offers |

Open **Price & promotion tracking** and read its statement of work. Note the parameters strip: the drop threshold you asked for is a parameter, so you can change it without asking Jason.

## 3\. Check the first rows

Open the **Live product offers** dataset. Each row is one product with a column per retailer link, the current and previous price, availability and a confidence score for the match.

![Live product offers dataset table with product, brand, current price, previous price, availability and retailer link columns](/assets/images/product/tut-price-dataset.png)

Compare retailers in one row. Column formats make prices and percentages readable.

Sort by **confidence** ascending to review the weakest matches first. If a match is wrong, tell Jason:

> The Galaxy Watch 7 match on Best Buy is the 44mm model; we track the 40mm. Match on the model number in the title, not the name alone.

Jason updates the matching pipeline as a new version and re-runs it.

## 4\. Let it run, then look back

The pipelines are scheduled at staggered times so each stage runs after the one it depends on. After a few days, open **Latest runs** to see the rhythm, and open any run to see rows, duration and pages fetched.

![Latest runs page grouped by day with completed scheduled runs for each pipeline](/assets/images/product/tut-price-runs.png)

Scheduled runs, grouped by day. A failed run shows its error inline, and the run that follows it carries the repaired version.

## 5\. Put a dashboard on top

Open **Analytics → New Dashboard**, pick the **Live product offers** and **Price observations** datasets, and let the wizard propose widgets: products tracked, price changes today, promotions live, in-stock coverage, a 30-day velocity chart and a per-retailer breakdown.

![Competitive Market Pulse dashboard with headline metrics, a 30-day price and promotion velocity chart and per-retailer bars](/assets/images/product/tut-price-dashboard.png)

The dashboard updates on every publish.

Ask Jason for a morning brief if you would rather read than look:

> Write a daily morning brief from these datasets: the biggest price cuts, promotions that started or ended, and any products that went out of stock. Email it to the buying team at 07:00.

## 6\. Grow it

*   **More retailers.** “Add Costco and Home Depot with the same fields.” Jason extends discovery and matching; the other pipelines pick up the new pages automatically.
*   **More products.** Upload a new catalogue version to the input dataset, or append rows. The next run picks them up.
*   **Regional prices.** Add a parameter for region or store, and run the pipeline once per value.
*   **Alerts.** The next tutorial sends a Slack message when a price drops.

[**Get a Slack alert when a price drops**

Connect Slack and write the rule.

](https://www.jsonify.com/docs/tutorials/slack-price-alert)[**Inputs and parameters**

Change thresholds and regions without a rebuild.

](https://www.jsonify.com/docs/pipelines/inputs)[**Dashboards**

Every widget type and how to edit them.

](https://www.jsonify.com/docs/analytics/dashboards)

[PreviousTrack the Hacker News front page](https://www.jsonify.com/docs/tutorials/hacker-news) [NextGet a Slack alert when a price drops](https://www.jsonify.com/docs/tutorials/slack-price-alert)

Something missing or wrong? [Tell us](https://www.jsonify.com/contact).[Build it →](https://factory.jsonify.com/setup)

## On this page
