Know what every dish costs before you plate it: 10 AI skills for recipe costing
supplier-price-variance-alert
catch a supplier price creeping up before it reaches your recipe costs
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: supplier-price-variance-alert description: Checks every supplier invoice line against the price last paid, and against what the invoice is legally required to show, so a creeping price rise or a line failing to match its own description doesn't reach a recipe cost unnoticed. It flags any line priced differently from the last invoice, and any invoice missing a detail HMRC requires. Use every time an invoice arrives, before its prices feed dish-cost-builder. --- # Catching a price that moved before it moves your margins Give this the current invoice and the price you paid last time for each item on it. Get back every line where the price changed, by how much, and whether the invoice itself is valid enough to rely on. ## What it does 1. **Check the invoice carries what HMRC requires before trusting a price on it.** A valid VAT invoice must show "a description sufficient to identify the goods", "the quantity", "the unit price", and "the amount payable, excluding VAT" (VAT Notice 700/21, 4.1). Missing a unit price or quantity means it can't be checked at all. 2. **Match each line to the same item on the previous invoice**, by description and supplier, not invoice order; suppliers reorder lines. 3. **Compare VAT-exclusive unit prices only**, never inclusive against exclusive, which produces a false 20% "rise" out of nowhere. 4. **Flag the size of any change**, in percentage and absolute terms, and flag a rise hidden in a pack-size change: a case cut from 6×2kg to 6×1.8kg at the same price is a real rise even though the total looks unchanged. 5. **Check delivery matches description.** Goods sold by description must correspond with it: "there is an implied term that the goods will correspond with the description" (Sale of Goods Act 1979, section 13). A line invoiced as one cut, grade or brand but delivered as another is grounds for a credit, not just a query. ## Then it checks 1. Every line has a unit price, quantity and VAT-exclusive amount; missing ones are flagged, not estimated. 2. Every comparison is VAT-exclusive against VAT-exclusive, never mixed. 3. Every flagged variance shows percentage and absolute change, naming the previous invoice compared. 4. A pack-size change is checked for a hidden unit-price rise, not just the case price. 5. No variance is marked "resolved" without a dated supplier reply. Any check fails: redo once. Failed twice: say what's wrong and stop. ## Rules - Public information only. Never invent a fact, number or quote, or a previous price with no earlier invoice; mark it "no prior price." - Anything sent in someone's name says whose name it is. - Never compare a VAT-inclusive price to a VAT-exclusive one and report the gap as real. - Never close a flagged variance as agreed without a dated supplier response. - Working document for the owner to check against their own invoices and purchase history, and their accountant or solicitor where a dispute becomes contractual. Not legal or accountancy 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: section 4.1's valid-invoice checklist, steps 1 and 3. - Sale of Goods Act 1979, section 13, https://www.legislation.gov.uk/ukpga/1979/54/section/13, read 4 November 2026: the implied term goods must correspond with description, step 5.
Prompt for Codex
# supplier-price-variance-alert ## You are given The current invoice: supplier, date, and one row per line with description, quantity, unit, unit price, VAT-exclusive amount and VAT rate. The most recent previous invoice(s) for the same supplier, same shape. Where known, the pack size (units per case, weight per unit) for any case-sold line. ## Produce Write into a `./supplier-price-variance-output/` folder: 1. `invoice-validity.csv`: `invoice_ref`, `line_ref`, `description_present`, `quantity_present`, `unit_price_present`, `vat_exclusive_amount_present`, `vat_rate_present` (all `yes`/`no`), `valid_for_comparison` (`yes` only if all five are `yes`). 2. `price-variance.csv`: `line_ref`, `description`, `current_unit_price_ex_vat`, `previous_unit_price_ex_vat`, `previous_invoice_ref`, `change_absolute`, `change_percent`, `pack_size_changed` (`yes`/`no`), `true_unit_price_rise` (recalculated per base unit when pack size changed), `flagged` (`yes` when `change_percent` exceeds 3% either way, or pack size changed). 3. `no-prior-price.csv`: `line_ref`, `description`, `current_unit_price_ex_vat`, `reason` (`no previous invoice on file for this item`). Never carried into `price-variance.csv` as a zero-change row. 4. `description-match-check.csv`: `line_ref`, `invoiced_description`, `delivery_note_description_if_supplied`, `match` (`yes`/`no`/`not checked, no delivery note supplied`), `notes`. 5. `gaps.md` - numbered list of: every `valid_for_comparison: no`; every `flagged: yes` line; every row in `no-prior-price.csv`; every `match: no` row. ## Rules - Codex matches, compares and flags. It never assumes a previous price when none is on file, and never treats a VAT-inclusive figure as comparable to a VAT-exclusive one. - If either invoice only shows a VAT-inclusive figure, flag `VAT-exclusive price not confirmed` rather than comparing anyway. - Line matching is by description and supplier, not row position; a reordered line must not produce a false variance. - A pack-size change always triggers recalculation to a common base unit before judging the true price, never on case price alone. - 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 supplier invoices and purchase history, and for their accountant or solicitor to check where a dispute over price or description becomes a contractual question. It is not legal or accountancy advice. ## Return The absolute path and row count of each file. Lines failing the validity check and why. Lines flagged for a price variance, with the largest rise named. Lines where a pack-size change hid a true rise. Lines with no prior price. Description mismatches found. The `gaps.md` item count.
Built from the best public work on this
Sources for supplier-price-variance-alert
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 4.1 lists what a valid VAT invoice must show, including "a description sufficient to identify the goods or services supplied", "for each description, the quantity of the goods or the extent of the services", "the unit price", "the rate of VAT and the amount payable, excluding VAT, expressed in any currency", and "the gross total amount payable, excluding VAT". Section 3.2 adds that received VAT invoices are the main evidence for reclaiming input tax.
This is the checklist step 1 is built on directly: a line cannot be checked for a price change if the invoice it sits on is missing the very fields (quantity, unit price, VAT-exclusive amount) a variance check needs. The skill treats a missing field as a reason to flag the invoice, not a reason to estimate around the gap.
Where the skill departs: the Notice goes on to cover self-billing, Making Tax Digital and retention periods, none of which bear on comparing one invoice's prices to another's, and the skill leaves them out.
2. Sale of Goods Act 1979, section 13
https://www.legislation.gov.uk/ukpga/1979/54/section/13, read 4 November 2026.
Section 13(1) states: "Where there is a contract for the sale of goods by description, there is an implied term that the goods will correspond with the description." Section 13(3) adds that a sale is not prevented from being a sale by description "by reason only that, being exposed for sale or hire, they are selected by the buyer," and section 13(5) notes this section does not apply to the separate regime for consumer contracts under the Consumer Rights Act 2015, which does not cover business-to-business trade purchases of the kind a kitchen makes from a supplier.
Used in step 5 for a specific, narrow point: a supplier invoice description is a contractual description, and what is delivered has to match it. A line invoiced as a named cut, grade or brand but delivered as something else is not just a quality complaint, it is a mismatch against this implied term, and that is the basis for raising it as more than a price query.
Where the skill departs: the Act covers satisfactory quality, fitness for purpose, remedies and much more. The skill cites only section 13, on description, because that is the provision that bears on comparing what was invoiced to what was delivered; it is not a guide to the whole Act.
Best public prompt we found for this job
The closest public artefact is `itsbrianhughes/p2p-lifecycle-simulator` on GitHub, read from api.github.com on 4 November 2026, which returned a `stargazers_count` of 0 and a description opening "Business-realistic Procure-to-Pay (P2P) simulator" (the fuller text, paraphrased for length, describes modelling purchase orders, goods receipts and invoices with three-way matching, price-variance tolerance and exception handling). It is the closest real repository in shape to this exact job: comparing an invoice's prices against what was expected and flagging the gap.
What we took: the three-way-match concept itself, that a price variance is only meaningful when it is checked against both a purchase order or prior price and the actual goods received, not against the invoice alone.
What we did not copy, and why: it is a generic enterprise procurement simulator, built to teach how P2P systems work rather than to run a live kitchen's supplier accounts, and it has no UK VAT awareness (VAT-exclusive versus VAT-inclusive comparison, which is the single most common way a variance check produces a false alarm), no concept of a pack size changing underneath an unchanged case price, and no tie to the Sale of Goods Act's description requirement. Those three gaps are what steps 3, 4 and 5 of this skill exist to close for a UK hospitality business specifically.
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.
Foxera