Assembly Cost

An assembly cost defines the recipe for producing a finished good: which components go into it, how much of each, and what the batch output is. The system uses these recipes to compute assumed production costs based on real purchase prices from approved stock arrivals.

Permissions

Two permissions control access:

  • View Assembly Cost — see the assembly cost page and browse existing recipes. Depends on View Inventory.
  • Manage Assembly Cost — create, edit, and delete recipes. Depends on View Assembly Cost.

Open the assembly cost page

  1. Click Inventory in the sidebar and then Assembly Cost. The page lists every product head that has at least one recipe.
  2. Alternatively, from the Stock page, open the dropdown at the top right and pick Assembly Cost.

Browse recipes

The main table groups recipes by product head, showing the head name and how many product codes under it have recipes.

  • Search — type a head name to filter.
  • View — click the View button on a row to open a modal listing every recipe under that head. The modal shows the product code, make, number of components, output quantity, and unit.

Add a recipe

  1. Click Add Assembly Cost at the top right.
  2. In the modal, fill out the Finished Good section:
    • Product Head — pick the head. This filters the code and make dropdowns.
    • Product Code — pick the code under the selected head.
    • Make — required. Pick from the makes allowed on the head. If the head has no makes configured, a message tells you to add makes in Records first.
    • Output Qty — how many units the batch produces (e.g. 7).
    • Unit — the output unit, filtered to the units allowed on the code.
  3. In the Components section, add one or more rows. Each row has the same cascade: Head, Code, Make, Quantity, Unit.
  4. Click Create.

Rules enforced:

  • Every field is required. Quantity must be greater than zero.
  • A product cannot be its own component (same code + make).
  • No duplicate code + make pairs within the components list.
  • Only one recipe can exist per code + make combination. Attempting to create a duplicate shows a conflict error.

Edit a recipe

From the View modal for a head, click Edit on a code row. The parent code and make are shown but cannot be changed — to change them, delete the recipe and create a new one. You can change the output quantity, output unit, and the full list of components.

Delete a recipe

From the View modal, click Delete on a code row. A confirmation dialog appears. Deletion is permanent and frees the code + make slot immediately for re-use. If the last recipe under a head is deleted, the head disappears from the main table.

Assumed Cost tab in Product Analytics

When at least one assembly cost recipe exists for a product code, an Assumed Cost tab appears in the Product Pricing Analytics modal (the modal that opens when analysing a product's pricing history from an enquiry).

How cost is computed

The system walks the recipe tree recursively. For each component:

  • If the component itself has a recipe (a sub-assembly), it recurses into that recipe.
  • If the component is a raw material with no recipe, it looks up purchase prices from approved stock arrivals.

Three price modes are available — Highest, Latest, and Lowest — all computed in a single request. Switching between them is instant.

Make selector

If the product code has recipes for multiple makes, a Make dropdown lets you switch between them. Switching re-fetches the cost tree for the selected make.

Cost breakdown tree

The tree shows every component and sub-component with its quantity, unit, unit price, and subtotal.

  • Branch nodes (sub-assemblies) can be expanded or collapsed. Collapsed branches show the direct purchase price ("buy"). Expanded branches show the computed assembly cost ("make"). This lets you interactively compare make-vs-buy for any node.
  • Leaf nodes (raw materials) show the purchase price from arrivals. If no arrivals exist, the price shows as "—".
  • Cycle nodes — if the recipe tree contains a circular reference (A uses B, B uses A), the cycle is detected and the node is shown as a leaf with a cycle indicator. This prevents infinite recursion.

Incomplete data warning

If any component in the tree has no arrival data, a warning banner shows how many components are missing prices. The computed cost will be partial in this case.

Summary

Above the tree, a summary line shows the batch output, cost per unit, and total batch cost for the selected price mode.

Last updated 2026-05-24