Shrinkwatch: what got smaller in your groceries
$148a year
That is the extra this household pays because 8 things it keeps buying got smaller, by 10.4% on average. 4 of them kept the exact same price.
This is a sample household: invented orders built on package changes that were reported in the news. Your own orders never leave this device.
Check your own orders
Three ways in. None of them needs an account, and none of them sends your orders anywhere.
-
A
Paste your order history
Open your orders page on any grocery site, select all, copy, and paste it below. A receipt or a CSV export works too.
Paste orders -
B
Install the Chrome extension
It reads your order pages on Amazon, Walmart, Instacart, Target, and Kroger as you open them, and keeps everything in your browser.
Download for ChromeHow to install it
- Download
shrinkwatch-extension.zipand unzip it. - Go to
chrome://extensionsand turn on Developer mode. - Click Load unpacked and pick the unzipped folder.
- Open your order history on a supported store.
- Download
-
C
Keep exploring the sample
Twenty-one months of invented orders from five stores. Open any line on the receipt to see the packs and the price history.
Read the receipt
The receipt
Every item this household rebuys that got smaller, ranked by what the change costs a year. Open a line to see the packs side by side, the price history, and how sure the match is.
How it works
The same code runs here and in the extension. It is short, and it is open.
Reading your orders
Each item line gives a name, a price, sometimes a quantity, and a package size like 9.25 oz, 6 x 12 fl oz, or 12 rolls, 244 sheets per roll. Sizes become grams, millilitres, or a count, so 1 lb and 16 oz compare as the same thing. The order date comes from the nearest date above the item.
Deciding two purchases are the same product
If the store gives a product number, purchases with the same number are the same product. If not, names are compared after removing the size and filler words, and they have to agree on at least three quarters of their words. Purchases from different stores are never compared, because their prices differ.
If you bought two sizes during the same months, say a 12 oz and an 18 oz box, those are two products sold side by side, not a shrink. Only a size that replaced the old one counts.
What "Sure" and "Likely" mean
Sure means the store used the same product number before and after the change. Likely means the match came from the names, usually because the store gave the smaller pack a new number. Glance at the names on Likely lines, and take anything that is really a different product off the receipt.
Counting the cost
A drop of 2% or more counts. The old and new prices are the typical price you paid at each size, so one sale does not fake an increase. The yearly figure is how much more you now pay for the amount you buy, times how often you actually bought it. A short history is never stretched into a bigger number.
What it can get wrong
- Store pages change. The extension may miss items until it is updated, and pasting still works.
- "oz" means weight unless it says "fl oz", so a store that switches labels between the two will not be compared.
- If you kept buying old stock after the new size appeared, the two sizes look like they were sold side by side, and the shrink is not counted. It errs toward missing a shrink rather than inventing one.
- Prices are what the order page shows. Some stores show them after coupons, and none include tax.
Check the privacy claim yourself
"Nothing leaves your device" is easy to say. Here is how to see it with your own eyes, in about a minute.
Open your browser's developer tools: F12, or Ctrl Shift I on Windows and Linux, Cmd Option I on a Mac.
Click the Network tab and reload this page. You will see this page's own files: the HTML page, one script, the fonts, and an icon. All from this address.
Clear the list with the ⊘ button, then paste orders above and press Show my receipt.
The list stays empty. Your orders were read by the script already on the page, and nothing was sent.
The page also carries a Content Security Policy with connect-src 'none', which tells the browser to refuse any network request the page's scripts might try. The extension asks for one permission, storage, and its build fails if code that can send data shows up.