The Complete Guide to Unit Prices: How to Never Overpay at the Grocery Store Again
A practical handbook for smart shoppers — from hand-calculating price per unit to busting bulk traps and shrinkflation.
What is unit pricing, and why does it matter?
Every product on a supermarket shelf has two prices: the price you pay at the till, and the price per unit — the cost of one gram, one milliliter, or one item. The shelf price tells you what leaves your wallet today. The unit price tells you what you are really paying for the stuff inside the pack. When two packs of rice sit side by side — one 500-gram bag at $2.49 and one 2-kilogram bag at $8.99 — the shelf prices cannot be compared directly. The unit price can. Divide $2.49 by 500 grams and you get about half a cent per gram; divide $8.99 by 2000 grams and you get about 0.45 cents per gram. The bigger bag wins, and the unit price is the only number that proves it.
Many countries now require retailers to display unit prices on shelf labels, precisely because shoppers consistently misjudge value without them. Yet the printed unit price is often tiny, uses inconsistent units (per 100 g here, per kg there), or disappears entirely on promotional packs. A dedicated unit price calculator puts that number back in your hands, computed the same way every time, so no pack can hide behind a clever size.
How to calculate unit price by hand
The formula is simple: unit price equals total price divided by total quantity. If a 750 ml bottle of olive oil costs $9.60, the unit price is $9.60 ÷ 750 = $0.0128 per ml, or $1.28 per 100 ml. The only rule that matters is that every product you compare must be converted to the same unit before you divide. Comparing a per-gram price with a per-kilogram price is meaningless; convert kilograms to grams first (multiply by 1,000), then divide.
Hand calculation works for two products, but it breaks down fast in a real aisle. You might be choosing between four sizes of coffee, three of them on different promotions, one priced in ounces and another in grams. Mental arithmetic under fluorescent lights, with a queue behind you, is exactly how overpaying happens. That is why the multi-product matrix exists: enter up to eight products with their own units, and every quantity is normalized automatically to grams, milliliters, or item counts before ranking.
Converting between units without the headache
Grocery packaging uses a chaotic mix of metric and imperial units, and brands exploit the confusion. The conversions you need most are: 1 kilogram = 1,000 grams; 1 ounce = 28.35 grams; 1 pound = 453.59 grams; 1 liter = 1,000 milliliters; and 1 fluid ounce = 29.57 milliliters. Count-based products — eggs, pods, wipes — need no conversion at all, since one item is one item everywhere.
The trap to watch is mixing weight families with volume families. You cannot fairly compare a 500-gram jar of peanut butter with a 500-milliliter jar unless you know the density, so honest calculators refuse to mix grams and milliliters — and so does ShelfCheck. Within one family, though, everything becomes comparable: grams against kilograms against ounces against pounds, all reduced to a single per-gram figure, then displayed in a human-friendly form like "per kg" or "per 100 g" so the numbers stay readable.
Is buying in bulk actually cheaper? The bulk-trap problem
"Bigger pack, better value" feels like a law of nature, and most of the time it holds — manufacturers save on packaging and pass some of it on. But it is a tendency, not a law, and retailers know you believe it. Consumer watchdogs have repeatedly caught jumbo packs priced higher per unit than their smaller siblings. It happens when a small pack goes on clearance, when a "family size" is really just a marketing label with no discount, or when a brand quietly reprices the big pack upward because it knows bulk buyers stop checking.
A bulk trap is easy to define precisely: within the same product line, a larger quantity whose per-unit price exceeds a smaller quantity's. Spotting one by eye is nearly impossible when the sizes are, say, 680 g versus 1.1 kg. The bulk-trap alert automates the check across every pair in your comparison and stamps the offender clearly, showing exactly how many percent more per unit the big pack costs. The lesson is not that bulk is bad — bulk usually wins — but that you should verify instead of assume, because the exceptions are expensive.
There is also a subtler bulk consideration: waste. A 5-kilogram bag of flour at a great per-unit price is a bad deal if half of it goes stale. The honest calculation multiplies the per-unit saving by the amount you will actually use before expiry. ShelfCheck's savings figures assume you consume what you buy; for perishables, compare the savings against your realistic usage before supersizing.
Shrinkflation: the price hike you were never told about
Shrinkflation is the practice of reducing a pack's size while keeping its price — and often its packaging — the same. Your cereal box still costs $4.99, but it now holds 450 grams instead of 500. Nothing on the shelf announces the change; the box may even look identical. Economists consider it a stealth price increase, and it has become one of the most common ways brands pass on rising costs without triggering the sticker shock of a higher shelf price.
The math of shrinkflation is simple but revealing. Old unit price: $4.99 ÷ 500 g = $0.00998 per gram. New unit price: $4.99 ÷ 450 g = $0.01109 per gram. The true increase is ($0.01109 − $0.00998) ÷ $0.00998 ≈ 11.1%. The shelf price moved 0%; your cost moved 11%. Multiply that by your yearly usage — say 24 boxes a year — and the "invisible" change costs an extra $12 a year on a single product. Across a full shopping basket, shrinkflation routinely adds hundreds to annual grocery spending without a single price tag changing.
To detect it, keep the old pack's size and price (photograph the label before you recycle it) and compare against the new pack. The shrinkflation detector does the rest: it reports the per-unit increase percentage, the size change percentage, and your projected extra yearly cost at your actual buying rate. If the pack shrank and the per-unit price rose, it stamps the result as shrinkflation detected — a verdict worth sharing with anyone who buys the same brand.
Cost per dose: why per-ml lies for detergents
Laundry detergents, dish soaps, and cleaners break the normal rules of unit pricing because concentration varies. A concentrated formula might need only 25 ml per wash while a diluted rival needs 60 ml. Comparing them per milliliter crowns the wrong winner: the concentrated bottle looks expensive per ml but is cheaper per wash, which is the only number that touches your wallet.
The fix is cost per dose: price divided by the number of loads printed on the label. A $12.99 bottle rated for 60 loads costs about $0.22 per wash; a $9.99 bottle rated for 32 loads costs about $0.31 per wash. The cheaper-looking bottle loses by nearly 50%. Per-dose mode ranks products by this true cost per wash and extends it to yearly cost using your weekly load count, including how many bottles you will buy in a year — the number that actually matters for budgeting.
Seven habits of shoppers who never overpay
First, always compare per-unit prices, never shelf prices, when sizes differ. Second, convert units before comparing — or let a calculator do it, because ounce-to-gram errors are where money quietly leaks. Third, distrust the word "bulk": check the per-unit price of the jumbo pack against the medium one every time. Fourth, photograph pack sizes of your regular brands so shrinkflation cannot sneak past you. Fifth, use cost per dose for anything concentrated — detergent, fabric softener, dish soap, shampoo. Sixth, factor in waste for perishables: a great per-unit price on food you will throw away is the most expensive option of all. Seventh, recheck on every trip, because promotions constantly reshuffle which size wins; yesterday's best value is not today's.
How ShelfCheck puts it all together
ShelfCheck combines four tools that each answer one shopping question. The price matrix answers "which of these packs is truly cheapest?" for up to eight products with automatic unit normalization and cheapest-first ranking. The bulk-trap alert answers "is the big pack actually a worse deal?" by checking every size pair. Shrinkflation mode answers "did my brand secretly raise the price?" with the true per-unit increase and yearly cost. Per-dose mode answers "which detergent is cheapest per wash?" using label load counts instead of misleading milliliters. Everything runs in your browser with unlimited free usage — no account, no paywall, no data leaving your device. Bring it to the aisle, and let the receipt tell the truth.