> For the complete documentation index, see [llms.txt](https://learn.moselle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.moselle.io/planning-and-execution/replenishment/supply-planning/supply-planning-conditions.md).

# Where to Set Supply Planning Conditions

Where to set MOQ, production lead time, transit lead time and safety stock for a Moselle Supply Plan — supplier catalog, Supply Chain map or product catalog.

{% hint style="info" %}
**Quick Answer:** Supply plan conditions live in three places. **MOQ, case pack, and production lead time** are on the **supplier catalog** (Suppliers > \[supplier] > Catalog). **Transit lead time** is on the **Supply Chain map**, on each connection and lane. **Safety stock** is on the **product catalog**, as a `safety_stock` custom attribute in days. The plan reads all three every time it builds.
{% endhint %}

## Where Does Each Condition Live?

A supply plan does not have its own constraints screen. It reads the terms you have already recorded where they naturally belong — with the vendor, on the route, or on the product — so one number is maintained in one place and every plan agrees.

| Condition                        | Where to set it                                                                                     | Page                                                   |
| -------------------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| **Minimum order quantity (MOQ)** | Supplier catalog, per SKU                                                                           | Suppliers > \[supplier] > **Catalog**                  |
| **Order multiple / case pack**   | Supplier catalog, per SKU                                                                           | Suppliers > \[supplier] > **Catalog**                  |
| **Order maximum**                | Supplier catalog, per SKU                                                                           | Suppliers > \[supplier] > **Catalog**                  |
| **Production lead time**         | Supplier catalog, per SKU (**Lead Time (days)**), with the supplier's default as fallback           | Suppliers > \[supplier] > **Catalog**                  |
| **Transit lead time**            | Supply Chain map — on the supplier's connection to a warehouse, and on each lane between warehouses | Operations > Inventory > **Supply Chain**              |
| **Safety stock**                 | Product catalog — a custom attribute named `safety_stock`, in days                                  | Items > \[item] > **Custom Attributes**, or CSV import |

**Time Required:** 15–30 minutes to set up for a first plan\
**Difficulty:** Intermediate

## Q: Where do I set MOQ?

**A: On the supplier catalog.** Open the supplier, go to the **Catalog** tab, and set **MOQ** on the SKU's row. The same SKU can carry a different MOQ in each supplier's catalog — that is how Moselle compares vendors.

MOQ is the fewest units the vendor will accept in one order. In the supply plan, any suggested purchase or production run below the MOQ is **raised to it**. When you type a quantity into an order card, the number rounds up as you type, so the adjustment is never a surprise.

Two neighbours live on the same row:

* **Order Multiple** — the case pack or pallet size orders round **up** to. Applied first, then the MOQ; the MOQ itself must land on a multiple.
* **Order Max** — the most the vendor will take in one order. Exceeding it shows a **warning**; Moselle never rounds a quantity down.

{% hint style="info" %}
A dash (—) in the catalog means the term is not set, not that it is zero. A blank term falls back to the default on that supplier's connection in the Supply Chain canvas. A term set on the catalog row **wins** over the connection default.
{% endhint %}

{% content-ref url="/pages/WCsX337cwTs46Xw0Ehqs" %}
[Supplier Catalog](/operations/suppliers/supplier-catalog.md)
{% endcontent-ref %}

## Q: Where do I set production lead time?

**A: On the supplier catalog, too.** The **Lead Time (days)** column is the time from placing the order to goods being ready at the vendor — make time, not shipping time.

* Set it **per SKU** in the catalog when different products take different times to make.
* Leave it blank to fall back to the **supplier's default lead time** on their supplier record.

The supply plan adds production lead time to transit lead time to work out the **order-by date** for every purchase and production run: *order by = landing month − (production lead time + transit lead time)*. That is the date behind the red clock in the grid.

## Q: Where do I set transit lead time?

**A: On the Supply Chain map.** Transit is a property of a **route**, so it lives on the connection that draws that route:

| Route                                | Where the transit time lives                                                 |
| ------------------------------------ | ---------------------------------------------------------------------------- |
| **Supplier → warehouse** (purchase)  | On the purchase connection between the supplier and the warehouse            |
| **Factory → warehouse** (production) | On the production connection — shown summed with production time on the line |
| **Warehouse → warehouse** (transfer) | On the **Lane** between the two warehouses                                   |

Open **Operations > Inventory > Supply Chain**, click the connection or lane, and enter the days in transit. A route with no transit time recorded plans as if shipping were instant, so give every connection a number — even an estimate is better than a blank.

For transfers, the lane's transit time decides when a transfer must **ship** to land in a given month. Lanes can also carry an order multiple (for example, a full truckload); that multiple is shown when you create a transfer by hand.

{% content-ref url="/pages/fjQL5Ho3uiOxopJxw9pB" %}
[Supply Chain Network](/operations/inventory/supply-chain-network.md)
{% endcontent-ref %}

## Q: Where do I set safety stock?

**A: On the product catalog, as a custom attribute.** Add a custom attribute named exactly `safety_stock` to the item and enter a number of **days of cover** — for example `30` to hold a month of forward demand as a buffer.

* The value is **days**, not units. Moselle turns it into units using each month's forecast, so the buffer grows and shrinks with demand.
* An item with **no** `safety_stock` attribute is planned to cover demand only, with no extra buffer.
* A value of `0` means "hold nothing extra". Text such as "TBD" or a negative number counts as unset.
* This is the **same** attribute your replenishment plans read, so one item holds one safety stock in both plan types.

For large catalogs, use the export → fill in → re-import CSV workflow to set `safety_stock` on every SKU at once.

{% hint style="warning" %}
**Stock policy min/max on the Supply Chain map is not the supply plan's safety stock.** The min/max band you can draw on a warehouse node is an alerting range for the map and inventory views. The supply plan's buffer comes from the `safety_stock` custom attribute on the product.
{% endhint %}

{% content-ref url="/pages/M1q2GnSpCf5mJdJ7o9lU" %}
[Adding Custom Attributes](/operations/catalog/product-setup/custom-attributes.md)
{% endcontent-ref %}

## Q: Which supplier does the plan pick when several could supply a warehouse?

**A: The one on the map, narrowed by your supplier catalogs.** Each warehouse's supply connection (its **source**) names the vendor. When a warehouse has more than one source:

1. **A source drawn for a specific item wins** over the warehouse's "All items" sources.
2. **Among "All items" sources, the supplier whose catalog lists the item wins.** An "All items" connection covers what that supplier sells, so an item on one supplier's catalog is planned from that supplier rather than from another that doesn't carry it. On the canvas, these connections read **All items (N in catalog)**.
3. **Otherwise, priority decides** — the **priority** you set on the sources, lower number wins.

If an item is on **none** of the candidate suppliers' catalogs, Moselle still plans it, using priority to choose between them. Add the item to the right supplier's catalog, or draw a connection for that item, to point it at a specific supplier.

The order card in the plan always shows the supplier each order was actually planned from, along with that supplier's lead time and order terms.

## Pre-Build Checklist

Before you build or rebuild a supply plan, confirm:

* [ ] Every supplier you buy from has a **catalog** with MOQ, order multiple, and lead time for the SKUs they carry
* [ ] Every purchase or production connection on the map names a **supplier** (otherwise orders cannot be placed)
* [ ] Every connection and lane on the map has a **transit time**
* [ ] The **Network problems** panel on the Supply Chain page is clear
* [ ] Products that need a buffer have a `safety_stock` custom attribute in days

## Frequently Asked Questions

### Why is Moselle suggesting more than I typed?

**Answer:** The quantity was raised to meet the supplier's order multiple, then the MOQ. Check the SKU's row in that supplier's catalog. The order card shows the adjusted number as you type.

### I changed a lead time on the map. Why didn't the plan change?

**Answer:** Conditions are read at build time. Click **Rebuild** on the plan to pick up the new value. Your staged and placed orders are kept.

### Do I need to set safety stock for every SKU?

**Answer:** No. Set it only where you want a buffer. SKUs without the attribute are planned to cover forecast demand exactly.

### Can I set MOQ on the product instead of the supplier?

**Answer:** For supply plans, order terms are read from the **supplier catalog**, because MOQ and case pack describe how a vendor sells, and the same SKU can differ between vendors. Keep them on the catalog rows.

### Where does the plan get prices for the COGS view?

**Answer:** From the item's unit cost, the same figure your other Moselle reports use.

## Troubleshooting Common Issues

| Problem                                                     | Solution                                                                                                                   | Time to Fix |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------- |
| Orders show a warning that the quantity exceeds the maximum | Split the order across months or raise **Order Max** in the supplier catalog                                               | 2 minutes   |
| A warehouse shows unserved demand every month               | It has no source or inbound lane on the map — add one with a transit time                                                  | 5 minutes   |
| Every order is due "immediately"                            | A connection is missing its transit or production lead time, so the plan thinks supply is instant. Fill it in and rebuild. | 5 minutes   |
| **"names no supplier"** when placing                        | The purchase connection has no supplier — pick one on the canvas                                                           | 2 minutes   |
| Safety stock is ignored                                     | Check the attribute is named exactly `safety_stock`, holds a whole number of days, and rebuild                             | 2 minutes   |

## Related Guides

{% content-ref url="/pages/rWrUXYFkPuQYJLDgxBg2" %}
[Add Your Constraints](/planning-and-execution/replenishment/core-workflow/add-your-constraints.md)
{% endcontent-ref %}

{% content-ref url="/pages/RPnjxVQVrygjJyKHTe43" %}
[Supplier Types](/operations/suppliers/supplier-types.md)
{% endcontent-ref %}

{% content-ref url="/pages/fBYP5FOkgG236eVERDJ0" %}
[Create a Supply Plan](/planning-and-execution/replenishment/supply-planning/create-a-supply-plan.md)
{% endcontent-ref %}
