Know what every dish costs before you plate it: 10 AI skills for recipe costing

dish-cost-builder

cost every dish down to the gram before it goes on the menu

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: dish-cost-builder
description: Builds the true cost of a dish from its recipe, ingredient by ingredient, at the unit price actually paid rather than a guessed one. It works out cost per portion, ties the build to a dated supplier invoice for every line, and flags any ingredient with no invoice behind its price. Use before pricing a new dish, and whenever a core ingredient's price moves.
---

# What this dish actually costs you, line by line

Give this the recipe and, per ingredient, the most recent supplier invoice showing its price. Get back the total cost, cost per portion, and a line-by-line build you can defend.

## What it does

1. **Take the recipe apart into one row per ingredient**: quantity, unit, and the exact name as on a supplier invoice, not a shorthand.
2. **Price every row from a real, dated invoice, never a remembered number.** HMRC requires a business to keep "purchase invoices" as "the main evidence" for what was paid (VAT Notice 700/21, sections 2.3, 3.2). A price with no invoice has nothing behind it.
3. **Convert every ingredient to the recipe's unit before multiplying.** A case priced per 12 x 1kg isn't priced per gram until divided out; get it wrong and every dish using it is wrong by the same ratio.
4. **Add it up: total cost, then cost per portion**, divided by the recipe's actual stated yield, not the hoped-for one.
5. **Record the invoice date against every line**, so a build goes stale visibly, not silently.
6. **Separate the cost from VAT.** A valid invoice shows "the amount payable, excluding VAT" as its own line (VAT Notice 700/21, section 4.1); the dish is costed VAT-exclusive, since VAT on ingredients is normally reclaimable.

## Then it checks

1. Every row has a quantity, unit, and a priced, dated invoice reference.
2. Every unit conversion is shown as a calculation, not just a result.
3. The total is recalculated independently, never copied from a formula.
4. Cost per portion uses the recipe's own stated yield, shown with the figure.
5. No price used is older than the most recent invoice held for it.

Any check fails: name it, redo once. Failed twice: say what is wrong and stop.

## Rules

- Public information only. Never invent a fact, a number or a quote, including a price with no invoice behind it; the line is flagged, not guessed.
- Anything sent in someone's name says whose name it is.
- Never strip VAT by an assumed flat percentage unless that's the only figure available, and say so.
- Never assume a stated yield is correct; a mismatch against a real plate count belongs to waste-adjusted-yield-cost, not this skill.
- Working document for the owner to check against their own invoices and recipes, and for their accountant on pricing or tax. Not accountancy or tax advice.

## Built from
- HMRC, "Record keeping (VAT Notice 700/21)", https://www.gov.uk/guidance/record-keeping-for-vat-notice-70021, published 26 September 2013, updated 18 March 2024, read 4 November 2026: purchase invoices as evidence, the VAT-exclusive line, behind steps 2 and 6.
- HMRC, "Catering, takeaway food (VAT Notice 709/1)", https://www.gov.uk/guidance/catering-takeaway-food-and-vat-notice-7091, published 7 October 2013, updated 8 June 2026, read 4 November 2026: confirms catering carries VAT, why cost is built net of it.

Prompt for Codex

# dish-cost-builder

## You are given
A recipe: dish name, stated yield (portions), and one row per ingredient with quantity and unit. For each ingredient, the most recent supplier invoice reference, date, invoiced quantity/unit, and price excluding VAT. A line with no matching invoice is stated explicitly, never left blank.

## Produce
Write into a `./dish-cost-builder-output/` folder:

1. `ingredient-rows.csv`: `row_ref`, `ingredient_name`, `recipe_quantity`, `recipe_unit`, `invoice_ref`, `invoice_date`, `invoiced_quantity`, `invoiced_unit`, `unit_price_ex_vat`, `conversion_factor`, `line_cost_ex_vat`, `priced_from_invoice`. `row_ref` is R0001 upward. `priced_from_invoice` is `yes`/`no`. `conversion_factor` is shown as the arithmetic used (e.g. `1000/2000`), never a bare number.
2. `dish-cost-summary.csv`: `dish_name`, `stated_yield_portions`, `total_cost_ex_vat`, `cost_per_portion_ex_vat`, `most_recent_invoice_date`, `oldest_invoice_date`, `rows_with_no_invoice`.
3. `gaps.md` - numbered list of: every row with `priced_from_invoice` = `no`; every row where recipe and invoiced units could not be converted for lack of pack-size/density data; any dish whose total does not equal its own rows on recalculation; any invoice over 90 days old.
4. `recalculation-check.csv`: `dish_name`, `sum_of_rows_ex_vat`, `summary_total_ex_vat`, `match` (`yes`/`no`). Every `no` is listed first in `gaps.md`.

## Rules
- Codex counts, converts and totals. It never invents a price, pack size, density conversion or yield not supplied.
- Every unit conversion is written out as the calculation performed, so it can be checked by hand.
- A row with no invoice is recorded with `priced_from_invoice` = `no` and a blank cost; never filled in with an estimate or a different ingredient's price.
- VAT is never added or removed unless the invoice itself shows the VAT-exclusive amount; where only a VAT-inclusive total exists, record it as given and flag it in `gaps.md`.
- Totals are always recalculated independently from the rows, never taken from a total the recipe file already states.
- British English, GBP, DD Month YYYY dates. No em dashes.
- Every file ends with: this is a working document prepared for the owner to check against their own invoices and recipe files, and for their accountant where it feeds pricing or tax. It is not accountancy or tax advice.

## Return
The absolute path and row count of each file written. Ingredient rows, with how many were priced from a real invoice. Every dish's total cost ex VAT and cost per portion, with the yield used. The `recalculation-check.csv` result for every dish, including any mismatch. The oldest invoice date used. The `gaps.md` item count.

Built from the best public work on this

Sources for dish-cost-builder

Everything below was opened and read on 4 November 2026. Nothing is cited that could not be loaded.

1. HM Revenue and Customs, "Record keeping (VAT Notice 700/21)"

https://www.gov.uk/guidance/record-keeping-for-vat-notice-70021, first published 26 September 2013, last updated 18 March 2024, read 4 November 2026.

Section 2.3 lists what counts as a business record, including "purchase invoices and copy sales invoices" and "purchase and sales books". Section 3.2 is more direct about why: received VAT invoices are the main evidence for reclaiming input tax, so they should be kept "so they can be found easily". Section 4.1 lists what a valid VAT invoice must show, including "the rate of VAT and the amount payable, excluding VAT, expressed in any currency", "the unit price", and "for each description, the quantity of the goods or the extent of the services". Section 2.4 sets the retention period: "at least 6 years".

This is the whole basis for step 2 of the skill. A dish cost built from a number someone remembers is not a dish cost; a dish cost built from an invoice that shows quantity, unit price and the VAT-exclusive amount is something a business can stand behind, and it is also the document HMRC itself expects to exist.

Where the skill departs: the Notice covers Making Tax Digital, self-billing and margin schemes in detail. None of that is relevant to costing a recipe and the skill does not teach it.

2. HM Revenue and Customs, "Catering, takeaway food (VAT Notice 709/1)"

https://www.gov.uk/guidance/catering-takeaway-food-and-vat-notice-7091, first published 7 October 2013, last updated 8 June 2026, read 4 November 2026.

Used for one fact only: food and drink supplied in the course of catering is, with limited exceptions, standard-rated, per section 3.1, "You must always charge VAT at the standard rate if you make a supply of food and drink for consumption on the premises." That is why step 6 insists the ingredient cost going into a dish build is the VAT-exclusive figure from the invoice, not a figure that has had an assumed VAT rate stripped out by guesswork.

Where the skill departs: the Notice's hot/cold and eat-in/takeaway tests decide what VAT the business charges on the dish once sold. They are the subject of the vat-liability-checker skill, not this one, which only costs the dish going in.

Best public prompt we found for this job

The closest public artefact is `kartben/recipe_costing` on GitHub, read from api.github.com on 4 November 2026, which returned a `stargazers_count` of 0 and the description "Recipe Costing". It is a small, little-used Ruby and HTML tool, not a widely reviewed one, but it is the closest real, working repository to this exact job: cost a recipe out from its ingredients for a restaurant or kitchen manager.

What we took: the basic shape, that a recipe is a list of ingredients each with a quantity and a cost, and that the tool's job stops at producing a total and a per-portion figure rather than trying to set a menu price.

What we did not copy, and why: the repository has no concept of an invoice as the source of truth for a price, and no field for the date a price was recorded, so a cost built with it goes stale silently. It also has no VAT-exclusive/VAT-inclusive distinction, which matters for a UK kitchen reclaiming input tax and would otherwise overstate the true cost of the dish by the VAT paid on ingredients. Both gaps are exactly what steps 2 and 6 of this skill exist to close.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.