Skip to content
Calquer

Track Product Prices in a Spreadsheet (No Code)

By M H TawfikUpdated 12 min read

price monitoring no codecompare prices spreadsheetscrape product prices

To track product prices in a spreadsheet, capture each product's name, price, currency, URL, and the date you collected it into rows. Re-run the same capture yourself on a regular cadence and append the new rows. Comparing those dated snapshots in a sheet reveals price drops, trends, and which retailer is cheapest.

This guide shows the exact columns to use, a repeatable capture workflow, and the spreadsheet formulas that turn raw rows into a working price tracker.

Why a price spreadsheet beats manual checking

A price spreadsheet beats manual checking because it captures dozens of products at once, timestamps every snapshot, and keeps a history you can compare. Manual checking captures one product, one moment, with no record. A sheet lets you sort by price, compare retailers side by side, and see whether today's "deal" is actually lower than last week.

Manual price checking has three problems. You forget what the price was yesterday, so you can't tell a real drop from a fake one. You can only watch a handful of products before it gets tedious. And you have no record to look back on when you want to decide if now is a good time to buy.

A spreadsheet fixes all three:

  • Memory — each row is timestamped, so you always know what the price was.
  • Scale — one capture grabs an entire catalog page, not one item.
  • Analysis — sort, filter, and chart prices instead of guessing.

The core idea behind a price tracker is to scrape product prices into rows, then repeat that capture over time. Each repeat adds a new dated snapshot. The comparison happens in the sheet, not in your head.

Step-by-step: export a catalog of products and prices to CSV

To export a catalog to CSV, open the product list page, use a pattern-detecting tool to grab every item card, keep the title, price, and link columns, then download the file. The tool reads the repeating "card" pattern once and applies it to every product on the page automatically.

Most shopping pages are a single product card repeated many times: an image, a title, a price, and a link, stacked in a grid. Where a structure repeats, a no-code tool can learn it from one example and capture all of them. Here is the workflow with a pattern-detecting extension like Calquer:

  1. Open the catalog page. Go to the search results, category, or brand page that lists the products you want to watch.
  2. Let the tool detect the list. Open the extension. A good detector highlights the largest repeating group — usually the product grid — with no field-by-field clicking.
  3. Keep the columns you need. Toggle off extras and rename columns in plain English: Product, Price, Link.
  4. Collect across scroll and pagination. Start the run so it follows lazy-loaded rows and "Next page" links, capturing the full catalog, not just the first screen.
  5. Download as CSV. Review the rows, then export. CSV opens directly in Excel or Google Sheets.

Capture the product link in its own column. The URL is what lets you re-find each product later and re-check its price whenever you want.

This is the same pattern-detection approach used for any repeating layout. If you want the full breakdown of no-code methods, see Export Any Website to CSV Without Code.

The columns a price tracker needs (product, price, currency, URL, date)

A price tracker needs five core columns: product name, price, currency, product URL, and the date you captured it. The product name identifies the item, price and currency record the value, the URL lets you re-find it, and the date turns a list of prices into a history you can compare over time.

Here is what each column does and why it matters:

ColumnExampleWhy it matters
ProductWireless Headphones X200Identifies the item; used to group snapshots
Price129.99Store the number only — no currency symbol — so it sorts and calculates
CurrencyUSDKeeps multi-region or multi-store prices comparable
URLthe product linkLets you re-find and re-check the exact item
Date2026-06-02Timestamps the snapshot; the backbone of price history
RetailerStore AOptional — needed when comparing across sites

Two tips that save hours later:

  • Keep price numeric. Store 129.99, not $129.99. A symbol turns the cell into text, which breaks sorting and math. If your capture includes the symbol, strip it in the sheet (more below).
  • Use a sortable date. 2026-06-02 (year-month-day) sorts correctly as text and as a date. Avoid 6/2/26.

Many tools add a capture date for you. If yours doesn't, add a Date column and fill it with the day you ran the capture.

Building a price-history sheet you re-run on a regular cadence

To build a price-history sheet, capture the same products on a regular cadence — weekly, for example — and append each new batch of dated rows to one growing sheet instead of overwriting it. Over time you accumulate multiple dated rows per product, which is exactly what you need to see how a price moved.

The key word is append. Each run produces a fresh CSV. You add those rows to the bottom of one master sheet rather than replacing the old data. After a few runs your sheet looks like this:

ProductPriceCurrencyDate
Headphones X200129.99USD2026-05-19
Headphones X200129.99USD2026-05-26
Headphones X200109.99USD2026-06-02

A simple, reliable cadence:

  1. Pick an interval. Weekly is plenty for most shopping decisions; daily for fast-moving deals.
  2. Re-run the same capture. Open the same catalog page and run the same column setup so the data lines up.
  3. Append the CSV. In Google Sheets, paste the new rows below the last row. In Excel, do the same, or load each CSV through Data → From Text/CSV and append in Power Query.
  4. Confirm the date column changed. Each batch should carry the new capture date.

This is price monitoring no code in practice: no script, no server, no cron job — just the same point-and-click capture, repeated, with the rows piling up over time. For an Excel-centric version of this workflow, see Scrape Website Data Into Excel (No Code).

If your capture leaves the currency symbol in the price, clean it once per batch. In Google Sheets, =VALUE(SUBSTITUTE(A2,"$","")) turns $129.99 into the number 129.99. In Excel, Power Query's "Replace Values" plus "Change Type" does the same during import.

Comparing prices across multiple retailers

To compare prices across retailers, capture each retailer's catalog into the same sheet with a Retailer column, then use a pivot table or MINIFS to find the lowest price per product. Adding the retailer name to every row lets you line up the same item across stores and see who is cheapest at a glance.

The setup:

  1. Capture each retailer separately, adding a Retailer value (Store A, Store B) to each batch.

  2. Match products across stores. This is the hard part — store A and store B may name the same item differently. Add a Match Key column with a shared identifier (a model number, or a cleaned product name) so the same product lines up.

  3. Find the lowest price. Use a pivot table grouped by Match Key, or a formula:

    • Google Sheets: =MINIFS(Price_range, MatchKey_range, "X200")
    • Excel: =MINIFS(Price, MatchKey, "X200")

A compare prices spreadsheet that pulls everything into one place beats flipping between browser tabs. You see all retailers in one view, sorted lowest to highest, with the date each price was captured so you're not comparing a stale price to a fresh one.

Match KeyRetailerPriceCurrencyDate
X200Store A129.99USD2026-06-02
X200Store B124.50USD2026-06-02
X200Store C134.00USD2026-06-02

The same multi-source comparison idea works for any catalog of listings, including property data — see Scrape Real Estate Listings to CSV for a worked example.

To spot price drops, compare each product's latest captured price against its previous one and flag any decrease. A simple lookup that pulls the prior price, subtracted from today's, surfaces drops instantly. Charting a product's price by date shows the longer trend — whether it's falling, climbing, or bouncing around a steady number.

Once you have dated snapshots, a few techniques do the work:

  • Flag drops. Compute change versus the previous capture. In Google Sheets, sort by product and date, then =B3-B2 gives the change between consecutive snapshots; a negative number is a drop. Conditional formatting can color negatives green.
  • Compare to a baseline. Keep a "target price" column and flag any row where Price is at or below your target.
  • Chart the trend. Make a line chart with Date on the x-axis and Price on the y-axis for one product. The shape tells you if the current price is genuinely low or just back to normal.
  • Find the all-time low. =MIN() over a product's price column tells you the best price you've ever recorded — useful context for any "sale."

A "50% off" badge means nothing without history. Your dated rows are what prove whether the sale price is actually lower than the normal price, or just the regular price with a sticker on it.

Trends matter more than any single snapshot. A price that drops every few weeks and bounces back is a different decision than one steadily falling. The history in your sheet is what makes that visible.

Doing it ethically and on your own device

Track prices ethically by collecting only public data you can already see in your browser, respecting each site's terms of service and robots.txt, capturing at a gentle, human pace, and keeping the data on your own device. Public, factual pricing is generally the lowest-risk category of data to collect, but the site's rules and your local laws still apply.

A few grounded points:

  • Public, factual data. Prices shown on a public product page are facts you can already read. That is generally lower-risk than personal data. Personal data brings rules like the EU's GDPR and California's CCPA into play, so a price-only tracker stays clear of most of that.
  • Terms of service and robots.txt. Many sites address automated access in their terms and robots.txt. The U.S. case hiQ Labs v. LinkedIn explored scraping of publicly available data; it's a reminder that the legal picture is nuanced and site terms matter. Read each site's rules before you start a recurring capture.
  • Be gentle. Capturing a catalog page once a week at browsing speed is very different from hammering a server. Keep your cadence reasonable.
  • Keep it on your device. Cloud scrapers send the pages — and whatever you collect — to a third-party server. A local browser extension reads the page you're already viewing and writes the CSV on your machine. Nothing is uploaded, and there's no account. See how Calquer keeps everything on-device.

For a fuller, plain-English overview, read Is Web Scraping Legal?. None of this is legal advice — check the specific site's terms and the law where you live.

FAQ

How do I track product prices in a spreadsheet without code?

Capture each product's name, price, currency, URL, and capture date into rows using a no-code, pattern-detecting browser extension. Re-run the same capture yourself on a regular cadence and append the new dated rows to one sheet. Comparing those snapshots shows price drops and trends — no scripts, schedulers, or servers required.

How often should I re-check prices?

Weekly suits most shopping decisions and keeps your sheet manageable. Use daily checks for fast-moving deals or limited-time sales, and monthly for slow, big-ticket items. Match your cadence to how quickly the price actually changes, and keep captures at a gentle, human pace.

Can I compare prices across different stores in one sheet?

Yes. Capture each store's catalog into the same sheet with a Retailer column and a shared Match Key so the same product lines up across stores. Then use a pivot table or a MINIFS formula to find the lowest price per product at a glance.

Why is my price column not sorting correctly?

Almost always because the cell holds text, not a number — usually a leftover currency symbol like $. Strip it with =VALUE(SUBSTITUTE(A2,"$","")) in Google Sheets, or Power Query's Replace Values plus Change Type in Excel. Store prices as plain numbers and sorting works.

Does this work in both Excel and Google Sheets?

Yes. CSV opens directly in both. In Excel, load each batch via Data → From Text/CSV (Power Query) and append; in Google Sheets, paste new rows below the last row. Some tools also export JSON and TSV if you prefer those formats.


Ready to start tracking? Add Calquer to Chrome and turn your next catalog page into a price-tracking spreadsheet — free, no code, 100% on your device.

Keep reading

← All articles