Skip to main content

Build a bill of materials

A BOM lists the ingredients and container sets for one yield of a product. Each yield can have its own active BOM, which drives costing and stock draws.

A bill of materials (BOM) says what one yield of a product is made of. FourFoxes uses the active BOM to cost batches, to draw ingredient and packaging stock, and to build nutrition labels. Only admins and owners can open BOMs.

  1. Open Supply Chain, then Bills of Materials, and click Add BOM.
  2. Under BOM Header, pick the Product, set the Version and Effective date, and enter the Yield quantity and Yield unit. Every line below describes one batch of this yield. Labor hours estimate and Labor rate are optional.
  3. Under Ingredient Lines, click Add Ingredient for each ingredient. Enter the Quantity Required and pick a Unit. Set Added at to Batch start, or to Packaging for an ingredient you add when you bottle. Waste % is optional.
  4. Under Container Sets, click Add Container Set for each container this yield fills. Pick the Container and enter How many per batch. When you pick a container, the count fills in from the yield divided by the container size. You can change it. Then click Add Item for each closure and label that goes on that container, for example a screw cap, an orifice reducer and three labels on a 5 fl oz woozy. Each item's count is per container and starts at 1. A container can be in only one set on a BOM.
  5. If you pack that container into cases, fill in Case pack (optional) on its set. Enter Units per case, then click Add Case Supply for each packaging supply one case uses, for example 1 case box and 1 shrink-wrap for a case of 12. Units per case must be 1 or more. A container set can have one case pack.
  6. Click Save BOM.

Packaging draws. When you log a packaging run, FourFoxes draws the containers you filled, and each closure and label in that container's set times its count. A run of 10 woozies with a cap, a reducer and three labels per woozy draws 10 woozies, 10 caps, 10 reducers and 30 labels. A run packed in cases also draws each case supply times the number of cases: 7 cases of 12 draws 84 bottles, their caps and labels, and 7 case boxes and 7 shrink-wraps. A run of loose units draws no case supplies. Nothing is drawn from other sets. A container that is in no set draws the container only.

Unassigned items. When packaging lines from before container sets could not be placed in a set exactly, for example on a BOM with two or more containers, they show as Unassigned items with a warning on the BOM page and the edit page. They draw nothing. On the edit page, pick a set under Move to set, or delete the item, then save. The warning stays until every unassigned item is moved or deleted.

Units. Pick a unit in the same family the ingredient is bought in: weight for an ingredient bought by weight, volume for one bought by volume. To enter a liquid in grams, or a dry ingredient in mL, add a density to the ingredient first. The error on the line links to the ingredient so you can add it.

Waste. A line's Waste % only counts when Apply waste factor is ticked on the header. Then FourFoxes draws and costs that much extra. At 25%, a line that needs 16 draws and costs 20.

One BOM per yield. A product can have one active BOM for each yield, for example one for a 5 gal batch and one for a 20 gal batch. A new batch uses the BOM that matches its batch size. If none matches, it scales the closest yield in the same unit. The batch keeps that BOM even if you replace it later.

Versions. To change a recipe, click Clone on the current version, pick the Target product, and click Clone BOM. The clone copies the container sets, their items and their case packs. It starts inactive. Edit it, then click Set Active. Setting a version active turns off the other active versions with the same yield. The old version stays for history. The clone does not carry over Waste %, so enter it again on the clone's lines.

An inactive BOM is not used for batch costing, stock draws or labels. The BOM page also shows Standard Cost per batch (from Weighted Avg), built from current weighted average costs. Its packaging part adds up each set: how many per batch times the container cost plus each item's count times its cost. It does not include case supplies. Actual batch costs may differ, and do include the case supplies a run draws.

Add Bill of Materials form The Add Bill of Materials form with the BOM Header fields for a 5 gal yield of Smoked Habanero, two ingredient lines, one container set of 128 bottles per batch with a cap and a label on each bottle, and the Save BOM button. Add Bill of Materials BOM Header Product * Smoked Habanero Version * 1 Effective date * 10/21/2026 Yield quantity * 5 Yield unit * gal Also on the header: Labor hours estimate, Labor rate, Apply waste factor, Is active 2 Ingredient Lines Ingredient amounts for one batch of the yield above. + Add Ingredient Ingredient Quantity Required Unit Waste % Added at Habanero peppers 4.5 lb 5 Batch start Apple cider vinegar 2 gal 0 Batch start 3 Container Sets Each container, how many per batch, and the closures and labels counted per container. + Add Container Set Container How many per batch Items counted per container 5 oz woozy bottle 128 24-410 black cap ×1, SH front label ×1 4 Save BOM Cancel 5
A new BOM: the header sets the yield, and every line describes one batch of it.
Editing a costed BOM rewrites history's context

If a BOM version is linked to batch cost records, its page shows how many and warns that edits will change historical cost context. Clone it to a new version instead of editing one that batches have already been costed against.

Related