> 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/faq/replenishment-and-allocation/what-is-unserviceable-demand.md).

# What is Unserviceable Demand in Production Planning?

{% hint style="info" %}
**Quick Answer:** Unserviceable demand is forecasted demand that cannot be fulfilled by available inventory. When this occurs, Moselle displays a **zero value in the Ending Quantity row** to indicate a stockout. When a purchase order arrives, you'll see the balance jump to a positive number reflecting the new inventory.
{% endhint %}

## What Does "Unserviceable Demand" Mean?

**Unserviceable demand** is the portion of your projected sales demand that exceeds available inventory during a given period. It represents units that customers are expected to want but that you won't have on hand to fulfill.

In Moselle's production planning table, this shows up as **Ending displaying zero** — when projected sales exceed available stock, the ending inventory balance shows zero to indicate a stockout.

## Why Am I Seeing Zero in Ending Before My Order?

A zero value in the **Ending Quantity** row means your projected sales during that period will exhaust all available stock before your incoming order replenishes inventory.

This typically happens when:

* **Lead time creates a gap** — Your order is on the way, but it won't arrive until a future period. In the meantime, forecasted demand continues to consume inventory.
* **Safety stock is insufficient** — The buffer stock set on a SKU or at the plan level isn't large enough to cover demand during the lead time window.
* **Demand is higher than expected** — A spike in the forecast exceeds what current stock can cover before the next order arrives.
* **No order has been placed yet** — The plan shows zero to signal that a stockout is projected and an order is needed.

{% hint style="warning" %}
**Don't ignore zero values.** A zero in the Ending row is Moselle's way of flagging potential stockouts. Review these periods and adjust your order quantities or timing to close the gap.
{% endhint %}

## How to Read the Production Plan Table

When you expand a SKU row in the production planning table, you'll see these detail rows:

| Row                      | What It Shows                                                                                                        |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| **Starting Stock Level** | Inventory at the beginning of the period                                                                             |
| **Projected Sales**      | Forecasted units expected to sell that period                                                                        |
| **Suggested Order**      | Mo's recommended buy quantity (shown in blue)                                                                        |
| **Ending Quantity**      | Starting Balance + Buys − Projected Sales. Shows **zero** when sales exceed available stock (indicating a stockout). |

A **zero in Ending Quantity** means: projected sales exceed the available stock for that period, and no order is scheduled to land in time to cover the gap.

## Example: Stockout Before an Order Arrives

Imagine a product with the following situation:

* **February Starting Stock:** 50 units
* **February Projected Sales:** 80 units
* **Purchase Order of 200 units:** Placed in January, landing in March (due to a 2-month lead time)

What you'll see in the plan:

| Period       | Ending | What This Means                                                                                    |
| ------------ | ------ | -------------------------------------------------------------------------------------------------- |
| **February** | 0      | Sales (80) exceed starting stock (50), so Ending Quantity shows **zero** — a stockout signal       |
| **March**    | 200    | The purchase order lands, creating 200 units of new inventory (no carryover of February's deficit) |

**Key insight:** Each period's inventory balance is calculated independently. The unfulfilled demand in February (30 units) doesn't create a "debt" that carries forward — when the order lands in March, you see the full order quantity as new inventory.

## How to Resolve Unserviceable Demand

{% stepper %}
{% step %}

### Identify the Gap

Expand the SKU row in your production plan and locate the period(s) showing zero in the Ending Quantity row. Note how many periods show stockouts and when your next order is scheduled to arrive.
{% endstep %}

{% step %}

### Review Your Order Timing

Check whether moving an order earlier (or increasing an existing order in a prior period) would close the gap. Remember that lead time determines when inventory actually lands — adjust your order date, not just the quantity.
{% endstep %}

{% step %}

### Increase Safety Stock

If negative values are recurring for a SKU, consider increasing the **Safety Stock** setting on that item. Safety stock adds a buffer to absorb demand fluctuations and lead time variability.

Navigate to the item in your **Catalog**, open the item details, and update the **Safety Stock** custom attribute.
{% endstep %}

{% step %}

### Place or Adjust an Order

Update the **Order** quantity in the affected period or an earlier period so the inventory lands before the stockout occurs. The Ending Quantity will recalculate automatically.

{% hint style="success" %}
Once enough inventory is ordered to arrive before or during the stockout period, the Ending Quantity will show a positive balance and the stockout will be resolved.
{% endhint %}
{% endstep %}
{% endstepper %}

## Frequently Asked Questions

<details>

<summary>Is a zero in Ending Quantity a bug or an error?</summary>

No — it is intentional. Moselle displays zero to clearly flag periods where demand is projected to exceed available supply. It is a signal to take action, not an error in the system.

</details>

<details>

<summary>Will the zero value affect my actual inventory records?</summary>

No. The production plan is a forward-looking projection only. Zero values in Ending Quantity exist in the plan to help you spot and prevent future stockouts — they do not alter your current inventory levels.

</details>

<details>

<summary>Why does Moselle still show zero in Ending Quantity even though I have an order placed?</summary>

If your order lands *after* the period with the stockout, the zero value will persist in the earlier period. The order only resolves the gap in the period it is scheduled to arrive. To eliminate the zero, the order needs to land in or before the period where demand exceeds supply.

</details>

<details>

<summary>Can I adjust lead times to fix this?</summary>

Lead times reflect real-world supplier timelines and should not be changed just to make the numbers look better. Instead, use accurate lead times and plan your orders earlier to account for them. You can update lead times on individual items via the **Transit Lead Time** custom attribute in the Catalog.

</details>

## Related Guides

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/faq/planning-and-execution/replenishment/production-planning.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/faq/planning-and-execution/replenishment/production-planning.md>
{% endcontent-ref %}

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/faq/planning-and-execution/replenishment/add-your-constraints.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/faq/planning-and-execution/replenishment/add-your-constraints.md>
{% endcontent-ref %}

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/faq/planning-and-execution/replenishment/generate-orders.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/faq/planning-and-execution/replenishment/generate-orders.md>
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://learn.moselle.io/faq/replenishment-and-allocation/what-is-unserviceable-demand.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
