Every price-tracking system starts the same way. You have a catalogue of products, a feed of retailer listings, and a function that decides which listing belongs to which product. Almost everyone writes that function as string matching, because for a while it works.

Then you try it on PC hardware, and it stops working in a way that is very hard to see.

The failure is invisible by construction

Here is the whole problem in one line:

catalogue: AMD RX 9060