Skip to content
100% local

Unit price comparator

Compare products sold in different pack sizes by their true price per unit.

Input
Output

Unit price comparator

Paste a list of offers, one per line, in the format "product;price;quantity;unit" — for example "Rice 1kg;2.49;1;kg" or "Juice 500ml;1.10;500;ml" — and this tool converts every line to a price per gram, kilogram, milliliter, liter or piece, then ranks the offers from cheapest to most expensive. Use it to settle the question a shelf tag often hides: whether the bigger pack, the store-brand jar or the multipack is actually the better deal.

The "Compare price per" option picks the unit the comparison is expressed in, and only lines from the matching family (mass, volume or pieces) are compared together — a line in the wrong family is skipped rather than silently mixed in. Discount (%) applies a percentage off every price before conversion, and "Second item free" doubles the effective quantity for a buy-one-get-one offer, so a promotional price is compared on equal footing with a plain one. Shipping cost per item adds a flat delivery charge to each line, which matters when a cheaper unit price is only cheaper before postage. Currency symbol and decimal places control the formatting, and "Show as ranked table" switches the output from a plain numbered list to a pipe-delimited table with a rank column.

Lines that don't parse — a missing field, a non-numeric price, a unit outside the chosen family — are counted as skipped and left out of the ranking rather than aborting the whole comparison, so one typo in a long list doesn't block the rest. Windows and Unix line endings are handled the same way, and the tally below the output reports how many offers were compared and the best price found.

Everything runs in your browser: the prices and quantities you paste are never uploaded anywhere. Copy the ranked result, download it as a .txt file, or send it back into the input to adjust an option and recompare.

FAQ

What format do the lines need to be in?
Each line is "product;price;quantity;unit", separated by semicolons — for example "Oats 750g;1.89;750;g". Blank lines are ignored.
Can I compare a 500ml bottle against a 1kg bag?
No — only lines whose unit belongs to the same family as the one you chose under "Compare price per" (mass, volume or pieces) are compared together. A line from a different family is skipped.
How does "Second item free" affect the price?
It treats the paid price as covering twice the listed quantity, which is what a genuine buy-one-get-one-free offer means for the true unit price.
Does the shipping cost apply once per order or once per line?
It is added once to every line's price, representing a per-item delivery charge — useful when comparing offers from different sellers with different shipping fees.
Is my price list uploaded anywhere?
No. The comparison runs entirely in your browser — your list of products and prices never leaves your device.