Menu
On this page
Menu shows you what every dish on your menu really costs to make, and how much you keep when you sell it. You build each dish from its ingredients. Spensa then works out the cost from the prices on your invoices and keeps it up to date as prices change. You can also see a recommended sell price for each dish, based on the markup you expect for its category.
What this is for
- Keep one catalog of menu items and recipes for your whole business.
- Add dishes and recipes by hand, or let the assistant create them from a menu or recipe file.
- See each dish's cost, sell price, margin, and markup at a glance.
- Get a recommended sell price based on the dish's menu category.
- Build a dish from products you buy, from other recipes, and from quick estimated ingredients.
- Track trim and cooking loss per ingredient.
- Preview what optional extras would do to the cost.
- See how a dish's cost and margin changed over time.
- Record sell prices by hand or take them from your till.
- Copy dishes, delete dishes in bulk, and print a recipe book.
- Manage menu categories and their recommended markups.
Where to open it
On the web app, open Menu in the left sidebar. It is available for your whole organization, so every location shares the same catalog. The app may say "establishment" in some places; that means a location.
Menu categories have their own page under your organization settings, on the Menu categories page.
Menu is not available in the phone app. Staff at a location can see a read-only recipe view instead. That is described in the Recipes chapter.
Access and permissions
Owners, admins, and managers can view and change everything here: items, ingredients, prices, and categories. Company members with the User or Viewer role can look at everything, including prices, costs, and margins, but cannot change anything. You can fine-tune this with custom roles.
Location staff never see the Menu pages. They can only see the cost-free Recipes view, and only if you give them access.
Menu items and recipes: how the catalog works
Menu has menu items, recipes, and reusable add-ons. A menu item is a dish you sell, so it has a sell price. A recipe is something you make but do not sell directly, like a sauce, a stock, or a spice mix. Both live in the same catalog, and a recipe can be used as an ingredient inside other dishes.
A few things to know before you start:
- Costs come from your invoice prices. If you have no products yet, the page tells you: "Dish costs use your invoice prices." Upload an invoice first, or add products with prices. See Invoices and Products.
- When invoice prices change, your dish costs and margins update automatically. You do not need to do anything.
- Names must be unique. If you try to create or rename an item to a name that already exists, Spensa tells you and asks for a different name.
- Setting a sell price on a recipe turns it into a menu item. Removing the price takes it off the menu again. Add-ons keep their own place in the library when you clear their surcharge.
Each item can hold:
- A name, a subtitle, and two sets of notes: How to prepare and How to plate & serve.
- Up to 3 photos.
- Labels: free tags for your own grouping, up to 10 per item.
- A menu category (only for items on the menu).
- Allergens from the standard EU list of 14: gluten, crustaceans, eggs, fish, peanuts, soybeans, milk, nuts, celery, mustard, sesame, sulphites, lupin, and molluscs.
- Batch details: how much one batch makes (in grams, milliliters, or portions) and how big one serving is. If you leave the batch size empty, the item counts as made to order.
Add a menu item
Build each dish yourself, one ingredient at a time.
- Open Menu.
- Click Add menu item.
- Enter the name and click Create. The new item opens with its component editor.
- On Components, search for each product or prepared recipe and select it. Enter the quantity and the unit used for this dish. Resolve missing prices or measures rather than treating an incomplete cost as zero.
- Set the batch yield and serving size where needed. Put per-plate garnishes under Finishing touches.
- On Details, choose the menu category and tax category.
- On Analytics, set the gross selling price through Set price or the current price. Check net ingredient cost, You keep, and the recommended price. A missing tax category or incomplete ingredient prevents a reliable margin.
- On Recipe, add preparation and plating instructions. Wait for changes to save, then reopen the dish from Menu to verify the price and ingredients.
Spensa creates the item and opens its page, where you add ingredients and set the price. See "The menu item page" below.
Create items from a menu or recipe file
The assistant can turn a menu, a recipe, or a recipe book into menu items and recipes. You need permission to manage the menu, and your monthly allowance for automatic work must not be used up.
- Open Menu and click Upload menu.
- Drop in your files or click to choose them. You can upload PDF files, images (PNG, JPEG, HEIC), or spreadsheets (CSV, Excel), up to 10 files at once, each up to 50 MB.
- Click Continue with assistant. The assistant opens in a new chat with your files.
- The assistant works out what each file is and suggests what it would create: how many dishes and recipes, a few example names, how the ingredients connect to your products, and anything it is unsure about. Nothing is saved yet.
- Reply to confirm, or tell it what to change first.
- The assistant creates the items and keeps you posted while it works. At the end it lists what it created and what still needs your attention, with links to the new items.
Spensa saves only what is in the file. It does not invent recipes, quantities, or prices, so a menu without ingredient lists becomes dishes with their names, descriptions, and prices. Items that already exist with the same name are reused instead of duplicated. Ingredients that do not match a product in your catalog are added as quick ingredients without a price; link them to a product on the dish page to complete the cost.
Find your way around the list
The Menu page shows your catalog as cards. Each card shows the name, the menu category (with its color), labels, the sell price, the margin, and the markup. More cards load as you scroll.
You can change three things right on a card, without opening the item:
- The sell price: click it and type a new one.
- The menu category: pick another one from the list.
- The labels: add or remove tags.
If a card shows a warning icon, the item is not fully costed yet. The icon's tooltip tells you why, for example "No ingredients" or how many ingredients are incomplete. Figures that start with ~ are estimates.

Search, filters, and sort
- Type in the search box to find items by name. Search ignores case and accents: creme finds Crème, and crème also finds Creme. You can enter part of a name.
- Use the menu item, recipe, and Add-ons views to find the type of entry you need.
- Filter by labels or by menu category.
- Filter by status: all, complete, or incomplete. Complete means the item is fully costed.
- Filter > Without linked POS item shows items with no active Point of Sale catalogue link. Select Menu Items first to focus on dishes and drinks; archived POS items do not count as links.
- The filter "Missing price, category, or cost" shows only menu items that cannot get a price recommendation yet, so you can fix them one by one.
- Sort by Name, Price, Cost, Margin, or Date Added, in either direction (A-Z or Z-A, Low-High or High-Low).
Active filters show as chips above the list. Clear all removes them in one click. Your filters stay in the page address, so you can share a filtered view with a colleague.
To find a label or menu category on the web, you need access to Menu and existing labels or categories:
- Open Menu and click Filter.
- Open Label or Menu category. On a narrow screen, the choices open in a dialog.
- Click Filter labels or Filter menu categories and type part of the name. The choices narrow as you type; spaces and German characters are supported.
- Click a matching choice, or use the up/down arrow keys and press
Enter. You can select several labels or one menu category. - Close the filter and check the active filter chips and the matching items in the list. Use Clear all to restore the unfiltered list.
Margin or food cost: pick your view
Some people think in margin, others in food cost. Click the margin figure area to switch the whole list between "X% margin" and "X% food cost". Food cost is simply 100 minus the margin percent. The choice is saved on your device, per organization, so each person on your team can use their preferred view.
Spensa treats a margin of 65% or more (food cost of 35% or less) as good, and a margin below 50% (food cost above 50%) as low.
The markup warning
Each card also shows the markup: how much the price sits above the cost, as a percent of the cost. If the markup is below the recommended markup of the item's menu category, it turns red. The tooltip explains it, for example: "Food recommends 350% markup. This item is at 210%, so it is below the recommendation."
The menu item page
Click any card to open the item. The top of the page shows a breadcrumb back to Menu, plus previous and next arrows that walk through the list in your current filter and sort order.
The detail page has four tabs:
- Analytics: the money strip and cost over time.
- Components: ingredients, finishing touches, available add-ons, and where the item is used.
- Recipe: photos, preparation instructions, and plating and serving notes.
- Details: menu and tax categories, labels and allergens, and linked Point of Sale items.
The money strip
For an item on the menu, three figures sit at the top of Analytics:
- Sold for: the sell price. Click it to change it. If no price is set yet, you see Set price.
- Costs: what one serving costs to make. A
~in front means some figures are estimates. A small hint explains the batch math in plain words. - You keep: net sales minus net ingredient cost, shown as money and a percentage. Set the tax category so Spensa can calculate net sales from your gross sell price.
Under the price, a small label shows where the price comes from:
- "Manual entry": "This price was entered manually for this item."
- "Point of Sale": "This price comes from the latest approved Point of Sale data linked to this item."
If some prices or amounts are missing, the strip notes: "Costs marked ~ are estimates - some prices or amounts are missing."
For a batch recipe that is sold by the portion, the strip also shows the portion size, for example "per 350 g portion", and a line like "Ingredients make 2.5 kg - 14.80 total". If the portion size is missing, you see "Set the portion size" highlighted in yellow, because the margin cannot be right without it.
A Remove from menu link takes the item off the menu. This clears the price and the menu category.
For a recipe that is not on the menu, the strip shows the cost instead: "Cost to make", "Cost for 1 portion", "Cost for N portions", or the cost for the batch amount, sometimes with a per-gram or per-milliliter line. An Add a price button lets you type a price right there; saving it puts the item on the menu.
The recommended price
Next to the price, Spensa shows a recommendation, for example: "Recommended price: At least 14.50 based on category Food with 350% markup." The recommendation applies the category markup to net ingredient cost, then adds the selected selling tax to show a gross recommendation. Set both the menu category and tax category.
If the recommendation cannot be shown yet, the box tells you what is missing: "Choose a menu category to see a price recommendation." or "Add ingredient costs to see a price recommendation." When the cost is partly estimated, the recommended price carries a ~ too.
Ingredients and finishing touches
The heart of the page is two lists:
- Ingredients: everything that goes into the batch. An inline field ("Makes ...") records how much the batch yields.
- Finishing touches: "Garnishes added per plate, on top of the recipe." Anything added on the plate, like a garnish, a drizzle, or a herb sprig. These are costed per portion, on top of the batch.
Each line shows a display name, a quantity with a unit, and the line cost. The display name is what appears in this recipe; you can rename it without renaming the product itself. The unit choices come from how the linked product is packaged and measured, or plain grams, milliliters, and pieces. Drag lines to reorder them.
Those unit choices come from the Product Catalogue. If a product has a crate, bottle, weight, or volume set up there, the recipe can use those units and Spensa converts the ingredient cost from the latest invoice price. If a line says it needs a measure, open the product side panel and add the missing weight or volume.
If a line cannot be costed, a tooltip tells you what to do, for example: "Add a price for this product", "Add how much is used", "Choose the unit used in this recipe", "Tell us how it's measured so this can be costed.", or "Add ingredients to this recipe first" when a linked sub-recipe is still empty. Each list shows a small badge with how many lines are incomplete. Optional extras never count as incomplete.
Each line has a menu with more actions:
- Move the line between ingredients and finishing touches.
- Mark it as an optional extra.
- Change the link: connect the line to a different product or recipe.
- Set the loss (see "Trim and loss" below).
- Delete the line.
You can also select several lines at once, with Select all and Deselect all, and delete them together.
Removing an ingredient
On the web app, owners, admins, and managers can remove ingredient lines from a dish or recipe. Removing a line keeps the linked product or recipe in your catalog.
- Open Menu, choose the dish or recipe, and open Components.
- Open More actions on the ingredient line and click Remove.
- Check that the line disappears. If its sub-recipe or product panel was open, it closes too. Reload the page to verify the line stays removed.
Adding ingredients
The empty row at the bottom of the list is where you add ingredients. Press N anywhere on the page to jump to it.
- Type a name. Spensa searches your products and your recipes at the same time.
- Pick a product or a recipe from the results, or create a brand-new sub-recipe on the spot. A new sub-recipe is created, linked, and opened in the side panel so you can fill it in right away.
- Enter the quantity and the unit.
If you do not know what a product is called, narrow the search to one supplier:
- Click the filter icon at the left of the search row.
- Under Suppliers, pick the supplier. Type in Search suppliers or labels... if it is not in the first results.
- The results now show only that supplier's catalog products, sorted by name. Scroll to load more, or type part of a name to narrow them further.
- Pick the product and enter the quantity and the unit. Click the
xon the supplier chip to search everything again.
The same filter offers Recipe labels, which show only recipes with that label.
You can also add a line without linking it to anything. This is a quick ingredient: you name it and give it a flat estimated cost yourself. Quick ingredients make the dish cost an estimate (shown with ~) but do not block it from being complete. They are handy for small things you do not track as products.
The same product or recipe can appear twice on one dish only if the lines play different roles, for example once as a normal ingredient and once as an optional extra. Otherwise Spensa tells you it is already on the list.
Sub-recipes, and why a dish cannot contain itself
Any recipe can be an ingredient of another dish. That way you cost a sauce once and reuse it everywhere.
A recipe can never contain itself, directly or through a chain of other recipes. The dish would then be an ingredient of its own ingredient, and the cost could never be calculated. Because of this, the ingredient search never offers the recipe you are currently editing, and Spensa refuses any indirect loop with a clear message.
One thing to watch: if you change how a recipe is measured, for example from portions to grams, the dishes that use it keep their old quantity numbers. Those numbers now mean something different. Spensa warns you and tells you how many dishes use the recipe, so you can check them.
Optional extras and the what-if preview
Optional extras are lines that are not part of the standard plate, like an extra portion of fries. Their cost is excluded from the normal figures.
Each optional extra has a checkbox. Tick it in Components to preview the dish with that extra: the money strip in Analytics updates live and shows the standard cost next to it, with a Reset link. Nothing is saved; it is only a preview on your screen. The page hints: "Tick an optional extra to preview its cost."
Trim and loss
Some ingredients lose part of their weight in prep or cooking. Use the Loss action on a line to record it. The dialog asks "How much of this ingredient is lost in prep or cooking." and offers a cheat sheet:
- 5% - a little is lost (peeling, light trim).
- 20% - typical beef trim.
- 50% - half is lost (whole-fish filleting).
The maximum is 95%; above that the cost cannot be calculated. Spensa then costs the amount you actually need to buy, and shows a live preview, for example: "To get 30 g you need 33.3 g". Loss works on product lines, sub-recipe lines, and quick ingredients alike, and it stays in place when you re-link a line.
The side panel
Clicking a line opens a panel on the right (on small screens it opens as a dialog):
- A sub-recipe line opens the sub-recipe itself. You can edit it there, add its ingredients, and even step deeper into its own sub-recipes. A breadcrumb at the top leads back up.
- A product line opens the product details.
- A quick ingredient opens a panel where you set its estimated cost, or link it to a real product or recipe.
You can drag the panel wider on desktop. Press Escape to step back or close it.
Photos and preparation notes
On the Recipe tab you can add up to 3 photos and write two kinds of notes:
- How to prepare: how the batch is made, with steps and tips.
- How to plate & serve: how one portion is plated and served.
Both support formatting and are saved automatically when you click away. These notes and photos are exactly what your staff see in the Recipes view.
Where the item is used
The "Used in" section lists every dish and recipe that uses this item as an ingredient, with links. Check it before you change a recipe that many dishes depend on.
Menu category, labels, and allergens
In this section you set:
- The menu category (only available while the item is on the menu).
- Labels: your own free tags.
- Allergens: toggle any of the 14 EU allergens.
Allergens also roll up automatically. When you add an ingredient, the allergens of its product or sub-recipe are added to this dish and to every dish above it. Only additions happen automatically; Spensa never removes an allergen for you. If you switched an allergen on by hand and none of the linked ingredients carries it, a hint tells you it was not detected, so you can double-check.
Cost over time
The chart shows how the item's cost developed. Pick a range: last 30 days, 90 days, 6 months, a year, or all time. You can break the cost down by the item's direct ingredients or by the underlying products. Optional extras can be ticked into the timeline too. Click a line in the chart to open that ingredient's side panel.
The history is rebuilt from your invoice price history, including discounts, together with the sell price history. For items on the menu, you also see the margin over time.
Linked Point of Sale items
This section lists the Point of Sale catalogue items linked to this dish, per location, with their item codes. Seeing it requires permission to view invoices. When nothing is linked yet, it says "No linked Point of Sale items yet."
On web, users with permission to manage invoices can link an item directly from a menu item's Details tab:
- Open Menu, select a menu item or recipe, and open Details.
- Under Linked Point of Sale items, click Link Point of Sale item.
- Search for an unlinked catalogue item and select it. The saved link appears in the list with its location and item code, if available. Add-ons offer only add-on catalogue items.
Linking a recipe that is not on the menu puts it on the menu. If it has no sell price yet, Spensa uses the price from your approved Point of Sale reports for that catalogue item, and a tax category is suggested as when you add a price yourself. Putting a recipe on the menu this way also requires permission to manage the menu. Existing links remain visible and can still be removed with the unlink button beside the catalogue item. You can also manage links from the POS pages.
How Spensa calculates costs
You never have to do this math yourself, but it helps to know where the numbers come from:
- Every product line is costed from the latest price you paid for that product, taken from your invoices and including discounts. The most recent manual price or approved invoice price is used; a manual price wins on the same date. See Products.
- The quantity in your recipe is converted into the product's units automatically. Converting between weight and volume works only when the product has both a unit weight and a unit volume; otherwise Spensa asks you to tell it how the product is measured.
- A sub-recipe line is costed from that recipe's own cost.
- All ingredient lines together make the batch cost. Dividing by the batch size and multiplying by the serving size gives the cost per serving. Finishing touches are added per plate on top. For made-to-order items, the whole recipe is one serving.
- Sell prices are gross, while ingredient costs are net. Spensa removes the selling tax using the tax category before calculating margin. Set the tax category as well as the price and ingredient cost to get a meaningful margin.
- An item counts as complete when every line that is not an optional extra has a price. Estimated quick ingredients make the figure a
~estimate but do not make the item incomplete.
Sell prices and price history
Every price change is recorded, so you can always see what a dish sold for and when. This includes setting a price, changing it, clearing it, and removing an item from the menu.
Prices can come from two places:
- Manual entry: you type the price in Menu.
- Point of Sale: approved till data linked to the dish supplies real sold prices. See POS.
The current price is the most recent one from either source. If both change at the same moment, your manual entry wins. The money strip always shows which source the current price comes from.
Menu categories and recommended markups
Menu categories group your menu items and carry a recommended markup, which powers the recommended prices and the red markup warnings. You manage them on the Menu categories page in your organization settings.
Spensa starts you off with default categories and typical markups: Food (350%), Non-alcoholic drinks (400%), Beer (400%), Wine (300%), Spirits (700%), Ice cream (350%), Coffee (1000%), and Tea (1000%). You can change or delete all of them.
To add a category:
- Open the Menu categories page.
- Click the add button and fill in the name, a color, and the Recommended markup in percent. The markup must be between 0 and 5000; the dialog suggests 350.
- Save.
Each row on the page shows the color, the name, how many menu items use the category, and its markup. Editing works the same way as adding.
Deleting a category does not delete any dishes. Spensa confirms first: "This removes "{name}" from {n} menu items. Their labels and prices stay unchanged." The affected items simply end up without a menu category.
Copy a menu item
Use a copy when a new dish is a variation of an existing one.
- Open the item's menu on its card (the three dots).
- Click Copy.
- Confirm the dialog "Copy this recipe?": "This makes a copy of "{name}" with all its ingredients. You can edit the copy afterward."
The copy gets all ingredient lines, keeps the menu status and the current sell price, and is named "{name} (copy)". If that name is taken, a number is added. Photos and till links are not copied, so the new dish starts with its own.
Delete menu items
You can delete one item or up to 100 at once.
- Switch the list into select mode and tick the items.
- Choose delete.
- Read the confirmation carefully. For each item it shows where it is still used: the recipes and dishes that use it as an ingredient, or "Not in use". It also shows the effect on your inventory, such as removal from storages and how many count entries are affected.
- Confirm. Deleting cannot be undone.
Items that are still used elsewhere can be deleted too; the dialog is your confirmation that you really want that. The dishes that used them lose that ingredient line.
Print the recipe book
You can print a clean recipe book for the kitchen, without any prices or costs.
- Switch the list into select mode and tick up to 100 items. If you pick more, Spensa tells you: "You can print up to 100 recipes at a time."
- Click Print recipe book.
- A print page opens and prepares the book ("Preparing your recipe book…", then "Ready to print").
- Adjust the toggles if you like: Include sub-recipes (shown only when your selection has any) and Include photos.
- Click Print / Save as PDF. The print window also opens by itself once the book is ready.
Sub-recipes used by your selection are pulled in automatically so the book is self-contained, down to three levels deep and up to 150 recipes in total. Included sub-recipes are marked in the book. The suggested file name is the recipe name for a single recipe, or "Recipe book", together with your business name.
Staff can print from their Recipes view too, and their printout follows their access level.
How this connects to other parts of Spensa
- Products: ingredient lines link to your purchasing catalog. Each line's cost comes from the product's latest price and its packaging details. Product allergens flow into your dishes.
- Invoices: invoice prices, including discounts, drive all costs here. When an invoice changes a price, your dish costs and margins update automatically.
- POS: till items can be linked to menu items. Approved till data supplies sold prices and powers the margin chart for actually sold items.
- Inventory: recipes with a batch size and a measure can be counted as stock. Deleting an item warns you about its inventory footprint.
- Analytics: the analytics hub compares your menu prices against the recommendations and shows margins on sold items.
- Recipes: the staff view of this same catalog, with steps and photos but never any prices.
- Assistant: the assistant can create dishes, add or change ingredients, and update menu categories for you.
Good to know
- One catalog serves your whole business. All locations share the same menu items and recipes.
- Names, subtitles, and notes have generous limits: names up to 256 characters, subtitles up to 500, and each notes field up to 10,000.
- Up to 3 photos per item, and up to 10 labels of up to 100 characters each.
- You can have up to 250 menu categories, with names up to 120 characters.
- Printing: up to 100 selected recipes, up to 150 in total including sub-recipes, three levels deep.
- Loss can be set between 0% and 95%.
- Keyboard shortcuts on the item page: press
Nto jump to the add-ingredient row, andEscapeto close or step back in the side panel. - The margin versus food cost choice is saved per device, so it never changes the view for your colleagues.
- Quick ingredients are just lines in a dish. They do not appear in your product catalog.
- If a dish page shows "Dish not found", the item was removed or the link is outdated.
- Empty list and no products yet? Start with an invoice. The page links straight to the invoice upload and shows a short "See how it works" explainer.
Reusable add-ons
To create and offer an extra on the web, you need permission to manage the menu:
- Open Menu > Add-ons and use the add action to create a named extra, such as “Extra mushrooms”. Click Create.
- On Components, add the products or prepared recipes and the quantities for one sold portion.
- Set its surcharge and tax category on the detail page. A blank surcharge means unknown; zero means free.
- Open the dish that offers this extra and go to Components > Available add-ons.
- Click Add add-on, search for the shared extra, and select it.
- Tick its preview checkbox and check Dish with selected add-ons. Click Reset to return to the standard dish. The assignment is saved; ticking the preview does not change the standard recipe.
- If the extra is sold through your till, link its POS catalogue item as described in Point of Sale.
Its ingredients describe exactly one sold portion. Use purchased products, prepared recipes, ingredient losses, and estimates as you would in a dish. Create separate add-ons for different portion sizes. Set its surcharge and tax category on its detail page; a blank surcharge means unknown, while zero means free.
On a dish or recipe, use Available add-ons to offer entries from the shared library. Offering an extra does not add it to the standard ingredient list. Tick one or more extras to preview the combined cost, selling price, and margin. Each extra uses its own tax rate, and incomplete or estimated costs remain visible. This preview does not change the recipe.
Link a sold extra from the Point of Sale catalogue to the corresponding add-on. Add-on sales are reported separately from dishes. These links and quantities prepare the data for future inventory consumption calculations; they do not currently create inventory outflows.
The assistant can create shared add-ons, set or clear their surcharge, edit their ingredients and preparation notes, and assign or unassign them on dishes and recipes. It can use a prepared recipe as an add-on ingredient, such as 40 g of mushroom preparation. Removing an assignment keeps the shared add-on available elsewhere; deleting the add-on removes it everywhere.