Skip to content

Check BOM margin and cost breakdown

Every BOMBill of MaterialsA bill of materials tells Assemblified how to build one unit of a finished good. When a customer orders the finished-good variant, Assemblified deducts the right component quantities from inventory automatically. Read more → rolls up its components into a total cost. If the BOM’s Shopify variant has a selling price, Assemblified shows you the margin at a glance. And if the margin’s wrong (or you want to know why), the Costs tab gives you the per-component breakdown.

This guide walks through both views.

  • The two views — bottom-line margin vs. per-component breakdown
  • Step-by-step: read the margin (Overview tab)
  • Step-by-step: drill into the breakdown (Costs tab)
  • The math behind every number
  • What’s not shown
  • Improving margin
ViewWhereWhat you see
Cost Overview panelBOM detail page → Overview tabSelling Price, Total Cost, Margin %. Color-coded green (profitable) or red (selling at a loss).
Costs tabBOM detail page → Costs tabPer-component cost lines for raw materials and sub-assemblies, with section subtotals and grand total.

Use the Overview’s Cost Overview panel when you want the bottom line. Use the Costs tab when you want to know which component is dominating cost — or to verify the rollup before you sync cost to Shopify.

  1. Open the BOM detail page for any BOM that has a Shopify product link with a selling price.

  2. Stay on the Overview tab (the default tab when the page loads).

  3. Find the Cost Overview panel. It sits on the right side of the page, alongside the Components panel. Look for the dollar-sign icon and the heading Cost Overview.

  4. Read three values, top to bottom:

    • Selling Price — what Shopify shows for this variant. Only displayed if the price is greater than 0.
    • Total Cost — the rolled-up cost of all components.
    • Margin — the percentage (Selling Price − Total Cost) / Selling Price × 100. Color-coded:
      • Green — positive margin (profitable).
      • Red — negative margin (selling at a loss).

That’s the bottom line. If the number surprises you (negative when you expected positive, or much lower than expected), continue to the Costs tab.

  1. Same page — switch to the Costs tab in the page’s tab bar.

  2. Two expandable sections appear, both expanded by default:

    • Raw Materials — direct raw materials in the BOM.
    • Sub-Assemblies — sub-assembly references in the BOM.

    Each section header shows the section’s subtotal on the right.

  3. Inspect each line. A line shows the component name, its quantity, the unit cost, the waste %, and the resulting line cost. The math: quantity × unit cost × (1 + waste%/100).

  4. Read the grand total at the bottom of the breakdown — sum of both section subtotals.

  5. Collapse a section by clicking its header if you only want to see subtotals at a glance.

If a single line dominates the cost — say one raw material’s unit cost × quantity is 80% of the total — that’s where to focus when you’re trying to improve margin.

Same formula throughout the app, applied per line:

effective_cost_per_unit = unit_cost × (1 + waste_percentage / 100)
line_cost = quantity × effective_cost_per_unit

Then aggregated:

direct_raw_material_cost = sum(line_cost) for all direct raw materials
sub_assembly_cost = sum(SA line costs, recursive into nested SAs)
total_cost = direct_raw_material_cost + sub_assembly_cost

Margin from the Overview panel:

margin_% = (selling_price − total_cost) / selling_price × 100

If you’ve added labourLabour costThe cost of human work going into a BOM. Modeled either as a virtual material with unit cost equal to the hourly rate (per-unit, scales with order quantity) or as a per-work-order adder field (per-batch lump sum, doesn't scale). Read more → via the virtual work-hour pattern, it’s a regular raw-material line — nothing special, just rolled in.

Be aware:

  • Per-location cost. The breakdown uses each material’s unit cost field, which is one number per material. If you stock the same component cheaply at one warehouse and expensively at another, the cost view doesn’t reflect that — you get a single global number.
  • Time series. No chart of cost-over-time. You see the current state.
  • Sub-assembly margins. Margin is a BOM-only concept (only BOMs have a Shopify selling price). Sub-assemblies show a unit cost on their own detail page but no margin.
  • Labour as a separate bucket. If you used the virtual-hour pattern, labour shows as another raw-material row in the breakdown — not as its own labour bucket. It’s still in the total; it’s just not visually separated.
  • Currency. All values are in your shop’s currency. There’s no per-component currency conversion.

If the margin’s red (or just smaller than you want), the levers are:

  • Cut component cost. Source cheaper, switch suppliers, find substitutes. Use the breakdown to find the dominant line.
  • Reduce waste %. If a component has a high waste %, you’re consuming more than the recipe quantity. Better tooling or process can lower it.
  • Raise selling price. Done in Shopify; not in Assemblified.
  • Re-check labour cost. If you’re using the virtual-hour pattern with stale rates, update the rate. See Track building cost.
  • Sync the new cost to Shopify. After improving the calculated cost, push it so Shopify-side reports reflect reality. See Sync BOM cost to Shopify.