How to compare two supplier price lists

A step-by-step method for taking a previous and a current supplier price list, working out exactly what changed, and turning that into a cost and margin decision — by hand or with a tool.

What you need before you start

This guide assumes you are comparing two price lists from the same supplier: an older one you have been buying against and a newer one you have just received. Comparing catalogues from different suppliers is a different exercise, because the item codes and product definitions will not line up.

  • The previous supplier price list (CSV or XLSX).
  • The current supplier price list (CSV or XLSX).
  • An item identifier column in each file — a SKU or supplier item code.
  • A unit cost column in each file.
  • Optionally, your selling prices, to see margin impact.
  • Optionally, currency and unit-of-measure columns, if the files carry them.

The method, step by step

  1. Identify which list is previous and which is current

    Decide which file is the older baseline and which is the new one you received. If the files are not dated, use the supplier's effective date from the covering email or the document header. Comparing the wrong way round flips every increase into a decrease.

  2. Decide which columns you actually need

    For a cost comparison you need an item identifier (usually a SKU or supplier item code) and a unit cost in each file. Selling price is optional and only needed for margin impact. Currency and unit of measure are worth keeping if the files carry them, because a change there makes two rows non-comparable. Everything else — descriptions, pack sizes, lead times — can be ignored for the comparison itself.

  3. Match items between the two lists

    Pair rows by their identifier. Match the SKU exactly as written first. For the rows that do not match exactly, retry with a light normalization: trim outer whitespace and treat ASCII letter case as equivalent, so sku-123 and SKU-123 are the same item. Identifiers that are not plain ASCII are compared as-is. Where an identifier appears more than once on a side, or a normalized form collides, leave those rows unmatched for review rather than pairing them arbitrarily. This is identifier matching, not name or description matching — it does not infer that two differently coded products are the same.

  4. Calculate the price change for matched items

    For every matched pair, the absolute change is the current cost minus the previous cost. The percentage change is that absolute change divided by the previous cost. When the previous cost is zero there is no meaningful percentage, so leave it blank rather than showing infinity.

  5. Classify every row

    Sort the result into a small set of outcomes: increased, decreased, or unchanged for matched items; new for an item only in the current list; removed for an item only in the previous list; needs review for rows that could not be matched cleanly; and incompatible for matched rows that cannot be compared directly, such as a currency or unit-of-measure mismatch between the two lists.

  6. Handle the rows that do not compare cleanly

    Needs-review rows usually mean a duplicated or ambiguous code — fix the identifier at source, or check those items by hand. Incompatible rows need the currency or unit of measure aligned before a comparison means anything. For new and removed items, confirm with the supplier whether it is a genuine addition or discontinuation, or just a re-code of an existing product that would otherwise look like one item removed and one added.

  7. Translate cost changes into margin impact

    A cost change is not the whole story if you know your selling prices. Gross margin as a rate is (selling price − cost) ÷ selling price. The margin change is the new margin rate minus the old one, in percentage points. The selling price that preserves your previous margin is new cost ÷ (1 − previous margin). Margin is a share of the selling price, not of cost — do not confuse it with markup. None of this changes a price for you or constitutes financial advice; it is arithmetic you act on.

  8. Review, filter, and export

    Work through the categories that matter — usually the increases first — and filter to just those rows. Export the filtered set so the change list can be shared, attached to a supplier conversation, or worked through item by item.

  9. Keep a record when it matters

    If the comparison is one you will want to look back at, keep the structured result: the matched rows, their classifications, and the deltas, rather than the raw spreadsheets. In CostRift this is Save to History, an explicit step available when you are signed in; it stores the canonical rows and lets you browse past comparisons by supplier and snapshot.

A worked example

Five items, previous cost against current cost, with the change and the classification. Numbers are illustrative and in any currency.

ItemPreviousCurrentChange%Classification
A-10010.0011.50+1.50+15%Increased
A-2058.007.20−0.80−10%Decreased
A-3304.504.500.000%Unchanged
A-540—22.00——New
A-1106.00———Removed

A-540 appears only in the current list, so it is new; A-110 appears only in the previous list, so it is removed. Neither has a before-and-after cost, so neither has a change or a percentage.

Doing this in a spreadsheet

For a one-off comparison, a spreadsheet handles this well: put both lists in one workbook, use a lookup or a Power Query merge to bring the previous cost next to each current row by identifier, add columns for the absolute and percentage change, and flag the rows that did not match as new or removed. It gets more manual when the comparison repeats every quarter, the column layout shifts between files, or a few hundred rows silently fail to match.

For the spreadsheet mechanics in full — the exact lookup formulas, the divide-by-zero guard, and the Power Query anti-joins for new and removed items — see how to compare two supplier price lists in Excel.

Common mistakes

  • Comparing lists from two different suppliers. Codes and product definitions rarely line up, so the matches are misleading.
  • Pairing duplicate or ambiguous codes just to get a number. An arbitrary pairing produces a confident but wrong delta.
  • Reading a re-code as one item removed and one added, when it is the same product with a new identifier.
  • Confusing gross margin with markup. They have different denominators, and a price rise sized with markup will not restore the margin you had.
  • Ignoring a currency or unit-of-measure change on a row and comparing the raw numbers anyway.
  • Scanning a long list by eye instead of computing the change on every row. The small increases in the middle of the file are the ones that get missed.

Your files and privacy

If you run the comparison in CostRift, your CSV and XLSX files are read and compared in your browser, and the raw files are not sent to CostRift servers to run the comparison. Only when you are signed in and choose Save to History are the structured rows of a comparison — not the original files — persisted to your account. The Privacy Policy covers this in full.

FAQ

Which columns do I need to compare two supplier price lists?

An item identifier (SKU or supplier item code) and a unit cost in each file. Add selling prices only if you want to see margin impact. Keep currency and unit of measure if the files include them.

How do I calculate a supplier price increase?

Subtract the previous unit cost from the current unit cost for the absolute change, then divide that by the previous cost for the percentage change. If the previous cost is zero, the percentage is undefined and is left blank.

How do I match products when the SKUs are formatted differently?

Match on the identifier exactly first, then retry unmatched rows with outer whitespace trimmed and ASCII letter case treated as equal. Anything still unmatched, or where a code appears more than once, is left for review rather than guessed. There is no name-based or approximate matching.

How do I find items that were added or dropped?

Any identifier in the current list with no counterpart in the previous list is new; any identifier in the previous list with no counterpart in the current list is removed. Check a handful against the supplier to rule out re-codes.

Can I compare Excel and CSV supplier price lists?

Yes. Both formats hold the same tabular data. CostRift reads CSV and XLSX, and the two files are mapped independently so their column names can differ.

How does a supplier price increase affect my margin?

At an unchanged selling price, a higher cost lowers your gross margin rate, which is (selling price − cost) ÷ selling price. The selling price that restores the previous margin is new cost ÷ (1 − previous margin).

Can I save a comparison to look at later?

When you are signed in, Save to History keeps the structured rows of a comparison — not the original files — so you can revisit it by supplier and snapshot. It is an explicit action, never automatic.

Where to go next

To see this method applied to a whole price list at once, read about CostRift's supplier price list comparison workflow. For a single item, the margin impact calculator and the guide to responding to a supplier price increase go deeper on the decision itself. If you are instead trying to find which of several suppliers is cheapest for the same items, see comparing supplier quotes.

Compare your own two lists

Bring a previous and a current supplier price list and run the comparison.

Compare your supplier price lists