---
title: "Create a BOM"
description: "Add lines to a parent part's bill of materials."
---

A BOM in simple-plm hangs off a parent part. To create one, open the parent and start adding lines.

## Steps

1. **Open the parent part.** From the Parts list, click the part you want to add a BOM to — for example `ASSY-PCB-001`.
2. **Click the BOM tab.** Empty BOMs render with a "Start a BOM" button; existing ones show a line table.

   ![BOM tree view](/docs/screenshots/light/bom-tree.png)

3. **Add lines.** Click **Add line**:
   - **Part** — search and pick the child part. The picker filters as you type the PN or description.
   - **Quantity** — integer for discrete parts, decimal allowed for raw stock.
   - **Reference designators** — comma-separated, e.g. `R1, R2, R3`.
   - **Alternates** — optional comma-separated list of equivalent PNs.
4. **Save.** The dashboard commits a single change to `plm-data/boms/<parent-pn>.yaml`.

## Editing existing lines

Each row has an inline edit button. Saving an edit writes a new commit; the row's "edited" hint shows the timestamp and author. The full file history is available under the BOM tab's "History" view, or from `git log` on the workspace repo.

## Importing a BOM

For larger BOMs you can paste tab-separated rows from a spreadsheet, or upload a CSV with columns `part,qty,reference_designators`. The dashboard validates every PN exists before saving; unknown PNs are flagged inline so you can create them or fix typos.

## Next

Once your BOM is in good shape and you want it reviewed by a teammate, propose an ECO — see [Propose an ECO](/docs/workflows/propose-eco/).
