MBOM BASICS · UPDATED 10 OCTOBER 2026
Bills of materials for configure-to-order products
A product sold in many sizes and options cannot have a parts list for every variant. It needs a reliable way to produce the right one for each order.
Why a BOM for each variant breaks down
Three widths, three heights, two finishes and an optional panel already make 36 variants. Real ranges are made to any size within limits, so the variants never run out. Listing them fails, and copying the nearest one and adjusting it by hand is where mistakes start.
Describe the family once
FactorySpec models the range as one product family: the inputs a customer chooses, the bounds and precision allowed, the deductions and tables your engineers use, and the conditions that add, remove or block parts. Each order is then an evaluation of that one model.
Conditions that add, remove or block
- Include a line when a condition holds, such as a centre support over a certain width.
- Allow an option only where it makes sense, such as a cover only on one range.
- Block a combination that cannot be made, with a reason in your own words.
- Apply a field only when another choice needs it.
Strict about the edges
Boundaries mean exactly what they say: “more than 1,200 mm” does not include 1,200 mm. Table lookups need an exact key, so a value between two rows is refused rather than matched to the nearest. Missing, zero and “no” are different answers.
One unit at a time
Each result is the BOM for one configured unit. Your order system multiplies it by the quantity ordered, and FactorySpec keeps the release and inputs that produced it.
Read next
Does this match how you make your products?
Start with a short description of what you make and how each unit’s parts are worked out.
Request early access ↗