All docs

Help article

Assemblies

An assembly is a recipe: a bigger thing you build out of the inventory items you already track. Tell the app what parts go into it and how many, and it works out how many you can build, what each one costs, and which part is holding you back.

Open your dashboard
The one-sentence version: an assembly doesn’t hold its own stock count. It’s a list of inventory items (the components) plus how many of each it needs. The app then calculates everything else for you from your live inventory.

Why assemblies exist

Most operations don’t just buy and sell single items; they combine them. A gift basket is made of products. A finished birdhouse is made of wood, screws and paint. A catering tray is made of ingredients. You don’t want to track the basket’s stock by hand and the stock of everything inside it, because they’d drift out of sync immediately.

Assemblies solve that. You define the recipe once, and the app answers the questions that actually matter: “How many can I make right now?” and “What does one cost me to build?”, always based on the live counts of the underlying parts.

The mental model: assemblies sit on top of inventory

This is the part that trips people up, so it’s worth saying plainly: an assembly is not a new pile of stock. It has no count of its own. It is purely a calculation over the inventory items it’s built from. Change the stock of a part, and every assembly that uses that part updates automatically.

The columns you’ll see

At the top of each assembly, and as columns in the Assemblies list, the app shows these calculated figures:

  • Cost per build: what one assembly costs to build, added up from its parts: for each component, (quantity needed × that item’s unit cost), summed together.
  • Can build now (the Can build column): how many complete assemblies you could build right now from the Stock you have on hand.
  • After incoming parts arrive (the With incoming column): how many you could build if everything currently on order also arrived (Stock + Receiving).
  • Finished (list only): the Stock of the finished item you chose when recording a build.
How “Can build now” is worked out: for each part, the app divides your stock of that part by the quantity the recipe needs, and rounds down. The smallest of those numbers wins, because you can only build as many as your scarcest part allows. That part is your bottleneck.
The Assemblies list showing each assembly's Cost per build, Can build and With incoming figures.
The Assemblies list, showing cost, how many you can build now, and how many once on-order parts arrive.

A worked example

Say you sell a Deluxe Gift Box assembly that contains:

  • 1 × Box, and you have 40 in stock
  • 3 × Chocolate Bar, and you have 50 in stock
  • 2 × Greeting Card, and you have 12 in stock

The app does the math per part:

  • Box: 40 ÷ 1 = 40 possible
  • Chocolate Bar: 50 ÷ 3 = 16.6 → 16 possible
  • Greeting Card: 12 ÷ 2 = 6 possible

Can build now = 6, because the greeting cards run out first. If a card costs $0.50, a bar $1.00 and a box $2.00, the Cost per build of one box is (1×$2.00) + (3×$1.00) + (2×$0.50) = $6.00. That instantly tells you the bottleneck (buy more cards) and your build cost.

Building an assembly, step by step

  1. Make sure the parts already exist in Inventory. An assembly can only be built from items you already track.
  2. Open Assemblies in the sidebar (on a phone, Sections, then Assemblies), click New assembly, give it a name (e.g. “Deluxe Gift Box”), add notes if useful, and click Save and add parts.
  3. The assembly opens on its Parts list, ready to edit. Under Add a part, choose an inventory item, enter how much one build uses, and click Add part. Repeat for each part.
  4. Click Done editing. Later, use Edit parts to change an amount (press Enter) or remove a part with its ×.

As soon as quantities are set, Cost per build, Can build now and After incoming parts arrive fill in automatically, and each row of the Parts table shows that part’s cost per build, how much is In Stock, and how many builds that part alone is Enough for, so the bottleneck is easy to spot.

An assembly opened, showing Cost per build, Can build now, After incoming parts arrive, and the Parts table with each part's amount, stock and how many builds it is enough for.
Inside an assembly: the recipe, with each component’s stock and how many assemblies it alone can support. Here the Arduino (enough for 8 builds) is the bottleneck.

Negative amounts: parts a build creates

The Used per build amount accepts negative numbers, and this is one of the most useful (and most overlooked) features. A normal, positive quantity means the assembly consumes that part. A negative quantity means building the assembly creates that item. In Edit parts, these are under Advanced: parts a build makes.

That lets you model processes that produce outputs or by-products, not just consume inputs. For example, a “Cut Plywood Sheet” assembly might consume 1 × Full Sheet (count 1) and produce 4 × Half Panel (count −4). When you record a build, the full sheet is deducted and the half panels are added, all in one step.

An assembly that breaks down a plywood sheet: the Plywood Half Panel component has a quantity of minus 4, meaning building the assembly creates four half panels.
A real negative-quantity recipe: completing “Break Down Plywood Sheet” consumes one full sheet and creates four half panels (count −4).

Recording a build (using up the parts)

When you actually make some, open the assembly, enter How many did you make? under Record a build, and click Record build. Optionally pick the inventory item that holds the finished product under Finished item goes to; the app remembers it for next time. A preview line shows what the build will use and add before you click. After you confirm, it adjusts your inventory in one go:

  • For each positive part, it subtracts (amount × number built) from that item’s Stock.
  • For each negative part, it adds the created items to Stock instead.
  • If you chose a finished item, its Stock goes up by the number built.
  • Every change is written to each item’s History (“Used to build 12 × Sourdough loaf”), so the build is fully traceable.

If any part is short, nothing changes and the app tells you which part and how much is missing.

Recording a build changes the real stock counts of the underlying items, not just a label. Only record the number you genuinely built, since the parts are deducted immediately. To reverse a mistake, adjust the affected items by hand from their item dialog.

Keeping an assembly accurate over time

  • New inventory items appear in the Add a part list automatically.
  • The part that limits how many you can build is marked Limits builds.
  • Costs update on their own: change a part’s unit cost in Inventory and every assembly that uses it re-totals automatically.

Components can be measured, not just counted: 0.5 kg of flour per loaf makes the assembly a recipe, and “Can build now” is floored to whole loaves. See the bakery example.

Common questions

Can an assembly contain another assembly? Recipes are built from inventory items, not from other assemblies. If you have sub-builds, track the sub-build’s output as an inventory item (using the negative-quantity trick above), then use that item in the bigger recipe.

Why is “Can build now” lower than I expect? It’s capped by your scarcest part. Open the assembly and check the “Enough for” column in the Parts table; the part dragging the number down is marked Limits builds.

Why is a part not in the recipe? Only parts with an amount are listed. Click Edit parts and add it under Add a part.

Related: Inventory (the parts assemblies are built from) and Orders (what feeds the “After incoming parts arrive” figure).

Other sections: Inventory · Inventory Snapshots · Orders · Team