BuildSideways

How we price a parts catalogue without a price feed

A transparency note, because a priced catalogue with no explanation is just numbers.

· 713 words

Every part in our catalogue has a price. None of those prices are live. Here is exactly how they are produced and why they look the way they do, because a priced catalogue with no explanation behind it is just numbers on a screen.

What we do not have

No affiliate product feed. We have not been approved for a single affiliate programme yet. That is stated plainly on our affiliate disclosure page, and it means we have no access to the product data feeds that would give us live pricing, stock levels and deep product links.

No pricing API. There is no general-purpose source of current aftermarket performance-parts pricing that we could query, and the parts we cover span a dozen retailers in four regions, several of which are small specialists.

No scraping. We could, and we are not going to. It is against most retailers' terms, it breaks constantly, and a scraped price presented as current is worse than an honest range.

What we do instead

Every part carries priceUsd: [low, high] and priceAsOf - a market range, and the date it was checked. That pair is shown on every part, every guide and every plan, and the site says what it means: *prices are market ranges with the date they were checked, not live quotes.*

The ranges come from three sources, in order of preference:

1. A published, citable figure. Where a source states a number, we use it and link the source. A welded differential at $100 to $300 at a shop, a used clutch LSD at $400 to $800, a Wisefab angle kit at approximately $2,200 - all of those are cited, with the date. 2. Observed retail ranges across the retailers in our catalogue for a given part category and tier. 3. A category range where we have neither, marked with a lower confidence level.

Every part also carries a confidence label - verified, community-reported, or general principle - and that applies to the recommendation as much as to the price.

Why ranges rather than single numbers

Because a single number would be false precision. The same coilover is a different price at four retailers, in two currencies, with freight that varies by continent. A range that contains the real number is more useful than a point estimate that does not.

It also matches how people actually buy these parts: used, from the drift community, at a price that depends on who is selling.

What the retailer links do and do not do

Every retailer link currently goes to the retailer, labelled "check price at X", and carries no affiliate parameter - because we are not in any programme yet. The code only appends a tracking parameter when a programme is explicitly marked approved in the catalogue, and a test in our suite fails the build if a programme is marked approved without one.

They are not deep product links. Guessing a product URL produces a 404, and a dead link is worse than an honest one. Deep links arrive with the product feeds, and when they do the prices get more precise too.

The things we will not do

Invent a price to the dollar. If we do not know, the range is wide and the confidence label says so.

Show a stale price as current. The priceAsOf date is on every part. If it is old, you can see that it is old.

Let the price shape the recommendation. A welded differential at a local shop earns us nothing and it is still the recommended pick at the seat-time goal, because it is the right answer.

Project revenue. We have no affiliate programme and no users yet, so any number we published about expected earnings would be fiction.

What changes when the feeds arrive

Prices get narrower and more current, retailer links go to specific products, and stock status becomes possible. The structure does not change: there will still be a range where a range is honest, there will still be a date on every price, and the confidence labels stay.

If you spot a price on this site that is simply wrong - not moved, wrong - tell us. A link to a source is the most useful thing you can send.