Unit Price Calculator

Compare packages by what they actually cost per gram, per millilitre or per item. Ranks each family separately and flags the big pack that is not the cheapest.

About this tool

A unit price is a division: price divided by size. The arithmetic is trivial, and yet the answer on the shelf is frequently misread, because the number shoppers compare is the price tag rather than the ratio. A 5 kg bag at 26.99 and a 500 g bag at 2.49 look like a large outlay against a small one. Per 100 g they are 0.54 and 0.498, so the small bag is cheaper by about eight percent. That is the entire point of the calculation, and it is why the biggest pack is flagged separately when it loses.

The trap has a name in retail: the bulk discount that is not there. It appears for ordinary reasons. A supplier raises the price of the large format, the shelf edge label is updated, and the old assumption that bigger means cheaper carries on. It also appears deliberately: shrinkflation reduces a pack from 500 g to 450 g while the price holds, which lifts the unit price by eleven percent without changing the number on the tag. Dividing by size is the only way to see either case.

This tool keeps the two common display conventions side by side. In much of Europe the shelf label shows price per 100 g or 100 ml; in the United States it is usually price per ounce or per pound. Both describe the same ratio, so both are shown, along with the percentage difference against the cheapest item in the same family. What it will not do is compare a mass against a volume, because that comparison needs a density and the density belongs to the product, not to the package.

The unit price is the only number that survives a repack

Prices and pack sizes both change, often at the same time. The ratio is what stays comparable, which is why it is the number worth remembering.

Shrinking packages are the clearest example. A cereal box that drops from 500 g to 450 g at the same price has raised its unit price by 11.1%, while the number on the tag has not moved at all. The same thing happens in reverse with temporary increases: a 20% extra free pack lowers the unit price by 16.7%, not by 20%, because the extra is a share of the new total. Percentages of a changed base are the most common place where shoppers mis-estimate.

Multipacks add a second layer. Six bottles of 200 ml at 5.99 is 1200 ml, which is 0.499 per 100 ml. The same product in a single 1.5 l bottle at 6.99 is 0.466 per 100 ml, so the multipack is worse despite looking like the bulk option. Neither the pack count nor the bottle size tells you this; only the total volume does.

Once you have the ratio, comparing across a whole basket becomes possible. The cheapest item in each family is the reference point, and every other row can be expressed as a percentage above it. That turns a shelf of near-identical packages into a single ordered list, and it makes the size of a bad deal visible in a way that a price tag never is.

Why per 100 g and per ounce are both correct

They are the same ratio with different denominators. Neither is more accurate; they are conventions, and the convention changes with the country.

A unit price of 0.498 per 100 g is 4.98 per kg, 0.141 per ounce and 2.26 per pound. All four describe the same package. Which one appears on a shelf label is a local convention: most of continental Europe uses per 100 g or per 100 ml, the United Kingdom commonly uses per 100 g alongside per kg, and the United States tends to use per ounce or per count. Showing two of them side by side removes the need to convert in your head.

The choice of base also changes how large the numbers look, which is why comparisons across conventions go wrong. A price per ounce is 28.35 times a price per gram, so 0.14 per ounce and 0.005 per gram are the same figure. If two people compare "14 cents" against "half a cent" without checking the base, they will draw opposite conclusions from identical data.

For countable goods the base has to be the item, because there is no meaningful weight. A pack of twelve rolls at 4.99 is 0.416 per roll, and that is comparable to another pack of nine at 3.99, which is 0.443 per roll. The same logic covers sheets, washes and doses, which is why those units are supported as their own family rather than being forced into grams.

The same 1.299,50 has two readings, 1000 apart

Decimal and thousands separators are not the same symbol everywhere. When both appear, the later one is the decimal point, so 1.299,50 means 1299.50. Get it backwards and the unit price collapses to a thousandth — with no error shown.

Parsing runs three rules in order. If both separators appear, the later one is the decimal and the other is a thousands separator. If there is a single comma followed by one or two digits, the comma is the decimal point (2,49 means 2.49). Otherwise commas are stripped as thousands separators (1,299 means 1299).

The order matters. 1.299,50 is the standard German form and means 1299.50; reading the comma as a decimal first gives 1.2995, which shrinks the unit price by a factor of a thousand while the page still looks perfectly normal and says nothing.

The worse failure is where the error lands. A misparsed number throws nothing; it simply produces an absurd unit price at the end, such as 0.0026 per kilogram, and the reader cannot tell whether the input or the tool is at fault. Refusing is therefore better than guessing: an input like 1,2.3,4, whose separators contradict each other, is reported rather than interpreted.

This check now runs first, with regression tests pinning three forms: 1.299,50 (German), 1.299.500,25 (long German) and 1,299.50 (English). All three have to resolve to the same magnitude, and the English form must not regress.

Mass, volume and count are ranked in separate lists

Unit prices are only compared inside one family. An overall winner is shown only when every line belongs to the same family.

500 ml at 4.50 is 9.00 per litre, 1 l at 10.00 is 10.00 per litre, and 10 items at 3.00 is 0.30 each. That is two groups, and the overall best is left empty, because there is no way to say which of the three is cheapest without inventing a comparison.

The same run marks the large-package trap. The one-litre bottle is the biggest pack in its group and it ranks second, so it is flagged as the size that looks like the better deal and is not. That flag is the whole point of the tool and it survives the grouping, because it is computed inside the group.

The refusal is deliberate rather than a limitation. Grams and millilitres differ by a density this tool does not know, and a number produced by guessing one would look more authoritative than the two honest lists it replaced. A shopper can act on two short lists; nobody can act on a made-up conversion.

Frequently asked questions

Why is the biggest pack sometimes not the cheapest?

Because the pack size and the price do not have to move together. If the price of the large format rises by 20% while its size stays the same, its unit price rises by 20%, and it can easily end up behind a smaller pack. The tool compares the ratio, not the shelf position, so this case shows up as a normal row with a slightly worse unit price — and the largest pack gets an extra tag when it is not the winner.

Why can I not compare millilitres with grams?

Because they measure different things. A millilitre is a volume and a gram is a mass; the conversion factor is the density of the specific product. Water is about 1 g per ml, flour about 0.53, honey about 1.4. A tool that used one number for everything would make honey look like a bargain and flour look expensive by the same factor it got wrong. Ranking each family separately is the honest option.

How should I enter a multipack?

As a multiplication: 6 x 200 g is read as 1200 g total. Entering 200 g would multiply the apparent unit price by six, which is the single most damaging mistake this kind of tool can make. The results table shows the pack as 6 × 200 g so you can see which reading was used.

Is the unit price the same as the one on the shelf label?

Usually, but not always. Shelf labels may round to a friendly number, may be based on a different base unit, or may be out of date after a repack. This tool computes from the price and size you type, so it is a check on the label rather than a copy of it. If the two disagree, the label is the one to distrust.

Should tax and delivery be included?

Only if you type prices that include them. The tool divides exactly what you enter. For a like-for-like comparison within one shop that does not matter, because the same tax rate applies to every row. It matters when you compare a subscription, a bulk delivery or a different region, where the added costs differ per item.

Related tools