Bill of materials
Where: the Bill of Materials (BOM) section of the product editor
1. What a BOM is
The recipe for a variation: which raw materials it consumes, how much of each, and how much wastage to allow.
It exists for exactly one purpose — when a production order completes, the BOM is what gets consumed and posted to the ledger.
Bhetki Paturi has three variations and therefore three BOMs. The 6-piece recipe uses more of everything than the 2-piece one. There is no product-level recipe.
2. How a BOM is used
When a production order is created, the app multiplies each BOM line by the planned quantity and stores the result as that order's ingredients. From then on the order carries its own copy — editing the BOM afterwards does not change orders already created.
3. Step by step
Step 1 · Pick the variation
Each variation gets its own panel, headed with the variation name and a count —
7 Materials Assigned. The eye icon previews the list; Add Material appends to it.
Step 2 · Add a material
| Field | Required | Notes |
|---|---|---|
| Raw material | ✅ | From Raw materials. Its unit comes with it |
| Quantity required | ✅ | Per one unit of the finished variation |
| Wastage allowance % | — | Defaults to 0.00 |
A 6-piece Bhetki Paturi BOM line of 0.6 PCS of fish fillet means 0.6 per one 6-piece portion. A
production order for 20 will plan 0.6 × 20 = 12.
Entering the batch quantity here silently multiplies your consumption by the batch size on every future run.
Step 3 · Set a wastage allowance
wastage_allowance_percent records the expected loss on that ingredient — trimming, evaporation,
spillage.
Production plans BOM quantity × planned quantity. The allowance is stored on the BOM line and does
not inflate that number. Actual consumption is captured at completion time, where you enter real
quantities per ingredient — see Completing a run.
4. Field reference
| Field | Type | Notes |
|---|---|---|
| Raw material | select | The list is the project's raw materials |
| Quantity required | decimal (3 dp) | Per one unit of the finished variation |
| Wastage allowance % | decimal (2 dp) | Defaults 0.00 |
| Unit | derived | Read from the raw material; not editable here |
The primary key is (variation, raw material) — one material appears once per BOM. Adding it
twice replaces the quantity rather than creating a second line.
5. The admin contract
| Must be true | Or else |
|---|---|
| Raw materials exist | Nothing to add |
| Each material has a unit | It cannot be saved in the first place |
| The variation exists and is saved | The BOM panel has nothing to attach to |
Someone holds production.create | The BOM is never used — it is inert without production |
6. Downstream
| Change | Effect |
|---|---|
| Add or remove a line | Applies to future production orders |
| Change a quantity | Same — existing DRAFT orders keep their stored ingredients |
| Delete a raw material | The BOM line goes with it (cascade) |
| Delete a variation | Its BOM goes with it |
7. Don't confuse this with…
| A production order's ingredients | A snapshot of the BOM at creation time, editable per order while DRAFT |
| Packages | Bundles of finished products sold together — not a recipe |
| Attributes | What distinguishes variations, not what they are made of |
8. Troubleshooting
| Symptom | Cause |
|---|---|
| A variation cannot start a production order | It has no BOM |
| Production consumed far more than expected | Quantities were entered per batch instead of per unit |
| Wastage % appears to do nothing | Correct — it is recorded, not applied. See §3 |
| Changing the BOM did not change an open order | Orders snapshot ingredients at creation. Edit the order instead |
| A material vanished from the BOM | The raw material was deleted — the BOM line cascades |