# Bills of Materials (BOMs)

{% hint style="info" %}
**Quick Answer:** A Bill of Materials (BOM) tells Moselle which components and quantities make up a finished product. BOMs are configured during onboarding by your CSM and can be updated directly in the Product Catalog afterward.
{% endhint %}

## What is a BOM?

**A Bill of Materials (BOM) is** a structured list that defines the components, raw materials, or sub-assemblies that make up a finished product. In the context of demand planning, a BOM tells Moselle: when you need to produce or fulfill X units of a finished good, here is exactly what goes into it and how much of each component is required.

BOMs are essential for brands that manufacture, kit, or bundle products. Without them, your inventory and forecast data only tells half the story — you might know you need 500 units of a finished SKU, but Moselle has no way of knowing what raw materials or components need to be on hand to make that happen.

## When Do You Need a BOM in Moselle?

BOMs are relevant for your account if any of the following apply:

* **You manufacture your own products.** If your finished goods are assembled or produced from raw materials or components — packaging, formulas, ingredients, hardware, and so on — a BOM maps that relationship so Moselle can plan component demand alongside finished goods demand.
* **You sell kits or bundles.** If you sell a product made up of multiple individual SKUs bundled together — a gift set, a starter kit, a multi-pack — a BOM tells Moselle what component SKUs are consumed when a bundle is sold or fulfilled.
* **You have shared components across multiple SKUs.** If the same raw material or sub-component feeds into several finished products, BOMs allow Moselle to aggregate demand across all parent SKUs and plan component inventory accordingly.

## How BOMs Are Set Up in Moselle

BOMs are configured during your onboarding process, before Week 2 begins. Your Customer Success Manager (CSM) will work with you to collect your BOM data and load it directly into your Moselle account. You do not need to set this up yourself — your CSM handles the configuration to make sure the foundation is correct before you move into active planning.

**Time Required:** 15–30 minutes to complete the template\
**Difficulty:** Beginner

### The BOM Template

Your CSM will send you a BOM template to fill out. The template has three columns:

| Column          | Description                                                                 |
| --------------- | --------------------------------------------------------------------------- |
| `sku`           | The parent SKU — the finished good or sellable product                      |
| `component_sku` | The component, raw material, or sub-item that makes up the parent SKU       |
| `quantity`      | How many units of the component are required per one unit of the parent SKU |

**Example completed BOM template:**

| sku          | component\_sku | quantity |
| ------------ | -------------- | -------- |
| GIFT-SET-001 | ITEM-A         | 1        |
| GIFT-SET-001 | ITEM-B         | 1        |
| GIFT-SET-001 | PKG-001        | 4        |

In this example, one unit of GIFT-SET-001 requires 1 unit of ITEM-A, 1 unit of ITEM-B, and 4 units of PKG-001. Each component gets its own row — a parent SKU with three components will have three rows, all sharing the same `sku` value.

### Setup Steps

{% stepper %}
{% step %}

### Identify your parent SKUs

Map out which finished goods or sellable SKUs require a BOM. This is typically your full manufactured or kitted product catalog. A good rule of thumb: if a SKU is made up of other trackable items, it needs a BOM.
{% endstep %}

{% step %}

### Fill out the BOM template your CSM provides

For each parent SKU, list every component along with the exact quantity required per finished unit. Be precise — the quantity value drives all of Moselle's component demand calculations, so even small errors will compound across large forecast volumes.
{% endstep %}

{% step %}

### Send the completed template back to your CSM

Your CSM will load the BOM logic into your Moselle account and confirm once everything is configured and ready to go before Week 2 of onboarding begins.
{% endstep %}

{% step %}

### Validate your BOM structure

Once your BOMs are loaded, review them to confirm everything looks right:

* [ ] Every parent SKU that requires a BOM has one assigned
* [ ] Quantity values are correct for each component
* [ ] Component SKUs exist in your Moselle catalog and are active
* [ ] Any shared components appear correctly across all relevant parent SKUs

{% hint style="info" %}
A quick way to spot-check is to pull a component demand report after setup and confirm that the calculated component requirements align with what you would expect given your forecasted finished goods demand.
{% endhint %}
{% endstep %}
{% endstepper %}

## Making Changes to Your BOMs After Onboarding

If your products evolve after onboarding — formulation changes, packaging updates, new bundle configurations — you can update BOMs directly in Moselle without going back to your CSM every time.

### How to Update a BOM

1. Navigate to **Catalog** in the left sidebar
2. Search for the product you need to update
3. Open the SKU and scroll to the **Bill of Materials** section
4. Make your adjustments and save

Changes take effect immediately, so your planning data will reflect the updated BOM logic as soon as you save.

{% hint style="warning" %}
If you are making a significant structural change — a full product reformulation or a bundle overhaul — flag your CSM so they can help validate the update and confirm your downstream planning is not affected.
{% endhint %}

{% hint style="info" %}
**Keep your BOMs maintained.** An outdated BOM is one of the most common sources of inventory planning errors. Build a habit of reviewing BOMs any time a product change occurs — it is a small step that prevents significant downstream issues.
{% endhint %}

## How Moselle Uses Your BOMs

Once your BOMs are set up, Moselle incorporates them automatically into your planning workflows:

**Component demand planning**\
When Moselle generates a forecast for a parent SKU, it uses the BOM to calculate the corresponding demand for each component. Your raw material and component purchasing can be planned directly from your finished goods forecast — no manual translation required.

**Inventory visibility**\
Moselle shows component-level inventory health alongside your finished goods inventory, so you can see at a glance whether you have enough of every input to meet your production or fulfillment plan.

**Shortage identification**\
If a component is running low or at risk of stocking out, Moselle surfaces that risk in the context of the finished goods it affects — so you know not just that a component is short, but which parent SKUs will be impacted and by how much.

## Frequently Asked Questions

<details>

<summary>Do I need to set up BOMs myself?</summary>

No. BOMs are configured by your CSM during onboarding. You fill out the template they provide and send it back — they handle loading it into your account. After onboarding, you can make changes directly in the Product Catalog.

</details>

<details>

<summary>What happens if I have a component shared across multiple parent SKUs?</summary>

Each parent SKU gets its own rows in the BOM template. Moselle will automatically aggregate demand across all parent SKUs when calculating total component requirements, so you do not need to do any manual math.

</details>

<details>

<summary>What if a component SKU does not exist in my Moselle catalog yet?</summary>

Component SKUs must exist in your catalog before a BOM can reference them. Work with your CSM during onboarding to ensure all component items are created before BOMs are loaded.

</details>

<details>

<summary>Can I have BOMs with more than one level (sub-assemblies)?</summary>

Reach out to your CSM to discuss multi-level BOM requirements. Your CSM can advise on the best approach for your specific product structure.

</details>

## Related Guides

{% content-ref url="/pages/Thw9NEHchrwLEq8IMSLH" %}
[Edit Item Details](/operations/catalog/edit-item-details.md)
{% endcontent-ref %}

{% content-ref url="/pages/oDDIGFzo76BtEKilj35R" %}
[Create an Item](/operations/catalog/create-an-item.md)
{% endcontent-ref %}

{% content-ref url="/pages/DbukpExgjUJyIl4zxC4b" %}
[Adding Bundles in Moselle](/operations/catalog/adding-bundles-in-moselle.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.moselle.io/operations/catalog/bill-of-materials.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
