Unit Price Calculator — Cost Per Unit & Best Value

Compare prices per unit to find the best value — enter each option's price, amount and unit (g, oz, sq ft, hours…) and the cheapest per unit is highlighted.

A row left on "as typed" is read in this unit. Give a row a unit of its own (g, kg, oz, ml, L, sq ft, m, hours…) and it is converted into this one, as long as this box names a unit of the same kind.

  • $0.006 per g+20%+$0.001 per g$0.5 more than the same amount at the best price
  • $0.005 per g✓ Best value

Best value: $0.005 per g

🔒 Calculated in your browser. Rows in different units are converted when each names its unit; the lowest price-per-unit is highlighted.

Which one is the better deal

Grocery and bulk prices are hard to compare when sizes differ. Enter each option’s price and amount, give each row its unit (grams, ounces, litres, items, square feet, metres, hours…) or leave it on "as typed", and the tool converts every row into the unit named in "Compare per", shows the price per unit for each and highlights the cheapest. Add as many options as you want, and "Save this comparison" keeps the whole comparison — every row, unit and currency — in this browser under "Saved comparisons", where each one can be opened again or deleted.

Same unit, fair comparison

For a valid comparison every row has to end up in the same unit. Give a row its own unit and the tool converts it — 1 kg becomes 1000 g, 2 lb becomes 32 oz — as long as "Compare per" names a unit of the same kind; a row in grams cannot be priced per litre, and it says it cannot be converted rather than guessing. The maths is simple division, done instantly in your browser with nothing uploaded.

The units have to match, so give each row its own

The comparison divides price by quantity, so it only means something when every row is measured in the same unit. A 500 g pack against a 1.2 kg pack, typed as 500 and 1.2 with both rows left on "as typed", prices the large pack per kilogram against the small one per gram and makes it read a thousand times more expensive than it is. With "Compare per" on g, set the first row to g and the second to kg and the tool does the conversion; leave both on "as typed" and it is up to you to type 500 and 1200. Where a pack is priced by count rather than weight — 12 rolls, 40 capsules — count is a perfectly good unit as long as every row uses it, and the "Pack of" box on each row multiplies out a multipack so its total need not be worked out by hand. Not everything is sold by weight, volume or count either: flooring goes by the square foot, fabric and rope by the metre, a sitter or a court by the hour. The row's Unit select groups its units under Weight, Volume, Count, Area, Length and Time, so give those rows sq ft, m or hours and put a unit of the same kind in "Compare per".

Bigger is not automatically cheaper

The percentage beside each row is how much more that row costs per unit than the cheapest one, so the winner reads 0% and everything else is the premium you would pay. Beside it the same premium is written in money, per unit, with what that row's whole amount would cost less at the best price. Supermarkets price large packs above small ones often enough that checking is worth the ten seconds: multibuys frequently beat the big box, and a promotion on the small size can undercut everything. Unit price is also not the only term — a cheaper unit price on a quantity you will not finish before it spoils is not a saving, and neither is a bulk pack you have nowhere to put.

Frequently asked questions

How do I calculate price per unit?

Divide the price by the amount. $3 for 500 g is $0.006 per gram. The tool computes this for each option and flags the lowest.

Do the units have to be the same?

Not if each row says its unit. Set a row to mg, g, kg, oz, lb, ml, L, one of the US fluid ounce, cup, pint, quart and gallon measures, an area (cm², m², sq in, sq ft or the Korean pyeong), a length (cm, m, in, ft, yd) or a time (minutes, hours, days) and it is converted into the "Compare per" unit. A row left on "as typed" is read in the "Compare per" unit, and that is where mixed units still go wrong: 500 g beside 1.2 kg, both "as typed", divides the larger pack's price by 1.2 instead of 1200, so it reads a thousand times more expensive than it is. A weight cannot be converted into a volume, and the row says so rather than guessing.

What does the percentage next to a row mean?

How much more that row costs per unit than the cheapest row. The best value shows 0%; a row at 15% costs fifteen percent more per gram, per litre or per item.

Can I compare by count instead of weight?

Yes. Quantity is just a number — rolls, capsules, teabags all work, as long as every row is counted the same way.

Can I name the options and enter multipacks?

Yes. The "Name or shop" box at the start of each row names the option, and the best-value line and the copied result say which one won. The "Pack of" box multiplies the amount by the number of items in a pack — leave it blank for one — and the "Currency" select beside "Compare per" sets the money every price per unit is written in.

Can I keep comparisons to come back to?

Yes. "Save this comparison" keeps the whole comparison — every row, unit and currency — in this browser under "Saved comparisons", newest first, where each one can be opened again or deleted, and "Delete them all" empties the list.

Can I compare things sold by area, length or time?

Yes. Besides weight, volume and count, a row’s Unit select has Area (cm², m², sq in, sq ft and the Korean pyeong), Length (cm, m, in, ft, yd) and Time (minutes, hours, days). Put a unit of the same kind in “Compare per” — sq ft for flooring, m for fabric, hour for a sitter or a court — and every row is converted into it; a row of another kind says it cannot be converted rather than guessing.