We read prices every day
Once a day we read the public catalog of each roaster's and tea house's own online shop, as a buyer in the US, the UK or the EU sees it. Our crawler is shared with our sister sites: it calls itself wheyproofbot, signs its requests and follows each store's robots.txt. More about the crawler.
We keep every price
Each size of each product has its own price history, from the first day we saw it.
We find the usual price
A size's usual price is the highest price it sold for on at least 7 of the last 30 days. A price that lasted only a few days can't become the usual price.
Green is a real drop
Today's price is under the usual price. When no day in the last 30 was cheaper, it's the lowest in 30 days; with a longer history, the lowest since a date.
Amber is the store's own sale
When a store shows a crossed-out "was" price, we show it in amber and don't count it as a drop. A "was" price is the store's claim; the price history is the proof.
Converted prices need the store's own drop
Some stores convert their prices for other countries. A converted price can move with the exchange rate alone, so it counts as a drop only when the store's price in its own currency dropped too.
What a list shows
Products in stock today, each by one size: a size with a real drop first, then one on sale, then the smallest bag. An offer we haven't seen for 48 hours leaves the list.
Categories come from names
We sort products into categories by their names: an espresso is a coffee its roaster calls espresso. A product can be in more than one category.