July 26, 2026 · CostSentry

The Auto Parts Price File Playbook

Selling parts online means living inside other people's spreadsheets. A general merchandise store watches a dozen costs; a parts store carries fifty thousand part numbers across eight distributors, each sending files on its own schedule, in its own format, with its own idea of what "price" means. Here's how those files actually work — and a routine that survives the volume.

Where your cost data comes from

Most aftermarket sellers buy through warehouse distributors — Turn 14, Keystone, Meyer, Premier, Motorstate and the regional WDs — plus some direct brand accounts. Each one gives you pricing through some combination of:

Two things follow from this that matter more than anything else in this article. First, you have several cost sources for the same part, and they disagree. Second, the cheapest source changes over time — quietly, without anyone telling you.

The columns, and which one is your cost

Aftermarket price files carry more money columns than most retail categories, because the channel has more tiers. Typically you'll see:

ColumnWhat it meansIs it your cost?
List / MSRPManufacturer's suggested retailNo
JobberTraditional retail-counter tierOnly if you're on it
WD / dealer netWhat you actually payYes
MAPLowest price you may advertiseNo — a constraint
CoreRefundable deposit on reman partsNo — see below

Some files skip the money and give you a discount off list instead — "40/10" means list × 0.60 × 0.90, not 50% off. Others put your tier in a separate column that only your account sees. Confirm which column is yours in writing once, and re-check after any account or volume review; tier changes are rarely announced inside the file.

Core charges are not cost. A remanufactured alternator at $86.00 with a $45.00 core is not a $131.00 part. The core is a deposit you get back when you return the old unit. Fold it into cost per item and your margins look catastrophic on exactly the products where you need clarity. It's the single most common data error in a parts catalog — more on handling it here.

Line codes: the identifier that isn't

The aftermarket identifies a part as brand + part number, not part number alone. Brands are represented by a line code — a two-to-four character abbreviation, historically per-distributor and never fully standardized. The same physical brake pad is WBQ at one WD and WAG at another; and 1234 from two different brands are two entirely different parts that will happily match each other in a careless VLOOKUP.

Practical consequences:

If your suppliers provide data to the Auto Care Association standards, you'll also encounter ACES (vehicle fitment — which years, makes and models a part fits) and PIES (product attributes, packaging, and the price sheets themselves). PIES files are the cleanest cost source you'll get in this industry, because the price types are explicitly labelled rather than left to a column heading someone typed by hand. If a supplier offers PIES and you're currently parsing their Excel export, ask — it's usually available and nobody volunteers it.

Supersessions: the reason your cost history breaks

Manufacturers replace part numbers constantly. The old number is superseded by a new one, sometimes with a different price, sometimes with different packaging, occasionally with one new number replacing three old ones.

For a Shopify catalog this is quietly destructive. The superseded number vanishes from next month's price file, so a naive diff reports it as discontinued. Meanwhile the replacement appears as a new item at a price nobody compares to anything. A 30% increase just walked in wearing a disguise, and your cost history for that product now has a hole in it.

The fix is to carry a supersession map — old number → new number — and to treat a supersession as a price change on the same product line, not as a death and a birth. Most WDs publish supersession data; PIES carries it as interchange information. Keep the old number as an alias on your product so customer searches and your own history both keep working.

Update cadence, and why "we check when they email" fails

Parts pricing moves on several independent clocks:

Against that, "we'll review costs when a supplier tells us to" only catches the first clock. And even announced increases arrive as an average — "up 6% across the range" — while the file underneath moves individual lines by 0% and 27%. The letter tells you a mood; the file tells you the money.

Scale changes the nature of the problem. With 200 SKUs, a careful person can eyeball a price file. With 50,000, the question isn't "did anything change" — thousands of things changed — it's "which of the changes actually hurt, given what I sell and what I charge." That's a filtering problem, and filtering is exactly what humans do worst at 3pm on a Thursday.

A routine that survives 50,000 part numbers

  1. Archive every file on arrival, named wd_YYYY-MM-DD, before anyone opens it in Excel. This archive is your cost history — Shopify keeps none.
  2. Normalise to one shape: brand key, part number, UPC, net cost, core, pack quantity, MAP, effective date. One row per sellable unit. Do this per supplier, once, and reuse the mapping.
  3. Apply the supersession map before diffing, so replacements land on the right product.
  4. Diff against the previous version: increases, decreases, new lines, gone lines.
  5. Filter to what you actually sell. A WD file with 400,000 lines is not your problem; the 6,000 you list are. Everything else is noise, and treating it as data is why these reviews get abandoned.
  6. Rank by dollar impact — cost delta × your units sold — not by percentage. A 3% move on a fast-moving filter beats a 40% move on a part you sell twice a year.
  7. Check the flagged lines against MAP before repricing, and against your best alternate source before accepting the increase at all.
  8. Update Shopify's cost (safely — the import trap is real), and only then move on.

The multi-source advantage nobody uses

Here's the opportunity buried in all this tedium. Because you buy the same brands from several WDs, every price file is also a quote. Normalise them to a common key and one query answers a question most parts sellers can't answer at all: for each part I sell, who is cheapest this month, and by how much?

Stores that can answer it reroute purchasing line by line instead of by habit, and walk into supplier reviews with numbers instead of impressions. Stores that can't answer it discover, eventually, that they've been buying a fast-moving line 11% above the alternative for three quarters. The data was sitting in the inbox the whole time; nobody had a routine that read it.

Built for catalogs this size

CostSentry keeps a price history per supplier, diffs every new file automatically, filters to the parts you actually sell, and emails you the SKUs whose margin just dropped — with the retail needed to hold it. Start with the free checker on the file sitting in your inbox right now.

Open the free checker ↗
Runs in your browser — your cost data never leaves your device.