Product
Recipe costing and COGS, on what you actually shipped
Pesto is recipe costing and COGS software for food and drink brands. It calculates cost of goods sold from your bills of materials, including wastage, packaging, labour and co-packer fees. It then costs every dispatched line at the actual lot cost of the stock you sent, so your gross margin by product, category and customer shows what really happened, not what last year's spreadsheet assumed.

What problem does this solve?
Your COGS lives in a spreadsheet someone built when you launched. Oat prices have gone up twice since, the co-packer added a fee per case, and the new six-pack uses a different sleeve. Nobody updated the sheet.
So when the retailer asks you to justify a price increase, you're guessing. When margin drops in a month, you can't tell whether it was price, mix, cost or volume. And when your board asks which customers actually make you money, you open the spreadsheet and hope.
Pesto replaces the guess with the cost of the batch you actually used.
How does Pesto's bill of materials (BOM) cost a recipe?
Every product in Pesto has a bill of materials (BOM), split into lanes so each cost lands in the right place:
Direct materials.
Bought-in.
Shadow.
Service.
For every line, set the quantity per unit and a wastage percentage, and Pesto works out the line cost. The result is an Estimated COGS per unit, with a cost build-up that shows exactly where the money goes.
Packs, cases, pallets and assortments get their own variant BOMs, including the outer packaging. A case of 12 costs 12 units plus the case itself, so your pack prices reflect the packaging too.


What are shadow materials, and why track them?
A shadow material is an input your co-packer buys and includes in the price they charge you. You never purchase it, but it's still part of what your product costs to make.
Pesto puts shadow materials in their own BOM lane and excludes them from COGS, because you don't pay for them directly. It then shows a second figure: "Theoretical full COGS (incl. shadow)". Compare the two and you can see whether your co-packer's price stacks up against the cost of the inputs.
That's a useful number to have before your next price review with them.
How does Pesto keep track of recipe changes?
Pesto locks a new BOM version every time you save, and asks for a reason. You get a full history of every recipe and pack change, with Estimated COGS charted over time.
Compare any two versions to see what changed and what it did to cost. When someone asks why a SKU's margin moved in March, you've got the answer, and the reason someone gave at the time.
How does Pesto cost a production run?
When you make a batch, record the production run in Pesto: actual output, actual material usage and actual service costs. Pesto calculates the unit cost like this:
(materials at actual lot cost + actual services) ÷ units made
Pesto also shows your yield percentage and usage drift against the BOM. If the BOM says 120 g of oats per bar and the line used 131 g, you'll see it on that run, not three months later in the accounts.
A production run records where you made the product, in-house or at a named co-packer, and at which location. For co-packed runs:
- Co-man fees sit on the run as Service lines, and you edit them to match the actual invoice.
- Materials you supply come out of stock at the co-packer's location.
- Pesto drafts a Xero supplier bill for the service costs on each supplier invoice.
The finished lot carries all of it: materials, services and fees. Kitting works the same way, with each component's lot cost rolling into the kit.


What's the difference between estimated and actual COGS?
Estimated COGS comes from the BOM: what a unit should cost at the prices you've set. Actual COGS comes from the lots: what a unit did cost, using the price you paid for each batch of materials and the real output of each run.
Pesto's gross margin uses the actual lot cost of the stock allocated to each dispatched line. If you shipped a batch made with expensive oats, that order carries the expensive oats.
To make this work, switch on COGS Tracking. Pesto then requires a cost per unit whenever anyone books stock in, so no lot enters the system at zero cost.
How does the Gross Margin dashboard explain a change in margin?
The Gross Margin dashboard shows gross margin in pounds and as a percentage, net sales, COGS, average selling price per unit and COGS per unit, each against the prior period.
The margin bridge shows why margin moved. It splits the change into three parts:
Price/mix.
COGS per unit.
Volume.
Then drill into margin by product, category or customer. You'll find out which customer is your best-margin account and which one only looks good on revenue.


Why did we build it this way?
"It's the software I wish I'd had when I was running my first business."
CEO and co-founder, Pesto
New to costing terms? Read what a bill of materials is and what goes into landed cost, or try the free food COGS calculator.
Inventory
Analytics & AI agent
Brands that make and use co-packers
New to the category? Read what COGS software for food brands does.
Frequently asked questions
What is COGS software for food brands?
COGS software calculates what each product costs you to make or buy, from ingredients, packaging, labour and fees. Pesto builds COGS from your BOMs, then uses the actual cost of each batch you shipped to report gross margin by product, category and customer.
How does Pesto calculate cost per unit for a production run?
Pesto adds the materials you used, at the actual cost of each lot, to the actual service costs for the run, then divides by the units you made. It also shows yield and usage drift against the BOM.
What's a shadow material?
A shadow material is an input your co-packer sources and includes in their price. Pesto tracks it in a separate BOM lane, excludes it from COGS and shows a theoretical full COGS so you can benchmark the co-packer's price.
Can Pesto cost products made by a co-packer?
Yes. Record co-man fees as Service lines, edit them to match the actual invoice, and Pesto rolls them into the finished lot cost. It also drafts the supplier bill in Xero.
Does Pesto use estimated or actual cost for margin?
Both, for different jobs. The BOM gives you Estimated COGS for pricing and planning. The Gross Margin dashboard uses the actual lot cost of the stock allocated to each dispatched line.
Can I see how a recipe change affected COGS?
Yes. Pesto locks a BOM version on every save with a reason, charts Estimated COGS over time and lets you compare any two versions.
See Pesto running on your own orders.
Bring a real PO, your messiest one. We'll show you what Pesto does with it in 30 minutes.
Book a demo