Skip to content
v26.3

Recipes and Costing

For whom: kitchen, bar and owner · Where: Admin → Articles → open article → Stock tab

A recipe tells DiKAS what a sold article is made of. When a Cuba Libre is sold, it is then not "one Cuba Libre" but 4 cl rum and 10 cl cola that are booked off the stock. In the same tab, DiKAS calculates what the recipe costs — and what the selling price leaves over.

Prerequisite

Every component physically held in stock needs "Track stock" (Articles with stock). A freshly prepared sales article can be kept without its own stock; its recipe ingredients are still taken. For quantities in cl or grams, the component additionally needs Content per unit and Content unit.


Direct recipe and stored own product

A freshly prepared recipe article has Track stock off: the sale takes its stock-tracked ingredients. A prepared article with Track stock on, by contrast, is sold from its own finished stock; its ingredients are taken when it is produced. This also applies to stored intermediate products in other recipes and prevents raw materials from being consumed twice. Check this setting on existing articles as well.

1. Create a recipe

  1. Open the sold article (e.g. "Cuba Libre"), Stock tab.
  2. Scroll to the Recipe section.
  3. In the field "Add component", search by name or PLU. Arrow keys navigate, Enter accepts, Escape closes the list.
  4. In the new row, enter the quantity and choose the unit.
  5. Add further components, then Save.

The table shows per row: Component, Quantity, Unit, Trim loss % (not for sets), Net cost and a trash icon for removal.

If "Track stock" is missing on a component

A warning icon then appears in the row with the note "Track stock missing". The component is neither booked off nor valued — the switch needs to be switched on for that article.

If no component is defined, it says "No components — article is managed without a recipe." The article then books itself off.


Validation when saving

When creating or changing a recipe, DiKAS checks its ingredients and quantities. A missing or deleted ingredient, a zero or negative quantity, a circular reference, excessive nesting or an incompatible unit prevents saving. The error identifies the recipe path and reason. Reactivating an article also checks its saved recipe.

Changing an ingredient's content or unit checks the dependent recipes as well. For example, a recipe may require 40 ml of rum. Accidentally changing the bottle content to kilograms must not silently invalidate that recipe. Correct the recipe reference or ingredient content identified by the message, then save again.

A missing purchase price in the costing preview is a different issue: the quantity can be valid while its cost is still unknown. Enter the purchase price before assessing food cost. Updates do not automatically repair historical data. Check affected recipes separately after imports or external master-data changes.

Trim loss and yield

When peeling, trimming or boning, part of the raw goods is lost. In the Trim loss % column, enter the share that is lost (e.g. 20 for potatoes). The quantity in the row stays what ends up in the finished dish; next to it DiKAS shows the yield (100 % minus loss, here 80 %).

DiKAS then calculates with the larger raw quantity: 1 kg of potatoes in the dish with 20 % trim loss becomes 1.25 kg — both in the cost of goods of the costing and in the stock deduction on a sale and when producing. Costing and stock therefore do not drift apart.

  • Without an entry (empty or 0) everything stays as before.
  • 0 to 90 % are allowed. A higher or negative value is rejected on save.
  • A set has no trim loss.
  • A loss entered later does not change sales already booked; a void books back what was sold.

2. The three quantity units

Three units occur in stock. Keeping them apart is the most important point of this page:

Unit Where it counts Example
Stock unit Stock level, stocktake, transfer 1 bottle
Content unit Recipes 4 cl (the bottle holds 70 cl)
Pack Orders from the supplier 1 crate = 12 bottles

The selection in the Unit column contains the component's stock unit and content unit plus compatible units. For liquids, ml, cl, dl and l are offered, for weights g and kg. So 4 cl from a bottle with 0.7 l content corresponds to about 0.057143 bottles. Mass and volume are not offset against each other: without an additional basis, no litres can be derived from kilograms. An incompatible stored unit is shown as a problem in the costing.

Recipes may be nested — up to three levels

A component may itself have a recipe (sauce → stock → ingredients). From the fourth level on, DiKAS stops and reports this in the costing. A recipe that contains itself is also detected and not resolved endlessly.


3. What happens on a sale

When ordering or on a direct sale, DiKAS books off the following:

  1. either the sold article itself — if it has Track stock on, only its finished stock is consumed and the recipe is not resolved —
  2. or its recipe components (up to three levels deep), if it keeps no stock of its own. A component that itself keeps finished stock (a stored sauce) is booked off as a whole ingredient, not its raw materials again,
  3. in addition the chosen article options, as far as they track stock.

Booking off always happens from the stock of the workstation at which the sale was made. A void books the same quantities back — even if the recipe was changed in the meantime: what is booked back is what was sold.

The sale always takes priority

If a quantity cannot be booked off, the sale goes through anyway and the receipt is complete. A sale with a broken recipe (missing ingredient, wrong unit) is not booked off but held under Missing deductions until you have corrected the recipe and re-booked it; the overview shows such recipes under Check recipes (Overview). Any other deviation from reality is straightened out by the stocktake.


4. Costing of the base recipe

As soon as a recipe exists, the box "Costing of the base recipe" appears below it. It calculates live while you change quantities.

Key figure Meaning
Current selling price gross / net The selling price as it currently stands in the article
Cost of goods net Sum of the component costs
Contribution margin Net selling price − cost of goods
CM ratio Contribution margin as a percentage of the net selling price
Cost-of-goods ratio Cost of goods as a percentage of the net selling price

Below is the price suggestion for the desired target contribution margin, e.g. "Price suggestion at 70 % target CM: €8.90 gross". The button "Apply to price field" enters the value into the form's price field — as everywhere, it is only saved with "Save".

Where the purchase price comes from

For each component, DiKAS looks for the price in this order:

  1. average purchase price of the main stock,
  2. average purchase price of another stock,
  3. cost per pack of the default supplier, divided by the pack factor.

If you have never booked in goods, costing is therefore based on the pack prices from the article.

In the Stock tab each supplier row shows "Price changed on …": since when the entered pack price applies. DiKAS sets the date itself on saving as soon as a price is newly entered or changed (also on import). Prices that were entered before this note have no date. The recipe check uses it to find outdated list prices.

Target contribution margin

Two choices are above the suggestion:

  • "Use business default" — takes the value from Admin → Settings → Operations → Costing defaults → Default target contribution margin (%). The default is 70 %, which corresponds to a cost-of-goods ratio of 30 %.
  • "Article exception" — a value of its own just for this article (1 to 95 %).

Which tax class the suggested gross price carries is also set in the costing defaults (Tax class of the price suggestion).

If the costing is incomplete

If a component lacks a purchase price, is deleted, does not have Track stock, or the recipe goes deeper than three levels, the yellow box "Costing incomplete:" appears with the list of reasons by name. Key figures and price suggestion are then locked, and the displayed cost of goods is a lower bound — the real cost of goods is higher.

If not a single component yields a valued stock line, it says "Nothing to calculate:".

Contribution margin is not profit

Extras and side dishes are not part of the base recipe and are not included. Staff, rent and energy have likewise not yet been deducted in the contribution margin.


Practical example: Cuba Libre

Rum 0.7 l (avg. cost €7.00 per bottle), cola 1 l (avg. cost €0.90 per bottle), lime (€0.30 per piece).

  1. Open the article "Cuba Libre", Stock tab, Track stock off — the cocktail itself has no stock.
  2. Recipe: rum 4 cl, cola 10 cl, lime 0,25 Stk.
  3. The box calculates: rum €0.40 + cola €0.09 + lime €0.08 = cost of goods €0.57.
  4. At a selling price of €8.50 gross (€7.14 net), that gives a CM ratio of 92 %.
  5. The suggestion at 70 % target CM would be considerably lower — so here the price is comfortably calculated.

From now on, every Cuba Libre sold deducts 0.057 bottles of rum, 0.1 bottles of cola and a quarter lime from the bar's stock.


When something does not work

Message / observation Cause and remedy
"Track stock missing" in a recipe row The component does not track stock. Switch it on for the component article.
"Costing incomplete:" The box names the components. Usually a purchase price is missing: maintain the pack on the article or book a goods receipt once.
"Nothing to calculate:" No component yields a valued stock line — check prices and Track stock.
"Recipe costing is currently not available." Temporary disruption. Reload the form; the recipe itself is not affected.
"No matching articles found." The search only finds articles that are not already in the list and are not the article itself.
The desired unit is not available for selection The selection offers stock unit and content unit of the component. If one is missing, it is not maintained on the component article.
The stock level drops by the wrong factor Check quantity and unit in the recipe row against Content per unit on the component article (0.7 l is something different from 70 cl).

Next step