← Back to Pantry

User manual

Pantry Pro · Settings → Help

Pantry Pro keeps an inventory of the food in your home, and uses it to answer two questions: what can I cook tonight, and what do I actually need to buy. This page describes what the app does now. It lives in the app under Settings → Help → User manual, and at /help, which works without an account.

  • Getting started
  • The pantry
  • Scanning things in
  • Items and matching
  • Recipes
  • “Can’t tell” is an answer
  • Shopping list and meal plan
  • Your household
  • Plans and the scan allowance
  • Your data
  • Appearance
  • When something goes wrong

Getting started

You sign in with Google or Apple, or with your email address — which of those you are offered depends on how the deployment is configured. There is no password to invent, and none ever reaches this app.

Signing in by email sends one message holding a numeric code and a link. Type the code into the box the app is already showing and the sign-in finishes there. That is the half that matters on a phone: the link opens in a browser rather than in the installed app, so it signs you in beside the app instead of in it. On a laptop, where the browser is the app, the link is one tap and does the same job. Either works once, and expires.

Signing in does not create a pantry: having an account and owning a pantry are separate things, and the second person in a household is usually joining one that already exists rather than starting another. So the screen after sign-in offers three things:

  • An invitation waiting for you. If somebody invited the address you signed in with, their pantry is offered by name. It is offered, never taken automatically.
  • An invitation code. If somebody read you a code rather than sending a link, type it here.
  • Your own pantry. Name it or leave it blank, and it is named after you.

A new pantry arrives furnished: six storage locations, a few stores, and the curated list of recipe sites. It does not arrive with sample groceries in it — food you did not buy is data you would have to delete before the app could tell you the truth about what you own.

The tour. A short introduction runs the first time you sign in, and you can skip it. Seven steps — getting food in, adding recipes, cooking from what you have, planning and shopping, and sharing the household — each with a button into the real screen, and steps check themselves off from what is actually in your pantry. It is remembered per person rather than per pantry, so somebody who joins your household later gets their own, and finishing or skipping it stops it opening again. To see it a second time, use Settings → Help → Take the tour again.

The pantry

Storage locations. Six are ready made: Kitchen Refrigerator, Kitchen Freezer, Pantry, Spice Drawer, Garage Refrigerator and Deep Freezer. Rename them, add your own, or reorder them under Settings → Storage locations. Each one has a kind — refrigerator, freezer, pantry, cabinet, spice, cellar or other — which is a label rather than a rule.

Removing a location that still holds food archives it instead of deleting it: the items stay exactly where they are and the location stops appearing in pickers. An archived location can be restored from the same screen. An empty one is deleted outright.

Items and quantities. Every row in the pantry is a quantity and a unit in one location, optionally with a purchase date (Purchased), an expiry date (Expires) and a note (Notes — “opened, half used”). Adding a row by hand asks for the item, the quantity, the unit, the location and the purchase date; the expiry date and the note are set on the row afterwards. Tapping a row opens it, and the quick actions there are the ones that come up in a kitchen: Used 1, Used it all, Still here and Threw out.

Pictures. Every row carries a small drawing of the food, picked from the item’s name and its category, so a long list can be found by shape rather than read line by line. An item added by scanning a barcode shows the product’s own photograph instead. Those come from Open Food Facts, and only the address is kept here — each one loads from that site whenever a list is shown.

Use these soon. The home screen lists anything with an expiry date that has already passed or falls within the next seven days. Rows you have used up do not appear — “use it up” is not advice anybody can follow about nothing.

Not checked in a while. This is the part that keeps the inventory honest. Nothing here can see your shelves, so a row that says two jars of something has only ever been as true as the last time a person looked. Still here stamps a row as checked, and the home screen lists whatever has gone thirty days without being verified, oldest first. The row’s own sheet is gentler and says it is worth a look after a two weeks.

Running low lists staples whose total on hand has fallen to or below the threshold set on the item. Only items marked as staples appear here, because a staple is the kind of thing you restock rather than plan around.

Recent activity is the last fifteen changes to the inventory, newest first. Each line begins with what happened — add, consume, adjust, move, verify, discard or delete — then the item, how long ago, by how much, and the name of whoever did it: the one they set under Settings → Household, or their email address until they set one. A change that came out of a receipt or a shelf photo is marked via receipt or via vision; one the app made on its own carries no name.

Scanning things in

Five ways in, on the Scan tab and in Settings → Import purchase history. The first rule for all of them: reading a photograph or an email is good and not perfect, so nothing lands in your pantry without a review step.

A receipt

Photograph the receipt and it is read into a draft purchase, which opens as a review screen. Every line shows what was printed and what it was matched to. From there you can tap a line to match it to something you already have, correct the quantity or unit, or exclude it entirely. Lines that matched nothing are marked new, and will create items when you confirm.

Confirming does three things in one go: unmatched lines become new items, every line teaches that store’s shorthand, and — if you leave the box checked — the food lines are added to your inventory, dated by the receipt’s own purchase date rather than today. You choose where they go, or let each item use its default location.

Re-read the photo runs the extraction again. It replaces every line, including matches and exclusions you made by hand, and it spends another scan — so it asks first.

A shelf

Open the door, take one clear photo. Choosing the location first is optional but worth it: only then can the scan also flag things the pantry expected to see. The review splits into three lists.

  • New to inventory — found in the photo, not currently tracked here.
  • Already tracked — found, and matched to a row you already have.
  • Expected but not visible — tracked in this location, and the photo does not show it. Removing these is opt-in and off by default, because a photo missing something is weak evidence: it may simply be behind something.

Rows that came out of the photo carry how confident the reading was. Any row can be rematched or skipped before you apply, and a location has to be chosen before the scan can be applied at all.

A barcode

Unlimited, on every plan, and no model is involved at any point. The camera decodes the barcode on your own device — no photo is uploaded and none is kept — and the number is looked up: first against your own items, then USDA FoodData Central and Open Food Facts. You can also type the number underneath the barcode into the box on the same screen and press Look up, which is the answer to a curved jar the camera will not focus on.

If no database recognizes it, name it once. The barcode is stored on the item, so the next scan of the same product is an exact local hit rather than another lookup.

Purchase history, as a CSV

Under Settings → Import purchase history. The recognized columns are date, item (or description, product, name), quantity, unit, unit price, total and order id; common variants of each header are accepted, and extra columns are ignored. Only the item column is required. Rows are grouped into one purchase per order id, or per date when there is no order id.

Re-importing an overlapping range is safe — nothing is duplicated. Imported purchases fill in your item list and your purchase history, and deliberately do not add to the current inventory: groceries bought three months ago have already been eaten, and treating them as on hand would corrupt every recipe check.

Receipts by email

Under Settings → Import purchase history, where this deployment offers it, your household has an email address of its own. Forward a store’s order confirmation, a digital receipt from a store’s app, or a photograph of a paper one attached to a blank email, and it appears under Receipts to review on the Scan tab within a couple of minutes, with the sender and subject in its notes. It is read the same way a photographed receipt is and reviewed on the same screen.

An image or PDF attached to the email is the receipt; with no attachment, the text of the email is. Each one costs one scan, exactly as a photograph does. If your allowance is spent, the card in Settings says so and the email stays in your mailbox to forward again after the reset. Anyone who knows the address can put a draft in front of you to review, and nothing more — the address is yours to rotate if it gets around.

What spends the allowance

Only work that a model has to do is counted, and there are four kinds of it: reading a receipt — photographed or emailed — a shelf photo, a recipe photo, and recipe text — which happens when you paste a recipe in, or import a link whose page publishes no recipe data of its own. The app calls all four “photo scans”.

Everything else is unlimited on every plan: barcode scanning, CSV import, typing things in by hand, browsing, searching your own recipes, ranking recipes against the pantry, shopping lists and meal plans. Searching the cooking sites does not spend a scan either; it uses the deployment’s search provider, which has limits of its own.

Items and matching

Underneath everything is one list with one row per real-world food — the known items count on the home screen. Inventory rows, receipt lines, shelf-scan results, recipe ingredients and barcode scans all funnel to it. That is why a recipe asking for whole milk can be answered by a receipt line that said GV WHL MLK GAL: both of them point at the same item.

Text becomes an item in this order, cheapest and surest first:

  • Barcode, if there is one. Exact.
  • Learned shorthand. Wording somebody has already confirmed, preferring what was confirmed at the same store — the same abbreviation can mean different products at different chains.
  • The item’s own name, matched exactly once punctuation and case are set aside.
  • A similarity score. A strong score is applied on its own. A middling one is offered and not applied, which is why you sometimes see chips of close matches instead of a decision. A weak one is ignored.

When a match is wrong or missing, the correction is the same everywhere and it is worth making, because it is remembered:

  • On a receipt line or a shelf-scan row, tap it and pick the right item, or tap one of the close matches chips.
  • On a recipe ingredient, tap a suggestion chip, or the match… button beside the line.

Confirming stores that wording against the item, so the next receipt, import or scan using it matches on its own. A correction made by a person also overrules a shorthand that pointed somewhere else — otherwise the tap that fixed it would have reinforced the mistake. The wordings learned for an item are listed on the item’s own page under Receipt shorthand, and any of them can be removed.

Matching a recipe ingredient links only the ingredient to the item. It does not change the recipe’s wording or its quantities, which belong to the recipe.

What an item carries. Open one under Master items and press Edit: besides its name, brand, category and unit, an item holds the handful of fields the rest of the app reads.

  • Usually kept in — where this food normally lives. Confirming a receipt without picking one location for the whole purchase sends each item to its own.
  • Shelf life (days) — how long it keeps from the day it is bought. It warns nobody by itself; what it does is fill in the expiry date when a row is added without one, which is what puts the food into Use these soon at the right time. Counted from the purchase date on a receipt or a row you add by hand, and from today on a shelf photo, which shows that something is there rather than when it arrived. A date you enter yourself is never overwritten, and an item with no shelf life simply gets no date.
  • Low stock at — the threshold behind Running low and Restock staples. Left empty, a staple counts as low only when there is none of it left.
  • Package size and Package unit — what one of them holds: 14 and fl oz, for a can of broth. This is the field that answers a can’t-tell; what happens without one is under “Can’t tell” is an answer, below.
  • Staple — “track as present, not measured”. Only staples appear in Running low, and a recipe calling for one is answered on presence alone rather than on the amount.
  • UPC — the barcode. Filled in for you the first time you scan a product this pantry has not seen, whether a database named it or you did, and typeable by hand for a label that will not scan.

Recipes

Getting a recipe in

  • From a link. The importer reads the recipe data the site publishes for machines — the same data Google reads for search results. That is accurate, free, and stable across redesigns. If a page publishes none, the model reads the page text instead, and that spends one scan.
  • Pasted. Some publishers refuse server-side fetches outright. Select the recipe in your own browser, copy it, and paste it in; the app offers this box automatically when a fetch is refused. If what you paste happens to be page source, the markup reader gets first crack at it, which is both free and more accurate.
  • From a photo. A cookbook page, an index card, handwriting, or a screenshot of a recipe somebody sent you. Select several photos for a multi-page recipe.
  • Typed in, if it is a family recipe with no page to point at.

Finding one

Recipes → Find a new recipe online searches only the sites on your own source list — Food Network, Southern Living, Serious Eats, AllRecipes, Bon Appétit and NYT Cooking to begin with. Add sites, or switch any of them off, under Settings → Recipe sources. Searching happens when you press the button rather than as you type. Importing a result goes through exactly the same link importer as a link you pasted yourself. A result that turns out to be a list — “65 easy sheet pan recipes” — offers Show the recipes, which opens it up into the recipes it names as cards you can add one at a time.

Cooking from what you have

Cook now ranks the recipes you have saved against the pantry as it stands. The picker at the top narrows it to recipes that call for particular things you own — up to three, and it suggests whatever is expiring within the week. Two more filters: how many missing ingredients you will tolerate, and a time limit.

The ranking puts fewest missing-or-short ingredients first, then fewest it could not judge, then best coverage. Each card names what you would have to buy, and lists separately anything it could not verify.

Search the web with these extends the same idea past your own recipe box: it reads the published recipe data on pages from your source list and scores their ingredients against your pantry. Nothing is saved and no model is asked — a page nobody chose to import should not fill up the recipe box or cost anything. Pages that would not load, or that carry no recipe data, are still listed underneath with the reason, because they are still links worth opening by hand.

Servings

A recipe with a stated yield can be scaled to half, as written, or double. Every quantity on the page is restated at that scale, the pantry check re-runs against the scaled amounts, and adding to the shopping list uses them too.

Cooked it records that you made the recipe and counts it. It does not deduct the ingredients from your inventory; what you actually used is for you to adjust.

“Can’t tell” is an answer

Every required ingredient in a recipe gets one of four verdicts, and the fourth is the one that makes the other three trustworthy.

  • have it — enough of it is on the shelf.
  • not enough — some is there, and less than the recipe asks for.
  • need — none is on hand, or the line matched nothing you own.
  • can’t tell — the question could not be answered honestly.

The usual cause is units that do not reconcile. A recipe wants 4 cups of broth; the pantry holds 2 cans. The cans are real and the amount is real, and nothing here has been told how many cups are in that can. Calling it have it would send you to the stove short, and calling it need would put broth you already own on a shopping list. So it says it cannot tell, and shows you what it did find instead — how many cans, which location they are in, and that they cannot be converted to cups.

The fix is on the item, not the recipe. Record what one of them holds — the item’s Unit set to the can, Package size to 14 and Package unit to fl oz — and cans convert to cups from then on, for this recipe and every other one that asks by volume. A package size given by weight (oz, lb) reconciles with a recipe’s cups only for the foods the app knows a weight per cup for, and always with a recipe that asks by weight. An item created by a barcode scan often arrives with the size already filled in from the catalog.

Two deliberate exceptions keep this from being pedantic: staples (salt, pepper, flour) are tracked as present rather than measured, and a line with no amount at all (“salt to taste”) needs only presence. Both read as have it.

A recipe is only marked ready when nothing is missing, short, or unresolved. In Cook now, a recipe whose only gaps are can’t-tells is labeled unclear rather than ready, and the uncertain lines are listed apart from the ones to buy.

Shopping lists leave can’t-tells off by default, and say how many they left off. The checkbox on the same dialog adds them anyway; those lines carry a note saying stock could not be verified, so you can check the cabinet in the store rather than buy blind.

Shopping list and meal plan

There is one active list, and it fills from three places: what a recipe needs and you do not have, staples that have run low, and anything you add by hand.

  • From a recipe. A missing ingredient is added at the whole amount the recipe asks for; one you are merely short of is added at the shortfall only. Things you already have are skipped, and counted in the summary so you can see they were considered.
  • Restock staples adds every staple that has fallen to or below its threshold, at the threshold quantity — or one, where no threshold is set.
  • By hand, either something you have bought before or a name typed in.

Adding the same thing twice merges it into the line already there rather than making a second one. When the units cannot be reconciled — 2 cans and 14 oz — the line keeps a note (“also: 14 oz”) instead of inventing a combined number.

The list is grouped by aisle rather than alphabetically, so you walk the store once. Checking something off moves it to the bottom of its group with a line through it; Clear N bought removes them when you are done. Copy as text gives you a plain checklist to paste anywhere.

The meal plan is a week of breakfast, lunch and dinner slots. A slot takes a saved recipe or just a line of text (“leftovers”), and the picker leads with the recipes closest to cookable with what you already have. Build the week’s shopping list checks every planned recipe against the pantry in one pass, adds the gaps to the list, tells you how many ingredients you already had, and names the ones it could not check. Those get their own Add these too button, which adds only them — asking for everything a second time would double the amounts already on the list.

Your household

A pantry is shared by construction. Everyone in a household sees one inventory, one item list, one shopping list and one meal plan, and activity is attributed by name — which is why you can change the name you appear under in Settings → Household.

Inviting somebody. An owner creates an invitation, which produces both a link and a short code meant to be read aloud (it leaves out the characters people confuse out loud — no O or 0, no I, 1 or L). Give an email address and, where the deployment can send email, the invitation is sent there as well. You are told which happened on the same screen that shows you the link, and a message that was refused says so there rather than leaving you to wonder. Whether this deployment can send at all is under Settings → Status, beside Invitation email, as can send or not configured.

None of that changes the invitation itself: the link and the code are the invitation, and sending them by hand always works. An address is worth giving even where no mail can go out — if that person signs up with the same one, the invitation is offered to them without any code at all.

An invitation works once and expires after seven days. The link is shown exactly once, at the moment it is made: it is stored as a hash and cannot be read back, so if it gets lost, make another. Owners can revoke one that has not been used.

Accepting moves you. One account belongs to one household, so joining another takes you out of the one you are in. An empty starter household is cleaned up on the way out. One that still holds food, receipts or recipes refuses the move instead of quietly deleting it — export it or delete it first, from Settings.

Roles. An owner can invite, revoke, promote, demote and remove people. A member can do everything else in the app, and the only person a member can remove is themselves. The last owner cannot leave or be demoted: promote somebody else first, or delete the household outright under Your data. Leaving means losing access to everything in that household; the record of what somebody did stays behind with their name on it.

Plans and the scan allowance

Three plans, and only the model reads are capped on any of them.

  • Free — 5 photo scans a month.
  • Trial — 20 a month for 14 days. A card is required, it becomes the paid plan when the trial ends unless you cancel first, and a household gets one trial ever.
  • Paid — 40 a month, at $5 a month or $50 a year.

The month is yours, not the calendar’s. It runs from the day of the month you signed up to the same day of the next month, and the count returns to zero at midnight UTC on the date Settings shows beside Resets.

Everything that is not one of those four model reads is unlimited on every plan — inventory, barcode scanning, CSV imports, recipes you already have, ranking, shopping lists, meal plans, all of it. The cap exists because those reads are the only part of the app that costs money per use.

A banner at the top of the Scan tab says how many are left before it matters. When they are gone, the receipt and shelf buttons are disabled rather than letting you frame a shot and be refused afterwards, and the banner says the date they come back. Nothing else changes.

The trial is offered on that same banner, once the free allowance is nearly or fully spent, and only to a household that has not had one. Settings offers the subscription itself at any time. If you installed the app from Google Play, it offers neither: plans are started and managed at pantry-pro.app in a web browser, and the app itself sells nothing. Everything you subscribe to there works in the Play app the moment it is paid for.

Canceling happens on Stripe’s own screens, reached from Manage subscription in Settings on the website, along with changing a card and finding old invoices. The paid allowance runs to the end of the period you have already paid for, and then falls back to free. The pantry is never locked — nothing is deleted, hidden or made read-only when a subscription ends. If a renewal fails, the paid allowance stays while the payment is retried, and Settings says so.

Payment is handled entirely by Stripe. No card details reach this app. If a deployment has no billing configured at all, Settings says that too, and the free allowance applies.

Advertising. Where a deployment has advertising configured, the free plan carries it, on the recipe and meal-planning screens and nowhere else — never on the shopping list. Paid plans and trials have none, and on those no advertising script is loaded at all. Where a deployment has none configured, there is no advertising anywhere in the app.

Refer a friend

Settings → Refer a friend gives you two forms of the same thing: a link to send, and a short code to read out. When somebody who used yours starts a pantry of their own and scans something with it, both households get 20 photo scans. It is paid on use rather than on signup, so the person you told has to have actually tried the thing.

Those scans are not part of the monthly allowance and do not reset with it. They sit beside it, they stay until they are used, and they are only spent once the month’s allowance is gone. While there are any, the Plan section gives them a line of their own — Referral scans, and how many are left. The referral screen shows how many pantries started with your code and how many of those have actually been used, which are deliberately two different numbers. It never shows who they are.

Going the other way, a pantry can enter somebody’s code in its first 30 days, once ever, and not its own household’s or that of a pantry you are already in. If you arrived by a friend’s link the box is already filled in. It is a thank-you to whoever told you about the app rather than a discount — nothing about your plan, your price or your renewal changes — and unlike subscribing, both halves of it work in the app installed from Google Play.

This is not the household invitation described above. An invitation lets another person into your pantry, and everything in it is then shared. A referral is a recommendation to somebody who will keep a pantry of their own, and the two households never see anything of each other’s.

Your data

All three of these are in Settings → Your data.

  • Download everything. One file containing every row your household holds — inventory, purchases and receipts, recipes, lists, plans — plus who can reach it and where its photographs are stored.
  • Delete everything. Removes the household and every row in it, deletes the stored photographs, and cancels any subscription. You confirm by typing DELETE. It cannot be undone and no copy is kept, so take the download first if you want one.
  • Do not sell or share my personal information. Nothing is ever sold. Where a deployment shows advertising, opting out makes the advertising you see non-personalized: it does not remove the advertising, and nothing else about the app changes, because charging somebody in features or in money for exercising a right is the one thing the law plainly forbids. Where a deployment shows none, there is nothing for the opt-out to stop, and it is recorded anyway so that it already applies if that ever changes. A Global Privacy Control signal from your browser is honored automatically, either way.

Deleting one receipt or one shelf scan takes its photograph with it. Deleting everything, above, deletes every stored photograph the household has. The full account of what is collected, who else is involved, and what is never done with it is in the privacy policy; the terms of use sit beside it.

Appearance

Settings → Appearance holds two choices, and neither of them changes what the app does. The first is Match device, Light or Dark. Match device follows whatever the phone or laptop is set to, and changes when that does.

The second is which of four looks the app wears:

  • Pantry — the original. Deep green, system type, soft edges.
  • Market — persimmon on warm paper. Heavy type, round corners, photos to the edge.
  • Homestead — cream and sage. Serif headings, and photos matted like a cookbook plate.
  • Broadsheet — newsprint. Square corners, hairline rules, black doing the work of color.

Each is listed beside a swatch painted in that theme’s own colors and corners rather than a picture of them, so what the list shows cannot drift from what the app will look like. Every screen changes the moment you choose one.

The choice is kept by the browser, on that device only. It is not part of your account: a second phone starts again at Pantry and Match device, two people in one household can each have their own, and clearing your browser’s site data forgets it. The guides are part of the same site and read the same setting, so an article opens in the colors and shapes of the theme you chose in the app; the typefaces Market, Homestead and Broadsheet use are loaded by the app itself and do not follow.

When something goes wrong

A site that will not import

Some publishers refuse anything that is not a live browser, by a fingerprint no combination of headers gets past. The app tells you which site refused and opens a paste box: select the recipe in your own browser, copy it, and paste it in. Photographing the page works too. This is not a failure you can retry your way out of, which is why the alternative is offered rather than a try again button.

A different message means something else: if the page is a roundup — “64 best chicken thigh recipes” — the import is refused deliberately, because pasting an article about thirty recipes does not help. Press Show the recipes instead and add the ones you want. When that button is not offered, the list keeps its recipes somewhere this cannot follow: open it and import the one you want.

A receipt line matched to the wrong item

Fix it on the review screen before you confirm: tap the line and choose the right item. You only have to do it once. The correction is stored as that store’s shorthand for that product, and it overrules whatever the shorthand said before, so the same line on next month’s receipt matches correctly on its own. If a wrong shorthand has already been learned, it can also be deleted from the item’s page under Receipt shorthand.

A photo scan that failed

The allowance is checked before the model is asked anything, and a scan is recorded only after the model has answered with something readable. So a scan refused because the cap is spent, an upload that never arrived, a request that timed out, or an image the model could not read structured data from, all cost nothing.

The line is drawn at the model answering, not at the scan finishing: in the rare case where the reading succeeds and saving the draft afterwards fails, that read has already been counted. Recording is also deliberately best-effort in the other direction — if the ledger write itself fails, you keep your result and the scan goes uncounted, because losing a row is a smaller problem than turning a good scan into an error.

The photo buttons are disabled and the allowance is not spent

Then this deployment has no model key configured, and the Scan tab says so. Settings → Status shows no API key beside Photo analysis. Barcode scanning, CSV import, and adding things by hand all still work.

Recipe search says it is unavailable

Two different things wear that message, and it says which: either search is not set up on this deployment, or the search provider is refusing requests for now. Neither is worth retrying blindly. You can still import any recipe by its link — and when search is simply not configured, the From the web section of Cook now offers your own source sites as links, to search by hand and import what you like.


HomeGuidesPrivacyTerms