KrataaThe household receipt appWaitlist opens soon

How to keep a grocery price book: paper, spreadsheet or app

By Krataa8 minute readFiled under prices, groceries

A price book is a running list of what you paid for the things you buy again. To keep one, pick fifteen to twenty items, and each time you buy one write down seven things: the item, the brand, the size, the price, the price per unit, the store and the date. Then compare each new price with the middle of your recent prices for the same brand and size. That middle is your usual price. A notebook is enough. A spreadsheet does the arithmetic. An app that reads receipts does the typing.

The short version

  • Follow the fifteen to twenty things you buy most often. Leave the rest out.
  • For each purchase write seven columns: item, brand, size, price, unit price, store, date.
  • Unit price is the price divided by the size. It is how two sizes are compared fairly.
  • Your usual price is the middle one of your recent prices for the same brand and size.
  • When the size changes, the old prices stop being comparable. Compare per unit from then on.

What a price book is, and why it works

Prices move a little at a time, and a package can change size while its shelf price stays put. Memory keeps a rough sense of what things cost and loses the detail. A price book replaces that sense with a record of your own purchases, at your own stores, in the brands and sizes you buy.

It works because one price on its own means little. Five prices for the same thing show what is usual. Once you know what is usual, every new price can be judged. A tag that says "sale" either beats your usual price or it does not, and now you can tell which.

A receipt already prints most of what a price book needs. What a receipt knows that your bank statement does not goes through one receipt line by line.

The seven columns that matter

ColumnWhat to writeWhy it is there
ItemWhat it is, in your own words: "ground coffee"So you can find it again
BrandThe brand, or "store brand"A different brand is a different product
SizeThe number and the unit: 12 oz, 18 count, 1 galWithout it, two prices cannot be compared
PriceWhat you paid for one, before taxIt is the figure the shelf tag shows
Unit priceThe price divided by the sizeIt is the fair comparison across sizes
StoreWhere you bought itThe same thing can cost a different amount at each store
DateThe day you bought itSo the prices line up in order

Pick one unit for each item and keep to it: ounces for coffee, count for eggs, pounds for meat and produce, rolls or sheets for paper goods. Ounces of weight and fluid ounces are different units, so do not mix them in one item's history.

Which fifteen to twenty things to follow

Take your last three or four receipts and mark every item that appears on at least two of them. Those are your candidates. Keep the ones that pass three tests:

  • You buy it at least once a month.
  • You buy the same brand and size most times, or it is sold by weight.
  • It is a real part of the bill: coffee, eggs, milk, meat, cooking oil, detergent.

Fifteen to twenty items is few enough to keep up. Following everything fails for two reasons. The log takes long enough that it is easy to give up. And an item you bought once has nothing to be compared with, so its row tells you nothing.

Three ways to keep it

Paper

Use a notebook with one page per item. Write the item and the brand at the top, then one row per purchase: date, store, size, price, unit price. Work out the unit price on your phone's calculator before you write the row. To find your usual price, read the last five rows and take the middle value.

For about ten tracked items in a week's shopping, expect ten to fifteen minutes a week. That is our estimate, so let your first week correct it.

A spreadsheet

Use one sheet with one row per purchase. This layout can be copied as it stands. The stores, brands and prices in it are invented.

DateStoreItemBrandSizeUnitPriceUnit priceKey
2026-09-05Thimbleby MarketGround coffeeBrindle Roast12oz7.990.666Ground coffee / Brindle Roast / 12 oz
2026-09-19Thimbleby MarketGround coffeeBrindle Roast10.5oz7.990.761Ground coffee / Brindle Roast / 10.5 oz
2026-10-03Thimbleby MarketGround coffeeBrindle Roast10.5oz7.990.761Ground coffee / Brindle Roast / 10.5 oz
2026-10-03Thimbleby MarketEggs, largeHenwick Farm12count4.290.358Eggs, large / Henwick Farm / 12 count
2026-10-06Fennimore Co-opEggs, largeHenwick Farm18count5.990.333Eggs, large / Henwick Farm / 18 count

The columns run from A to I, with the headings in row 1. You type the first seven. The last two are formulas, written here for row 2:

Unit price (H2):  =G2/E2
Key (I2):         =C2&" / "&D2&" / "&E2&" "&F2

The key joins item, brand and size, so that only like is compared with like. On a second sheet, list each key once in column A and put this beside it to get the usual unit price:

=MEDIAN(FILTER(Log!H:H, Log!I:I=A2))

The formula assumes the first sheet is named Log. It takes the middle of every row with that key, so once the log is more than a few months old, move the oldest rows to another sheet to keep the usual price recent. If your spreadsheet program has no FILTER function, sort the log by the Key column and read the middle value of each group by eye. The median is a better "usual" than the average because one sale week does not drag it down.

The two egg rows show what the key protects you from. The 18 count costs less per egg than the 12 count: 33.3 cents against 35.8. That is a fact about two sizes at two stores. It does not mean eggs got cheaper, and with separate keys the sheet will never say so.

Typing ten rows a week takes five to ten minutes by our estimate, and the sheet does the dividing.

An app that reads receipts

An app can fill the same columns from a photo of the receipt. Receipts print the item, the price, the store and the date. Many print the size or the weight. Where a receipt prints no size, a unit price cannot be worked out from the receipt alone. The time this way costs is the photo, plus a look at any line the app got wrong.

Before you trust an app's arrows, check one thing: whether it compares the same brand and size, or treats every bag of coffee as the same coffee.

If you follow twenty things at one or two stores, a notebook or a spreadsheet does the whole job, and an app adds little. An app starts to make sense when you want every line of every receipt kept, or when more than one person does the shopping and nobody wants to type.

Reading the book

Here is one item's history. The store, the brand and the prices are invented. A household buys Brindle Roast ground coffee at Thimbleby Market, and after four months its book has eight rows:

DateSizePricePer ounce
Jun 612 oz$7.4962.4 cents
Jun 2012 oz$7.4962.4 cents
Jul 1112 oz$6.4954.1 cents
Jul 2512 oz$7.4962.4 cents
Aug 1512 oz$7.9966.6 cents
Sep 512 oz$7.9966.6 cents
Sep 1910.5 oz$7.9976.1 cents
Oct 310.5 oz$7.9976.1 cents

The usual price

By the end of July the usual price for the 12 ounce bag is $7.49. Put the four prices in order ($6.49, $7.49, $7.49, $7.49) and the middle is $7.49. The one sale week does not move it.

A real sale, and a tag that only looks like one

On July 11 a tag said "sale" and the price was $6.49, one dollar under the usual $7.49. The book confirms it: that was a real sale.

On August 15 the price went from $7.49 to $7.99 for the same 12 ounce bag. Same brand, same size, 50 cents more. That is a real price rise.

On October 3 a yellow tag said "Special, $7.99". The book shows $7.99 on each of the three rows before it. The tag was true, and the price was the ordinary one.

Why a changed size breaks the comparison

On September 19 the bag went from 12 ounces to 10.5 ounces. The shelf price stayed at $7.99, so a book that followed only the price would show no change at all. Per ounce, the coffee went from 66.6 cents to 76.1 cents, which is 14 percent more.

This is why size has a column of its own. When it changes, do three things. Start a new line of history for the new size, because $7.99 for 12 ounces and $7.99 for 10.5 ounces are the prices of two different products. Compare the two per unit, because that comparison still holds. And write a note on the row, such as "bag now 10.5 oz", so the jump in unit price has its reason beside it.

Two line charts of one invented coffee over eight purchases from June 6 to October 3. The shelf price is $7.49 on three of the first four purchases, with one sale at $6.49 on July 11, then rises to $7.99 on August 15 and stays there. The price per ounce follows it at 62.4 cents, 54.1 cents and 66.6 cents until September 19, when the bag shrinks from 12 ounces to 10.5 ounces. From that day the shelf price is still $7.99 and the price per ounce is 76.1 cents, 14 percent more.

The eight purchases as a table

Brindle Roast ground coffee at Thimbleby Market. The usual price from Jun 6 to Jul 25 is $7.49.

The eight purchases the two charts are drawn from
DateBagShelf pricePer ounceMarked on the picture
Jun 612 oz$7.4962.4 cents
Jun 2012 oz$7.4962.4 cents
Jul 1112 oz$6.4954.1 centsSale tag. $1.00 under usual.
Jul 2512 oz$7.4962.4 cents
Aug 1512 oz$7.9966.6 centsUp 50 cents. Same 12 oz bag.
Sep 512 oz$7.9966.6 cents
Sep 1910.5 oz$7.9976.1 centsBag goes from 12 oz to 10.5 oz. 66.6 to 76.1 cents per ounce. 14 percent more.
Oct 310.5 oz$7.9976.1 centsTag says Special. Same $7.99.
An invented example. From September 19 the shelf price holds at $7.99 while the price per ounce rises 14 percent, because the bag is smaller.

Where Krataa fits, and where it does not

Krataa is an iPhone app, in beta, that builds a record like this one from a household's receipts. You photograph a receipt or share a screenshot or a PDF of an online order, and with automatic itemizing turned on Krataa lists every line. Once a thing has been bought on two or more receipts it appears on the Shelf. There the latest price is compared with your usual price, which is the middle price of your other receipts in the last 90 days for the same kind, brand and size. Weighed goods compare per pound. A different size gets a note and never an arrow. How Krataa follows what things cost over time has the detail.

Krataa does not tell you what a store charges today. It knows what your household paid. It does not work out a regular price, and on a receipt line it quotes a sale saving only where the receipt printed one. Between two sizes, kinds or stores you have bought, it shows the price per unit of each, and a card on the Shelf may point out the better buy. It records an item's brand and size only when the receipt prints them. You cannot merge or split items by hand, and a receipt that prints no weight cannot be compared per pound. Discover, the part of Krataa that compares prices between households, shows a price only after five households have added one, so it starts empty. Receipts are kept on Krataa's server, and with itemizing on each one is processed by a provider that the app names on the screen that asks, before anything is sent. Krataa runs on iPhone only and is not on the App Store today.

Price memory in KrataaAll articles

The waitlist is not open yet. It opens here soon.