What is a bill of materials?
A bill of materials, or BOM, is the list of components and quantities needed to make one unit of a product. Costing a BOM adds up the cost of each component, and it tells you what to buy before a production run.
Example
A small company builds a sensor kit. One unit needs 1 circuit board ($6.00), 2 connectors ($0.85 each), 1 enclosure ($2.40) and 4 screws ($0.05 each).
Rolled-up material cost: 6.00 + 1.70 + 2.40 + 0.20 = $10.30 per unit. A run of 50 units needs 50 boards, 100 connectors, 50 enclosures and 200 screws.
In Atta
An item can have a BOM. A production run (buildItem) is one transaction: it writes consumed rows to the stock ledger for each component and one produced row for the finished item at the rolled-up cost, keyed to the run so it can't happen twice. If a component is short, the run is refused with both figures.
A work order holds the same plan over time and consumes nothing until it is marked done. A kit is different: it's sold and never stocked, and selling one withdraws its parts.
Levels
A BOM can nest. The sensor kit's circuit board might itself have a BOM of chips and resistors. Costing rolls up from the bottom, so a $0.10 change in a resistor price moves the kit's cost by the quantity used. Keep BOM quantities per one finished unit and scale them by the run size when you order.
Questions
What is the difference between a BOM and a kit?
A BOM is built into a stocked item. A kit is a bundle sold as one line and made of parts at the time of sale.
Related
- What is a stock ledger?A stock ledger records every movement of inventory as a signed entry, so on-hand is the sum of the entries. Definition with a worked example.
- What is a reorder point?A reorder point is the stock level that triggers a new order. The formula is daily demand times lead time, plus safety stock. With a worked example.
- AI inventory management that ends in a purchase requestAtta keeps stock as a ledger, forecasts when each item runs out from measured usage and quoted lead times, and opens a restock request instead of ordering.