Skip to content

Item Model & Policies — how an item knows how to behave

What this covers. Everything the business buys, holds, makes, uses, or sells begins as an item — flour, salt, a paper cup, a bottle of cola, a made-to-order carbonara, an hour of a meeting room, or a combi oven. They behave differently: some are counted and valued, some are expensed the day they arrive, some are made and sold without ever becoming stock, and some have nothing of their own to account for at all. This explains what decides that behavior. The answer is a small set of stable, explicit policy facts carried on the item itself — its accounting treatment, how finely its stock is tracked, its default storage condition, and its recipe role (what, if anything, it may be inside a recipe) — plus a handful of plain yes/no facts derived from them. It explains why behavior must never be decided by an item's category name; why "is this held in stock?" is one question that a whole cluster of capabilities collapses into; what the six accounting treatments are and how they route what receiving an item does and what selling it does; how the recipe role and the accounting treatment combine — including the combinations that look exotic but are deliberate; and which capabilities remain open to any item (carrying nutrition, declaring allergens, having a shelf-life).


1. Behavior rides on policy facts, never on the category name

The single most important rule in this chapter: an item's behavior is decided by stable, explicit policy facts carried on the item — not by the name of the category it sits under.

To see why, you have to know what a category is. A category is just user-extensible classification: a label an operator picks to group and find things ("Dairy", "Produce", "Packaging", "Cleaning"). Operators add their own categories freely, rename them, and — because the system speaks more than one language — the same category reads "Packaging" in English and "Упаковка" in Russian. A category name is therefore a moving, translated, operator-owned label.

Now imagine the books decided "should this be written off immediately, or held as on-hand stock?" by looking at whether the category was called "Consumables". Rename that category to "Misc supplies", translate it to Russian, or split it into two — and money silently re-routes. An item that used to be expensed starts being counted, or the reverse, with nobody touching the item at all. A label an operator can rename must never be allowed to move money. That is the whole reason behavior rides on explicit policy facts instead.

The item carries an explicit accounting treatment, initially taken from its category. Open books can be restated under a corrected treatment; a close in force preserves the meaning of the treatment it relied on. The category seeds the policy; it never decides behavior after the fact.

The one test for any rule. If picking the wrong category name would silently produce wrong money or wrong stock movement, the rule must read a policy fact. If the wrong category name only mislabels or mis-sorts something an operator can fix with no money consequence, reading the category is fine. "Is this packaging?" must be a policy fact. "Show me everything filed under Dairy" can read the category all day long.

Worked example. Two operators each create a salt item. One files it under "Seasonings", the other under "Dry goods". Both salts behave identically — expensed on receipt, never counted, usable in a recipe at a reference price — because behavior comes from each item's accounting treatment and recipe role, not from the category label above it. Later, an operator renames "Seasonings" to "Spices & salt" and translates it to Russian. Nothing about how either salt is costed or counted changes, because no rule was ever reading that name.


2. The small set of policy facts

An item's behavior is fully pinned down by three settings, each with a fixed list of choices, plus a handful of derived facts computed from them. They are a small, bounded vocabulary on purpose: a person, the chat agent, and the books all reason about an item the same way, and there is no free-form policy choice where a typo or a hallucinated value could leak in.

2.1 What's carried on the item (seeded from the category, then its own)

Policy fact The choices What it governs
Accounting treatment stock · small tools · consumable · counted consumable · fixed asset · phantom The master decision — the whole "is it held in stock?" cluster (§3) lands here, and so does what receiving the item does and what selling it does (§4). The six values answer three questions: when the cost becomes an expense — at consumption, at receipt, at write-off, over time, or never; whether a quantity book remains once it has; and what a sale draws down.
Storage condition ambient · chilled · frozen The default condition used by shelf-life policy when deriving a received item's use-by date.
Recipe role none · ingredient · producible · packaging What the item may be inside a recipe — exactly one of: not recipe material at all; an atom ingredient line that never decomposes; a made thing with its own recipe; or a packaging row that travels out with the dish (§5).

That is the whole stored set: three settings. Notice what is not here. There is no stored "is it stocked?" flag — "is this item held in stock?" is a derived fact read off the accounting treatment (§2.2), not something stored and kept in sync by hand. And whether an item is edible or usable as food is not a stock policy at all — those belong to the food/nutrition side of the catalog and must never be consulted by a rule that moves stock.

Why the recipe role is one choice, not several switches. The roles are mutually exclusive by construction — an item is an atom, or a made thing, or packaging, or none of those, and can never be two at once. The reason isn't tidiness; each forbidden pair would break something real:

  • Ingredient + producible would give costing two contradictory instructions. When a recipe line points at an item, the system must know what to do: stop and price the item itself (an atom), or follow the item's own recipe (a made thing). An item can't be both a leaf and a branch of the same tree.
  • Ingredient + packaging (or producible + packaging) would break a money guarantee. Everything a packaging item costs lands in the packaging cost bucket, always — that's what keeps a dish's food-cost percentage honest (§5.2). An item that could appear as food in one place and packaging in another would turn that guarantee into a hope.

Because the role is a single choice, the guarantee "gloves and pans are never part of cost of goods" is structural — there is no combination of settings that could put them there.

"Seeded from the category, then its own." A category carries defaults for these facts. When you create an item under a category, those defaults are copied onto the item and from then on are the item's own values. Editing, renaming, or re-translating the category later does not reach back and change items already created — which is exactly what guarantees re-categorizing can never silently change an item's accounting.

The accounting treatment stays fixed while a close in force relies on it. While every fact that priced or moved the item still sits in an open period, the treatment may change — the open period is still being written, and the change re-answers its books under the new choice. The freeze arrives with the close: its settled result keeps its meaning, so an item with history under a close still in force keeps the treatment that history was told under. Merely authoring a product card creates no reliance and freezes nothing.

Within open books, changing between stock, consumable, and counted consumable reinterprets the same purchases and physical ingredient use. A purchase becomes stock value or an expense according to the new treatment. Ingredients remain part of what was made even when their consumption has no stock movement. A consumable has no quantities to count, transfer, or write off; a counted consumable keeps those quantities at zero value. Returning to stock can recover only the purchases and uses actually recorded: a treatment change cannot invent an unrecorded receipt, usage, or opening value. A price policy that depends on a stock-value pool cannot survive a move out of stock: reference pricing returns to its automatic default. Becoming producible likewise removes a separate purchase-price policy, because its own recipe determines the cost.

A duplicate is absorbed, never edited away. A merge moves the duplicate's open-period rows and its naming — sold names, supplier bindings, barcodes — onto the survivor and re-derives the open books, while every sealed period stays with the absorbed card under its redirect stamp, and whatever those closed periods still carry crosses to the survivor as a reclassification at the value it was carried at. A merge is final, and the absorbed card stays archived for good: everything open already answers to the survivor, so bringing the card back would only put an empty twin of the same goods on the shelf. The two cards agree on their accounting treatment. The survivor keeps its policy. A merge never silently changes what a live menu shows — where it would, it refuses and asks for the menu to be settled first. A prep item merges only with another card of the same prep: the batches made under either card become one stock, each at the ingredients its session recorded, and the survivor's recipe is the standard from then on. Two cards where one is made from the other are a product and its ingredient, not duplicates, and a dish — made to order, holding no stock — is never absorbed.

2.2 The derived facts (computed, not stored)

These are plain yes/no facts computed from the policy above. They aren't stored — storing them would risk them drifting out of step with the truth they're derived from — but they are the convenient names everything else reasons in.

Derived fact True when Meaning
is-stocked treatment is stock Has a perpetual on-hand balance that movements deplete and a count reconciles.
is-a-small-tool treatment is small tools Holds the small-tools pool: countable, transferable, wastable — never consumed into dishes, never depreciated (§4).
is-capitalized treatment is fixed asset Lives in the fixed-asset sub-ledger, not the stock ledger.
owns-a-recipe a recipe exists that produces this item A structural fact, read across the recipe relation.
is-a-prep-item recipe role is producible and is-stocked A prep item — formally, a semi-finished good: a stockable item you make from its own recipe (§6).
is-made-to-order treatment is phantom Never held and never bought; a sale, an internal use or a write-off passes its consumption through the dated recipe in portions at that moment (§6).
is-sellable is-stocked or is-made-to-order The sale verb has an honest depletion: one-for-one stock issue or recipe explosion.

Sellability is a meaning derived from depletion policy, not a category, lifecycle, or product-card switch. A product card supplies presentation; it does not grant a new stock behavior. Counted consumables, consumables, small tools, and fixed assets remain outside the sales door even where they keep a quantity or carry an attractive photograph.

Notice there is no "can it be bought?" fact either. Every item that materializes may be a line on a goods receipt — flour, salt, the combi oven alike — and what varies is not whether you can receive one but what receiving it does, which is the accounting treatment's job (§3, §4). The one refusal is the phantom, and it is the treatment speaking rather than a switch of its own: nothing of a phantom ever arrives, so an order or a receipt naming one is refused. What was really bought is whatever its recipe explodes into.

"Perpetual inventory", by the way, is the textbook name for the idea behind is-stocked: the on-hand balance is kept continuously correct as each movement happens, rather than being figured out only at a month-end stock count. A stock item lives in that world; the other treatments don't.

One treatment, four separate facts. Each treatment is really answering four questions at once, and keeping them apart is what stops the everyday shorthand "is it stocked?" from flattening them into one: whether the books hold a running quantity of the item, whether they carry a value for what is on hand, when the cost becomes an expense, and what a sale of it draws down. Laid side by side:

Treatment Quantity on hand Carried value Cost becomes expense What a sale does
stock a perpetual balance the count confirms and the close reconciles inventory value, at the pool's period price when consumed, sold, or lost draws the balance down one-for-one at the pool's price
small tools a perpetual balance, counted like stock the small-tools pool — value held until the write-off when broken, lost, or written off not sold
consumable none — nothing to count, nothing to reconcile none the day it is received not sold
counted consumable a perpetual balance, counted like stock zero, always the day it is received not sold
fixed asset individual units in the register, ticked by serial each unit's book value over its useful life, as depreciation not sold as stock; a unit leaves by disposal
phantom none — nothing of it is ever held none never: it has no cost of its own explodes its recipe and draws the materials down — a sale, an internal use and a write-off alike; an empty recipe draws down nothing

The table is why quantity and value must never be guessed from each other — and the counted consumable is the row that proves the facts are independent. A small tool has a counted quantity and a pool of value, yet its cost reaches the expense side only when a write-off says so; a consumable has neither quantity nor value, yet its cost is on the books from the day it arrived; a counted consumable has the quantity without a cent of value, because its money question was settled at the door and only the stock-out question remains; and a phantom has none of the four, because nothing of it is ever bought or held — what the sale spends is its materials, and that is the materials' accounting, not its own.

2.3 The food attributes have no gate

Three capabilities are open to every item — no policy fact decides them, any item simply has them:

  • Carrying nutrition. Any item can hold a nutrition profile — including a resale item bought to sell as-is, like a bottle of Coca-Cola.
  • Declaring allergens. Any item can declare allergens, which then roll up the recipe tree to every dish that uses it.
  • Having a shelf-life. Any stocked perishable carries one — raw chicken included — though the automatic recalculation of shelf-life helps most for things you produce yourself.

The food attributes are taught in their own chapter; the point here is only that none of them is gated by a category or a "kind". Being part of a recipe is different: that is gated, by the recipe role (§5) — which is exactly what makes "cleaning supplies never reach cost of goods" a guarantee instead of a convention.


3. The is-stocked collapse — one question, many capabilities

Here is the biggest simplification in the model, and the one most worth internalizing.

A whole cluster of capabilities looks like separate questions but is really one question asked six ways:

  • Can I use this up ad-hoc (consume it directly in production or write it off)?
  • Can I record wastage of it?
  • Can I transfer it between warehouses?
  • Can I count it at a physical stock count?
  • Does it take part in the period close — the settlement of what the walk found against the book, and the re-pricing that freezes the period?
  • Does it stand in the theoretical-vs-actual variance — what the recipes say was used, against what actually left?

Every one of these collapses to the same underlying fact: does this item have a perpetual on-hand balance? — i.e. is-stocked. You can only use up, waste, transfer, count, or reconcile something that the system is actually holding a running quantity of, and only something a recipe consumes can be held against a theoretical usage. An item that was expensed the day it arrived has no on-hand balance to do any of those things to; a made-to-order item, which is never held at all, has none either — wasting one wastes the held materials its recipe consumes, never a balance of its own.

The capability What it does Comes down to
use-up / consume ad-hoc draw the book straight down — production draws, direct internal use, scrap is-stocked; a counted consumable for direct internal use only, at zero
waste record a wastage (stock leaves to scrap) is-stocked, is-a-small-tool, or a counted consumable; a phantom wastes through its recipe
transfer move stock between your own warehouses is-stocked, is-a-small-tool, or a counted consumable
count assert an absolute quantity at a stock count is-stocked, is-a-small-tool, or a counted consumable
reconcile at close settle the counted difference, re-price the pool, freeze it into the period is-stocked, is-a-small-tool, or a counted consumable
explain the variance stand in the theoretical-vs-actual comparison, whose gap lands in cost of goods is-stocked

Why collapsing them matters. When these are six separate switches, they can disagree — an item marked countable but not wasteable, or one that's reconciled at close but not transferable. Disagreements like that are exactly how books go quietly wrong. Saying them as one fact makes it impossible for them to fall out of step: the answers come from the accounting treatment, never from per-capability switches. (Two deliberate refinements ride on top. Small tools — §4 — hold an on-hand pool, so the physical-handling capabilities extend to them, and the close settles and re-prices that pool exactly as it does a stock pool. A counted consumable keeps a quantity too, so it walks, moves, and settles alongside them — every one of its legs worth zero, because its cost already left at the door. What stays stocked-only is consumption and the variance it feeds: nothing eats a pan, and a book worth nothing has no money story for a variance report to tell.)

A capitalized asset is not an exception to any of this, though it can look like one. It does appear on a count and it does ride a transfer — but neither is the quantity gesture above. Its count row is a checkbox against a serial, asserting presence rather than an amount, and its transfer moves which warehouse's books carry the unit, not a quantity between two pools. Same documents, different verbs, because an identified unit and a kilogram of flour are different kinds of thing (see Fixed assets).

There's a subtle bonus. A prep item you make and then keep — say a batch of prepped dough — is held in stock, so is-stocked correctly includes it in counting and the close. A made-to-order item, which is never held at all, is correctly excluded. One predicate gets both right without anyone special-casing "is this a product?".

Two close neighbors — buying and reordering. Two more capabilities look like they belong in this cluster, and the model answers each differently:

  • Can it appear on a goods receipt (can I buy it)? — anything that materializes. There is no separate switch: every such item may be a line on a goods receipt, because everything in the building was bought at some point — the flour, the salt, the combi oven — and the one refusal, the phantom's, is the treatment's own (§2.2). What varies is what receiving the line does, and the item's accounting treatment routes it (§4): a stock line posts a stock movement and feeds the cost pool; a consumable line goes straight to expense; a fixed-asset line creates an asset-register entry — and no stock movement at all (§7).
  • Can it auto-reorder to a par level? → tied to having a countable book: stock, or a counted consumable. A par compares a balance against a floor, so it needs a book with a quantity — and answering the stock-out question is half the point of counting a consumable at all. A plain consumable is still orderable — but only by manually adding it to an order, never by automatic par logic.

Worked example. One morning's delivery brings flour (stock), salt (a consumable), and a combi oven (a fixed asset). The first two land on the books that keep operating stock; the oven never does — it stands on the asset register's own books, because a warehouse admits one family of item and only one. Ask the six stock questions of each: flour answers yes to all six (count it, waste it, transfer it, use it up, reconcile it, explain its variance). Salt answers no to all six — there's no on-hand balance to act on — yet salt is bought on goods receipts like anything else (each line routes straight to expense) and, carrying the ingredient role, is still a valid recipe ingredient. The oven answers no to all six too — and it is also bought through normal purchasing, ordered and received like the flour, on the very same document; what differs is where the line lands: an entry in the asset register, never a stock movement.


4. The six accounting treatments

The accounting treatment is the master decision. Its six values route an item into separate accounting worlds — at the receiving dock they decide what a goods-receipt line for the item does, and at the till they decide what a sale of it draws down.

Stock (perpetual inventory)

The item has a perpetual on-hand balance and a value, both derived from the record of stock movements — never kept as a single mutable number someone edits. Receiving it posts a stock movement and feeds the warehouse's cost pool. It is counted, valued at the warehouse's weighted-average cost (one price for the whole accounting period, struck at the close — abbreviated WAC), and reconciled at the period close. This is the world of food raw materials, of stockable prep items, and — by default — of packaging. Everything in the is-stocked collapse (§3) applies.

Worked example. Flour is a stock item with the ingredient recipe role — and is-stocked by derivation (no separate flag). You receive 50 kg; you draw it down as dough is produced; you count it at month-end; the count reconciles against the on-hand the movement record derives. Its value blends into the warehouse's weighted-average cost.

Consumable (expensed on receipt)

The item is not held in stock: its cost becomes an expense the moment it's received — no on-hand balance, no count, no valuation, no variance. It is still something you buy — a perfectly ordinary goods-receipt line, whose receipt simply routes to expense — and, carrying the ingredient role, it can still be a recipe ingredient (§5). This is the world of oils, salt, and cleaning supplies: things consumed so steadily, or so cheap to track, that counting each gram would cost more than it's worth.

Consumables are a band of costs, not a band of balances. The catalog is still their register — every consumable is a named item you buy, price, and read a spend history for — but what the books keep about it is expense, never stock. Each receipt is auto-expensed the day it lands: the full line cost drops into the open period's costs, booked to that item, and nothing is left behind to count. The counted consumable is the same money story with one addition — a quantity balance kept beside it, so the shelf can answer how much is left and when to reorder. That is the only difference between the two, and it is a purchasing question, never an accounting one.

Worked example. Salt is a consumable with the ingredient role. Its cost is expensed on receipt and it is never counted — yet it is a genuine recipe ingredient. In a recipe it's costed at a reference price (its last purchase price, or a standard price), and it's excluded from physical counts and from actual-usage variance, contributing only to the theoretical side of the math. This is the load-bearing separation of the two axes: the recipe role says what an item may be in a recipe; the accounting treatment says how its money flows. Salt's role makes it an ingredient; salt's treatment makes its cost become an expense on receipt (§5.1).

Counted consumable (expensed on receipt, counted)

Some goods have their money question settled the day they arrive and still leave an operator asking a second question: how many do we have? Gloves, cleaning chemicals, printed menus, disposable trays. Counting them protects nothing financially; it answers a stock-out.

The counted consumable answers exactly that. Receiving one posts a stock movement at the line's quantity and zero value, while the full line cost becomes its own expense on receipt, exactly as a consumable's does — leaving the pool a quantity a count can disagree with. The book moves by receipt, count, transfer, wastage, and direct internal use; nothing in it is ever capitalized, re-priced, or written off, because the cost already left and cannot be expensed twice. A dish that uses one does not draw it down — recipes cost it at its reference price, like a consumable, and the variance report never reads it: a variance is a money instrument, and this book deliberately carries none.

Worked example. A case of 5,000 nitrile gloves at €60 arrives: €60 of expense that day, and a book of 5,000. The kitchen works; nobody records a glove. The next count sees 1,200 — the book settles down to 1,200: no expense, no blocker. When the count later finds a forgotten box and reads above the book, the find enters at zero: there is no cost left to invent (§4.1). The par level watches the balance and reorders before the shelf runs dry.

Small tools (expensed on write-off)

Between the consumables and the fixed assets sits a tier both of its neighbors fit badly: small tools — the durable equipment a kitchen runs on. Frying pans, knives, cutting boards, gastronorm trays, mixing bowls. They are not consumed (a pan doesn't deplete as you cook), so the stock treatment's consumption story is wrong. They are not worth a depreciation schedule (a €40 pan's monthly slice is ceremony), so the asset register is wrong too — and a drawer of forty pans would drown that register. But simply expensing them on receipt loses the thing an operator actually wants to know: how many pans do we own, where are they, and how fast do they die?

The small-tools treatment answers exactly that. Receiving small tools posts a stock movement like any stock item, so a per-warehouse pool accumulates quantity and value at cost — purchases pile in, nothing drains out through sales. A small tool is never a recipe ingredient and never consumed by a dish (its recipe role is always none); its only ways out are a write-off (broken, lost, worn out — an ordinary wastage), a transfer to another warehouse, or a count shortage when the periodic count (commonly once a year) finds fewer pans than the book says. Each outflow is valued at the pool's average and recognized as small-tool write-off expense — its own bucket, never cost of goods, never shrinkage — so the cost of a pan becomes an expense on the day the pan dies, not the day it was bought and not smeared over the years in between. In one phrase: a fixed asset with zero depreciation, kept out of the asset register.

Small tools are counted on the warehouse's ordinary walk, alongside the flour, and the count records whatever the walk saw. Nine pans against a book of ten is a write-off. Eleven pans against a book of ten is recorded just as faithfully — and then it waits: the surplus posts no overage, because the two extra pans get their cost from the receipt that bought them, not from the sheet that found them (§4.1).

Worked example. Twelve frying pans at €40 arrive: the small-tools pool gains 12 pans / €480; no expense yet. Two burn out in March and are written off: €80 of small-tool write-off expense, ten pans remain on the books. The next count finds nine — one short: another €40 writes off as a count shortage. Food cost never noticed any of it.

Fixed asset (capitalized and depreciated)

The item is a durable asset routed to a separate fixed-asset sub-ledger (§7), entirely apart from the stock ledger: capitalized when acquired, depreciated straight-line over its useful life, disposed of with a gain or loss, and verified serial by serial on the count of the warehouse whose books carry it. It is bought through normal purchasing like anything else — ordered on a purchase order, received on a goods receipt — but the fixed-asset line creates an asset-register entry instead of a stock movement, and it participates in the order ↔ receipt match like any other line (a €4,500 oven is precisely the line worth checking). This is the world of ovens, mixers, and other durable assets, and such items are always tracked by serial (an individual numbered unit you can point to) — the register holds one row per unit, so a "3 ovens" line has nowhere to live.

Worked example. A combi oven is a fixed asset, tracked by serial. It is ordered and received like a sack of flour; what receiving it does is different: the receipt line creates an asset-register entry, not a stock movement. The oven never appears in an on-hand count or in any weighted-average cost pool; it depreciates month by month; and selling it later is an asset disposal (§7), not a stock movement out of inventory.

Phantom (never materializes)

The last treatment is the one that says the axis does not apply. The item is neither held nor purchased: no balance, no valuation, no receipt, no depreciation clock. There is nothing about it for the books to carry, and so it carries nothing.

It is called a phantom because it never materializes. Nothing of it ever exists to be counted or valued; the moment it is wanted it explodes through itself into its materials, and only those materials are accounted. Three things want it: a sale, an internal use — the staff meal, the plate cooked for a photograph — and a write-off — the plate made and thrown away. All three explode the same recipe; they differ only in where the cost lands, never in how it is found. What any of them costs is exactly what those materials cost, told in their own books — this item never had any of its own. Every phantom owns a recipe, because the recipe is the whole of what consuming it means, and it is never tracked, because there is nothing to track.

This is the world of everything you make or provide to order: the carbonara cooked when the customer orders it, and the hour of a meeting room. A service is the case where the recipe may be empty — a booking that consumes nothing at all. An empty recipe is an answer, not a gap: it says this sale uses nothing up, and the sale it governs is a genuine, fully-recorded sale that happens to move no stock and cost nothing.

Worked example. Meeting room, per hour is treated as phantom, with its own recipe. Booked at €40, the sale records €40 of revenue and draws nothing down: the recipe is empty, so the cost of that sale is a known €0 — not an unknown. Add two coffees per booking to the same recipe and the sale starts drawing coffee down like any dish; the cleaning that follows every third booking is not proportional to a sale at all, so it stays where non-proportional use belongs — internal consumption of the cleaning supplies.

The five held treatments, side by side

Five of the six describe something that arrives, sits, and eventually leaves; a sixth, phantom, is never received at all and appears only when it is sold or used. Everything the five say, in one matrix:

Stock Consumable Counted consumable Small tools Fixed asset
The idea held, counted, consumed gradually too cheap to track — cost it the day it arrives cost it the day it arrives, but keep the count small tools — serve until they die a durable asset that wears down over years
Typical items flour, milk, meat, wine, prep items, cups napkins, oil, salt, cleaning sprays gloves, cleaning chemicals, printed menus, disposable trays pans, knives, trays, cutting boards oven, mixer, fridge
What receiving does a stock movement: supplier → warehouse no movement — the line's cost goes straight to expense a stock movement at the quantity and zero value; the cost goes straight to expense a stock movement into the small-tools pool no movement — creates an asset-register entry
On-hand exists? yes — a live quantity per warehouse never yes — a live quantity, worth nothing yes — quantity and value accumulate by purchases never (it is not stock at all)
How it is counted quantity rows on the warehouse's count, as many sightings as the walk produced; rows may be added freely excluded from counts entirely quantity rows, like stock quantity rows, offered from the book; rows may be added one row per serial, a checkbox — and on the books that carry the register that roster is the whole form: offered from the register, and any unit it knows may be ticked
May the count find more than the book? yes — the surplus posts as an overage carrying quantity and no value — yes — the find enters at zero, needing no guard: there is no cost left to invent yes — but the surplus posts nothing; it is put right by the priced receipt that was never entered yes — a unit ticked where the books do not place it is a sighting that stands, and nothing moves until a document moves it
What verification produces overage or shortage; variance explained at the close nothing overage or shortage, both at zero value; no expense either way shortage → small-tool write-off expense; surplus → a transfer or a receipt owed a confirmed serial, or a unit reading missing — derived off the walks the close trusts, refusing the close until somebody finds it or disposes it
When the cost hits the P&L when consumed (sold dish, waste) — cost of goods at the pool's price for the period on the receipt date, in full on the receipt date, in full at write-off — the day it breaks, is lost, or wears out in monthly slices over the useful life (straight-line depreciation)
Where the cost lands food cost / packaging cost (COGS) expense-on-receipt expense (recipe ingredients also cost into dishes at reference price) expense-on-receipt expense, the same bucket — only the quantity book differs small-tool write-off expense — never cost of goods, never shrinkage depreciation expense
Valuation the warehouse's cost pool, at the period's price none — expensed and done zero, always — the pool holds a quantity and not a cent its own pool, at the period's price — never depreciated book value = capitalized cost − accumulated depreciation
Unit identity quantity in bulk none none — quantity in anonymous bulk only rarely needed (the pool is quantities) always — one register row per physical unit, with its serial
How it leaves the books consumption, waste, count shortage already gone at receipt waste, direct internal use, transfer out, count shortage — every leg at zero; never a sale or a recipe write-off, transfer out, count shortage — never a sale or a recipe disposal (sale or retirement), with a gain or loss

And the same five life events, told five ways — the clearest way to feel the difference:

Event Stock item (flour) Consumable (napkins) Counted consumable (gloves) Small tool (frying pan) Fixed asset (oven)
Receive €100 worth +€100 of stock; you owe €100 €100 expense; you owe €100 €100 expense and the quantity on the book; you owe €100 +€100 in the small-tools pool; you owe €100 €100 asset on the register; you owe €100
Use it a movement out; cost of goods at the pool's price nothing — already expensed nothing at a dish's hands — the book moves only by count, waste, transfer, or direct internal use, at zero nothing — cooking with a pan is not an event nothing — usage is not an event
A month passes nothing automatic nothing nothing nothing one depreciation slice posts (e.g. €1.67 on a 60-month life)
Count / check counted; any gap posts as overage or shortage not counted counted; any gap settles at zero — no expense, no refusal, either direction counted; a shortfall = the dead and the lost, written off; a surplus = a receipt never entered its serial ticked on the walk of the register's own books: found, or gone
Get rid of it a waste or sale movement at the pool's price — (nothing held to get rid of) a waste or internal-use movement at zero — the cost already left write-off at the pool's price → small-tool expense disposal: proceeds − book value = gain or loss

One line to remember it all by: stock answers "how much do I have, and what did consuming it cost?"; a consumable deliberately answers nothing; a counted consumable answers "how many are left?" and nothing about money; small tools answer "how many do we own and how fast do they die?"; the asset register answers "which unit is this, and how much of its cost is still unrecognized?"; and a phantom answers nothing about itself at all, because the question belongs to its materials.

4.1 Why a found small tool is recorded but not valued

Four of the six treatments are walked, and not one of them argues with the counter about what is really there. They never share a sheet, though, because a warehouse admits one class of item: a warehouse holding operating stock shows at most three of them — its stock, its small tools, and its counted consumables, in quantity rows — while books that carry the register show exactly one, the serials. Where they part company is what the books then do about a surplus — and that difference looks arbitrary until you follow the money one step further than the count.

A sack of flour nobody recorded is an ordinary find. It enters as an overage carrying quantity and no value: the sack joins the pool, the pool's worth spreads over one more sack, and why a count can never name a cost is Costing & valuation's. No value is created out of nothing, and the row is settled.

A found box of gloves is the easiest case of all, and it needs no guard: a counted consumable's cost was expensed the day it arrived and can never be expensed again, so the find enters at zero — the only value it could ever have — and the row simply reconciles.

Now try the same move one tier up. Let a frying pan the book never knew about join the small-tools pool at no cost, and it leaves the books the way its tier leaves the books: as a small-tool write-off expense the day it breaks. Let a serial appear on the register at no cost, and it leaves as a loss on disposal the day it is retired. Follow either chain and you have manufactured a deductible expense with no purchase behind it:

value on the books at zero cost  →  write-off / disposal  →  expense
     ↑                                                         ↓
nothing was ever bought                    the books claim a cost

That shape has a name in every tax authority's playbook, and no honest system should offer it as a convenience. But the answer is not to argue with the storekeeper. The eight pans the walk found are a fact, and a document that refuses to hold facts only teaches people to write down what the book wants instead of what they see — which costs far more than it saves. So the observation is free and the valuation is guarded: a small-tool surplus is recorded, posts nothing, and stays an open reconciliation row until the thing that was really missing turns up — the priced goods receipt for that delivery. Entering it lifts the book to eight and gives the two extra pans their cost in one gesture; a transfer from another warehouse does the same job when the pans came from down the road. The count's job is to say what is there, and the correction's job is to say what it cost.

Fixed assets need no such split, because there is nothing for the walk to record: the register is the roster of identified units, so an asset the books have never heard of has no row to be ticked. It enters by explicit registration, stating what it cost and when it went into service, and shows up on the next walk by itself.

The warehouse's initial balances state the quantities and costs already held when its books begin, including small tools; counted consumables begin with their quantity and no value. That starting claim belongs to Period close.


5. The recipe role — what an item may be inside a recipe

The recipe role is the second axis of the model, and it answers a different question than the accounting treatment. The treatment asks how does this item's money flow? The role asks what may this item be inside a recipe? Keeping the two axes independent is what lets oil be expensed on receipt and still cost into every dish that fries in it.

5.1 The four roles

  • None — not recipe material. Gloves, towels, a combi oven, a resale bottle of Coke. The item can be bought, held (if stocked), sold directly (if stocked) — but it can never be picked onto a recipe, which is precisely what guarantees it never reaches cost of goods through the kitchen.
  • Ingredient — the atom. The item may sit on a recipe as a line that never decomposes: when costing meets it, it stops and prices the item itself — at the warehouse's weighted-average cost if it's stocked, at its reference price (last purchase or a set standard) if it's expensed on receipt. Flour, salt, oil, raw chicken. An atom must be stock, a consumable, or a counted consumable — small tools and fixed assets can never be atoms, because neither has a consumable cost a recipe could absorb, and a phantom cannot either, because it has no cost of its own for a parent to absorb. (A counted consumable's atom lines cost at its reference price and never draw its book down — the same posture as a consumable's, with a count alongside.)
  • Producible — the made thing. The item owns a recipe of its own — the answer to "what does one batch, or one sale, use up". It may be the output of a production run and may sit on another recipe as a line. What happens when costing meets it depends on whether it's stocked — the two cases are different enough to deserve their own section (§6). Only two treatments take this role: stock, for something you make and keep, and phantom, for something you make or provide at the moment it is wanted. On screen the role reads own recipe, because that is all it claims — "made in-house" would be a lie about a meeting room.
  • Packaging — rides out with the dish. The item may sit on a recipe's packaging rows — the cup, the lid, the clamshell that leave with the food. Its cost always lands in the packaging cost bucket, never food cost (§5.2). Packaging is stock: a cup is real countable stock that depletes as dishes sell, and the packaging bucket is priced from that book.

An item carries exactly one role. The pairs you might expect to combine are deliberately impossible — an atom that decomposes, food that is also packaging — because each would make costing ambiguous or break the food-vs-packaging split (§2.1). One borderline case is worth naming: packaging an operator produces in-house (assembling branded boxes from cardboard and stickers). The model keeps this out — packaging is something you buy — and if a real operation ever needs it, it arrives as its own explicit role, not by stacking two roles together.

The role is freely chosen — and freely changed — until the item is actually in use; from then on it may change only to a role the recipes already built on it still accept. Owning a recipe holds the item at producible, since a recipe whose owner is no longer a made thing stops decomposing; a packaging row holds it at packaging. An ingredient line accepts an atom or a made thing alike, so an ingredient the recipes use can still become producible, and back. Lemon juice bought in cartons and later squeezed in-house from lemons is the common case: the dishes that list it keep their line, and the juice gains a recipe of its own. The same wiring freezes the item's base unit: every quantity on those recipe lines was proven against that base when the recipe was saved, and re-dimensioning the item afterwards would silently mis-scale costing, yields, and nutrition at once.

5.2 Why packaging is a role, not a treatment

A package is two things at once, and neither follows from the other facts:

  1. Recipe-attachable — it travels out the door with the dish, so it must be placeable on that dish's recipe (as a packaging row, not an ingredient line); and
  2. A separate cost bucket — its cost must roll up as packaging cost, kept apart from food cost, so a dish's food-cost percentage isn't polluted by the price of the box it ships in.

Worked example. A kraft clamshell is a stock item with the packaging role: received and counted like flour, depleted as dishes sell. On a dish's recipe it sits as a packaging row, and its cost rolls into the dish's packaging cost, not its food cost. So a €3.20 dish made of €2.40 food + €0.80 packaging reports a food-cost basis of €2.40, not €3.20 — the food-cost percentage stays honest.

5.3 How role and treatment combine

The role and the treatment are independent settings — but not every combination means something, and a few are forbidden outright. The whole picture:

 role ↓ · treatment →   │ stock               │ consumable      │ counted consumable │ small tools  │ fixed asset  │ phantom
────────────────────────┼─────────────────────┼─────────────────┼────────────────────┼──────────────┼──────────────┼──────────────────────
 none                   │ resale goods (Coke) │ napkins, towels │ gloves, menus      │ pans, knives │ oven, mixer  │ ✗ a sale needs
                        │                     │                 │                    │              │              │   a recipe to spend
 ingredient (atom)      │ flour, meat, milk   │ oil, salt       │ gloves in a SOP    │ ✗ forbidden  │ ✗ forbidden  │ ✗ no cost of its own
 producible (own recipe)│ PREP ITEM — made,   │ ✗ a consumable  │ ✗ production       │ ✗ never      │ ✗ never      │ carbonara, a meeting
                        │ held, pool-priced   │   is bought,    │   yields value;    │   recipe     │   recipe     │   room, a house spice
                        │                     │   never made    │   this book has    │   material   │   material   │   mix (§6)
                        │                     │                 │   none             │              │              │
 packaging              │ cups, clamshells    │ ✗ the bucket is │ ✗                  │ ✗            │ ✗            │ ✗
                        │                     │   priced from   │                    │              │              │
                        │                     │   a book        │                    │              │              │

The rules the matrix encodes:

  • Small tools and fixed assets always carry role none. Small tools are never recipe material (a pan is not consumed by a dish), and a fixed asset can be neither food nor packaging. The forbidden cells aren't conventions — recipes refuse such items outright.
  • The ingredient role lives in the three left columns, because an atom must have a consumable cost: a pool average (stock) or a reference price (the two consumable tiers).
  • The producible role lives in exactly two, and they are the two ways a recipe can fire: at a production run, for a prep item you make and keep, or at the moment a phantom is sold, used or written off. A counted consumable is never producible — production yields value and its book never carries any — and a consumable is bought, never made.
  • A consumable is used up, never sold and never shipped. Its role is none or ingredient: it has no book for a sale to draw down, and the packaging bucket is priced from a book it does not keep.
  • A phantom is always producible. The recipe is the whole of what consuming it means, so the role is not really a separate choice — it follows from the treatment, and the card shows it rather than asking for it.
  • Every cell that is real is genuinely used. Even the quiet ones: a stock item with role none is a resale good — counted and valued, sold as-is, never inside a recipe; a consumable with role none is the napkins-and-towels case whose cost can never touch a dish; a counted consumable with role none is the same case with a stock-out answer kept beside it.

Read column-by-column and the matrix collapses into one-liners: stock items take any role; consumables are bought and used up, so they are an atom or nothing; counted consumables are the same with the count kept; small tools and fixed assets take no role at all; and a phantom is always the owner of a recipe.


6. The producible role — stocked and non-stocked made things

A producible item is one you make. Whether you also keep it decides which of two quite different things it is — same role, two behaviors, told apart by is-stocked.

6.1 A prep item is a derived fact, not a "kind"

A prep item is an item that you produce from its own recipe and then hold in stock — "Peeled Carrots", a base sauce, commissary dough. It is not a stored category or "kind". It is simply the derived fact role producible and is-stocked (and, structurally, it owns a recipe).

The stored input is the producible role — the candidate filter that surfaces an item as something you could attach a recipe to (you make dough, not raw flour). Crucially, "producible" is not the same as "owns a recipe": being a candidate to receive a recipe is different from actually having one. An item can be marked producible long before anyone writes its recipe.

A prep item is where a recipe explosion stops: a batch was produced, its cost went into the warehouse's pool, and a parent recipe consumes the prep item at the pool's blended average. It does not re-derive back down to whole carrots, because the peeled carrots were already made and costed when they were produced.

Worked example. Peeled Carrots is a stock item and producible, so it derives as a prep item: you make a batch from its recipe (whole carrots in, peeled carrots out), and the batch is held in stock and counted. Peeling 124 g of whole carrot yields 100 g peeled — an 81% yield — and that yield is an emergent fact of the recipe (output ÷ inputs), not a number anyone types in. A product that uses peeled carrots simply consumes the prep item directly. (See Recipes & production.)

6.2 A made-to-order item explodes instead of becoming a pool

Give a producible item the treatment that says there is nothing of its own to account for and you get the other behavior: a made thing that is never held as output stock. It can never be a production run's output (production only yields stocked items), and it has no on-hand pool of its own. Whenever it is consumed, costing and stock consumption pass through its dated recipe to the components, at the moment of the consumption.

That behavior serves three ordinary uses. A made-to-order product is sold in recipe portions and explodes when sold. A service is the same thing where the recipe may run all the way down to nothing — a room hour, a consulting session. A decomposing intermediate is a named sub-composition, such as a house spice mix, that another recipe can use as one tidy line. All three dissolve into their components; the difference is how the business uses and presents them, not how the stock book treats them.

The restaurant word dish names the customer-facing case: a sellable made-to-order item wearing a product card. The card carries the customer-facing name, description, gallery, and documents. It does not grant sale behavior or freeze policy. Station remains a fact on the item, portions remain on the recipe, and nutrition and allergens remain facts of the item and its composition. The seeded Dishes and Services categories merely supply the usual defaults — the phantom treatment, its own recipe — and their DS and SV code prefixes. Renaming either changes neither dish-ness nor depletion.

Worked example. A house spice mix is a phantom and owns a recipe: paprika 5 g + cumin 3 g + salt 2 g per 10 g of mix. Nobody ever blends a jar ahead of time. A dish lists "spice mix, 10 g" as one tidy line — but when that dish sells, the ledger sees paprika, cumin, and salt leaving stock, never "mix":

dish line: spice mix 10 g        ← one named line on the recipe
           └─ decomposes →  paprika 5 g + cumin 3 g + salt 2 g
cost = the components' own costs (their pools / reference prices)
on-hand of "spice mix": never exists — there is nothing to count

Compare the prep item: if the cooks did blend jars ahead each morning, the mix would instead be stock + producible — a prep item with a pool, made by production runs, counted like any other stock, and consumed at its blended average. Same recipe either way; is-stocked decides whether the explosion stops at the jar or passes through it.

The pair of cases is the whole story of the producible role: stocked producible = make it, hold it, count it, price from its pool; made-to-order = never hold it, consume it through its recipe when it sells. A stocked producible item sold directly still depletes one-for-one from its pool; its recipe was used when the batch was produced, so exploding it again at sale would count the inputs twice.


7. Fixed assets — the separate branch

The fixed-asset treatment — capitalized and depreciated — is the doorway into a separate fixed-asset sub-ledger, kept entirely apart from the stock ledger (the same separation every mature accounting system draws between stock and property/plant/ equipment). A fixed asset is:

  • Bought through normal purchasing — ordered on a purchase order and received on a goods receipt like anything else; the receipt line creates the asset-register entry (no stock movement) and takes part in the order ↔ receipt match like any other line.
  • Capitalized on acquisition — recorded as an asset at the full cost to put it into service, always tracked by serial: one register row per physical unit.
  • Depreciated straight-line — its value written down evenly over its useful life by a monthly depreciation run.
  • Disposed with a gain or loss — when retired or sold, the asset leaves the register and any difference from its remaining book value lands as a gain or loss.
  • Placed on one warehouse's books, and verified by that warehouse's count — registering a unit records that the company owns it; placing it names the warehouse whose period close answers for it, and from then on its serial is ticked off on that warehouse's ordinary walk. Until it is placed, no walk lists it and it does not depreciate. Fixed assets end up verified yearly not because they have a private ritual, but because a warehouse holding only assets sensibly closes once a year.

This matters for the item model because a durable tool must not be smuggled into the stock ledger as if it were a perishable. An oven is not "used up" gram by gram; it wears down over years. Giving it the capitalized treatment routes it to the right accounting world. A durable-but-immaterial tool — a pan, a knife — takes the small-tools treatment instead (§4); a cheap, short-lived supply that isn't even worth counting is simply a consumable — or counted consumable, when the stock-out question is still worth answering.

The fixed-asset world here is deliberately slim: the register, straight-line depreciation, disposal with a gain or loss, and the serial confirmation on the warehouse's count — nothing more. Jurisdiction-grade depreciation machinery (accelerated methods, book-vs-tax schedules) is the external accountant's territory: it lives in the operator's accounting system, and the boundary export carries the figures it needs. (Full detail in Fixed assets; where the depreciation expense and the disposal gain or loss land is in Financial boundary.)

Worked example. A stand mixer is a fixed asset, tracked by serial. It is ordered on a purchase order and received on a goods receipt like a sack of flour — but the receipt line creates an asset-register entry and a straight-line depreciation schedule, not a stock movement. Each month it depreciates a little. It never shows up in a count or a cost pool. Two years on it's sold second-hand: that's an asset disposal with a gain or loss against its remaining book value — never a stock movement out of inventory.


8. What a category is allowed to do

So if a category never decides behavior, what is it for? Three legitimate jobs:

  1. A human-facing label for grouping, filtering, and sorting. Read it freely to show things; never branch behavior on it.
  2. A code prefix for item codes — items in the packaging category get codes like PKG-00001, PKG-00002. That prefix is identity and display, not behavior. (A package behaves like packaging because its recipe role is packaging, not because its code starts with those letters.)
  3. The policy defaults — the values copied onto a new item when it's created under the category: the accounting treatment, the storage condition, and the recipe role.

Because that's the whole list, adding or renaming a category is a data operation — it changes how things are grouped and what a future item will inherit, and nothing else. No behavior shifts for any item that already exists.

Worked example. An operator creates a new "Compostable packaging" category and sets its defaults to stock, storage ambient, recipe role packaging. Every item they file under it is born counted and packaging-roled — ready to ride on recipes and roll into packaging cost — with no further setup. Renaming that category next week changes nothing about those items' behavior; they already carry their own copies of the policy.


9. The worked items, side by side

A summary of the items used through this chapter. "Is it held in stock?" is the derived is-stocked fact and shows up under behaves as, never as a stored fact. Every one of these items that materializes can be a goods-receipt line — the phantoms cannot, nothing of them arriving; the behaves as column includes what receiving it does.

Item Accounting treatment Recipe role Behaves as
Flour stock ingredient is-stocked — receiving posts a stock movement; counted, valued (WAC), reconciled; an atom on recipes at the pool's average
Peeled Carrots stock producible prep item (producible ∧ is-stocked) — made from its own recipe, held & counted; parent recipes consume it at the pool's average
Carbonara phantom producible made-to-order sellable — never held, never bought; sold in portions and exploded through its dated recipe; wearing a product card makes it a dish in restaurant vocabulary
Meeting room, per hour phantom producible a service — sold like the carbonara, its recipe empty: the sale is recorded in full, draws nothing down, and costs a known €0
House spice mix phantom producible decomposing intermediate — a named sub-recipe with no on-hand; parent recipes consume its components directly
Salt consumable ingredient not stocked: receiving routes straight to expense; an atom on recipes at a reference price, never counted
Kraft clamshell stock packaging is-stocked — counted like flour, depleted as dishes sell; rides recipes as a packaging row; cost lands in packaging cost, never food cost
Paper napkins consumable none pure consumable — expensed at the door, never on a recipe: structurally unable to reach cost of goods
Nitrile gloves counted consumable none expensed at the door like the napkins, but the book keeps the quantity — counted, transferable, par-able, every leg worth zero; never drawn down by a dish
Frying pan small tools none is-a-small-tool — receiving fills the small-tools pool; never a recipe/sale target; counted and transferable, a shortfall written off and a surplus left for a receipt to price; write-off at death → small-tool expense, never cost of goods
Combi oven fixed asset none is-capitalized — ordered and received like anything else, but receiving creates an asset-register entry on the line's warehouse (no stock movement); its serial is ticked on that warehouse's count; never valued or sold as stock
Coca-Cola (resale) stock none is-stocked — counted & valued; sold as-is, never inside a recipe; can carry nutrition + allergens

The pattern to take away: every row's behavior reads straight off its policy facts, and not one reads off the category it happens to be filed under.


See also

  • Recipes & production — how a recipe is exploded to its ingredients, how a stocked prep item stops the explosion, and the emergent yield behind the peeled-carrots example.
  • Food attributes — nutrition, allergens, and shelf-life: the ungated, recipe-tree-rolled food attributes any item can carry.
  • Fixed assets — the fixed-asset branch in full: the asset register on a warehouse's books, straight-line depreciation, disposal, the transfer that moves a unit, and the serial confirmation on a count.
  • Costing & valuation — the weighted-average cost that stock items are valued at, and the reference price consumable ingredients are costed at in recipes.
  • Procurement — purchase orders, goods receipts, and reorder-to-par: anything you buy can be received; the accounting treatment routes what receiving does, and par reads whether the item keeps a countable book.
  • Financial boundary — where each treatment's money ultimately lands: the cost-of-goods-sold buckets, the expense-on-receipt expense, depreciation and the disposal gain or loss.
  • Scope & locations — warehouse (where stock and value live) vs restaurant (the profit center), and the storage locations these items are counted in.
  • Glossary — definitions of the recurring terms (perpetual inventory, weighted-average cost, prep item, recipe).
Last updated · History