# Inventory Health

{% hint style="info" %}
**Quick Answer:** Moselle assigns every SKU a health status — **Healthy**, **Understocked**, or **Overstocked** — based on how current warehouse stock compares to the Months on Hand and Days on Hand targets configured in your Company Settings.
{% endhint %}

**Time to read:** 4 minutes **Difficulty:** Beginner

**Prerequisites:**

* [ ] Access to your Moselle Product Catalog
* [ ] Admin or Manager role to update Company Settings
* [ ] At least one warehouse connected with current stock data

Moselle evaluates inventory health at the warehouse level for every SKU in your product catalog. Each SKU is assigned one of three statuses based on how its current stock position compares to the inventory targets configured in your account.

These statuses are **relative to your business** — what counts as Healthy reflects the stock targets your team has defined in Company Settings, not a fixed platform-wide benchmark. If you haven't configured custom thresholds yet, Moselle defaults to industry-standard targets as a starting point.

## Where Do Inventory Health Thresholds Come From?

Moselle reads your inventory health thresholds directly from **Company Settings**. To view or update them:

1. Navigate to **Settings** in the left sidebar
2. Select **Company Settings**
3. Locate the **Months on Hand** and/or **Days on Hand** fields

The values set here define the boundaries Moselle uses to classify each SKU's health status across your warehouses.

### What if I haven't configured my thresholds yet?

If your Months on Hand or Days on Hand fields are not yet set, Moselle applies industry-standard defaults as a starting point. These defaults are based on broadly accepted inventory benchmarks for product-based businesses — typically aligned with a 1–3 month stock coverage target — and are designed to give you a reasonable baseline while you dial in your own parameters.

Industry-standard targets vary by business type. High-velocity consumer goods brands often operate closer to 4–6 weeks of cover, while businesses with longer lead times or seasonal complexity may target 2–3 months. Your Moselle CSM can help you set thresholds that reflect your specific category, supplier lead times, and cash flow requirements.

{% hint style="warning" %}
Relying on default thresholds for extended periods may not accurately reflect your operational reality. Review and update your Company Settings early in your onboarding to ensure statuses are meaningful for your business.
{% endhint %}

## What Are the Inventory Health Statuses?

| Status           | Meaning                                                     |
| ---------------- | ----------------------------------------------------------- |
| **Healthy**      | Stock on hand falls within your configured target range     |
| **Understocked** | Stock on hand falls below your configured minimum threshold |
| **Overstocked**  | Stock on hand exceeds your configured maximum threshold     |

### Healthy

The SKU's current stock on hand at the warehouse falls within your configured inventory target range. The product is well-positioned to meet expected demand without near-term risk of a stockout or excess holding costs.

### Understocked

The SKU's current stock on hand falls below your configured minimum threshold. The product does not have sufficient inventory to meet expected demand within your target window and is at risk of stocking out before the next replenishment order arrives.

{% hint style="danger" %}
**Understocked is a high-priority signal.** Always cross-reference with your open purchase orders before taking replenishment action — stock already in transit will not yet be reflected in the on-hand figure.
{% endhint %}

**Common causes of understocking:**

* Demand spike not captured in the original forecast
* Delayed or cancelled inbound purchase order
* Higher-than-expected sell-through rate
* Stock not yet received or synced at the warehouse level

### Overstocked

The SKU's current stock on hand exceeds your configured maximum threshold. The product is carrying more inventory than needed to meet expected demand within your target window.

Sustained overstock ties up working capital, increases holding costs, and raises the risk of dead stock — particularly for seasonal or trend-sensitive products.

**Common causes of overstocking:**

* Over-ordering relative to actual demand
* Demand drop or forecast miss
* Seasonal product not selling through as expected
* Duplicate stock across warehouses without rebalancing

## How Is Inventory Health Calculated?

Moselle calculates inventory health at the **SKU × warehouse** level. This means the same SKU can carry different statuses across different warehouse locations depending on local stock levels.

The status is determined by comparing each warehouse's current on-hand inventory against the thresholds defined in your Company Settings. Because statuses are based on your configured targets, two businesses holding the same stock level may see different statuses — health is always relative to your own planning parameters, not an industry average.

## Important Considerations

**Status reflects warehouse inventory only.** Stock in transit — open POs not yet received — is not included in the on-hand figure. An SKU may appear Understocked in the catalog while an inbound order is already on its way. Always cross-reference with your open POs before taking replenishment action.

**Health status updates as inventory moves.** As stock is received, sold, or transferred between warehouses, statuses will update to reflect the latest on-hand position. Regularly syncing your warehouse data ensures the statuses in Moselle remain accurate.

**Your settings drive your statuses.** If inventory health statuses don't appear to reflect your operational reality, the first place to check is your Months on Hand and Days on Hand configuration in Company Settings.

## How Do I Use Inventory Health in the Product Catalog?

Inventory health statuses are displayed directly in the Product Catalog view. You can:

* **Filter by status** to isolate all Understocked or Overstocked SKUs across your warehouses
* **Click into any SKU** to see the warehouse-level breakdown driving the status
* **Use the status alongside your replenishment plan** to prioritise which SKUs need immediate action

## Frequently Asked Questions

### Why is my SKU marked Understocked when I just placed a purchase order?

**Answer:** Inventory health reflects on-hand warehouse stock only. Stock in transit on open POs is not included until it's received. Cross-reference with your open purchase orders before reordering.

### Can the same SKU have different statuses across warehouses?

**Answer:** Yes. Moselle calculates health at the SKU × warehouse level, so a SKU can be Healthy in one location and Understocked in another based on local stock levels.

### How often does inventory health update?

**Answer:** Statuses refresh as warehouse data syncs. As stock is received, sold, or transferred, statuses update to reflect the latest on-hand position.

### What if I don't want to use industry-standard defaults?

**Answer:** Update the Months on Hand and Days on Hand fields in **Settings → Company Settings** to reflect your category, lead times, and cash flow targets.

## Troubleshooting Common Issues

| Problem                                   | Solution                                                                           | Time to Fix |
| ----------------------------------------- | ---------------------------------------------------------------------------------- | ----------- |
| All SKUs show as Healthy or Overstocked   | Your Months on Hand target may be too high — review thresholds in Company Settings | 2 minutes   |
| Statuses don't match operational reality  | Confirm warehouse stock is syncing and Company Settings reflect your business      | 5 minutes   |
| SKU shows Understocked despite inbound PO | Expected — health excludes in-transit stock; check open POs before reordering      | 1 minute    |
| No status appears for a SKU               | Verify the SKU is assigned to a warehouse with current stock data                  | 5 minutes   |

## Related Guides

{% content-ref url="/pages/UmgHhqsyR7iNv67hNlad" %}
[Replenishment](/planning-and-execution/replenishment.md)
{% endcontent-ref %}

{% content-ref url="/pages/zJTX33Agu64EJnWEBenj" %}
[Orders](/planning-and-execution/orders.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/inventory-health.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.
