Skip to content

BOMs

A BOM (bill of materials) is a list of part lines that together describe an assembly. Each line says “use N of part X, mounted at Y”. A PCB BOM has hundreds of lines; a top-level product BOM may have only a dozen, each pointing at a sub-assembly.

Single-level by design

BOMs in simple-plm are single-level: each BOM lists only direct children, never grandchildren. Multi-level assemblies are achieved by composition — a top-level BOM lists a sub-assembly part, and that sub-assembly has its own BOM. This keeps each YAML file readable and each change atomic.

Line fields

FieldPurpose
partThe child part number.
qtyHow many. Integers for discrete parts, decimals allowed for raw material.
unitOptional unit override (default is “each”).
reference_designatorsList of board references — ["R1", "R2", "R3"].
alternatesList of equivalent parts the buyer may substitute.

How edits land

A BOM edit in the dashboard becomes a commit on a branch — usually the working branch tied to an active ECO. Once the ECO is approved, that branch merges into main.

An ECO branches off main, accumulates BOM edits as commits, then merges back when approved.

On disk

plm-data/boms/ASSY-PCB-001.yaml
parent: ASSY-PCB-001
lines:
- part: R-10K-0603
qty: 4
reference_designators: [R1, R2, R3, R4]
- part: C-100N-0402
qty: 12
alternates: [C-100N-0603]

See plm boms for the CLI surface.