Show me a multi-level bill of materials and the explosion for one order.
The bill of materials is the structural recipe for a product, and it is a tree rather than a list — which is the whole reason explosion arithmetic exists.
Order: 250 x PUMP-A200
item level type qty per parent total required
------------------------ ----- ---------- -------------- --------------
PUMP-A200 0 finished - 250
HOUSING-SUB 1 assembly 1 250
CASTING-88 2 purchased 1 250
GASKET-12 2 purchased 2 500
BOLT-M8 2 purchased 6 1,500
MOTOR-SUB 1 assembly 1 250
STATOR-40 2 purchased 1 250
BEARING-6204 2 purchased 2 500
BOLT-M8 2 purchased 4 1,000
LABEL-KIT 1 purchased 1 250
BOLT-M8 appears twice: 1,500 + 1,000 = 2,500 required in total
Level zero is the finished item and each level below is what the level above consumes. Explosion is the recursive multiplication down that tree: quantity per parent times the parent's own requirement, all the way to purchased parts. That is the calculation material requirements planning performs, and it is why a single-table BOM design fails — a flat parts list cannot express that a gasket is consumed by a sub-assembly rather than by the pump.
BOLT-M8 is the detail that catches people. A common part appears at several
places in the tree, so the requirement is a sum across branches rather than a
lookup, and any query written as a join to one parent under-orders. The same
applies to a sub-assembly that is also sold as a spare: it is both a level 1
component and a level 0 finished good, so the item master and the structure must
be separate tables joined by a parent/child edge.
Two modelling consequences follow. The structure is effectively versioned, because engineering changes the BOM and a work order released last week must explode against the revision in force when it was released, not today's. And scrap allowance belongs on the edge, not the item: if welding loses 3% of castings, the requirement is 258 rather than 250, and storing that factor per item makes it wrong for every other product using the same casting.