Inventory
Raw materials, ingredients, intermediate products and finished goods in one stock list, with quantity on hand always current because every batch updates it.

Food production · Ukraine
A cheese producer in Ukraine knew what it paid for milk, cultures and salt. It did not know what any single product cost to make — because a product with fifteen ingredients, some of which are other products, cannot be costed in a spreadsheet after the fact.
The situation
Cheese is not made in one step. Milk becomes a fresh cheese, which can be sold as it is. Some of that fresh cheese goes back into production with new ingredients — cultures, salt, spices, smoke, brine, packaging — and comes out as a second product, sold under a different name at a different price. A single finished product could carry anywhere from seven to fifteen ingredients, and one of them was often yesterday's output.
The producer tracked all of this by hand. Stock was counted, batches were noted, and cost was estimated at month end by dividing what was bought by what was sold. That number was fine for the business as a whole and useless for any decision about one product: which cheeses were earning, which were quietly losing money, and what happened to the margin when milk went up by ten percent.
The leftovers made it worse. Every batch left something behind — unused milk, half a vat of curd, partial packs of an ingredient — and those remainders were the starting point of the next batch. If the leftover was not on the books, the next product's cost was wrong before it was even made.
The actual problem
You cannot price a product whose main ingredient is another product you have not costed yet.
Starting point
The cheesemakers knew exactly how each product was made. That knowledge lived in notebooks and in the people who had done it for years, and it was never connected to the purchase price of what went in. So the operation could make the cheese perfectly and still not tell you whether a given product was worth making.
How it started
We spent time in production before designing anything, following a single product from raw milk through every stage until it was packed. The point was to find every place a quantity changed hands — consumed, produced, left over, reused — because each of those is a place the cost changes too.
Every product's ingredient list, quantities and yield, written down as data for the first time. This is where the seven-to-fifteen-ingredient reality became explicit, and where intermediate products were identified as ingredients in their own right.
Which products are sold as they are, which are consumed by later stages, and which do both. Raw material to product one to product two, with the branch points marked.
What is left after each batch, where it goes, and how it is used next time. Leftovers turned out to be the most common reason the old cost figure was wrong.
With the owner: how an ingredient's cost is taken at the moment of consumption, and how a stage's output cost becomes the input cost of the next stage.
Architecture
The system is built around product specifications as the single source of truth. A specification says what a product is made of and in what quantity. Producing a batch consumes those ingredients from stock, credits the output to stock, and records whatever is left over. Self-cost is not typed in: it is the sum of what the batch consumed, at the cost those ingredients carried when they were consumed. Because an intermediate product is just another stock item with a cost, the second stage costs itself the same way the first did.
What moved in
A small operation does not need a large system. It needs the few things it does every day to be recorded once, in the right place, so the numbers that matter fall out of them.
Raw materials, ingredients, intermediate products and finished goods in one stock list, with quantity on hand always current because every batch updates it.
The recipe as data: ingredients, quantities, expected yield. Change a specification and every future batch and cost follows.
Each production run recorded with what went in, what came out, and who made it, so any finished product can be traced back to its ingredients.
Remainders posted back to stock after each batch — partial packs, unused milk, leftover curd — and available as the starting point for the next run.
Raw material becomes product one, which can be sold or consumed. Product one plus new ingredients becomes product two. Each stage is a normal batch with a normal cost.
The cost of every product calculated from the actual cost of what it consumed, so the owner can see margin per product and the effect of any ingredient price change.
The difficult part was the chain. Costing a product with fifteen ingredients is arithmetic. Costing a product whose ingredients include another product, which was itself made from leftovers of a previous batch, means the cost of every stage depends on the cost of the stage before it and on what was actually left over — not on what the recipe said should have been. The system had to follow the real quantities through every stage without asking a cheesemaker to do bookkeeping.
One stock list, one specification per product, one recorded event per batch. Consumption, output and leftovers are posted together, and self-cost is derived from them. Intermediate products are treated as ordinary stock items with a cost of their own, which is what makes multi-stage production fall out of the same rule instead of needing a special case.
Scope
Working principle
If a number matters, it should be calculated from what happened — not remembered.
Questions we get asked
The questions below come up in almost every first conversation. If yours is not here, it is a good thing to open with.
Start with the operation
Every engagement starts the same way, whatever the industry: understanding how the work actually happens.
Show us how it works →