Price List Comparator — Product overview

Price List Comparator

€8,10
Skip to product information
Price List Comparator — Product overview

Price List Comparator

€8,10

Drop in your old and new price list, and see exactly what changed, what's new, and what's gone — cost, price, and quantity deltas computed for you, right in your browser, nothing uploaded.

Compare two price lists — last month's and this month's, or any "before" and "after" CSV — by picking the column that uniquely identifies each row (SKU, item code, or product name), and get back a clear comparison: every item that changed (with the old and new value, the dollar delta, and the percent change), every item that's new, and every item that disappeared. Works across multiple value columns at once — cost, price, and quantity in the same pass — and exports the full diff as a CSV. One-time purchase, works fully offline, never touches a server.

What it does

What it does: Reads two CSVs (pasted or uploaded), lets you confirm which column is the unique key to match rows on — auto-detected first from column names like SKU/ID/code, with a plain-language warning if nothing looked confident enough to auto-detect — then confirms which other columns to compare (cost, price, quantity, or anything else). Rows are matched between the two files by an exact, case-insensitive key comparison — deliberately not fuzzy matching, so a typo in a SKU shows up honestly as one row removed and one row added rather than a silently wrong match. For every matched row, each compared column is checked: if both the old and new values are numeric, the tool computes the dollar delta and percent change automatically; if either value is blank, that's flagged with a plain-language note instead of guessed at. Rows that exist in only one file are marked added or removed. The results are filterable by status (changed/added/removed/unchanged), sortable by key, status, or largest percent change, and exportable as a single diff CSV with every before/after/delta/%-change value plus notes — ready to hand to a bookkeeper or drop into a repricing spreadsheet.

Who it's for: A shop owner, small distributor, or freelancer who gets a new supplier price sheet or inventory export periodically and needs to know precisely what moved before repricing shelves, updating a catalog, or flagging a supplier increase.

Example scenario: A shop owner receives this month's supplier price list as a CSV. Twenty items are unchanged, nine had a cost or price change, two were discontinued, and three new items were added — including one where the supplier's product code got fat-fingered between months (a genuine typo, not a real SKU change). The old free options are a bookkeeper manually eyeballing two spreadsheets, or building a VLOOKUP formula by hand for a one-off comparison. Instead, they load last month's and this month's CSV, confirm the SKU column, and immediately see: 9 changed (each with the exact $ and % move), 2 removed, 3 added (the typo'd row correctly shows up as one removed + one added rather than being silently treated as a real price change) — then export the diff CSV to hand to whoever updates the shelf tags.

What it explicitly does not do:

  • Does not fuzzy-match keys. A SKU that's misspelled, mistyped, or reformatted between the two files (a letter swapped for a similar-looking digit, extra whitespace beyond simple trimming, a reordered code) will not be matched — it will show up as one row removed and one row added. This is a deliberate design choice (silently "fixing" a mismatched key is exactly the kind of guess this tool won't make), not a bug, but it means very messy source data needs a cleanup pass first for a truly clean diff.
  • Does not merge or dedupe rows that share the same key value within a single file. If a key repeats, only the first occurrence is used for matching; the tool tells you exactly which keys duplicated and how many, but you'll want to fix duplicates in the source file for a fully reliable comparison.
  • Does not validate that a "price" or "cost" column is really a price — any column marked for comparison that parses as a number on both sides gets a delta and percent change; anything else is compared as plain text.
  • Does not remember anything between sessions — reload the page and both loaded files are gone.
  • Does not handle Excel's native .xlsx format — CSV only. Export from Excel/Sheets as CSV first.

Features

  • Auto-detects the key column (SKU, item code, product ID) from header names, with a visible warning if it couldn't confidently guess and had to fall back to the first column
  • Matches rows by exact, case-insensitive key comparison — never fuzzy — so a typo'd SKU shows up honestly as one row removed and one row added, not a silently wrong match
  • Compares multiple value columns in the same pass — cost, price, and quantity (or any others) — not just a single column
  • Computes the dollar delta and percent change automatically for every numeric column that changed
  • Flags blank/missing values with a plain-language note instead of guessing or silently dropping them
  • Handles column-order and column-name mismatches between the two files: auto-matches by header name first, with a manual override table if the headers genuinely don't line up
  • Detects and reports duplicate key values and blank-key rows within a file, rather than silently merging or dropping them
  • Filter results to just changed, added, or removed items; sort by key, status, or largest percent change
  • Exports the full diff — status, before/after/delta/%-change for every compared column, plus notes — as a single CSV
  • Runs entirely offline — no network requests, no analytics, nothing uploaded; tested at 6,000+ rows per file in well under a second

Browser support

Platform Result Notes
Desktop Chrome (macOS) Full Opened and visually confirmed in the real, installed Chrome app (loads correctly, no console errors). The complete functional flow — load two CSVs, column/key mapping (including manually fixing a fully-mismatched-header scenario), diff computation, filtering, sorting, and CSV export (a real file download, opened and verified in TextEdit) — was additionally run end-to-end through Chromium's real engine via Playwright, including a 6,000-vs-6,188-row performance run.
Desktop Edge / Brave Not separately tested Both are Chromium-based like Chrome, where the tool was confirmed Full; neither is installed on this machine, so this is an inference from the shared engine, not an independent test — not claimed as independently verified.
Desktop Safari (macOS) Full Opened and visually confirmed in the real, installed Safari app. This tool has no Chromium-only dependency (no File System Access API, no capability gap between browsers), so the full functional flow was run end-to-end through Safari's real WebKit engine via Playwright — same diff-correctness checks as Chrome, including the large-file run (976ms compare time for ~5,988 result rows) and a verified CSV export.
Desktop Firefox (macOS) Full Opened and visually confirmed in the real, installed Firefox app. Full functional flow run end-to-end through Firefox's real Gecko engine via Playwright, including the large-file run (698ms compare time) and a verified CSV export.
Small viewport / touch Checked Not a physical phone, but genuinely emulated (not assumed): a 390×844px touch-enabled mobile viewport (WebKit engine), with the full load → map → compare → results flow actually run through it. Confirmed no horizontal overflow (`document.body.scrollWidth` matched the viewport width exactly).
iOS Safari (iPhone/iPad) Not verified No physical iOS device available. iOS Safari shares desktop Safari's WebKit engine and this tool has no capability gap to begin with, so the same behavior is expected — but this is an inference, not a test on real hardware, and is not claimed as verified.
Android Chrome Full Tested on a real Android device in Chrome — works.

Method note on "automated testing": beyond opening each real installed browser app and visually confirming it loads cleanly, the functional flow (CSV parsing, column/key mapping including manual override of a mismatched-header scenario, numeric delta/%-change computation, duplicate-key and blank-key-value handling, filtering, sorting, CSV export as a real file download) was exercised end-to-end using Playwright driving each engine's own real Chromium/WebKit/Gecko binary — the same unmodified code, actually run, not read from source and assumed. A 20-row Before / 20-row After test pair — with 9 genuinely changed rows across three value columns, 3 added, 3 removed, 8 unchanged, one deliberately typo'd key (a letter "O" swapped for a zero, so it should not match), and one deliberately blank value — was hand-calculated first (every delta and percent change worked out by hand), then run through the tool; every single value matched the hand-calculated expectation exactly, in all three engines, with zero console errors.

FAQ

Does my price list get uploaded anywhere?
No. The entire tool is one static HTML file with no server component and no network calls. Every row is parsed and compared locally in your browser tab. You can open it with your Wi-Fi off, or read the page's source yourself to confirm there's nothing that sends data anywhere. (Worth knowing: several free online CSV-diff tools do run entirely client-side too — this isn't a claim unique to this tool — but a few require uploading your file to their server to process it, and even the client-side ones are hosted web apps you have to trust and revisit each time, not a file you keep.)

Can I compare more than just one price column?
Yes. Mark as many columns as you want to compare — cost, price, quantity, or anything else — and each gets its own before/after/delta/%-change in the results and the exported CSV.

Does this handle different column orders or column names between the two files?
Column order doesn't matter at all — columns are matched by header name, not position. If the two files use genuinely different header names for the same data (e.g. "SKU" vs. "Item Code"), the auto-match won't find it automatically, but the mapping screen lets you manually pair up any Before column with any After column before comparing.

What happens if a SKU is typo'd or slightly different between the two files?
It will not be matched — this tool only matches on an exact (case-insensitive) key, deliberately, so it never silently guesses that two different-looking values are "close enough." A typo'd key shows up as one row removed (from the old file) and one row added (in the new file), which is usually the honest, useful signal that something needs a second look.

Can I use this for client or commercial work?
Yes — personal and commercial use are both fine.

Is there a subscription?
No. One-time purchase, yours to keep and reuse forever.

  • ✓ Runs 100% offline in your browser
  • ✓ Single HTML file — no install, no dependencies
  • ✓ No account, no telemetry, no tracking
  • ✓ Buy once — yours forever

After checkout you get an instant download link. Open the file in any modern browser and it just works.

✓ 30-day refunds — keep the file either way
report.pdf — opened from your desktop, no installer:
  ✓ runs entirely on your device — Wi-Fi off? Still works.
  accounts sign-ups cloud uploads none
  ✓ your files stay where you put them

Prefer to try before buying? The browser versions of every tool run free at tools.untracked.tools — no upload, ever.

⚡
Instant delivery. Right after checkout, an email arrives with your download link (subject: “Your downloads are ready”). No account needed to receive it.
🔒
30-day refunds, straightforward — keep the file either way.
€
VAT included. The price you see is the price you pay.