componentprices
Search

Searches model names, makers and specifications across all six categories.

Try

Search needs JavaScript. Every part is listed under the six categories in the menu, and each list can be filtered, sorted and downloaded in full.

What has to be true before a number appears here

This site is a claim about numbers, so the rules that produce them are part of the product. All of them were written down before the pages were made, and three are calculated directly from the source files shown below.

index series kept11
of them out of date0
sources with a written permission record13
evidence current to26 July 2026

Freshness

Out-of-date data is never quiet about it

Every series we keep has a date by which a new figure is due. If one has not published inside that window, it is marked out of date on the record and on every page that reads it, rather than continuing to render as though it were current. A number that is quietly six months old is worse than no number, because you cannot tell.

The count beside this paragraph is read from the retained files whenever the page is prepared, so it always describes the same files as the figures below.

Source: US Bureau of Labor Statistics Public Data API, read 2 August 2026. Licence: US federal public domain. No controls over end use. Granularity: monthly index, not per-SKU price

0series past their due date, of 11 kept

Last checked 2 August 2026.

Permissions

What each source actually lets us do

Permission to show something is not permission to keep it. That distinction decides most of what this site can and cannot publish, so the decision is recorded for each source and applied wherever its data would be used.

6 of 13 sources, with what each one's terms allow
SourceMay we read itMay we show today's figureHow long may we hold itMay we keep a historyMay we calculate from itMay we republish itTerms
US Bureau of Labor StatisticsYesYesno limitYesYesYesread 25 July 2026
Newegg through RakutenNoNonot grantedNoNoNoread 25 July 2026
Best BuyYesYes72 hoursNoNoNoread 25 July 2026
eBayNoNonot grantedNoNoNoread 25 July 2026
Epoch AI machine-learning hardware dataYesYesno limitYesYesYesread 25 July 2026
CybeneticsNoNonot grantedNoNoNoread 25 July 2026

7 more sources are deliberately left out of this table. Each one is a source whose data may not appear on this site. Their rows are omitted here so names and addresses that must stay out of published pages are not repeated. Each source, and the clause that ruled it out, is on the page listing every source we considered.

When we stop

The thresholds under which we publish nothing

Each of these was set before we had data, which is the only time it is honest to set one.

6 thresholds, and what happens when one is not met
The ruleThe thresholdWhat happens below it
How long we must have watched a part14 daysbelow it, we say nothing about where its price sits
How many usable prices we need10below it, no percentile or position is calculated
How much of the market a run must reach60%below it, the answer is suspended rather than recalculated on a smaller sample
How many months an index needs before we compare it to itself6 monthsfewer returns nothing at all, rather than a figure from a short window
How often a buy-or-wait call may be wrong40% of the timeours was wrong 60.4% of the time, so the feature is switched off
How far a headline price may sit from the cheapest genuine offerswithin a stated bound of their medianan offer outside it is excluded and listed with the reason

How we would judge whether a price is high or lowThe test our own advice failed

In detail

The method in full

The useful question is not whether a price looks high or low in isolation. It is where that price sits within a named set of observations, how complete those observations are, and what evidence would change the answer. This is the method behind every retrospective price state we publish and the rejected recommendation rule. The source-specific permissions and exclusions are listed in the source registry.

Why this site will not tell you to buy or wait

We will not publish timing advice that failed its own historical test. The candidate rule was tested across 1,252 monthly decision points in 11 US Bureau of Labor Statistics index series from January 2017 through June 2026. Its three-month wait signal was wrong 60.4% of the times it could be scored, above the 40% limit declared before the test. The rule failed, so the site describes only what the recorded indexes have already done and gives no buy-or-wait advice.

The negative result is the feature. A confident label would be easy to publish, but the historical test showed that this one would have sent readers in the wrong direction too often. Publishing the failed test makes the decision inspectable. Softening the wording would not make the rule more accurate.

Backtest method

At each observed month, the backtest computed price state using only observations available through that month. It did not read future values or fill missing months. It then checked the candidate signal against the exact BLS observation one, three and six months later. A signal was not scored at a horizon when that exact later month did not exist.

The candidate said Wait if flexible when the index was at or above the 75th percentile of its observed window and its 30-day-equivalent slope was below zero. It said Buy if needed when the index was at or below the 25th percentile and that slope was zero or positive. The test isolated this numerical rule. Because a category index is not an obsolete product, the test did not judge whether a better substitute was available.

Across all decision points, the rule produced 51 wait signals, 120 buy signals and 1,081 cases with no recommendation. A wait error means the later index was higher, so waiting moved in the costly direction measured by that index. A buy error means the later index was lower, so buying at the signal missed a lower later index.

HorizonWait errorsWait error rateBuy errorsBuy error rate
1 month25 of 5149.0%50 of 12041.7%
3 months29 of 4860.4%62 of 11852.5%
6 months35 of 4774.5%61 of 11851.7%

Source for every count and rate above: 11 monthly files from the BLS Public Data API, retrieved 2026-07-25T16:11:53.656Z and tested again on 2026-07-26. The full backtest record reports the rule, sample sizes, semiconductor stress period and limitations. No retailer, marketplace or Amazon-derived price history entered the test. BLS.gov cannot vouch for the data or analyses derived from these data after the data have been retrieved from BLS.gov.

What the result proves, and what it does not

The result proves that this candidate rule did not pass its pre-declared release test on the tested series. The three-month wait error rate was 20.4 percentage points above the allowed ceiling. The thresholds were not changed after the result. The buy error rates, which ranged from 41.7% to 52.5%, provide no case for publishing that label either. Source: full backtest record, method run 2026-07-26.

The test does not prove that component prices are never predictable. BLS series are monthly category and manufacturing indexes, not daily retail prices for a named CPU, GPU, RAM kit, SSD, motherboard or power supply. They are lawful, long-running proxies, but they cannot validate per-product retail behavior, substitute quality or a specific future forecast. Source: BLS input retrieved 2026-07-25T16:11:53.656Z and backtest limitations recorded 2026-07-26.

The answer changes only if a separate rule is written down before testing and passes a new pre-declared test on evidence suited to the retail question. That requires like-for-like first-party product observations from sources that explicitly permit retention and derived analysis, no Amazon-derived history, no lookahead or interpolation, a testable substitute definition, and recorded outcome scoring. Accumulating enough observations to calculate a retrospective price state would not by itself restore buy or wait advice. Sources: source review dated 2026-07-25 and recommendation test recorded 2026-07-26.

What we collect

We keep the current-offer layer separate from the history layer because permission to display a price does not automatically include permission to retain it or calculate a derivative from it.

For a current offer, we collect the merchant, seller when relevant, product identifiers, condition, price, source URL, and fetch time. A source is eligible only for the actions its terms permit. A Newegg feed, once the publisher relationship is approved, is treated as fresh for 24 hours. Best Buy data is display-only, must be attributed, is purged within its 72-hour cache limit, and never enters retained history. If a current source is not cleared, stale, or outside its permitted use, its offer is not shown as current.

For category context, we collect eleven monthly index series directly from the US Bureau of Labor Statistics Public Data API under the BLS public-domain policy. The collector checks daily so a newly released month is picked up promptly, but BLS publishes monthly indexes. Running the collector daily does not turn a monthly index into daily data.

For per-product history, we retain only observations whose source terms allow retention and derived analysis. The price record is append-only. We do not invent observations for dates before collection began, fill gaps by interpolation, or import a retailer history and relabel it as ours. This means there is no per-SKU 30-day, 90-day, or 365-day history at launch. A 30-day view exists only after 30 real days of eligible observations. Until then, the displayed window says how many days and successful observations it actually contains.

How a listing becomes a product observation

A retailer title is not a product identity. Similar names can hide a different capacity, pack count, region, board partner, revision, condition, or accessory bundle. We match each listing against a category-specific identity.

The common identity fields are manufacturer, manufacturer part number, GTIN when present, region, revision, capacity, pack count, and condition. Category fields then narrow the match:

  • RAM includes capacity per module, module count, data rate, timings, and XMP or EXPO profile.
  • SSD includes capacity, controller, NAND revision when known, and form factor.
  • CPU keeps tray and boxed products separate.
  • GPU includes chip, board partner, and partner variant.
  • Motherboard includes chipset, form factor, region, and hardware revision.
  • PSU includes wattage, platform, form factor, and revision.

Each accepted match records the method used, a confidence value, and any conflicting identifiers. A name-only resemblance cannot overrule a conflicting part number, capacity, pack count, condition, or revision.

Ambiguous listings are quarantined. They do not contribute to the current best price, percentile position, trend, category aggregate, or verdict. We do not silently force a match to improve coverage. An unmatched listing remains visible in our data-health accounting so you can distinguish "we did not collect it" from "we collected it but could not identify it safely."

Brandless specification groups, such as all 32 GB DDR5-6000 CL30 kits, are rollups of already matched products. They are not product identities. That prevents a cheap no-name kit from being treated as the same item as a specific branded kit merely because a few headline specifications agree.

What “as of” means

There is no single page-wide timestamp that makes every number equally current. Every figure carries the date that belongs to that figure:

  • A current offer is as of the time we fetched it. It says which merchant supplied it and links to that source.
  • A BLS index value is as of the BLS reference month, not the day our collector fetched it. The fetch time is retained separately.
  • An MSRP or RCP anchor is as of the dated manufacturer or launch-price source. It is not refreshed into a street price.
  • A percentile or trend is as of the newest eligible product observation and names the first and last dates in its calculation window.
  • A conclusion is as of the exact observations, coverage result, calculation method, and calculation time used to produce it.

A page rendered today can therefore contain a current retail offer fetched today and a BLS index whose latest reference period is the prior month. We show both dates rather than compressing them into a misleading “updated today.”

How price state is computed

Price state is retrospective. It describes the observations we have. It is not a prediction.

For one exact product, the current best eligible offer is compared with no more than 365 days of that same product's observations. Coverage is the number of matched eligible offers divided by the number expected.

Position is the current offer's percentile within that observed window. Recent direction is the ordinary least-squares slope over the observed 7-day, 30-day and 90-day windows, expressed as a percentage per 30 days.

There is not enough data to judge when the observation window is under 14 days, when it contains fewer than 10 usable observations, or when coverage is below 60%. No recommendation is allowed in that state.

With sufficient data, a percentile position at or below 25 is labelled cheap against the product's own stated window. A position at or above 75 is labelled expensive against that window. The 30-day trend is rising above +3%, falling below -3%, and stable between those bounds. “Cheap” and “expensive” describe position within our own eligible observations. They do not mean cheap or expensive in an absolute sense, against another product, or against MSRP.

Category-level index context is calculated separately. A BLS index can show that a broad producer or consumer category sits above or below its own 12-month mean. It is never substituted for per-SKU history. For example, the BLS printed-circuit-assembly index and bare-PCB index currently give sharply different motherboard signals. Showing both is more honest than averaging them into agreement.

What the rejected verdict was designed to say

The candidate verdict was a bounded recommendation built from retrospective state:

  • Buy if needed requires a position at or below the 25th percentile and a 30-day slope that is zero or positive. Before it appears, the product must also pass a substitute check so an obsolete item does not earn a buy merely because its own price fell.
  • Wait if flexible requires a position at or above the 75th percentile and a 30-day slope below 0%.
  • Every other combination produces no recommendation, as does any result with too little data or inadequate coverage.

Those labels do not ship. Even as candidate labels, “Buy if needed” did not mean the price would rise and “Wait if flexible” did not mean the price would fall. The words described what had been true inside the stated observation window and made the reader's flexibility explicit.

We do not forecast prices. A future market outlook would need a named horizon, at least two dated causal sources less than 30 days old, a confidence statement, a recorded method, and a future date for judging the outcome. Unless all of those exist, we abstain. The page can tell you the current retail state, the recent direction, the breadth of evidence, and the exact condition that would change the conclusion. It cannot tell you your budget, whether the component is compatible with your system, whether a promotion will appear tomorrow, or what a manufacturer or retailer will do next.

The calculation was tested against eligible historical indexes and licence-clean data. The candidate failed its declared limit, so we describe past price state without a recommendation. Any replacement rule must be written down and pass a new pre-declared historical test before it can appear here.

Anomalies and visible exclusions

The cheapest listing is not automatically the market price. A wrong currency, missing decimal, bundle, used item on a new-only view, mismatched capacity, duplicate page, partial pagination result, or poisoned listing can create a dramatic but false low.

We first remove listings that fail identity, condition, currency, unit, freshness, seller, or source-permission checks. We then compare a headline candidate with the median of the stated number of cheapest independent eligible offers. Independence means a different ultimate merchant and a different feed, not merely a different marketplace seller name. A candidate outside the published bound is excluded from the headline and verdict.

The number of comparison offers and the anomaly bound must be shown with the result. They are not yet defined as one universal site-wide value, so we do not invent them here. An implausible offer is excluded only under the bound printed with that comparison; there is no hidden site-wide cutoff.

Excluded offers remain inspectable with a reason such as ambiguous product match, conflicting identifier, wrong condition, bundle, stale source, duplicate, seller ineligible, unsupported currency, anomalous price, or missing source permission. A source link is retained only when the source's terms allow us to retain and expose it.

Coverage failure suspends the answer

Price movement and source disappearance can look identical. If a merchant that supplied many low offers vanishes, calculating against the smaller remainder can create a false price increase.

Every collection records expected and observed offer counts, expected and matched product counts, whether every results page was read, the request outcome, usable listings, and match rate. Time comparisons use a stable matched group: products present in both the current collection and the comparison window. Price change and composition change are calculated separately.

If current coverage is below 60%, there is not enough data to judge. If the stable group falls below 60% of the comparison window's group, the conclusion is suspended. Lawful prior history can remain visible and marked out of date, but we do not recalculate direction from the damaged sample. Several consecutive complete collections would be required before a conclusion returns. Their exact number has not yet been decided, so it is not claimed here.

Reporting an error

Report a suspected error through /contact. Include the page URL, the exact figure or offer, its displayed “as of” date, the source link, what you expected to see, and any evidence such as the manufacturer part number or retailer listing. Those details let us reproduce the match and calculation instead of guessing from a screenshot.

An error report can challenge the source value, product match, condition, unit, anomaly decision, coverage count, calculation, or wording. Because the method exposes the inputs, window, source, exclusions, and calculation method, you should be able to identify which part of the chain you think is wrong.