How we measure PC prices, and why the average listing price lies
There is an obvious way to measure whether computers are getting more expensive, and it is wrong.
The obvious way: take every laptop listed today, average the prices, and compare that average to last month's. It needs no history, it is one line of SQL, and it produces a number that moves convincingly. It is also close to meaningless — because the thing that moves it most is not price, it is which machines happen to be listed.
The composition problem
A catalog is not a fixed basket. Manufacturers add and retire models constantly. Suppose a brand launches a run of budget machines in a given month, or a workstation line sells out and drops off the in-stock list. Neither event changes the price of a single computer, but both move the average, sometimes hard. Retire enough expensive machines and you can report a price crash in a month where every remaining machine got more expensive.
This is not a subtle statistical footnote. On a catalog that tracks a whole market across many brands, composition churn is routinely larger than real price movement. An index that cannot separate the two is not measuring prices at all.
The matched-model method
The standard fix is old and comes from consumer price statistics: compare each item to itself. For every product, we take its price now and its own price at the start of the window, compute the ratio, and report the median of those per-product ratios. A machine that was not being tracked at both ends of the window simply does not contribute. Adding fifty budget laptops does not move the index, because none of them has a "before" price to compare against. Retiring a workstation does not move it either.
Two details matter more than they look:
- Median, not mean. One configure-to-order machine whose base configuration gets re-anchored can show a four-figure percentage change. A mean would let that single row swing the whole category; a median shrugs it off.
- A minimum sample. Below a floor of matched pairs we publish nothing rather than a number built on a handful of machines. An honest blank is worth more than a precise-looking fabrication, and a category that is too thin this month usually is not thin next month.
What we deliberately exclude
Three classes of row are real in the database and misleading in an index, so they are filtered before anything is computed:
- Placeholder prices. Deposit rows, reservation entries and parse artifacts priced at a few dollars. A "16 GB machine for $3" is a broken record, not a bargain, and it will happily win a cell in any table that ranks by price.
- Configuration re-anchors. When a manufacturer changes which configuration counts as the base model, the tracked price jumps without anything being cheaper or dearer. Moves beyond a wide threshold are treated as this class of artifact and kept out of the movers lists.
- Out-of-stock listings. A price nobody can transact at is not a market price.
We also hold the currency fixed. Mixing currencies into one median would let an exchange-rate move masquerade as a price move, so the index is USD-only and says so.
Why publish the method at all
Because a number without a method is not citable. Anyone can assert that computer prices moved by some percentage; the useful thing is a figure someone else can interrogate, reproduce the logic of, and decide whether to trust. Every figure on the index is built the way this post describes, from manufacturer-listed prices for complete systems, and the page states its window, its sample size and its as-of date next to every value.
It is all free to cite with a link. Read the current numbers on the PC Price Index, or open any category for its own medians, brand league table and price distribution.
The data behind this
Every figure we publish comes from the same normalized catalog this post describes: the PC Price Index for medians and price movement, the Value Table for the cheapest machine at each spec tier, and the data hub for everything else. All of it is free to cite and republish with attribution under CC BY 4.0 — please link the page you took the figure from.