> ## Content Index
> Fetch the complete content index at: https://blog.affiliate.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# The Same Product, Fourteen Different Price Histories
- URL: https://blog.affiliate.com/the-same-product-fourteen-different-price-histories/
- Published: 2026-10-13T21:36:22.000Z
- Updated: 2026-10-13T21:36:22.000Z
- Author: Dylan Bertalli

When two stores sell the same product, the price difference between them is the part a reader can see today. A more useful question for a comparison page is how those prices have moved. We looked at one product, a 10-quart two-basket air fryer, sold by many retailers.

Listings were matched by barcode, following the approach in [barcode first, then MPN fallback](https://blog.affiliate.com/product-data-api-identifier-rules-barcode-first-then-mpn-fallback-for-accurate-product-matches/). The barcode matched 24 retailer listings, and 14 of them had price history in the 91 days from July 15 to October 13, 2026\. If you build comparisons like this, [this price comparison workflow](https://blog.affiliate.com/same-product-different-merchants-a-price-comparison-workflow-for-api-users/) covers the matching side.

## The listings side by side

Retailer names are generalized here. Eight of the fourteen listings are shown.

| Retailer type             | Days of history | Lowest  | Highest | Average | Price on Oct 13 | Out-of-stock days |
| ------------------------- | --------------- | ------- | ------- | ------- | --------------- | ----------------- |
| Department store A        | 91              | $209.99 | $249.95 | $230.30 | $249.95         | 0                 |
| Home shopping retailer    | 47              | $209.99 | $249.99 | $222.54 | $209.99         | 0                 |
| Home improvement retailer | 91              | $249.99 | $249.99 | $249.99 | $249.99         | 91                |
| Brand’s own store         | 91              | $209.99 | $249.99 | $231.53 | $249.99         | 0                 |
| Farm and fleet retailer   | 47              | $212.49 | $249.99 | $241.21 | $249.99         | 0                 |
| Department store B        | 91              | $209.99 | $360.00 | $233.40 | $360.00         | 4                 |
| Electronics retailer      | 88              | $209.99 | $249.99 | $231.06 | $249.99         | 8                 |
| Big-box retailer          | 91              | $209.99 | $249.99 | $230.65 | $249.99         | 0                 |

## Pattern one: many stores moved together

Ten listings have a full history. Nine of them show their lowest price on July 15, the first day we have, at $209.95 or $209.99\. Eight reached their highest price between July 20 and July 24, within five days of each other.

When many unrelated stores change price in the same few days, it often points to a shared promotion window rather than each store acting alone. History can show that it happened. It cannot say why.

## Pattern two: the cheapest store today is not the cheapest store in July

In July, nearly every store with a full history sat near $210\. On October 13, twelve of the fourteen listings are priced between $249.95 and $249.99, one is $209.99, and one is $360.00\. A comparison page that picked a winner in July would be showing a different winner now.

Two retailers, the department store and the home shopping retailer, both dropped to $209.99 on the same day, September 22\. The department store returned to $249.95 on October 12\. The home shopping retailer has not.

The $360.00 listing sits $110 above the rest. It may be a real price or a data quirk, so it is worth a second look before featuring it. A page that sorts by final price, as in [ranking offers by final price and discount](https://blog.affiliate.com/rank-offers-by-final-price-and-discount-for-comparison-sets-that-finds-the-best-deals/), puts it last, but it should not set the "typical price" either.

## Pattern three: history length and stock differ

Not every listing has the same amount of history. Two listings have 47 days, one has 26, and one has only 5, because they appeared in the data later. A label such as "lowest in 91 days" is only fair for listings that actually have 91 days.

Stock matters too. One listing was out of stock on all 91 days, so its steady $249.99 price tells a reader nothing they can act on. Three others were out of stock for 4, 4 and 8 days. [Using last-updated and availability fields](https://blog.affiliate.com/using-last-updated-and-availability-fields-to-control-product-freshness/) explains how to check stock and freshness before showing a price.

## Applying this to a comparison page

A few lines of code can pick the cheapest listing a reader can actually buy and flag a price that is far from the rest. This version uses each listing's current price, the days of history, and its out-of-stock days from the summary view:

```
function summarize(listings) {
  const usable = listings.filter(l => l.outOfStockDays < l.points);
  const prices = usable.map(l => l.price).sort((a, b) => a - b);
  const mid = Math.floor(prices.length / 2);
  const median = prices.length % 2 ? prices[mid] : (prices[mid - 1] + prices[mid]) / 2;
  const cheapest = usable.reduce((a, b) => (b.price < a.price ? b : a));
  const outliers = usable.filter(l => l.price > median * 1.25).map(l => l.name);
  const skipped = listings.filter(l => l.outOfStockDays >= l.points).map(l => l.name);
  return { cheapest: cheapest.name, cheapestPrice: cheapest.price, median, outliers, skipped };
}
```

Run on the eight listings in the table above, it returns the home shopping retailer at $209.99 as the cheapest, a median of $249.99, department store B ($360.00) as an outlier, and skips the home improvement retailer because it was never in stock.

- **Group by barcode,** so you are comparing the same product.
- **Skip listings that were never in stock** in the window.
- **Say how many days each label covers,** rather than one number for every store.
- **Flag outliers** instead of letting them shape what you call typical.

Seen over time, a price comparison becomes more than a list of today's prices. It shows how the stores relate to each other, and which differences are lasting and which are brief.