# Welcome To Moselle

Moselle manages your full inventory lifecycle — forecasting demand, planning orders, executing procurement, and monitoring performance.

Inventory is your biggest operational risk and your biggest working capital commitment. Get it right and you grow efficiently. Get it wrong and you're either turning away customers or sitting on cash you can't use.

Moselle is built to help consumer brands get it right — without the complexity of enterprise supply chain software or the limitations of a spreadsheet.

***

### What Moselle does

Moselle manages your full inventory lifecycle: forecasting demand, planning orders, executing procurement, and monitoring performance — all connected to the data you're already working with.

**Forecast**\
Mo generates 12-month SKU-level projections automatically, flagging anomalies and updating as new data comes in. You start with an 80% solution on day one.

**Plan**\
Build replenishment and allocation plans tied directly to your forecast. Determine what to order, when, and how much — with cash planning built in so procurement decisions stay within your financial reality.

**Execute**\
Create and manage purchase orders with recommendations grounded in your forecasts and production schedules. Less manual coordination, fewer surprises.

**Monitor**\
Track performance across SKUs, channels, and time horizons. Mo monitors continuously and surfaces risks, opportunities, and anomalies — so you don't have to go looking for them.

***

### Meet Mo

Mo is the AI built into Moselle. Ask questions in plain language and get answers grounded in your real data.

> *"Which SKUs are at risk of stocking out in the next 30 days?"*\
> *"What should my next purchase order look like for Q2?"*\
> *"We have overstock on three products — what should we do with it?"*

Mo works across three roles: demand analyst, inventory planner, and growth partner. [Learn more about Mo →](/mo/meet-mo)

***

### Connect your tools

Moselle integrates with the platforms you already use. Most brands are operational within 5 days.

* **Ecommerce:** Shopify, Amazon, Walmart
* **Accounting:** QuickBooks, QuickBooks Desktop, Xero
* **Fulfillment:** ShipHero, ShipBob, Fulfil, SKU Vault

***

### Ready to get started?

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/getting-started/onboarding/inviting-team-members.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/getting-started/onboarding/inviting-team-members.md>
{% endcontent-ref %}

{% content-ref url="/pages/gHTgpPiB8JXiJfflxBBf" %}
[Fast Tutorial](/getting-started/fast-tutorial)
{% endcontent-ref %}


# Meet Mo

Meet Mo, the AI built into Moselle — your on-demand demand analyst, inventory planner, and growth partner for smarter purchasing and forecasting decisions.

Mo is the AI built into Moselle. Before getting into what Mo can do, it helps to understand how Mo and Moselle relate to each other — because they're not the same thing.

{% embed url="<https://youtu.be/TJBANyseXp4?t=31>" %}

***

### Moselle vs. Mo

**Moselle** is the platform. It connects to your data sources, manages your inventory lifecycle, generates forecasts, tracks orders, and gives you a live view of your operations. It's the system of record for your inventory.

**Mo** is the intelligence layer inside Moselle. Mo reads your data, identifies patterns, surfaces insights, and gives you recommendations — in plain language, in response to plain questions. Mo makes Moselle useful without requiring you to become an analyst.

Think of it this way: Moselle holds the data. Mo knows what to do with it.

You can use Moselle without talking to Mo — run reports, review forecasts, manage orders. But Mo is how you get the most out of what Moselle knows.

***

### What Mo can do

Mo operates across three roles depending on what you need.

***

**Demand analyst**

Mo delivers on-demand reports on sales performance, demand projections, and trend analysis. Ask it about any SKU, category, channel, or time period and it will pull the relevant data, identify what's notable, and tell you what it means.

> *"How has sell-through for our core collection trended over the last 90 days?"*\
> *"Which SKUs are tracking ahead of forecast this month?"*

***

**Inventory planner**

Mo connects directly to your inventory levels, bill of materials, and stock positions across locations. It can build replenishment recommendations, flag at-risk SKUs, suggest allocation strategies, and generate production schedules — grounded in your actual data, not assumptions.

> *"What should my next purchase order look like for Q3?"*\
> *"Which products are at risk of stocking out before my next production run?"*

***

**Growth partner**

This is where Mo goes beyond operations and into revenue.

Most inventory tools focus on avoiding problems — stockouts, overstock, delays. Mo does that too. But it also looks at your inventory position as a growth lever.

**Overstocked on something?** Mo can identify which products have excess inventory and suggest where to deploy them — a promotional push, a bundle, a channel shift — to move stock and recover margin before it becomes a write-off.

**Running a promotion?** Mo can model how a planned discount or campaign is likely to affect sell-through, and whether your current inventory position can support the uplift. No surprises mid-campaign.

**Scaling a marketing channel?** Mo connects your inventory position to your revenue goals. If you're planning to increase spend on a channel, Mo can flag whether your stock levels support the demand that would generate — and what to order if they don't.

> *"We're running a 20% off promotion on our top three SKUs next month. Do we have enough inventory to support it?"*\
> *"Which overstocked products should we promote this quarter?"*\
> *"If our Shopify revenue grows 30% in Q4, what does that mean for our replenishment plan?"*

The goal is to make sure your inventory strategy and your growth strategy are the same conversation — not two separate ones that only meet when something goes wrong.

{% embed url="<https://www.youtube.com/watch?v=wfz7BUq7nMU>" %}
Vibe Demand Planning with Mo | Edit Your Forecast
{% endembed %}

***

## What's Next?

Learn how Mo Credits and usage work:

{% content-ref url="/pages/64SgZancMIpbFVnr8fjx" %}
[Account Settings & Billing](/administration/administration/account-settings-and-billing)
{% endcontent-ref %}

Learn how to use Mo to build forecasts:

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

Or jump right into creating your first forecast:

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}


# Key Capabilities

Explore Mo's core capabilities in Moselle — automated demand forecasting, real-time data integration, dynamic scenario planning, and proactive alerts.

### Automated Demand Forecasting

Mo generates forecasts in seconds using machine learning to analyze historical sales patterns, seasonality, and trends. What previously took hours or days now happens instantly.

### Real-Time Data Integration

Mo works with data from your connected platforms:

* **Ecommerce**: Shopify, Amazon, Walmart
* **Accounting**: QuickBooks, QuickBooks Desktop, Xero
* **Fulfillment**: ShipHero, ShipBob, Fulfil, SKU Vault

### Dynamic Scenario Planning

Test "what-if" scenarios with instant recalculations:

* "What if sales increase 20% during BFCM?"
* "What happens if my supplier delays shipment by 2 weeks?"
* "How does opening a new sales channel affect inventory needs?"

### Proactive Alerts

Mo monitors your operations continuously and flags:

* Upcoming stockouts
* Excess inventory building up
* Forecast accuracy issues
* Anomalies in demand patterns

### SKU Cards

**SKU Cards are** interactive hover tooltips that surface key product metrics — stock on hand, weeks of stock, reorder status, forecasted demand, and Mo's alerts — without navigating away from your current screen.

Each SKU Card displays:

| Field                        | What It Shows                                                                         |
| ---------------------------- | ------------------------------------------------------------------------------------- |
| **SKU Name & Identifier**    | The product name and unique SKU code as it appears in Moselle                         |
| **Stock on Hand**            | Current inventory levels, broken out by location or channel based on your active view |
| **Weeks of Stock (WOS)**     | How long your current inventory will last at the current sell-through rate            |
| **Reorder Status**           | Whether Mo has flagged this SKU for a replenishment action                            |
| **Forecasted Demand**        | Mo's projected demand for the upcoming planning window                                |
| **Lead Time & Next Inbound** | Expected lead time and the date of the next confirmed inbound shipment                |
| **Active Mo Alerts**         | Any flags Mo has raised — stockout risk, overstock warning, or anomaly detection      |

Hover over any SKU in the **Inventory Planning** view or the **Mo Recommendations** panel to activate a card — no clicks required. Move your cursor away to dismiss it.

{% hint style="info" %}
**Channel-aware data:** SKU Cards respect your active channel filter. If you're in a DTC-only view, all stock and WOS figures reflect DTC inventory only — not blended totals. Always confirm you're in the correct channel or location view before acting on figures.
{% endhint %}

SKU Cards also appear inline within **Mo's chat responses**. Any SKU mentioned in Mo's answer is automatically linked — hover to pull up the full card without leaving the conversation. Example prompts that surface SKU Cards:

* "Which SKUs are at risk of stocking out this month?"
* "What's the WOS on my top 10 DTC products?"
* "Show me everything that needs to be reordered before Q3."

### Custom Dashboards

Describe the KPIs, charts, and breakdowns your weekly review needs, and Mo compiles them into a single dashboard — finance, operations, and marketing can each build their own view from the same data. Save the prompt as a Favourite to re-run it in one click.

{% content-ref url="/pages/T3DYBrQB6jUoktNA885L" %}
[Build Custom Dashboards with Mo](/mo/key-capabilities/custom-dashboards)
{% endcontent-ref %}

### Share & Manage Dashboards

Once a dashboard is saved, rename it, add a description, share it with your company, or transfer ownership to a teammate — all from the Dashboard Settings dialog. Only the owner can edit a dashboard, so transferring ownership hands off edit rights.

{% content-ref url="/pages/BmMS7OPNCXyAAEmIoYje" %}
[Share & Manage Dashboards](/mo/key-capabilities/share-and-manage-dashboards)
{% endcontent-ref %}

### Weekly Account Briefing

Mo delivers a curated account summary to your inbox every Monday morning — covering inventory health, sales performance, forecast updates, replenishment recommendations, and actions for the week. No login required.

{% content-ref url="/pages/tgPhlFajuquRi8gzbmuH" %}
[Weekly Account Briefing](/mo/key-capabilities/weekly-account-briefing)
{% endcontent-ref %}

### Schedule Work with Mo

Turn any Mo prompt into a repeating job — daily, on weekdays, or weekly — and Mo emails you the answer and any files it produces, on its own.

{% content-ref url="/pages/LRVHUPVI4iSvxT0rYlUE" %}
[Schedule Work with Mo](/mo/key-capabilities/schedule-work-with-mo)
{% endcontent-ref %}


# Building Reports With Mo

How do I build reports with Mo in Moselle? Create custom reports, sales velocity analyses, and inventory health checks with Mo's AI assistant.

{% hint style="info" %}
**Quick Answer:** Open Mo, describe the report you need in plain language, and Mo builds it from your live Moselle data. Refine conversationally, then export to CSV when it's ready.
{% endhint %}

## What is Reporting with Mo?

**Reporting with Mo** lets you create any view of your business data through a natural language conversation. Instead of navigating preset dashboards, you describe what you need — and Mo surfaces a structured, actionable output tailored to your channels, SKUs, and business context.

### What You Can Build

* **Custom data views** — Any slice of your sales, inventory, forecast, or catalog data, grouped and filtered however you need
* **Charts and dashboards** — Inline bar charts, line graphs, stat cards, and full dashboard overviews generated directly in the conversation
* **Weekly Sales reports** — Sell-in units and revenue by SKU and channel, compared week-over-week and against the active forecast
* **Inventory Coverage reports** — Weeks of supply remaining per SKU based on current stock and forecasted demand
* **Forecast Variance reports** — The gap between Mo's forecast and actual sell-in or sell-through, surfacing where the plan was over or under
* **Weeks of Supply (WOS) reports** — See how long your inventory will last by SKU, channel, or warehouse
* **Sales Velocity reports** — Measure how fast products are selling and spot trends early
* **At-risk SKU lists** — Surface items approaching stockout before it's too late
* **Overstock summaries** — Identify excess inventory tying up cash or warehouse space

### Key Benefits

* **Your data, your way:** Get the exact slice of data you need without configuring report builders
* **Live data:** Reports pull from your current Moselle data, so results are always up to date
* **Conversational refinement:** Adjust filters, groupings, or columns by continuing the conversation
* **Export-ready:** Download the final table as a CSV when it's ready

## Guides

{% content-ref url="/pages/SsegIvFSHIYfzmHQdcXS" %}
[Mo Standard Reports](/analytics/reporting/mo-reports/mo-standard-reports)
{% endcontent-ref %}

{% content-ref url="/pages/Dlc8GAJGV7FQH8Q9j9gA" %}
[Mo Custom Reports](/analytics/reporting/mo-reports/mo-custom-reports)
{% endcontent-ref %}

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

## Tips for Better Report Prompts

Getting the most out of Mo's reporting comes down to being specific. Here are the patterns that consistently produce better first outputs:

**Always specify the time period.** Mo defaults to a reasonable window but explicitly stating the period removes ambiguity.

* Examples: `"last 7 days"`, `"last 4 weeks"`, `"MTD"`, `"Q1 2026"`

**Define channel scope upfront.** Blending channels without intention produces averages that can mislead.

* Examples: `"all channels"`, `"DTC only"`, `"Sephora US only"`, `"excluding Amazon"`

**Specify the output format.** Telling Mo how you want the data presented gets you to a usable result faster.

* Examples: `"ranked by units"`, `"as a table"`, `"highlight gaps"`, `"show totals"`

**Export to Excel.** Add `"export this as an Excel file"` to any prompt and Mo will generate a downloadable `.xlsx` file.

**Too much data?** Narrow with: `"top 10 SKUs by..."` or `"only show SKUs where coverage is below 8 weeks"`

**Too little data?** Broaden with: `"include all SKUs, even those with zero sales"`

**Combine reports.** Ask Mo to pull multiple data types in a single output:

* `"Show me weekly sales and inventory coverage side by side for all active SKUs"`


# Charts, Graphs & Dashboards

How do I generate charts and dashboards with Mo in Moselle? Create bar charts, line graphs, stat cards, and dashboards in your conversation.

{% hint style="info" %}
**Quick Answer:** To get a chart from Mo, ask a data question and specify the visualization type — for example, "Show me annual units sold by SKU as a bar chart." Mo renders the chart inline in the conversation, no exports needed.
{% endhint %}

## What are Mo Charts and Dashboards?

**Mo Charts and Dashboards** let you visualize your inventory and sales data directly inside the Mo conversation. When a visual would be more useful than a table, Mo automatically renders an interactive chart or stat card inline — right in the chat response.

Whether you need a quick metric snapshot, a monthly trend line, or a full high-level dashboard, Mo generates it on demand without leaving Moselle.

## Prerequisites

**Time Required:** Under 30 seconds per chart, under 1 minute for a full dashboard **Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] An active Moselle account with sales or inventory data connected
* [ ] Access to the Mo conversation on your Moselle dashboard
* [ ] At least one channel configured with historical data

## Key Benefits

* **Instant visualization:** Charts appear directly in the conversation — no exports, no spreadsheets
* **Right format, automatically:** Mo selects the most appropriate chart type based on your question
* **Full dashboard on demand:** Ask for an overview and Mo compiles stat cards plus supporting charts in one response
* **Conversational refinement:** If Mo returns a table, just follow up asking for a specific chart type

## What Mo Can Generate

### Stat Cards

**Stat cards** are headline metric snapshots for any SKU, channel, or time period. Mo surfaces unit totals, year-over-year growth, period comparisons, and launch context — formatted as clean, scannable cards at the top of the response.

Best for: quick performance checks, period-over-period comparisons, and briefing summaries.

### Bar Charts

**Bar charts** display side-by-side comparisons across SKUs, channels, or time periods. Use them for annual performance reviews, channel mix analysis, or tracking how multiple products are performing relative to each other.

Best for: ranking, comparing groups, and spotting the top or bottom performers.

### Line Charts

**Line charts** plot monthly trends across one or multiple years. Use them to identify seasonality, spot growth patterns, or understand how current performance compares to prior periods.

Best for: trend analysis, seasonality review, and year-over-year comparisons.

### Dashboards

**Dashboards** combine stat cards and supporting charts into a single high-level overview of your business. Ask Mo to "build a dashboard" and it compiles the full view — metrics at the top, charts below — based on your current data.

Best for: weekly reviews, team briefings, and inventory health overviews.

Want to design your own dashboard from scratch — choosing the exact KPIs, charts, and breakdowns for your role? See the full guide:

{% content-ref url="/pages/T3DYBrQB6jUoktNA885L" %}
[Build Custom Dashboards with Mo](/mo/key-capabilities/custom-dashboards)
{% endcontent-ref %}

{% hint style="info" %}
**New:** For dashboards you want to keep and share, build in **Explore** (sidebar → Explore). Mo assembles interactive charts and tables on a canvas that you can save as a report and share with your whole company.
{% endhint %}

{% content-ref url="/pages/2fZ00LMDTKttlNbQLGFs" %}
[Explore](/analytics/explore)
{% endcontent-ref %}

## How to Generate a Chart with Mo

{% stepper %}
{% step %}

### Open Mo

1. Log into your Moselle account
2. Click **Mo** in the left sidebar to open the conversation

**Expected Result:** The Mo chat interface appears, ready for your prompt.
{% endstep %}

{% step %}

### Ask a Data Question with a Chart Type

Type a prompt that includes both the data you want and the visualization format. For example:

* "Show me annual units sold across my top SKUs for the last two years as a **bar chart**."
* "Give me a **monthly trend line** comparing this year to last year."
* "Build me a **dashboard** overview of my inventory health right now."

{% hint style="info" %}
**Tip:** Name the chart type in your prompt — bar chart, line chart, stat card, or dashboard — to get the right format on the first try.
{% endhint %}
{% endstep %}

{% step %}

### Review and Refine

Mo renders the chart inline in the conversation. If you want a different format or need adjustments:

* "Show that as a **bar chart** instead."
* "Add last year's data for comparison."
* "Filter this to DTC channel only."

{% hint style="success" %}
Your chart is now displayed directly in the conversation — no exports or spreadsheets needed.
{% endhint %}
{% endstep %}
{% endstepper %}

## Example Prompts

These prompts are designed to return charts and visual outputs rather than plain text tables:

* "Show me annual units sold across my top SKUs for the last two years as a bar chart."
* "Give me a monthly trend line comparing this year to last year."
* "Build me a high-level dashboard overview of my inventory health right now."
* "What are my top 5 SKUs by units sold this year? Show it as a chart."
* "Give me a stat card summary of my DTC performance year-to-date vs last year."
* "Show me which SKUs are at risk of stocking out — visualize by weeks of stock."
* "Compare sell-through rates across my channels this quarter as a bar chart."

{% hint style="info" %}
If Mo returns a table when you wanted a chart, follow up with "show that as a bar chart" or "visualize this as a line graph" and Mo will re-render the output accordingly.
{% endhint %}

## Saving Chart Prompts as Favourites

If you find a chart or dashboard prompt that works well for your regular reviews, save it as a Favourite directly on the Mo page. Saved prompts appear at the top of the Mo interface so you and your team can re-run them with a single click — no retyping required.

This is especially useful for recurring reports like weekly sell-through charts, inventory health dashboards, or monthly trend reviews.

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

## Tips for Better Chart Outputs

* **Specify the time range and SKUs** you want to compare — Mo will produce a more precise chart with less back-and-forth
* **Name the chart type** in your prompt (bar chart, line chart, stat card, dashboard) to get the format you want on the first try
* **Check your active channel filter** before prompting for a dashboard — charts respect your current channel view
* **Pair chart outputs with SKU Card hovers** for the full picture: the chart shows the trend, the SKU Card shows live detail

## Frequently Asked Questions

### Can Mo generate a chart for any data in Moselle?

**Answer:** Mo can visualize any inventory or sales data available in your Moselle account, including units sold, sell-through rates, weeks of stock, and channel performance. If Mo can report on it, it can chart it.

### What if Mo returns a table instead of a chart?

**Answer:** Just follow up in the same conversation: "Show that as a bar chart" or "Can you visualize this as a line graph?" Mo will re-render the output in the format you need.

### Do charts update automatically?

**Answer:** Charts are generated on demand from your live Moselle data at the time you ask. To see updated data, re-run the prompt — saved Favourite Prompts make this quick.

### Can I export a chart from Mo?

**Answer:** Charts are displayed inline in the Mo conversation. For data export, ask Mo to surface the same data as a table, then use the Export button to download it as a CSV.

## Troubleshooting Common Issues

| Problem                               | Solution                                                                                     | Time to Fix |
| ------------------------------------- | -------------------------------------------------------------------------------------------- | ----------- |
| Mo returns a table instead of a chart | Follow up with "Show that as a bar chart" or specify the chart type in your prompt           | 30 seconds  |
| Chart only shows partial data         | Check your active channel filter and specify the full time range in your prompt              | 1 minute    |
| Dashboard is missing expected metrics | Re-prompt with specific metrics: "Include units sold, sell-through rate, and weeks of stock" | 1 minute    |
| Chart looks different than expected   | Refine by asking Mo to change the chart type, add comparisons, or adjust the grouping        | 1 minute    |

## Related Guides

{% content-ref url="/pages/T3DYBrQB6jUoktNA885L" %}
[Build Custom Dashboards with Mo](/mo/key-capabilities/custom-dashboards)
{% endcontent-ref %}

{% content-ref url="/pages/Dlc8GAJGV7FQH8Q9j9gA" %}
[Mo Custom Reports](/analytics/reporting/mo-reports/mo-custom-reports)
{% endcontent-ref %}

{% content-ref url="/pages/BLYuS7JNKRRnLCvAu8sJ" %}
[Weekly Sales Summary](/analytics/reporting/mo-reports/mo-standard-reports/weekly-sales-summary)
{% endcontent-ref %}

{% content-ref url="/pages/aYMGZMjVZa0NMZNaCeKo" %}
[Forecast vs Actuals](/analytics/reporting/mo-reports/mo-standard-reports/forecast-vs-actuals)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/gW8m9eWpcWjmTbVni0Ik" %}
[Reporting](/analytics/reporting)
{% endcontent-ref %}


# Build Custom Dashboards with Mo

Build your own custom dashboard with Mo in Moselle — choose the KPIs, charts, and breakdowns you need for finance, operations, or marketing reviews.

{% hint style="info" %}
**Quick Answer:** To build a custom dashboard, tell Mo which metrics, charts, and breakdowns you want in one prompt — for example, "Build me a dashboard with revenue, gross margin by channel, and weeks of stock for my top 10 SKUs." Mo compiles the full view in under a minute, and you can save the prompt to re-run it any time.
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=_JiLoUPrOWc>" %}
Custom Dashboards, Smarter Demand Plans — Powered by Your Own Data
{% endembed %}

{% hint style="info" %}
**New:** Moselle now has a dedicated builder for this — **Explore**. Instead of regenerating a dashboard from a saved prompt each time, Explore builds interactive charts and tables on a canvas that you can save as a shared report your whole team can open from the Reports page. See [How do I Use Explore in Moselle?](/analytics/explore)
{% endhint %}

## What is a Custom Dashboard in Mo?

**A custom dashboard** is a Mo-generated view you design yourself — you choose the KPIs, the charts, the breakdowns, and the time range, and Mo assembles them into a single response. Unlike Moselle's built-in reports, a custom dashboard answers exactly the questions your weekly review needs, in the order you want to read them.

You don't configure anything in settings. You describe the dashboard in plain language, refine it conversationally, and save the final prompt as a Favourite so the whole team can re-run it with one click.

## Key Benefits

* **Built around your review, not a template:** Pick the exact metrics your Monday meeting covers
* **Role-specific views:** Finance, operations, and marketing can each have their own dashboard from the same data
* **Always current:** Each run pulls live data from your connected channels
* **Repeatable in one click:** Save the prompt as a Favourite and re-run it every week

## Prerequisites

**Time Required:** 5–10 minutes to design, under 1 minute per re-run **Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] An active Moselle account with sales or inventory data connected
* [ ] At least one channel configured with historical data
* [ ] Payment terms set on your channels (only needed for cash-timing metrics — see below)

## Step-by-Step: Design Your Dashboard

{% stepper %}
{% step %}

### Decide What the Dashboard Should Answer

Start from the questions you ask in your regular review, not from a list of charts. For example, a founder's weekly review usually answers:

* How did we sell this month, and at what margin?
* When does the cash from those sales actually land?
* Where is inventory piling up or running out?

Write down 3–6 questions like these. Each one becomes a stat card, chart, or table in your dashboard.
{% endstep %}

{% step %}

### Describe the Full Dashboard in One Prompt

Open **Mo** from the left sidebar and describe the layout — metrics first, then charts, then any detail tables:

> "Build me a dashboard with: revenue and gross margin % this month vs last month as stat cards, monthly revenue by channel as a stacked chart for the last 12 months, my top 10 SKUs by units sold as a bar chart, and a table of SKUs with more than 20 weeks of stock."

**Expected Result:** Mo returns the full dashboard in one response — stat cards at the top, charts below, tables last.
{% endstep %}

{% step %}

### Refine Conversationally

Adjust any piece without rebuilding the rest:

* "Make the revenue chart last 18 months instead of 12."
* "Split the margin stat card by channel."
* "Drop the SKU table and add weeks of stock for my DTC channel."

{% hint style="info" %}
**Tip:** Refine one element per message. Mo keeps the rest of the dashboard intact while it swaps the piece you asked about.
{% endhint %}
{% endstep %}

{% step %}

### Save the Final Prompt as a Favourite

Once the dashboard looks right, save the prompt that produced it as a Favourite. Saved prompts appear at the top of the Mo page, so you — or anyone on your team — can regenerate the dashboard with current data in one click.

{% hint style="success" %}
Success! You now have a repeatable, one-click dashboard built around your own review questions.
{% endhint %}
{% endstep %}
{% endstepper %}

## Dashboard Recipes by Role

Use these as starting points and adapt the metrics to your business.

{% tabs %}
{% tab title="Founder / Finance" %}
A working-capital view of the business — not just what you sold, but when the cash lands:

> "Build me a finance dashboard with: revenue, COGS, and gross margin % by channel for the last 12 months; expected cash collection by month based on my channel payment terms; outstanding receivables from wholesale channels; and inventory value on hand by location."

Useful metrics to include:

* **Gross margin % by channel** — compare DTC vs wholesale/retail profitability side by side
* **Expected cash collection** — revenue shifted into the month the cash is expected to arrive, using each channel's payment terms
* **Outstanding receivables** — wholesale revenue already booked but not yet collected
* **Days Inventory Outstanding (DIO)** — how many days of cost your cash is tied up in inventory
  {% endtab %}

{% tab title="Operations / Inventory" %}
A stock-health view for the weekly replenishment review:

> "Build me an operations dashboard with: weeks of stock by SKU for my top 20 SKUs, items at risk of stockout in the next 60 days, slow movers with more than 26 weeks of stock, and inbound purchase orders by expected arrival month."

Useful metrics to include:

* **Weeks of stock (WOS)** — runway at the current sell-through rate
* **Stockout risk list** — SKUs Mo flags for reorder before your lead time runs out
* **Slow movers** — SKUs where inventory value is building up faster than it sells
  {% endtab %}

{% tab title="Marketing / Sales" %}
A demand view for campaign and channel planning:

> "Build me a sales dashboard with: monthly units sold by channel for the last 18 months, this year vs last year as a trend line, top 10 SKUs by revenue this quarter, and sell-through rate by channel."

Useful metrics to include:

* **Channel mix over time** — how DTC, retail, and marketplace revenue shift month to month
* **Year-over-year trend lines** — seasonality and growth at a glance
* **Top SKUs by revenue or units** — what to feature, what to bundle, what to retire
  {% endtab %}
  {% endtabs %}

## Unlock Cash-Timing Metrics with Payment Terms

Revenue and cash are not the same month when you sell wholesale. A January sale to a retailer on Net 30 terms typically lands as cash in February — and a standard revenue chart hides that gap.

To let Mo build cash-timing views, set **payment terms** on each of your channels:

1. Open your channel settings in Moselle
2. Set each wholesale or retail channel's payment terms (for example, `Net 30` or `Net 60`)
3. Leave DTC channels at their default — cash-on-sale

Once terms are set, Mo can answer prompts like:

* "Show me expected cash collection by month for the next quarter."
* "How much wholesale revenue is booked but not yet collected?"
* "Compare revenue by month against expected cash by month."

{% hint style="warning" %}
If a wholesale channel has no payment terms set, Mo can't place its cash in the right month — cash-timing dashboards will treat it as cash-on-sale. Set terms on every wholesale channel before relying on these views.
{% endhint %}

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}

## Frequently Asked Questions

### How is a custom dashboard different from asking Mo for a chart?

**Answer:** A chart answers one question; a dashboard answers your whole review in one response. You define several stat cards, charts, and tables in a single prompt, and Mo compiles them together so you read everything in one place.

### Do custom dashboards update automatically?

**Answer:** Dashboards are generated from live data each time you run the prompt. Save the prompt as a Favourite and re-run it whenever you need current numbers — it takes under a minute. For a recurring summary delivered to your inbox, see the Weekly Account Briefing.

### Can I share a dashboard with my team?

**Answer:** Yes — saved Favourite Prompts are visible to your team on the Mo page, so anyone can regenerate the same dashboard with one click. For data export, ask Mo for the underlying table and use the Export button to download a CSV.

### Can I get Moselle data into my own BI tool?

**Answer:** Yes. If your team runs its own BI tool or data warehouse, Moselle can deliver dashboard-ready data on a daily schedule so your analysts can build on top of it. Reach out to your Moselle contact to set this up.

## Troubleshooting Common Issues

| Problem                                      | Solution                                                                                 | Time to Fix |
| -------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------- |
| Dashboard is missing a metric you asked for  | Re-prompt naming the metric explicitly: "Add gross margin % by channel as a stat card"   | 1 minute    |
| Cash-timing numbers look the same as revenue | Set payment terms on your wholesale channels in channel settings, then re-run the prompt | 5 minutes   |
| Dashboard only shows one channel             | Check your active channel filter before prompting, or name the channels in the prompt    | 1 minute    |
| Margin looks too high on bundle SKUs         | Verify bundle components and costs are set up in your catalog so costs roll up correctly | 5 minutes   |

## Related Guides

{% content-ref url="/pages/2fZ00LMDTKttlNbQLGFs" %}
[Explore](/analytics/explore)
{% endcontent-ref %}

{% content-ref url="/pages/UtNZXpZgP2jylxwdiflk" %}
[Charts, Graphs & Dashboards](/mo/key-capabilities/charts-graphs-and-dashboards)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/tgPhlFajuquRi8gzbmuH" %}
[Weekly Account Briefing](/mo/key-capabilities/weekly-account-briefing)
{% endcontent-ref %}

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

{% content-ref url="/pages/Dlc8GAJGV7FQH8Q9j9gA" %}
[Mo Custom Reports](/analytics/reporting/mo-reports/mo-custom-reports)
{% endcontent-ref %}


# Share & Manage Dashboards

Rename, share, and transfer ownership of a saved dashboard in Moselle from the Dashboard Settings dialog — control exactly who can view and who can edit it.

{% hint style="info" %}
**Quick Answer:** Open a saved dashboard, click the **⋯** (more actions) button in the header, and choose **Settings**. From the **Dashboard Settings** dialog you can rename the dashboard, edit its description, toggle **Share with company** so teammates can view it, and transfer ownership to another team member. Only the owner can edit a dashboard.
{% endhint %}

## What You Can Manage on a Dashboard

Once you've saved a dashboard, its **Settings** dialog is where you control how it's named, who can see it, and who can change it. This keeps team dashboards organized and makes it easy to hand one off when responsibilities shift.

From **Dashboard Settings** you can:

* **Rename the dashboard** and update its description
* **Share it with your company** so other members can view it
* **Transfer ownership** to another teammate — which also hands off edit rights

{% hint style="info" %}
**Who can edit?** A dashboard has a single **owner**, and only the owner can edit it. Sharing a dashboard lets others *view* it; transferring ownership is how you let someone else *edit* it.
{% endhint %}

## Prerequisites

**Time Required:** 2 minutes\
**Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] A saved dashboard open in Moselle
* [ ] Ownership of the dashboard (only the owner can change its settings)

## How to Open Dashboard Settings

{% stepper %}
{% step %}

### Open the dashboard

Open the saved dashboard you want to manage.
{% endstep %}

{% step %}

### Open the actions menu

Click the **⋯** (more actions) button in the dashboard header. **Settings** is the first item in the menu, above Share, Duplicate, and Delete.
{% endstep %}

{% step %}

### Update your settings

The **Dashboard Settings** dialog opens with fields for **Name**, **Description**, **Share with company**, and **Owner**. Make your changes, then click **Save Changes**.

{% hint style="success" %}
**Saved.** Moselle confirms with a "Dashboard settings updated" message. Your changes apply immediately.
{% endhint %}
{% endstep %}
{% endstepper %}

## Rename or Describe a Dashboard

In the **Dashboard Settings** dialog:

1. Update the **Name** field (a clear name helps teammates find it)
2. Add or edit the **Description** to explain what the dashboard is for
3. Click **Save Changes**

{% hint style="warning" %}
A dashboard **name is required** — you can't save with an empty name field.
{% endhint %}

## Share a Dashboard with Your Company

Turn on the **Share with company** toggle to make the dashboard viewable by everyone in your workspace. When sharing is on, other members can view the dashboard but cannot edit it — editing stays with the owner.

To keep a dashboard private to yourself, leave the toggle off.

## Transfer Dashboard Ownership

Transferring ownership is how you hand a dashboard — and its edit rights — to another person, for example when someone changes roles or leaves the team.

1. Open **Dashboard Settings**
2. Open the **Owner** dropdown and select the teammate who should own the dashboard
3. Click **Save Changes**

The selected teammate becomes the owner and gains edit rights; you keep view access if the dashboard is shared with your company.

{% hint style="info" %}
**Note:** You can only transfer ownership to another member of your company. Once you transfer ownership, you'll no longer be able to edit the dashboard yourself.
{% endhint %}

## Frequently Asked Questions

### Who can edit a shared dashboard?

**Answer:** Only the dashboard's **owner** can edit it. Sharing with your company grants view access to everyone in the workspace, but editing rights stay with the owner until ownership is transferred.

### What happens when I transfer ownership?

**Answer:** The teammate you select becomes the new owner and can edit the dashboard. You lose edit access, but you'll still be able to view the dashboard as long as it's shared with your company.

### Can I make a dashboard private again after sharing it?

**Answer:** Yes. Open **Dashboard Settings** and turn off the **Share with company** toggle. The dashboard becomes visible only to its owner again.

### Where do I find my saved dashboards?

**Answer:** Saved dashboards live in your **Reports** area. For building a dashboard from scratch with Mo, see the custom dashboards guide below.

***

## Related Guides

{% content-ref url="/pages/T3DYBrQB6jUoktNA885L" %}
[Build Custom Dashboards with Mo](/mo/key-capabilities/custom-dashboards)
{% endcontent-ref %}

{% content-ref url="/pages/UtNZXpZgP2jylxwdiflk" %}
[Charts, Graphs & Dashboards](/mo/key-capabilities/charts-graphs-and-dashboards)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}


# Orders with Mo

How do I create and manage orders with Mo in Moselle? Generate purchase orders from production plans, create custom orders, and update existing POs conversationally.

{% hint style="info" %}
**Quick Answer:** Open Mo, describe the purchase order you need, and Mo builds it for you — pulling from your production plan or creating a custom order from scratch. Mo handles supplier selection, quantity calculations, and linking to your plans automatically.
{% endhint %}

## What is Purchase Order Management with Mo?

**Purchase Orders with Mo** lets you create, edit, and manage purchase orders through natural conversation instead of manual data entry. Whether you're generating orders from a production plan or building a custom PO, Mo handles the complexity — from supplier selection to multi-item orders — so you can place orders faster and with fewer errors.

### What Mo Can Do

* **Generate POs from production plans** — Mo analyzes your plan, handles multi-supplier scenarios, and creates one PO per supplier automatically
* **Create custom purchase orders** — Describe what you need in plain language and Mo builds the full PO with all required fields
* **Update existing POs** — Change suppliers, delivery dates, status, or PO numbers conversationally
* **Edit line items** — Add new items, update quantities and costs, or remove items from existing POs
* **Handle incomplete orders** — Create POs when suppliers aren't assigned yet and fill in details later
* **Work within budget constraints** — Tell Mo your spending limit and Mo prioritizes the most critical inventory needs

### Key Benefits

* **Faster order creation:** Generate multiple POs in 2 minutes instead of 20
* **Smart supplier handling:** Mo automatically analyzes supplier options and asks when choices are needed
* **Context-aware:** When viewing a production plan, Mo knows your quantities and suggests orders based on what's in the plan
* **Error reduction:** Mo validates SKUs, suppliers, and warehouses against your Moselle data before creating orders
* **Auto-linking:** POs generated from production plans are automatically linked for easy tracking

## How Purchase Orders with Mo Works

### Generate from Production Plan

The fastest way to create orders is from an existing production plan:

1. **Open your production plan** and click "Generate Orders" or ask Mo to create orders
2. **Select months** — Mo asks which months you want to order for
3. **Handle multi-supplier items** — If items can come from multiple suppliers, Mo asks you to choose
4. **Review summary** — Mo shows what will be created before generating
5. **Orders created** — One PO per supplier, automatically linked to your plan

### Create Custom PO

For one-off orders or custom scenarios:

1. **Describe what you need** — "Create a PO for 200 units of SKU-ABC from Acme Corp, deliver by March 15th"
2. **Mo builds the PO** — All fields populated based on your Moselle data
3. **Review and refine** — Ask Mo to adjust quantities, dates, or suppliers before finalizing
4. **Export and send** — Download as PDF or Excel to send to your supplier

### Update Existing Orders

Mo can modify purchase orders after they're created:

* **PO details:** "Change the delivery date on PO-9704 to June 15th"
* **Line items:** "Add 100 units of SKU-123 to PO-9704"
* **Status:** "Mark PO-9704 as ordered"

## Common Use Cases

### Budget-Constrained Ordering

Tell Mo your spending limit and Mo builds a PO that fits within budget:

**Example:** "I have $5,000 to spend with Acme Corp — what should I order?"

Mo allocates your budget across high-priority SKUs based on stockout risk and demand.

### Multi-Supplier Management

When generating from a production plan, Mo handles items available from multiple suppliers:

1. Mo identifies items with supplier options
2. Shows pricing for each supplier
3. Asks you to choose for each item
4. Groups items and creates one PO per supplier

### Incomplete Purchase Orders

Create orders when supplier details aren't finalized:

**Example:** "Create a PO for SKU-NEW-001 (500 units), no supplier assigned yet, delivery by Q3"

Mo creates the PO with all details except supplier, flagged for later completion.

## Prerequisites

**Time Required:** 1–5 minutes per order (depending on complexity) **Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] An active Moselle account with Mo credits available
* [ ] Suppliers configured in your Suppliers section
* [ ] Items in your catalog with supplier pricing (for production plan generation)
* [ ] A production plan (if generating from plan) or clear order requirements

## Tips for Working with Mo

* **Be specific upfront:** Include supplier, warehouse, delivery date, currency, and SKUs in your first prompt
* **Use exact names:** Supplier and warehouse names must match what's in Moselle
* **Iterate don't restart:** If Mo's first draft isn't right, correct it in the same conversation
* **Ask "what if":** Mo can model changes before committing — "What happens if I reduce this order by 20%?"
* **Save common prompts:** If you create similar POs regularly, save your prompt for reuse

## Related Guides

{% content-ref url="/pages/RjoikPkwhOLfvtx8j6VZ" %}
[Create an Order](/planning-and-execution/orders/create-an-order)
{% endcontent-ref %}

{% content-ref url="/pages/UJBeJZb1fZD3mCfSbojq" %}
[Review your Order](/planning-and-execution/orders/review-your-order)
{% endcontent-ref %}

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}


# Weekly Account Briefing

The Weekly Account Briefing is a Monday morning email from Mo — a snapshot of your inventory, sales, and replenishment priorities, delivered to your inbox.

{% hint style="info" %}
**Quick Answer:** The Weekly Account Briefing is a Monday morning email from Mo that summarises your inventory health, sales performance, forecast changes, and recommended actions for the week — tailored to your business, delivered to your inbox.
{% endhint %}

## What is the Weekly Account Briefing?

**The Weekly Account Briefing is** a recurring opt-in email that gives you a high-level snapshot of your Moselle account every Monday morning. It is powered by Mo, who analyses your latest data — including inventory movements, sales performance, open purchase orders, and forecast changes — and compiles a tailored summary based on what matters most to your business.

Rather than logging into the platform to pull reports, the briefing brings your most critical account insights directly to your inbox in a concise, actionable format.

***

## Why is it important?

Most teams only review account health when something goes wrong — a stockout happens, a PO is missed, a forecast drift goes unnoticed for weeks. The Weekly Account Briefing shifts that dynamic by surfacing what matters before it becomes a problem.

Key benefits:

* **No login required** — insights arrive in your inbox, not buried in a dashboard you have to navigate to
* **Consistent weekly rhythm** — builds a regular habit around account health without scheduling a reporting session
* **Proactive risk surfacing** — Mo flags at-risk SKUs, inbound timing gaps, and demand shifts before they escalate
* **Tailored to your business** — Mo prioritises based on the context of your operations, not a generic template
* **Whole-team visibility** — scope it to the stakeholders who need to stay informed, without giving everyone full platform access

### Use Cases by Role

| Role                                   | How they use it                                                                                 |
| -------------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Founder / CEO**                      | A Monday pulse check on business health without opening the platform                            |
| **Head of Operations / Planning Lead** | Full coverage of replenishment priorities and at-risk SKUs ahead of the weekly planning meeting |
| **Finance Lead**                       | Visibility into the PO pipeline, open orders, and cash-impacting decisions                      |

***

## How Does the Weekly Account Briefing Work?

Once opted in, the briefing arrives every Monday morning. Mo reviews your latest data and surfaces the insights most relevant to your operations for that week.

{% hint style="info" %}
**Mo gets smarter over time.** Mo uses the context of your business and past conversations to determine what to surface. The briefing becomes more relevant as Mo builds a deeper understanding of your specific priorities and operations.
{% endhint %}

***

## What's Included

Each weekly briefing covers six key areas:

| Coverage Area                          | What You'll See                                                                                                                                                | Why It Matters                                                                  |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| 📦 **Inventory Levels & Stock Health** | Current on-hand quantities by SKU, including finished goods and components. Flags any items below safety stock thresholds.                                     | Catch low-stock situations before they become stockouts                         |
| 📈 **Sales Performance**               | Revenue highlights and lowlights, recent sales velocity, sell-through by channel, and month-to-date pacing vs. your targets.                                   | Understand how your business is trending week over week                         |
| 🔮 **Forecast Updates**                | Changes to your demand forecast since the last briefing, alignment to your top-down plan, and any notable shifts in sell-in vs. sell-through expectations.     | Stay ahead of demand changes before they affect your ordering decisions         |
| 🔁 **Replenishment Recommendations**   | Suggested reorder actions based on current stock and projected demand. Includes open PO statuses and upcoming delivery dates by warehouse.                     | Know what needs to be ordered — and when — without digging through the platform |
| 🚨 **Risks & Watch-Outs**              | SKUs at risk of stocking out, buffer room based on inbound PO timing, out-of-stock period flags, and any business-specific alerts Mo has identified.           | Surface issues before they escalate                                             |
| ✅ **Actions This Week**                | Recommended next steps from Mo — e.g. *"Your next production run for this SKU is not yet due"* or *"You are tracking below plan — consider placing an order."* | Turn insights into decisions without additional analysis                        |

***

## Getting Started

### How to Opt In

The Weekly Account Briefing is available to all active Moselle clients.

{% hint style="info" %}
**Coming soon:** A button within the admin portal will allow you to opt in, opt out, and manage recipients directly — no setup required.
{% endhint %}

{% hint style="success" %}
**Recommended approach:** Start with just yourself or your planning lead, then expand to other stakeholders once the briefing content is dialled in for your business. This avoids unnecessary inbox noise before the template is customised.
{% endhint %}

***

## Delivery & Timing

The briefing is delivered every Monday morning — this is a fixed cadence. It reflects the most up-to-date data available at time of send, including any PO updates, inventory movements, and forecast changes from the prior week.

{% hint style="info" %}
**Use it before your weekly planning meeting.** The Monday briefing is designed to surface anything that needs attention so you can walk into the week prepared — no pre-meeting reporting required.
{% endhint %}

***

## Customising Your Briefing

The default briefing covers the most universally relevant account metrics.

{% hint style="info" %}
**Coming soon:** A button within the admin portal will let you adjust your briefing template and toggle individual sections on or off directly.
{% endhint %}

Examples of custom briefing configurations include:

* Highlighting specific SKUs, product lines, or categories
* Flagging items that have crossed a custom stock threshold
* Showing sell-through rates by a specific channel (e.g. DTC vs. wholesale vs. retail doors)
* Including a summary of POs placed during the week (sell-in report style)
* Adding weeks-on-hand and weeks-of-stock metrics for key SKUs
* Surfacing production planning highlights or shipment statuses
* Including location-level inventory breakdowns (e.g. by warehouse or retail door)
* Showing components inventory alongside finished goods

Once the admin portal button is live, you'll be able to configure these directly without any manual setup. Mo will generate the updated briefing consistently from that point forward.

***

## Popular Add-Ons

Beyond the standard briefing, clients frequently ask for additional context specific to how their business operates. Below are the most popular additions — these will be selectable directly from the admin portal once the briefing settings button is live.

**🗓️ Upcoming Holiday & Seasonal Moments**\
Flags key holidays and peak sales periods (e.g. Valentine's Day, Mother's Day, Fourth of July, Black Friday, Holiday Season) and shows how many weeks away they are — so you can confirm inventory and POs are in place well ahead of the spike.

**📊 SKU Performance Rankings & Bestseller Spotlight**\
A ranked view of your top-performing SKUs by revenue, units sold, or sell-through rate for the week. Can be filtered by channel (e.g. DTC, Amazon) or broken out by retail door.

**🚀 New Product Launch Tracking**\
For brands with frequent newness, Mo tracks how new SKUs are performing against comparable benchmarks and flags if sell-through suggests the forecast needs to be revised.

**📣 Marketing & Campaign Impact Flags**\
Surfaces weeks where a promotion or retailer event is live and shows whether sales velocity is responding as expected vs. baseline.

**🌍 Channel & Regional Breakdown**\
Splits revenue and inventory by sales channel (DTC, wholesale, retail) or by region, with warehouse-level stock positioning for brands operating across multiple locations.

***

## Frequently Asked Questions

<details>

<summary>Can I forward the briefing to my team?</summary>

Yes — the briefing is a standard email and can be forwarded freely. Managing recipients directly will be available via a button in the admin portal, coming soon.

</details>

<details>

<summary>What if I miss a week?</summary>

Each briefing is self-contained and covers the prior week's data. If you miss one, the following Monday's briefing will reflect the most current data — it won't recap missed weeks. For historical context, you can always ask Mo directly inside the platform.

</details>

<details>

<summary>How is this different from Mo's standard reports?</summary>

Mo's standard reports are on-demand and cover specific metrics in detail. The Weekly Account Briefing is a curated summary — Mo selects the most relevant highlights across all areas of your account and packages them into a single, scannable email. It's designed for speed and a regular cadence, not deep-dive analysis.

</details>

<details>

<summary>What data does the briefing pull from?</summary>

The briefing reflects data available in your Moselle account at time of send, including connected integrations (e.g. Shopify, Amazon, warehouse platforms) and any manual uploads completed before Monday morning.

</details>

***

## Related Guides

{% content-ref url="/pages/sb2SV5PNVIJy5jUlhar2" %}
[Meet Mo](/mo/meet-mo)
{% endcontent-ref %}

{% content-ref url="/pages/BLYuS7JNKRRnLCvAu8sJ" %}
[Weekly Sales Summary](/analytics/reporting/mo-reports/mo-standard-reports/weekly-sales-summary)
{% endcontent-ref %}

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

{% content-ref url="/pages/LRVHUPVI4iSvxT0rYlUE" %}
[Schedule Work with Mo](/mo/key-capabilities/schedule-work-with-mo)
{% endcontent-ref %}


# Schedule Work with Mo

Learn how to schedule a Mo prompt to run automatically in Moselle — set a repeat cadence and Mo emails you the answer, with any files it produces.

{% hint style="info" %}
**Quick Answer:** Open the **⋮** menu on the Mo chat page and select **Scheduled work**, or click the schedule icon on any message you've sent Mo. Give it a name, write (or reuse) the prompt, choose how often it repeats, and save. Mo runs it on that schedule and emails you the result — takes under a minute to set up.
{% endhint %}

## What Is Scheduled Work in Mo?

**Scheduled work is** a way to have Mo run one of your prompts automatically on a repeating cadence, instead of asking it fresh every time. Mo emails you the answer when it finishes, along with any files it produced — a workbook, a chart, an export — as download links.

It's built for the questions you'd otherwise have to remember to ask: a Monday morning stockout check, a weekly sell-through summary, a recurring reconciliation. Set it up once, and Mo keeps answering it on its own.

### Key Benefits

* **No login required** — the answer lands in your inbox on schedule
* **Reuses your own prompts** — write once, exactly as you'd ask Mo directly
* **Files included** — any workbook, chart, or export Mo generates is attached as a download link
* **Runs on your terms** — pause a schedule any time without losing its setup, or trigger it on demand

## Prerequisites

**Time Required:** Under 1 minute\
**Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] Access to the Mo chat page in your Moselle account
* [ ] A specific, well-scoped question or task in mind for Mo to repeat

## How to Schedule a Prompt

{% stepper %}
{% step %}

### Open the Schedule dialog

From the Mo chat page, open the **⋮** menu in the chat header and select **Scheduled work**, then **Schedule this work**. You can also click the schedule icon on any message you've already sent Mo — this opens the same dialog with that message's text pre-filled as the prompt.
{% endstep %}

{% step %}

### Name it and write the prompt

Fill in:

* **Name** — a short label so you can recognize it later, e.g. `Monday stockout check`
* **What should Mo do?** — the prompt Mo will run each time, e.g. `Summarise which SKUs are at risk of stocking out in the next 30 days`
* An optional starting document, if the prompt needs a file to work from
  {% endstep %}

{% step %}

### Set the cadence

Choose how often it repeats under **Repeats**:

* **Every day**
* **Weekdays**
* **Weekly** — pick the day of the week under **On**

Then set the time of day under **At**. Runs use your company's master timezone (set in **Settings → Company**).
{% endstep %}

{% step %}

### Save

Click **Schedule**. You'll see a confirmation that Mo will run it and email you the result, and it appears in your **Scheduled work** list.

{% hint style="success" %}
Success! Mo will run the prompt on the cadence you set and email the result to you automatically — no need to open Moselle.
{% endhint %}
{% endstep %}
{% endstepper %}

## Managing Your Scheduled Work

Open **Scheduled work** from the same **⋮** menu to see everything you've set up. Each entry shows its name, cadence, and when it last ran, plus:

* **Run now** — trigger an immediate run without waiting for the next scheduled time
* **Pause / Resume** — pause a schedule to stop it running without deleting its setup, and resume it later
* Expand an entry to see its **recent runs** — up to the last three, each with a status, timestamp, and (once it's finished) a link to continue that conversation in Mo

{% hint style="warning" %}
There's currently no way to edit a schedule's name, prompt, or cadence, or to delete it outright — pausing is the way to stop a schedule you no longer need.
{% endhint %}

## Frequently Asked Questions

### How many prompts can I schedule?

**Answer:** Up to **5 scheduled items** per user. If you're at the limit and need another, pause or free up one of your existing schedules first.

### What does the email look like?

**Answer:** Mo writes the subject and summary based on what that specific run actually found, rather than reusing a fixed template. Any files Mo generates — workbooks, charts, exports — are included as download links.

### Do the download links expire?

**Answer:** Yes. Links to files from a scheduled run are available for **7 days** after the run completes. Continue the conversation in Mo directly if you need the underlying data after that.

### Can I schedule a prompt for someone else on my team?

**Answer:** No — a scheduled prompt runs and emails the person who created it. Each teammate sets up their own scheduled work from their own Mo chat.

## Troubleshooting Common Issues

| Problem                              | Solution                                                                                                                   | Time to Fix |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ----------- |
| I can't add another scheduled prompt | You've reached the 5-per-user limit. Pause or free up an existing schedule.                                                | 1 minute    |
| A run shows as **Failed**            | Expand the entry to see the error, then try **Run now** to retry, or adjust the prompt if it depends on data that changed. | 2 minutes   |
| I didn't get the email               | Check your spam folder, and confirm the schedule isn't **Paused** in the Scheduled work list.                              | 2 minutes   |
| The download link doesn't work       | Links expire 7 days after the run. Use **Run now** to generate a fresh one.                                                | 1 minute    |

## Related Guides

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/tgPhlFajuquRi8gzbmuH" %}
[Weekly Account Briefing](/mo/key-capabilities/weekly-account-briefing)
{% endcontent-ref %}

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}


# Real-World Applications

See how Mo handles real inventory planning scenarios — new product launches, BFCM prep, seasonal calendars, new sales channels, and daily operations.

### New Product Launches

**Challenge**: No historical data to forecast demand

**Mo's Solution**: Use analog-based estimation comparing similar products with probabilistic ranges to account for uncertainty

**Example**: "Based on similar launches, what should I expect for this new product?"

### BFCM Planning

**Challenge**: High-stakes, short-window planning for major sales events

**Mo's Solution**: Build multiple scenarios with adjustable lift assumptions

**Example**: "Create three BFCM scenarios: conservative (20% lift), moderate (40% lift), and aggressive (60% lift)"

{% embed url="<https://www.youtube.com/watch?v=4kv9BrTb5Fo>" %}
Mo Provides Post-BFCM Insights for 2026 Planning Success
{% endembed %}

### Seasonal & Freight Calendar Planning

**Challenge**: Adjusting forecasts and order timing around seasonal events, Chinese New Year factory closures, and peak freight windows

**Mo's Solution**: Use natural language prompts to apply seasonal adjustments directly in your forecast or production plan

**Example prompts:**

* "Increase my Q1 forecast by 20% to account for Chinese New Year factory closures"
* "What order quantities do I need to submit by October to land inventory before peak freight season?"
* "Adjust my spring forecast to account for a 6-week lead time increase during CNY"

{% hint style="warning" %}
**Important — Mo Does Not Retain Memory Between Sessions:** Mo does not currently remember previous conversations. Each session starts fresh. If you are working on a seasonal planning scenario across multiple sessions, re-provide the relevant context (e.g., event dates, lead time changes, target stock levels) at the start of each conversation to get accurate recommendations.
{% endhint %}

{% hint style="info" %}
**Coming Soon — Mass Editing via Mo:** A future update will allow Mo to apply bulk edits across multiple SKUs in a single prompt (e.g., "increase all outdoor category forecasts by 15% for Q2"). This section will be updated when the feature launches.
{% endhint %}

### New Sales Channels

**Challenge**: Predicting demand when expanding to new platforms

**Mo's Solution**: Layer trend projections to anticipate channel-specific demand patterns

**Example**: "If I start selling on Amazon, how should I allocate inventory based on my Shopify performance?"

### Daily Operations

**Challenge**: Maintaining optimal inventory levels across hundreds of SKUs

**Mo's Solution**: Apply statistical models for daily-level predictions maintaining supply-demand balance

**Example**: "How accurate has my forecast been for this product category?"


# Tips

Guides to help you get more out of Mo — better prompts, saved favourites, and uploading your own files.

{% content-ref url="/pages/yJln3VzmaObo47Daodot" %}
[Weekly To-Do List](/mo/tips/weekly-to-do-list)
{% endcontent-ref %}

{% content-ref url="/pages/HNe3qiLOPZnSe0stHRX3" %}
[Get Better Results with Mo](/mo/tips/tips-for-better-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}

{% content-ref url="/pages/duq7hpXUHS6mjWyF9C8A" %}
[Give Mo Context About Your Business](/mo/tips/mo-context-panel)
{% endcontent-ref %}

{% content-ref url="/pages/YJoLN5gfAxgpfNkwFov3" %}
[Manage Mo Threads](/mo/tips/manage-mo-threads)
{% endcontent-ref %}


# Weekly To-Do List

The Weekly To-Do List surfaces Mo's top action items for the week — stockout risks, POs to chase, low inventory alerts, and sales surges — with one-click access to Mo's recommendations.

{% hint style="info" %}
**Quick Answer:** The Weekly To-Do List appears at the top of the Ask Mo page and shows the action items Mo has identified for your business this week — such as stockout risks, overdue POs, low inventory alerts, and sales surges. Click **Ask Mo** next to any item for Mo's full explanation and recommended next steps.
{% endhint %}

![](/files/qxuIvI7guUUGnjGocXNa)

## What is the Weekly To-Do List?

**The Weekly To-Do List is** Mo's proactive agenda for the week. Each time you open Ask Mo, Mo reviews your live inventory positions, open purchase orders, and recent sales activity, then surfaces a prioritised list of items that need your attention.

Rather than starting from a blank prompt, the To-Do List gives you a clear starting point — the things Mo has already flagged as urgent or worth investigating before they become problems.

***

## Action Item Types

Mo surfaces four types of action items on the Weekly To-Do List.

***

### 🚨 Stockout Risk

Mo flags SKUs that are projected to run out of stock before your next replenishment arrives. These are items where your current on-hand inventory, combined with expected sales velocity, puts you at risk of hitting zero.

> *Example: "3 SKUs are at risk of stocking out within the next 14 days."*

Click **Ask Mo** to see:

* Which SKUs are affected and their projected stockout dates
* Whether an inbound PO is already in place — and whether it will arrive in time
* Mo's recommended action: expedite an existing PO, place a new order, or reallocate stock across locations

***

### 📬 POs to Chase

Mo identifies open purchase orders that are overdue, approaching their expected delivery date without a confirmed status, or haven't had a recent update. These are POs that may need a supplier follow-up to confirm they're on track.

> *Example: "2 purchase orders are past their expected delivery date."*

Click **Ask Mo** to see:

* The specific POs flagged and their original expected delivery dates
* Which SKUs and quantities are affected
* Suggested next steps, including draft supplier follow-up language if needed

***

### 📦 Low Inventory — Confirm POs

Mo highlights SKUs where stock is running low and checks whether a purchase order is already in place to cover projected demand. If no PO exists, or if the inbound quantity looks insufficient, Mo flags it here.

> *Example: "5 SKUs have low inventory with no confirmed inbound PO."*

Click **Ask Mo** to see:

* Current on-hand stock versus projected demand for each flagged SKU
* Whether existing POs cover the shortfall
* Whether a new order needs to be placed — and at what quantity

***

### 📈 Sales Surge — Investigate

Mo detects SKUs where sales velocity has spiked significantly above the forecast or recent baseline. A surge can mean a campaign is overperforming, an unexpected channel spike, or a viral moment — and it may require quick action to avoid a stockout.

> *Example: "2 SKUs are selling 40% above forecast this week."*

Click **Ask Mo** to see:

* Which SKUs are surging and by how much
* Whether current inventory can sustain the elevated velocity
* Whether Mo recommends pulling forward any replenishment orders to keep up with demand

***

## How to Use the Weekly To-Do List

Each item on the list shows:

* The **alert type** (Stockout Risk, PO to Chase, Low Inventory, or Sales Surge)
* A **brief summary** of the issue — for example, the number of SKUs affected or the PO status
* An **Ask Mo** button

Click **Ask Mo** next to any item to open a conversation with Mo pre-loaded with the context for that specific issue. Mo will walk you through what it found, why it matters, and what it recommends you do next.

{% hint style="success" %}
**Tip:** Work through the To-Do List at the start of each week to stay ahead of issues before they escalate. The list refreshes with your latest data each time you open Ask Mo.
{% endhint %}

***

## Related Guides

{% content-ref url="/pages/HNe3qiLOPZnSe0stHRX3" %}
[Get Better Results with Mo](/mo/tips/tips-for-better-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

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


# Get Better Results with Mo

Your complete guide to working with Mo — prompt templates, real examples, tips for every experience level, use-case examples, and common mistakes to avoid.

Mo is your AI planning assistant inside Moselle — built to help you make faster, smarter inventory and demand planning decisions. This guide (10-minute read) will show you how to get the most out of every conversation.

{% hint style="info" %}
**Quick Answer:** Write specific prompts that name the SKUs, channel, and time window you care about. Use Mo's prompt template: \[What you want] + \[SKUs/channels/dates] + \[Extra context] + \[Output format]. Save your best prompts as Favourites for one-click reuse.
{% endhint %}

## The Golden Rule

**Specific prompts get specific answers. Vague prompts get generic ones.**

Mo is not a search engine — it's a reasoning agent. Give it a clear job to do, and it will do it well.

| Instead of…                      | Try…                                                                                                            |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| *"How's our inventory looking?"* | *"How many weeks of cover do we have on our top 10 SKUs across Shopify and Amazon, based on current forecast?"* |
| *"Which SKUs are at risk?"*      | *"Which SKUs are at risk of stocking out before the end of Q2, across our Shopify and Amazon channels?"*        |
| *"What should I order?"*         | *"What should I order for our wholesale channel, assuming a 10-week lead time from our main supplier?"*         |

***

## What Mo Can (and Can't) Do

**Mo can:**

* Analyze your sales, inventory, forecast, BOM, and supplier data
* Draft purchase orders and replenishment plans
* Model "what if" scenarios
* Generate charts, tables, and Excel exports
* Walk you through its reasoning step by step

**Mo can't:**

* Remember previous conversations — every session starts fresh
* See data that hasn't been entered into Moselle (e.g. an unannounced lead time change)
* Access the internet or live market data

{% hint style="info" %}
**Keep your Moselle data clean and up to date.** It's the single biggest factor in the quality of Mo's answers.
{% endhint %}

### How Mo works through a question

When you send Mo a message, it moves through a few stages before responding.

**1. It identifies what you're asking**\
Mo reads your question and determines the business concept — stockout risk, sell-through rate, reorder quantity, demand trend — along with the scope: which SKUs, which channel, which time period. If something is ambiguous, Mo will make a reasonable assumption and tell you what it assumed, or ask a clarifying question if it can't resolve it on its own.

**2. It pulls from your connected data**\
Mo works from the data Moselle has access to: your sales history, current inventory levels, SKU catalog, supplier lead times, and channel breakdown. It draws on whichever of these is relevant to your question and cross-references across them to build its answer.

**3. It checks whether the answer makes sense**\
Before responding, Mo evaluates whether the result is internally consistent — if a number looks anomalous, it will flag it rather than presenting it as fact. Mo will tell you when it's uncertain and explain why.

**4. It responds and shows its reasoning**\
Mo formats its answer based on what you asked for — a recommendation, a number, an analysis, a ranked list — and explains the logic behind it so you can decide whether to act on it or adjust it.

### What Mo can see

Mo's answers are only as good as the data behind them. It can work with:

* **Sales history** — order data synced from your connected channels (Shopify, Amazon, Walmart)
* **Inventory levels** — current stock positions across locations, synced from your fulfillment integrations
* **SKU catalog** — your products, variants, bundles, and bill of materials
* **Supplier data** — lead times and supplier details you've added to Moselle
* **Forecasts** — the 12-month projections Moselle has generated for your SKUs
* **Current conversation** — everything you've said in this session, including context you've added along the way
* **Files you upload** — CSV, XLSX, and PDF files shared directly in the chat

What Mo can't see:

* **Information not in Moselle** — if a supplier lead time hasn't been entered, or a channel isn't connected, Mo won't know. It may make a reasonable assumption, but it will say so.
* **Previous conversations** — Mo starts fresh each session. Context you established in a past conversation doesn't carry over. If there's something Mo should always know — a planning assumption, a key definition — the best place for it is in your Moselle setup, not a previous chat.
* **External signals** — Mo doesn't browse the web or pull in market data. Its view is your business, not the broader market.

***

## Part 1 — How to Write a Good Prompt

### The Prompt Template

When in doubt, use this structure:

> **\[What you want Mo to do] + \[SKUs / channels / dates] + \[Extra context] + \[Output format]**

**Example:**

> *"Show me sell-through for our core skincare collection across Shopify and Amazon for the last 90 days, as a table ranked by sell-through rate."*

### The Five Fundamentals

**1. Be specific**\
Name the SKUs, channel, and time window. The more precise you are, the more useful the answer.

**2. Add context Mo can't see**\
Mention anything outside of Moselle — an upcoming promotion, a factory closure, a new retail partner, a lead time change.

**3. Ask for the format you want**\
"As a table," "as a bar chart," "as an Excel file," "in three bullet points." If you don't specify, Mo will choose for you.

**4. Ask one thing at a time**\
Combining five questions in one prompt gets shallow answers to all five. Use follow-up prompts instead.

**5. Refine — don't restart**\
If the first answer isn't quite right, correct it in the same conversation. Starting over loses all the context Mo has built up.

### Use the Right Language

Mo responds best when you speak in planning terms: SKU, channel, sell-through, weeks of supply (WOS), forward weeks of supply (FWOS), reorder point (ROP), safety stock, lead time, MOQ, coverage period.

If a term has a specific meaning at your company, define it upfront:

> *"For this conversation, define 'slow mover' as any SKU with WOS above 26."*

***

## Part 2 — Tips for Better Results

### Re-state context every session

Mo does not remember previous conversations. At the start of each session, briefly re-share the context that matters — which channel you're focused on, any active promotions, your standard lead times.

### Save your best prompts

Hover over any Mo response and click ☆ to save it as a Favourite. Reuse it in one click next time. This is the fastest way to get consistent results across sessions.

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

### Ask Mo to show its work

For any complex answer, ask Mo to explain its reasoning. This helps you catch errors and builds confidence in the output.

> *"Walk me through your reasoning step by step before giving me the final answer."*

Mo's **Explain This** button on any white forecast cell does this automatically.

### Upload files for context Mo can't see

Mo accepts CSV, XLSX, and PDF files via the 📎 icon or drag-and-drop. Use this to share promotional calendars, supplier lead time updates, retail set dates, and manual targets.

{% hint style="warning" %}
Don't upload files containing customer PII or confidential internal data. Use mock or anonymised data where possible.
{% endhint %}

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}

### Set a role for better outputs

Telling Mo who it's acting as at the start of a conversation consistently improves results:

> *"Act as a senior demand planner reviewing my Q4 forecast for risk."*\
> *"You're an inventory analyst preparing a summary for our leadership team."*

### Run scenarios in threes

For any planning decision, ask Mo to model three versions — conservative, moderate, and aggressive. This forces a range of outcomes and surfaces risk on both ends.

> *"Create three BFCM scenarios: conservative (20% lift), moderate (40% lift), and aggressive (60% lift)."*

### Always verify before acting

Mo can occasionally produce confident-sounding answers that are wrong. Build the habit of checking:

* Spot-check at least one number against the underlying SKU card or a Moselle report
* Review all line items before confirming a PO
* For large or high-stakes decisions, have a second person review before committing

***

## Part 3 — Prompt Examples by Use Case

These are starting points — swap in your own SKUs, channels, dates, and targets.

**Sell-through & trends**

> *"How has sell-through for \[collection] trended over the last \[X] days, by channel — as a bar chart?"*

**At-risk SKUs & stockouts**

> *"Which SKUs are at risk of stocking out before \[date/event]? Include projected stock-out date and current WOS."*

**Weeks of supply**

> *"How many weeks of cover do we have on \[SKUs / category] based on current forecast?"*

**Reorder points**

> *"Which SKUs are currently below their reorder point, and what do I need to order to get back on track?"*

**Purchase orders**

> *"Create a PO for \[X units] of \[SKU] from \[supplier], deliver by \[date], in \[currency]."*\
> *"I have \[$X] to spend with \[supplier] — what should I order to maximize coverage on at-risk SKUs?"*

**Promotions**

> *"We have a \[X%] off promotion on \[SKUs] starting \[date] — do we have enough inventory to support a \[X]x demand spike?"*

**Seasonality & event planning**

> *"Adjust my \[season] forecast to account for \[event/factor] and tell me what I need to order and by when."*

**Scenarios**

> *"What happens to my replenishment plan if my supplier delays by \[X] weeks?"*

**Forecast accuracy**

> *"How accurate has my forecast been for \[category] over the last \[X] months? Use MAPE and flag anything above 30%."*

{% hint style="info" %}
**MAPE benchmarks:** Under 10% = highly accurate | 10–20% = good | 20–30% = reasonable | Over 30% = needs attention
{% endhint %}

***

## Part 4 — Common Mistakes to Avoid

| Mistake                                 | Why it matters                                 | What to do instead                     |
| --------------------------------------- | ---------------------------------------------- | -------------------------------------- |
| Prompt is too vague                     | Mo guesses at scope and gives a generic answer | Name SKUs, channels, and a time window |
| Asking multiple questions at once       | Shallow answers across the board               | Break into follow-up prompts           |
| Restarting when something's off         | You lose all the context Mo built              | Refine in the same conversation        |
| Not checking the output                 | Mo can produce wrong numbers confidently       | Verify key figures before acting       |
| Re-typing the same prompt every session | Wastes time, inconsistent results              | Save it as a Favourite                 |
| Adding jargon to sound more specific    | Overcomplicating actually hurts results        | Clear, plain instructions work best    |
| Uploading sensitive or personal data    | Data privacy risk                              | Anonymize files before uploading       |

***

## Part 5 — Building Good Habits

### If you're just getting started

* Use the prompt template every time until it's second nature
* Start with three workflows and get comfortable: a weekly sell-through check, an at-risk SKU review, and a PO draft
* Verify Mo's numbers against one source for your first few weeks — build trust through evidence
* Save your three most-used prompts as Favourites right away

### If you're a regular Mo user

* Build a prompt library of 10–20 prompts that cover your monthly planning cadence
* Use file uploads to bring in context from outside Moselle — promo calendars, supplier updates, retail timelines
* Default to asking for step-by-step reasoning on any multi-step question
* Always run scenarios in threes before making a big inventory call
* Define your own business terms at the start of complex conversations

### When to pause and double-check

* Mo flags a number as anomalous → investigate before acting
* A recommended PO is above your internal review threshold → get a second sign-off
* Forecast MAPE is above 30% for a priority SKU → investigate inputs before locking
* Mo's recommendation contradicts your instinct → ask it to explain step by step; if the logic doesn't hold, trust your judgment

***

## Why This Matters

Getting good at working with Mo is a skill with a real payoff. McKinsey research on AI-driven supply chain forecasting shows companies using AI effectively can reduce forecast errors by 20–50%, cut stockouts by up to 65%, and lower planning administration costs by 25–40%. Gartner predicts 70% of large organizations will adopt AI-based forecasting by 2030.

The brands that pull ahead won't just be the ones with the best tools — they'll be the ones whose teams know how to use them.

***

## Related Guides

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}


# Save Your Favourite Prompts

Save prompts you use regularly in Mo so you can re-run reports and analyses instantly with one click — no retyping your favourite requests required.

{% hint style="info" %}
**Quick Answer:** To save a prompt in Mo, hover over Mo's response, click the star icon (☆), and it will appear in the Favourite Prompts section at the bottom of the Mo page for one-click reuse.
{% endhint %}

## What are Favourite Prompts in Mo?

**Favourite Prompts** is a saved shortcuts feature in Mo that lets you store frequently used prompts and re-run them instantly from the Mo page. Instead of retyping the same prompt at the start of each session, you can click a saved prompt to send it immediately.

The Favourite Prompts section lives at the **bottom of the Mo chat page**.

{% hint style="info" %}
Mo does not retain memory between sessions. Saving your most-used prompts is a great way to quickly re-establish context at the start of each conversation.
{% endhint %}

## How to Save a Prompt

**Time Required:** Under 1 minute **Difficulty:** Beginner

{% stepper %}
{% step %}

### Send a Prompt to Mo

Type your prompt in the Mo chat input and send it. Wait for Mo to respond.
{% endstep %}

{% step %}

### Hover Over Mo's Response

Move your cursor over the Mo response message to reveal the action icons.
{% endstep %}

{% step %}

### Click the Star Icon

Click the **star icon (☆)** beside the message.

{% hint style="success" %}
A confirmation toast will appear: **"Prompt saved to favourites"**

The prompt is now saved and will appear in the Favourite Prompts section on the Mo home page.
{% endhint %}
{% endstep %}
{% endstepper %}

## How to Use a Saved Prompt

1. Navigate to the **Mo page** from the left sidebar
2. Scroll to the **Favourite Prompts** section at the bottom of the page
3. Click any saved prompt to instantly send it to Mo

## Managing Favourite Prompts

To **remove a saved prompt**, click the star icon on a saved prompt in the Favourite Prompts section to unfavourite it.

{% hint style="info" %}
If no prompts have been saved yet, the Favourite Prompts section will display **"No favourite prompts yet"**.
{% endhint %}

## Related Guides

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/LRVHUPVI4iSvxT0rYlUE" %}
[Schedule Work with Mo](/mo/key-capabilities/schedule-work-with-mo)
{% endcontent-ref %}


# Upload Your Files to Mo

Upload CSV, XLSX, or PDF files directly to Mo so it can clean, map, and apply your data — from campaign plans to forecast adjustments automatically.

{% hint style="info" %}
**Quick Answer:** To upload a file to Mo, open the Mo chat, click the attachment icon, select your file, and send it with your question or request. Mo will clean, map, and apply your data automatically.
{% endhint %}

## What is File Upload in Mo?

**File upload in Mo** is a feature that lets you drop a file directly into your Mo conversation so Mo can interpret and apply its contents to your planning session. Instead of manually formatting or re-entering data, you share the file and Mo handles the heavy lifting — cleaning, mapping, and putting your data to work right away.

This is especially useful when you need to factor in information Mo doesn't have from your integrations, such as an upcoming campaign, a custom forecast adjustment, or an external supplier schedule.

### When to Upload a File to Mo:

* **Campaign planning** — Share a promotional calendar or marketing schedule so Mo can account for demand spikes
* **Forecast adjustments** — Provide external data (events, market shifts, product launches) that should influence your forecast
* **Custom inputs** — Upload a spreadsheet with manual overrides, targets, or constraints you want Mo to incorporate
* **Supplier or order data** — Share lead time changes or availability windows from a supplier outside your integrations

## Prerequisites

**Time Required:** Under 2 minutes\
**Difficulty:** Beginner

Before uploading, make sure you have:

* [ ] Access to the Mo chat in your Moselle account
* [ ] Your file ready (CSV, XLSX, or PDF formats supported)
* [ ] A clear question or task in mind for Mo to act on with the file

## How to Upload a File to Mo

{% stepper %}
{% step %}

### Open Mo

Click **Mo** in the left sidebar to open the Mo chat page.
{% endstep %}

{% step %}

### Attach Your File

Click the **attachment icon (📎)** in the chat input area, then select your file from your computer.

Supported formats include **CSV**, **XLSX**, and **PDF**.

{% hint style="info" %}
You can also drag and drop your file directly into the Mo chat window.
{% endhint %}
{% endstep %}

{% step %}

### Add Your Request

In the chat input, describe what you want Mo to do with the file. The more specific your request, the better Mo's response will be.

**Examples:**

* *"Here's our Q4 campaign calendar. Adjust my forecast to reflect these promotional periods."*
* *"This file has updated lead times from our supplier. Factor these into my replenishment plan."*
* *"I've attached our event schedule for the next 6 months. Highlight any weeks where demand is likely to spike."*
  {% endstep %}

{% step %}

### Send and Review

Click **Send**. Mo will read your file, clean and map the data, and respond with its analysis or updated plan.

{% hint style="success" %}
Mo will confirm what it found in your file and explain how it has applied the data. Review the summary before using it in a forecast or production plan.
{% endhint %}
{% endstep %}
{% endstepper %}

## What Mo Does With Your File

Once a file is uploaded, Mo automatically:

* **Cleans the data** — Handles inconsistent formatting, missing values, and column mismatches
* **Maps it to your plan** — Connects the file's contents to the relevant products, dates, or channels in Moselle
* **Applies it to your request** — Uses the file as context to answer your question, adjust a forecast, or flag potential issues

You do not need to reformat your file to match a specific template before uploading to Mo.

## Tips for Better Results

* **Include a date range** in your file or request so Mo can anchor the data to the right planning period
* **Label columns clearly** in your spreadsheet — Mo interprets headers to understand what each column represents
* **One topic per upload** works best — if you have a campaign file and a supplier file, upload and discuss them separately for cleaner responses

{% hint style="warning" %}
Do not upload files containing real customer names, personal information, or sensitive internal data. Use mock or anonymised data where possible.
{% endhint %}

## Frequently Asked Questions

### What file types can I upload to Mo?

**Answer:** Mo supports **CSV**, **XLSX**, and **PDF** files. For best results, use CSV or XLSX for structured data like forecasts, schedules, and order files.

### Does Mo save my uploaded files?

**Answer:** Uploaded files are used within your current Mo session to answer your request. Mo does not retain memory or file contents between sessions, so re-upload the file if you start a new conversation.

### Do I need to format my file in a specific way before uploading?

**Answer:** No. Mo handles cleaning and mapping automatically. Clear column headers and consistent data in each column will help Mo interpret your file more accurately, but strict formatting is not required.

### Can I upload multiple files in one session?

**Answer:** Yes. You can upload files across multiple messages in the same session. Each upload is treated in the context of your ongoing conversation.

## Troubleshooting

| Problem                           | Solution                                                                        | Time to Fix |
| --------------------------------- | ------------------------------------------------------------------------------- | ----------- |
| Mo says it cannot read the file   | Check that the file is not password-protected or corrupted, then re-upload      | 1 minute    |
| Mo misinterprets column data      | Add a brief description in your message explaining what each column represents  | 2 minutes   |
| File upload button is not visible | Refresh the page or try a different browser; ensure you are on the Mo chat page | 1 minute    |

## Related Guides

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}


# Give Mo Context About Your Business

Learn how to use Mo's Context Panel to give Mo your business context — custom terminology, channels, and metric definitions — for more accurate answers.

{% hint style="info" %}
**Quick Answer:** Open Mo, click the three-dot menu **(⋮)** in the top right, select **Settings**, and add a Company Description in the **Mo Configuration** panel. Describe your business model, custom terminology, sales channels, and how you define key metrics.
{% endhint %}

## What is the Mo Context Panel?

The **Mo Context Panel** — officially called **Mo Configuration** — is where you teach Mo about your business. It's a free-text field where you describe your company, products, sales channels, and the terminology your team uses.

By default, Mo only knows what's in your Moselle data. It doesn't know that you call your retail locations "doors," that "GWP" means gift with purchase, or that you're a DTC brand shipping through Shopify. The Context Panel changes that.

Think of it as a standing briefing that Mo reads before every conversation — so it can interpret your questions accurately, use the right terminology, and focus on what matters most to your business.

{% hint style="info" %}
**Why this matters:** A question like "Which SKUs are underperforming?" means something very different for a DTC skincare brand vs. a wholesale CPG company. The Context Panel is how Mo tells the difference.
{% endhint %}

***

## Where to find the Context Panel

**Time required:** 2–5 minutes

You can open Mo — and its Context Panel — from two places in Moselle:

**Option 1 — Ask Mo page** Navigate to the Ask Mo page using the first icon at the top of the left-hand sidebar (the glasses icon). This opens the full Mo chat interface as a dedicated page.

**Option 2 — From any page** Click the **"Hello! How can I help you?"** widget in the top right corner of any page. This opens Mo as a side panel without leaving the page you're on.

Once Mo is open:

{% stepper %}
{% step %}

### Open the menu

Click the **three-dot menu icon (⋮)** in the top right corner of the Mo chat window.
{% endstep %}

{% step %}

### Go to Settings

Select **Settings** from the dropdown menu.
{% endstep %}

{% step %}

### Add your Company Description

The **Mo Configuration** modal opens, showing the Company Description field. Add or update your context, then save.
{% endstep %}
{% endstepper %}

***

## What to include in your Company Description

There are no required fields or rigid format — write it like a short briefing note. Here's what makes Mo most useful:

| What to include                    | Why it helps Mo                                                                  |
| ---------------------------------- | -------------------------------------------------------------------------------- |
| Business type & model              | Frames analysis correctly (e.g., DTC vs. wholesale, B2B vs. B2C)                 |
| Product categories & key brands    | Helps Mo understand how your SKUs are grouped                                    |
| Sales channels                     | Retail, Shopify, Amazon, wholesale accounts — Mo will reference these accurately |
| Industry-specific terminology      | Custom terms like "doors," "GWP," "sell-in," "sell-through," etc.                |
| Seasonality & key planning periods | Helps Mo contextualize trends and forecasts                                      |
| How you define key metrics         | e.g., your definition of "sell-through rate" or "weeks on hand"                  |

### Example Company Descriptions

{% tabs %}
{% tab title="Beauty Brand" %}
*We're a DTC and wholesale beauty brand. Our product lines include skincare, body care, and fragrance. We sell through our own Shopify store, Sephora (where we track locations as "doors"), and a small number of specialty retailers. We use "GWP" to refer to gifts with purchase. Our planning year runs from February to January. We measure sell-through as units sold divided by units received at retail. Our peak season is Q4, starting in late September.*
{% endtab %}

{% tab title="Food & Beverage Brand" %}
*We're a CPG beverage brand focused on functional drinks. We sell B2B to grocery chains and DTC through our website. We use "velocity" to refer to units sold per store per week. Our key channels are Whole Foods, Sprouts, and Amazon. We track performance by "sell-through rate," which is sell-out divided by sell-in. We have two main SKU lines: sparkling and still. Our fiscal year starts in January.*
{% endtab %}
{% endtabs %}

***

## Quick reference: what to include vs. skip

| ✅ Include                                  | 🚫 Skip                                      |
| ------------------------------------------ | -------------------------------------------- |
| Business model (DTC, wholesale, B2B, etc.) | Full SKU lists (already in Moselle)          |
| Product categories & key brands            | Channel names already visible in your data   |
| Custom terminology & abbreviations         | Descriptions of every product variant        |
| How you define key metrics                 | Technical integration details                |
| Key channels & planning periods            | Anything Mo can already infer from your data |
| Seasonal patterns                          |                                              |

***

## Best practices for keeping your context current

**Update it when your business changes** Launched a new sales channel? Added a product line? Changed how you define a key metric? Update the Company Description to reflect it — Mo won't know unless you tell it.

**Keep it concise but specific** A few focused sentences are more useful than a wall of text. Lead with details most likely to affect how Mo interprets your data questions.

**Add terminology before you need it** If you're starting a new planning cycle where "sell-in" becomes a key term, add it to the context before you begin asking Mo about it.

**Review it each season or quarter** A 2-minute review at the start of each planning period can prevent weeks of miscommunication.

**Don't duplicate what's already in your data** You don't need to list every SKU or channel name — Mo can already see those in Moselle. Focus on what Mo can't infer: your terminology, business model, and metric definitions.

***

## Related guides

{% content-ref url="/pages/HNe3qiLOPZnSe0stHRX3" %}
[Get Better Results with Mo](/mo/tips/tips-for-better-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}


# Manage Mo Threads

Learn how to navigate Mo conversation history, start new chats, and stay organized — complete guide with tips and quick reference for managing Mo threads.

{% hint style="info" %}
**Quick Answer:** Access all past Mo conversations from the **∨ dropdown** at the top of the Mo chat. Start a fresh conversation with the **+ button** in the top left. Threads are named automatically from your first prompt and cannot be renamed or deleted. Both actions take seconds.
{% endhint %}

## What is a Mo thread?

**A Mo thread is** a saved conversation that is automatically created each time you ask Mo a question. Threads let you pick up where you left off, revisit past analysis, and keep your Mo conversations organized by topic.

Mo automatically names each thread based on your first prompt, so your history is easy to scan and identify at a glance.

## How do I navigate my Mo thread history?

### Opening a past thread

All of your previous Mo conversations are accessible from the thread dropdown at the top of the Mo chat.

{% stepper %}
{% step %}

### Open Mo

Open Mo via the **Ask Mo page** (glasses icon at the top of the left sidebar) or the **"Hello! How can I help you?"** widget in the top right of any page.
{% endstep %}

{% step %}

### Open the thread dropdown

At the top of the Mo chat, you'll see the name of your current thread followed by a **dropdown arrow (∨)**. Click the **∨ arrow** to open a list of all your past threads.
{% endstep %}

{% step %}

### Select a thread

Click any thread name to navigate directly to that conversation. Your full conversation history — including all previous questions, answers, and analysis — will reload exactly as you left it.
{% endstep %}
{% endstepper %}

## How do I start a new Mo chat?

To start a fresh Mo conversation without losing your current thread:

1. Click the **+ button** in the top left corner of the Mo chat.
2. A new, blank chat will open and Mo is ready for your next question.

Your previous threads are always saved and accessible from the **∨ dropdown** — starting a new chat does not delete anything.

{% hint style="success" %}
**Tip:** Use the + button whenever you're switching to a new topic. Keeping conversations focused on one subject makes it easier to find them later in your thread history.
{% endhint %}

## How does Mo name threads?

Mo automatically generates a name for each thread based on your **first prompt** in that conversation. You cannot rename threads manually.

Since the thread name reflects your opening question, a specific first prompt leads to a more descriptive and useful thread name.

| First prompt                                    | Thread name Mo generates      |
| ----------------------------------------------- | ----------------------------- |
| "Show forecast performance for this year"       | Forecast Performance Review   |
| "Which Grade A SKUs have the biggest variance?" | Grade A SKU Forecast Variance |
| "Walk me through EU SKU transition logic"       | EU SKU Transition Logic       |

## What can I do with Mo threads?

| Action                        | Available?                                       |
| ----------------------------- | ------------------------------------------------ |
| Navigate to a past thread     | ✅ Yes — use the **∨ dropdown**                   |
| Start a new chat              | ✅ Yes — use the **+ button**                     |
| Rename a thread               | ❌ Not available — Mo names threads automatically |
| Delete a thread               | ❌ Not available                                  |
| Search through thread history | ❌ Not available — browse via the **∨ dropdown**  |

## How do I recognize a thread that started in Explore?

{% hint style="info" %}
**Quick Answer:** Threads started in [Explore & Build](/analytics/explore) show a **circular icon** next to their name in the **∨ dropdown**, marking the thread type. Click one to return to that Explore scratchpad — canvas and all — instead of opening a standalone Mo chat.
{% endhint %}

If you started a conversation with Mo inside Explore, Moselle's report builder, that thread carries a **circular icon** in the thread dropdown marking it as an Explore & Build thread, so you can tell it apart from a regular Mo chat at a glance. Clicking it takes you back to the scratchpad it belongs to, with the charts and tables you were building and the full conversation restored.

## Tips for staying organized

Since threads can't be renamed or deleted, a little intention upfront goes a long way.

**Start each topic as a new thread**\
Use the + button when switching subjects. Mixing multiple topics in one thread makes it harder to find things later.

**Lead with a clear, specific first prompt**\
Since Mo uses your first message as the thread name, a specific opening question (e.g., "Analyze sell-through for Sephora Q4") produces a much more useful thread name than something vague (e.g., "Help").

**Use your thread history as a running log**\
Your thread list is a record of the questions your business has been exploring in Moselle. Teams can use it to track recurring analyses, revisit past forecasts, or hand off context to a colleague.

## Quick reference

| What you want to do               | How to do it                                              |
| --------------------------------- | --------------------------------------------------------- |
| See all past Mo conversations     | Click the **∨ arrow** next to the current thread name     |
| Return to a previous conversation | Click the **∨ arrow**, then click the thread name         |
| Start a fresh Mo chat             | Click the **+** button in the top left of Mo              |
| Find Mo from any page             | Click **"Hello! How can I help you?"** in the top right   |
| Open the full Mo page             | Click the **glasses icon** at the top of the left sidebar |

## Related guides

{% content-ref url="/pages/HNe3qiLOPZnSe0stHRX3" %}
[Get Better Results with Mo](/mo/tips/tips-for-better-prompts)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}


# Mo by Role

Role-specific guides for getting the most out of Mo — with ready-to-use prompts for every team.

{% content-ref url="/pages/jJyyTvgkjgjzuFi907Hx" %}
[Brand & Marketing Edition](/mo/mo-by-role/brand-and-marketing)
{% endcontent-ref %}


# Brand & Marketing Edition

Learn how brand managers, marketers, and creative leads can use Mo in Moselle to make faster, inventory-informed campaign decisions — no training required.

{% hint style="info" %}
**Quick Answer:** Open Ask Mo in the left sidebar and type a plain-language question about your products, inventory, or sales performance. No training required — if you can type a question, you can get an answer in under 60 seconds.
{% endhint %}

## What is Mo for Brand & Marketing?

**Mo is** Moselle's AI assistant that gives brand and marketing teams instant access to the same inventory and sales signals their ops team uses — without needing to request a report, build a spreadsheet, or wait for a weekly sync.

This guide is for the people who drive demand — brand managers, marketers, content leads, and creative directors — who want to make smarter, faster decisions grounded in real business data.

### Key Benefits

* **Make campaigns inventory-aware** — Know before you spend whether the products you're promoting can actually fulfil the demand you're about to generate
* **Measure what worked** — Compare sales velocity before, during, and after any campaign using real date ranges
* **Find opportunities faster** — Spot overstocked products ripe for a promo push, or trending SKUs to get behind before the moment passes
* **Brief leadership in minutes** — Pull a rolled-up view of wins, risks, and trends without waiting for a report

***

## Prerequisites

**Time Required:** 5 minutes to get your first result\
**Difficulty:** Beginner

Before you start, make sure you have:

* [ ] A Moselle account with Mo access (ask your ops lead or admin to invite you)
* [ ] At least one sales channel connected and syncing data
* [ ] At least one warehouse or 3PL inventory sync active
* [ ] Basic familiarity with your product catalog and SKU naming

***

## Use Cases

### 01 — Know Which Products Are Actually Resonating

Identify your momentum SKUs and declining ones — so your campaigns are always backing the right products.

**Try asking Mo:**

* *"Which products have grown the most in units sold over the last 60 days?"*
* *"Show me my top 10 SKUs by revenue this quarter vs. last quarter."*
* *"Which products are declining in sell-through velocity?"*

***

### 02 — Know What to Promote Before You Spend a Dollar

Before committing budget to any product or campaign, check which SKUs have healthy stock to support a demand spike and which channels are driving the most velocity. Campaigns built on inventory data convert better — and don't generate the brand damage that comes from promoting products you can't actually ship.

**Try asking Mo:**

* *"Which of my top-selling products have less than 6 weeks of inventory left?"*
* *"I'm planning a promotion in 8 weeks — do I have enough stock of \[SKU] to support it?"*
* *"Are there any hero products with no open purchase orders right now?"*

***

### 03 — Turn Overstock into Opportunity

Every brand has inventory sitting longer than it should. Ask Mo what's overstocked right now and you have an instant brief for a clearance push, bundle offer, or flash sale. Marketing becomes a demand lever for the operations team — and a revenue recovery tool.

**Try asking Mo:**

* *"Which products have high inventory but slow sales? I might want to run a promo."*
* *"Which products have been sitting in inventory the longest and could use a promotional push?"*
* *"Which products have the lowest sell-through rate across all channels?"*

***

### 04 — Measure Whether Past Campaigns Actually Moved the Needle

Marketing ROI is often fuzzy. Mo can show you exactly how a product's sales velocity changed during and after a promotional period — if you give it the dates. Tell Mo when your spend was heavy or when a campaign ran, and it will compare sales before, during, and after. If that marketing activity wasn't already factored into your forecast, you can also upload your marketing spend data so Mo has the full picture.

Use this to sharpen future briefs, report back to leadership with confidence, and identify which campaign types are actually driving incremental revenue.

**Try asking Mo:**

* *"How did \[product] sales perform between November 15 and December 10 compared to the 4 weeks before?"*
* *"Which products saw the biggest sales lift during our last promotional period?"*
* *"Did our Q4 campaign drive incremental sales, or were those products already trending up?"*

{% hint style="info" %}
If your marketing spend wasn't accounted for in the forecast, you can upload it directly to Mo so it can factor that into its analysis. See [Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo).
{% endhint %}

***

### 05 — Use Past Campaign Data to Plan the Next One

Once you know which campaigns moved the needle, use that same data to brief your next one. Tell Mo what worked — which products, which dates, which channels — and ask it whether the conditions are right to repeat it. You'll go into your next campaign with inventory confidence and a data-backed rationale.

**Try asking Mo:**

* *"Our last campaign ran November 15–December 10. Do we have enough stock of the same products to run a similar push next month?"*
* *"Which products performed best during our last promotional period that also have strong inventory right now?"*
* *"If we repeat our Q4 campaign in Q1, which SKUs are at risk of stocking out?"*

***

### 06 — Time Your Launches and Content Calendar to Real Demand Peaks

Mo has years of sales history across your full catalog. Ask it when demand for any product category historically peaks — and build your content calendar around that signal. Stop guessing when to push seasonal content; let the data tell you.

**Try asking Mo:**

* *"When is demand for \[category] historically highest throughout the year?"*
* *"Which SKUs should I prioritize in next month's content calendar based on inventory and sales velocity?"*
* *"Which products are trending up heading into Q3?"*

***

### 07 — Spot What's Trending Before Everyone Else Does

Some products gain momentum organically. Ask Mo what's growing fastest right now — and get ahead of it with content, paid media, or a dedicated campaign before the moment passes.

**Try asking Mo:**

* *"Which products are showing the strongest sales growth over the last 90 days?"*
* *"Which products are selling fast but running low on stock?"*
* *"Which new products have gained the most traction since launch?"*

***

### 08 — Understand Which Channels Are Driving Growth

Marketing spend should follow revenue momentum. Ask Mo which channels are driving the most growth for any given product — and you have the data to back where you focus next.

**Try asking Mo:**

* *"Which sales channel is driving the most revenue for \[product] right now?"*
* *"Compare channel performance for \[SKU] over the last 60 days."*

***

### 09 — Build a Performance Summary for Leadership

Get a rolled-up view of wins, risks, and trends — ready to bring into a board meeting or weekly sync, without needing to pull a report.

**Try asking Mo:**

* *"Give me a summary of our best and worst performing product lines this month."*
* *"What's our overall inventory health right now? Any critical issues I should flag?"*
* *"Which products are trending up heading into next quarter?"*

***

## Quick Win Prompts — Start Here

Copy any of these directly into Mo to get your first result in under 60 seconds.

| Goal                       | Prompt                                                                            |
| -------------------------- | --------------------------------------------------------------------------------- |
| Find your hero products    | *"What are my top 10 best-selling products this quarter?"*                        |
| Build a clearance campaign | *"Which products have been sitting in inventory the longest?"*                    |
| Pre-launch inventory check | *"Do we have enough stock of \[SKU] to support a 2–3x demand spike next month?"*  |
| Measure campaign ROI       | *"How did \[product] sales compare in the 4 weeks before vs. after \[campaign]?"* |
| Time your campaign         | *"When is demand for \[category] historically highest throughout the year?"*      |
| Spot trending products     | *"Which products are showing the strongest sales growth over the last 90 days?"*  |
| Find what needs a push     | *"Which products have the lowest sell-through rate across all channels?"*         |
| Channel performance        | *"Which channel is driving the most revenue for \[product] right now?"*           |

***

## How to Get Your Team Started

You don't need to understand the full Moselle platform to get value from Mo. Here's the simplest path:

{% stepper %}
{% step %}

### Log In

Ask your operations lead or Moselle admin to add you as a Mo user. You'll get an invite to access the platform.
{% endstep %}

{% step %}

### Go to Ask Mo

Click **Ask Mo** in the left sidebar. You'll land on the Mo chat page.
{% endstep %}

{% step %}

### Start with a Quick Win Prompt

Pick one from the table above that's relevant to what you're working on right now. Paste it in, hit send, and see what Mo surfaces.
{% endstep %}

{% step %}

### Dig Deeper

Follow the answer with a more specific question. Mo can filter by channel, date range, product category, or individual SKU. Just ask.
{% endstep %}

{% step %}

### Save Your Best Prompts

Found a prompt you want to reuse? Click the star icon on any message to save it to your Favourites. It'll be waiting on your Mo home screen every time you log in.
{% endstep %}
{% endstepper %}

***

## Frequently Asked Questions

### Do I need to learn Moselle before I can use Mo?

**No.** Mo is designed for plain-language questions. If you can describe what you want to know, Mo can surface it — no platform training required.

### What data does Mo have access to?

**Mo can see** your full sales history, current inventory levels across all warehouses, open purchase orders, and connected sales channel data. It cannot access data from tools outside of Moselle.

### What if Mo says it doesn't have access to something?

**That's a data setup cue.** Check with your ops lead about which channels are connected and whether the relevant data is syncing. The more complete your data setup, the more useful Mo becomes for marketing use cases.

### Can I save prompts I want to reuse?

**Yes.** Click the star icon on any Mo response to save that prompt to your Favourites. It will appear on your Mo home screen every time you log in.

### How specific should my questions be?

**The more specific, the better.** Instead of *"how are sales?"*, try *"how are sales of our top 5 SKUs compared to this time last month?"* Mo works best when you give it context like a product name, date range, or channel.

***

## Troubleshooting

| Problem                                     | Solution                                                                                 | Time to Fix |
| ------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------- |
| Mo says it can't find a product             | Check the SKU name matches exactly how it appears in your catalog                        | 1 minute    |
| Data looks outdated                         | Check that your sales channel integration is actively syncing in Settings > Integrations | 5 minutes   |
| Mo can't answer a channel-specific question | Verify that channel is connected — ask your ops lead if unsure                           | 5 minutes   |
| Can't access Ask Mo in the sidebar          | Your account may not have Mo enabled — contact your Moselle admin                        | 2 minutes   |

***

## Want to Go Deeper?

Once you're comfortable with the quick win prompts, here are a few ways to go further:

* **Campaign attribution** — Ask Mo to compare sales performance for a specific SKU or category across any two time periods you define.
* **Seasonal planning** — Ask Mo to show demand curves for your top categories across the full calendar year.
* **Launch readiness** — Before any new product launch, ask Mo about inventory coverage and whether supply is aligned with your launch timeline.
* **Bundle strategy** — Ask Mo which products are frequently purchased together and use that to brief your bundle or gift set strategy.

***

## Related Guides

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}

{% content-ref url="/pages/Dlc8GAJGV7FQH8Q9j9gA" %}
[Mo Custom Reports](/analytics/reporting/mo-reports/mo-custom-reports)
{% endcontent-ref %}

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}


# Onboarding

A five-week hands-on onboarding program that takes you from initial setup to a live forecast, a configured replenishment plan, and full platform independence.

Welcome to Moselle. This section walks you through everything that happens from the moment your engagement begins to the moment you're fully live and operating independently on the platform.

Onboarding is structured as a five-week program designed to be hands-on, high-touch, and built around your business — not a generic walkthrough. By the end, you'll have a live forecast, a configured replenishment plan, and a clear understanding of how to use Mo, your AI inventory planning assistant, every day.

***

## Before Week 1 — Setup & Preparation

Before your first onboarding call, the Moselle team works in the background to make sure Week 1 starts clean and productive.

**The CX team will:**

* Review your integration landscape and identify which connectors apply to your business (Shopify, Amazon, SPS Commerce, QuickBooks Online, Fulfil, NetSuite, and others)
* Pre-configure your channels and add any known warehouses based on intake information
* Complete a backfill of your historical sales data — clean historical data is critical for accurate forecasting from day one

{% hint style="info" %}
This prep work is completed 1–2 business days before your first onboarding call.
{% endhint %}

***

## Week 1 — Admin Setup & Team Introduction

Week 1 is about foundations: get the team connected, understand the business, and activate the account.

**Team & Account Setup**

* Meet your CSM and establish points of contact
* Discovery session to understand your business, key SKUs, channels, and pain points
* Enable and configure integrations: Shopify, Amazon, SPS Commerce, QBO, Fulfil, NetSuite, and any additional ERPs
* Invite your team members to the platform and configure accounts and permissions
* Define KPIs for onboarding completion and align on 3, 6, and 12-month goals

**Reporting & Communication**

* Learn how to send retail sell-through reports to your dedicated `@[yourcompany].moselle.io` inbox (if applicable)
* Configure your channels and warehouses within the platform
* Set a recurring cadence call schedule

### Introducing Mo

Mo is Moselle's AI inventory planning assistant. Think of it as having a dedicated supply chain analyst available 24/7 who knows your entire business inside and out.

{% hint style="warning" %}
**Note:** At this stage, live inventory and SKU data from integrations will not yet be loaded. Historical sales data may have been backfilled during pre-onboarding prep, but real-time data requires integrations to be activated first (done later in Week 1). The prompts below are designed to show you how Mo thinks and communicates — so you're ready to hit the ground running the moment your data goes live.
{% endhint %}

**First Call Demo Prompts — No Data Required**

| Prompt                                                                                        | Why It Works                                                                                                                   |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `What data do you need from me to build an accurate demand forecast?`                         | Mo explains the inputs it uses — sales history, inventory, POs, and more — setting clear expectations and building confidence. |
| `What does a healthy inventory coverage report look like, and what should I be watching for?` | Mo walks through what "good" looks like, teaching you the framework and language you'll use in Moselle from day one.           |
| `Once my data is loaded, what's the first report I should run?`                               | Mo builds anticipation and gives you a concrete next step — a natural bridge to what comes after Week 1.                       |

**Day-After Prompts — Once Live Integration Data is Loaded**

These prompts are sent to you after Week 1 integrations are configured, as a starting point to explore on your own.

| Prompt                                                                                                           | What Mo Returns                                                                                                           |
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `Which of my SKUs are at risk of stockout in the next 60 days based on my current inventory and sales velocity?` | Mo cross-references live inventory against recent sales velocity to surface which SKUs need attention, ranked by urgency. |
| `Based on my last 90 days of sales, which SKUs should I prioritize for my next purchase order?`                  | Mo analyzes 90-day sell-through, factors in current stock and lead times, and returns a prioritized reorder list.         |

***

## Week 2 — Platform Training & First Forecast

Week 2 shifts from setup to empowerment. Your CSM leads a live guided walkthrough of the platform while you follow along on your own account in real time.

**Forecasting Fundamentals**

* Walk through building your first forecast end-to-end
* Learn key features: duplicating a forecast, locking a forecast, adjusting time frames, and grouping by channels, SKUs, product line, and product type
* View projections for past months and current sales by unit
* Review 30 / 60 / 90-day sales velocity reporting
* Interpret your first real forecast results against actuals

### Mo Guidelines — What Your Demand Planner Needs to Know

Before Mo can produce a truly accurate forecast, it needs context that lives in your head — not just your data. Your CSM will walk through the following with you and show how each input can be fed directly into Mo to sharpen accuracy.

| Business Context                                                                                         | Example Mo Prompt                                                                                                                                                 |
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Marketing Calendar** — Upcoming promotions, campaigns, or seasonal pushes                              | `"We have a 20% off sitewide sale running in 3 weeks. Adjust my 60-day forecast for SKUs in the [category] collection to reflect a 30% demand lift."`             |
| **Seasonality** — Predictable seasonal patterns, peaks, and troughs                                      | `"Based on last year's data, which SKUs have the strongest seasonal demand in Q4 and by how much does velocity typically increase?"`                              |
| **Out-of-Stock Events** — Periods where a SKU couldn't sell and shows artificially low demand            | `"SKU [X] was out of stock from [date] to [date]. Exclude that period from the baseline and use surrounding weeks to fill the gap."`                              |
| **Phased-Out SKUs** — Products being discontinued or wound down                                          | `"Mark SKU [X] as end-of-life. Stop generating reorder recommendations for it and flag when remaining inventory is projected to clear."`                          |
| **New Launches** — New SKUs with no sales history                                                        | `"We're launching [new SKU] next month. Use [existing SKU] as a comparable and build a launch forecast based on its first 90-day sell-through."`                  |
| **Promotional History** — Past discounts or bundles that caused demand spikes                            | `"SKU [X] had a BOGO promotion in [month] that inflated sales by roughly 40%. Remove that spike from the baseline so it doesn't skew the forecast."`              |
| **Macro & External Factors** — Competitor stockouts, supply chain disruptions, or one-time demand shifts | `"In [month], a competitor went out of stock and we saw a 50% demand spike on SKU [X]. Flag that as a one-time event and exclude it from the forward forecast."`  |
| **Replenishment Lead Time Changes** — Supplier lead times that have shifted                              | `"Our lead time for [supplier] has increased from 6 weeks to 10 weeks. Update all reorder point calculations for affected SKUs."`                                 |
| **Price Changes Affecting Velocity** — Significant price increases or decreases                          | `"We increased the price of SKU [X] by 25% in [month]. Treat pre- and post-change velocity as separate demand periods and forecast using post-change data only."` |

### Critical Next Step — Validation

Before moving forward, you should:

1. Create your first forecast and verify that sales data, inventory levels, and projections are accurate across your channels
2. Explore the platform independently using what was covered in the Week 2 call
3. Confirm everything reflects reality — does the data match what you know about your business?

{% hint style="warning" %}
Ideally, validation takes one week. If inconsistencies are found, onboarding will be paused until they are resolved. Accurate sales data is the foundation everything else is built on.
{% endhint %}

**If something looks off**, notify the Moselle team. During validation:

* The CX team will meet with you to address issues immediately once identified, or
* You can send supporting documentation for the team to investigate — note this may take additional time

The CX team may request a raw sales data export to dig deeper.

***

## Week 3 — First Review & Validation

Week 3 flips the dynamic. You present your forecast back to your CSM — validating your understanding and surfacing any gaps before you go independent.

**Client-Led Forecast Review**

* You walk your CSM through your first completed forecast
* CSM reviews for accuracy, methodology, and any misconfigurations
* Identify and resolve any gaps before you move to self-serve
* Confirm all integrations are syncing correctly and data looks as expected

**Optimization & Next Steps**

* Walk through any adjustments or refinements to the forecast together
* Review Mo usage — confirm you're asking the right questions and interpreting outputs correctly
* Set expectations for ongoing cadence calls and self-serve workflows post-onboarding

***

## Week 4 — Planning: Signal to Execution

By Week 4, your forecast should be solid. Now it's time to act on it.

The forecast tells you what demand looks like. Mo helps you interpret it and catch issues. The plan is the bridge from signal to execution — this is where you take action.

### Before the Call — Client Prep Required

{% hint style="info" %}
Send your MOQ (Minimum Order Quantities) and lead time data to your CSM ahead of this call. Having this ready allows the CSM to layer your real constraints into the demo, making it immediately relevant to your actual business.
{% endhint %}

**Planning Demo**

Your CSM will walk you through the Planning module:

* How the forecast scenario feeds directly into the plan — demand signal drives the buy schedule
* How Moselle flags in real time whether there's enough inventory to cover the plan window
* Exactly what you're short on and when the shortage will hit — the moment to take action
* How MOQ and lead time constraints shape what's actually executable
* How to add and manage Purchase Orders (POs) directly within the platform
* How open POs factor into available inventory and coverage calculations

At the end of this call, you will have been through the full Moselle platform — forecasting, inventory, Mo, and planning.

***

## Week 5 — Final Sign-Off & Onboarding Close-Out

Week 5 is the formal close of your onboarding engagement. A focused session to confirm you're fully set up, confident, and ready to operate independently.

**Final Review**

* Confirm all platform modules are configured and functioning: forecast, inventory, replenishment plan, POs, and integrations
* Verify your team has the correct permissions and knows who to contact for support
* Final Mo check-in — are you using it confidently? Any outstanding questions?

**Onboarding Sign-Off**

* Formally close out the onboarding engagement
* Recap everything covered across the five-week program
* Transition to the ongoing CS cadence: recurring calls, Slack support, and QBR schedule

{% hint style="success" %}
You're now live and fully operational on Moselle.
{% endhint %}

***

## FAQ — Evaluating & Getting Started with Moselle

Answers to the questions prospects and new customers ask most.

<details>

<summary>Is there a dedicated Customer Success Manager for onboarding?</summary>

Yes. Every Moselle client is assigned a dedicated CSM from day one. Your CSM is your primary point of contact throughout the entire onboarding program and beyond.

</details>

<details>

<summary>Do you have a native integration with my ERP and sales channels?</summary>

Moselle has native integrations with the platforms most commonly used by consumer brands, including Shopify, Amazon, QuickBooks Online (QBO), and NetSuite — each with self-service setup guides. Integrations such as SPS Commerce and Fulfil are also supported but require CSM-assisted configuration rather than self-service setup. If you're running a different ERP or channel stack, your CSM will review your integration landscape during pre-onboarding prep and confirm what's supported before your first call.

</details>

<details>

<summary>How is historical sales data loaded — automatically or via import?</summary>

For supported integrations, historical sales data is backfilled automatically as part of the pre-onboarding setup — completed before your first call so the platform is ready to work from day one. In cases where a direct integration isn't available, your CSM will guide you through a structured data import process to ensure your history is loaded accurately.

</details>

<details>

<summary>What does "going live" look like — what's the first meaningful output?</summary>

Going live means having a validated forecast that reflects your real business. By Week 2, you'll have built your first forecast end-to-end with your CSM. By Week 3, you'll have reviewed and validated it against actuals. By Week 4, that forecast is driving your replenishment plan — surfacing at-risk inventory, shaping PO decisions, and giving you a clear line from demand signal to execution. The first meaningful output is a forecast you trust, built on your data, that you can act on.

</details>

<details>

<summary>What support is available after onboarding closes?</summary>

Onboarding graduation isn't the end — it's the beginning of your ongoing relationship with Moselle. After onboarding, you transition to a regular CS cadence that includes recurring check-in calls, dedicated Slack support for day-to-day questions, and a QBR (Quarterly Business Review) schedule to align on performance and platform evolution. Mo is also available 24/7 as your always-on planning assistant for anything that comes up between calls.

</details>

***

## What's Next?

Explore the platform setup guides to get your integrations and data connected:

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}

{% content-ref url="/pages/DXYmIM9JJ1Yj8OwPGYyB" %}
[How Your Data Works in Moselle](/getting-started/onboarding/how-your-data-works-in-moselle)
{% endcontent-ref %}

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}

{% content-ref url="/pages/MSPVU3BYQtL9A3tpxneV" %}
[Manual Data Uploads](/getting-started/onboarding/manual-data-uploads)
{% endcontent-ref %}

Or jump straight into learning about Mo:

{% content-ref url="/pages/sb2SV5PNVIJy5jUlhar2" %}
[Meet Mo](/mo/meet-mo)
{% endcontent-ref %}


# Setup Integrations

Connect Shopify, Amazon, NetSuite, QuickBooks Online, Cin7, ShipBob, and 50+ platforms to Moselle for automated sales, inventory, and purchase order syncing.

{% hint style="info" %}
**Quick Answer:** Moselle connects directly to your e-commerce channels, ERPs, accounting platforms, and fulfillment partners — automatically pulling sales history, live inventory levels, and purchase order data so your forecasts and replenishment plans are always based on current information. Most self-serve integrations are live within 15 minutes.
{% endhint %}

## What Does Connecting an Integration Actually Do?

**A Moselle integration** is a live data connection between your existing platforms and Moselle's planning engine. Once connected, Moselle pulls sales, inventory, and order data automatically — no manual CSV exports, no spreadsheet reconciliation, no lag.

The data flows directly into your forecasts, replenishment plans, and Mo's AI recommendations. The quality of your planning is directly tied to the completeness of your connected data — a gap in any system creates a blind spot in your plan.

**What connecting integrations unlocks:**

* Sales history at the SKU and variant level, across all channels
* Live inventory positions across warehouses, fulfillment centers, and 3PL locations
* Open and confirmed purchase orders showing incoming stock
* Financial data for landed cost and cash flow planning

Without connected integrations, planning requires manual data entry — introducing lag, errors, and the spreadsheet overhead that inventory planning software exists to eliminate.

***

## How to Connect an Integration

**Time required:** 5–15 minutes for self-serve integrations\
**Difficulty:** Beginner

1. Click your avatar in the top right corner
2. Select **Settings** from the dropdown menu
3. Click the **Integrations** tab
4. Select the integration you want to connect
5. Click **Connect** and follow the authentication prompts

Once connected, data begins syncing automatically. Initial imports typically complete within 24 hours.

### What You'll Need Before Connecting

Different platforms use different authentication methods. Check what type applies to your integration before you start:

| Auth Method                 | How It Works                                                                                    | Platforms That Use It              |
| --------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------- |
| **OAuth (one-click)**       | Moselle redirects you to the platform to authorize access — no keys to copy                     | Shopify, Amazon, QuickBooks Online |
| **API Key**                 | Generate a key in your platform's developer or integration settings, then paste it into Moselle | Most WMS, Cin7 Omni, NetSuite      |
| **Username + Password**     | Some platforms authenticate with your account login directly                                    | Varies by platform                 |
| **Account subdomain / URL** | Required alongside API key for hosted SaaS platforms (e.g., `yourcompany.logiwa.com`)           | Logiwa, many WMS platforms         |

{% hint style="info" %}
**Tip:** For API key integrations, locate your key before starting the connection flow in Moselle — the field will time out if left open too long. Keep the key in a temporary note or password manager until you've pasted it in.
{% endhint %}

***

## Which Platforms Does Moselle Integrate With?

### Which E-Commerce Platforms Does Moselle Integrate With?

Your e-commerce platform is where demand data lives — orders, sales history, and SKU-level data that Moselle uses to build forecasts. Connecting your storefront is typically the first integration to set up.

**What this connection provides:**

* Order and sales history used to calculate demand trends
* Current inventory levels at fulfillment locations
* Product and variant catalog data (SKUs, titles, product variants)
* Returns and cancellations (processed during nightly sync)

**Sync frequency:** Daily overnight (EST) for Shopify and Amazon. Varies by platform — see individual guides.

**Historical data on first sync:** Moselle pulls your full available sales history on first connect. For Shopify, this includes all historical orders. For Amazon, history availability depends on your Seller Central account age and Amazon's data retention.

| Platform                    | What It Connects                                          | Setup           |
| --------------------------- | --------------------------------------------------------- | --------------- |
| **Shopify**                 | DTC orders, variant-level sales history, inventory levels | Self-serve      |
| **Amazon (Seller Central)** | Amazon marketplace orders, FBA inventory levels           | Self-serve      |
| **TikTok Shop**             | Social commerce orders and sales data                     | Contact support |
| **Walmart**                 | Walmart marketplace demand                                | Contact support |
| **DuoYin**                  | Cross-border e-commerce channel                           | Contact support |
| **OrderDesk**               | Multi-store order management and routing                  | Contact support |

{% content-ref url="/pages/J9nXkyS9OkkihtUXSGRV" %}
[Shopify](/getting-started/onboarding/setup-integrations/shopify)
{% endcontent-ref %}

{% content-ref url="/pages/1OF9FZj844NLH0YVARlb" %}
[Amazon FBA](/getting-started/onboarding/setup-integrations/amazon-fba)
{% endcontent-ref %}

{% content-ref url="/pages/uCPX67YtKdQXUr0iWBCN" %}
[OrderDesk](/getting-started/onboarding/setup-integrations/order-desk)
{% endcontent-ref %}

***

### Which ERPs and Inventory Management Systems Does Moselle Integrate With?

ERP and operations integrations give Moselle access to your stock levels, purchase orders, and warehouse locations. Connecting your ERP means Moselle can pull live inventory positions and incoming PO data automatically — so your replenishment plans reflect what's actually on hand and what's already ordered.

**What this connection provides:**

* Stock on hand across all warehouse and branch locations
* Open and confirmed purchase orders (incoming stock quantities and ETAs)
* Sales order history by SKU and channel
* Branch transfers and inter-warehouse movements (where supported)
* Supplier and vendor data

**Sync frequency:** Daily. Some ERP integrations use a rolling lookback window (e.g., Cin7 Omni uses a 90-day lookback for efficiency). Contact <support@moselle.io> to request a historical re-sync if needed.

**Historical data on first sync:** Moselle pulls your full transaction history on initial setup. Depth of history available depends on your ERP's own data retention settings.

| Platform         | Type                                    | What It Connects                                                    |
| ---------------- | --------------------------------------- | ------------------------------------------------------------------- |
| **NetSuite**     | Mid-market ERP                          | Inventory, sales orders, purchase orders, locations, custom records |
| **Cin7 Omni**    | Multi-location inventory management     | Inventory, sales, purchase orders, branch transfers                 |
| **Cin7 Core**    | Inventory management for growing brands | Inventory and order management                                      |
| **Extensiv**     | Multi-warehouse and 3PL network         | Inventory across warehouse network                                  |
| **Finale**       | Cloud inventory management              | Inventory management for e-commerce                                 |
| **Unleashed**    | Manufacturing and wholesale IMS         | Manufacturing BOMs and inventory data                               |
| **Veeqo**        | Multichannel IMS                        | Inventory and order management                                      |
| **SkuVault**     | Warehouse management                    | Inventory accuracy and WMS data                                     |
| **Logiwa**       | Cloud WMS                               | High-volume DTC fulfillment inventory                               |
| **Logiwa IO**    | Next-gen fulfillment operations         | Fulfillment operations data                                         |
| **Deposco**      | Omnichannel WMS                         | Fulfillment and inventory data                                      |
| **SPS Commerce** | EDI and supply chain                    | EDI order and supply chain data                                     |
| **Zenventory**   | Inventory and order management          | Inventory and order data                                            |
| **Packiyo**      | WMS for e-commerce                      | Warehouse management data                                           |
| **Nimble**       | IMS for growing brands                  | Inventory data                                                      |
| **Mintsoft**     | 3PL and WMS                             | 3PL and warehouse data                                              |
| **Infoplus**     | WMS for 3PLs                            | 3PL and e-commerce inventory                                        |
| **Ongoing WMS**  | 3PL WMS                                 | 3PL and logistics data                                              |
| **Jazz Central** | Inventory and supply chain              | Inventory and supply chain data                                     |
| **Canary7**      | WMS for complex warehouses              | Complex warehouse operations                                        |
| **SkuSavvy**     | WMS for e-commerce                      | E-commerce warehouse data                                           |
| **Fulfil**       | E-commerce ERP                          | Order, inventory, and fulfillment data                              |
| **Xorosoft**     | Omnichannel ERP                         | Inventory, orders, and e-commerce operations                        |
| **Veracore**     | Fulfillment and WMS                     | Fulfillment and warehouse data                                      |

{% content-ref url="/pages/29eF8AdlBEKOD8ebbN0F" %}
[NetSuite](/getting-started/onboarding/setup-integrations/netsuite)
{% endcontent-ref %}

{% content-ref url="/pages/CXKwTGijLPqTIG3GkWus" %}
[Cin7 Omni](/getting-started/onboarding/setup-integrations/cin7-omni)
{% endcontent-ref %}

***

### Which Data Warehouses Does Moselle Integrate With?

If your sales, inventory, and order data already lives in a cloud data warehouse, Moselle can read it directly — no exports, no intermediate ETL. This is the right path when your team has already centralized data from multiple source systems into one warehouse.

**What this connection provides:**

* Direct read access to the sales, inventory, and order tables you choose
* Always-current data with no manual refresh
* A single connection in place of multiple per-platform integrations

**Sync frequency:** Daily.

**How it works:** Data warehouse connections are **read-only** and use a dedicated, least-privilege service account that Moselle can only use to `SELECT` from the specific schema you grant. Setup is **assisted** — it touches admin-level permissions in your warehouse, so the Moselle team works through it with you during onboarding.

**Cost:** Moselle runs on its own isolated, auto-suspending warehouse and adds no storage cost — typically $10–40/month in compute on a daily sync, and you can attach a resource monitor to cap it. See the Snowflake guide for details.

| Platform      | Type                 | Setup                                         |
| ------------- | -------------------- | --------------------------------------------- |
| **Snowflake** | Cloud data warehouse | Assisted — read-only, key-pair authentication |

{% content-ref url="/pages/YcDY96VjNcaEIKdBbDdA" %}
[Snowflake](/getting-started/onboarding/setup-integrations/snowflake)
{% endcontent-ref %}

***

### How Do I Connect a Warehouse Management System (WMS)?

WMS platforms track inventory movements at the physical warehouse level — receiving, picking, packing, shipping, and adjustments. Connecting your WMS gives Moselle accurate on-hand quantities that reflect what's actually in your facility right now, not what your ERP last recorded.

**What this connection provides:**

* Real-time stock on hand synced from your warehouse
* Inbound receipt and GRN confirmations
* Outbound shipment and pick data (platform-dependent)
* Inventory adjustment history for accuracy tracking

**What you'll need before connecting:**

Most WMS integrations authenticate via API key. Have the following ready before you start the connection flow in Moselle:

* [ ] **API key or access token** — generate this from your WMS under **Settings > Integrations**, **API**, or **Developer** (the label varies by platform)
* [ ] **Account subdomain or base URL** — for hosted SaaS platforms (e.g., `yourcompany.logiwa.com` or `app.skuvault.com`)
* [ ] **Username and password** — some platforms require this alongside or instead of an API key
* [ ] **Warehouse or location IDs** — if your WMS manages multiple sites, you may be asked to specify which locations to sync

{% hint style="warning" %}
**Where to find your API key:** In most WMS platforms, navigate to **Settings → Integrations** or **Settings → API Access** and generate a new key. Some platforms call it an **Access Token**, **Client Secret**, or **Integration Key** — all refer to the same thing. Copy the full key before leaving the page; most platforms only show it once.
{% endhint %}

**How to connect:**

{% stepper %}
{% step %}

### Generate your API key in your WMS

Log into your WMS platform and navigate to its integration or API settings. Generate a new API key scoped for read access. Copy the key and keep it available.
{% endstep %}

{% step %}

### Open the Integrations tab in Moselle

Click your **avatar** in the top right corner → **Settings** → **Integrations** tab. Find your WMS platform and click **Connect**.
{% endstep %}

{% step %}

### Enter your credentials

Paste your API key into the designated field. If your platform requires a subdomain or base URL, enter that as well. Click **Save** or **Connect**.
{% endstep %}

{% step %}

### Confirm warehouse locations

After connecting, Moselle may prompt you to map warehouse locations from your WMS to locations in Moselle. Confirm these mappings so inventory syncs to the right places.

{% hint style="success" %}
**Connected.** Moselle will begin an initial sync within a few minutes. Full inventory history typically imports within 24 hours.
{% endhint %}
{% endstep %}
{% endstepper %}

**Supported WMS platforms:**

| Platform        | Type                            | Setup                                |
| --------------- | ------------------------------- | ------------------------------------ |
| **SkuVault**    | Warehouse management            | Self-serve via API key               |
| **Logiwa**      | Cloud WMS — high-volume DTC     | Self-serve via API key + subdomain   |
| **Logiwa IO**   | Next-gen fulfillment operations | Contact support                      |
| **Deposco**     | Omnichannel WMS                 | Contact support                      |
| **Packiyo**     | WMS for e-commerce              | Self-serve via API key               |
| **Mintsoft**    | 3PL and WMS                     | Contact support                      |
| **Infoplus**    | WMS for 3PLs                    | Self-serve via API key               |
| **Ongoing WMS** | 3PL WMS                         | Self-serve via API key + account URL |
| **Canary7**     | WMS for complex warehouses      | Contact support                      |
| **SkuSavvy**    | WMS for e-commerce              | Self-serve via API key               |
| **ShipStream**  | WMS for 3PLs                    | Contact support                      |
| **Veracore**    | Fulfillment and WMS             | Contact support                      |

{% hint style="info" %}
**Don't see your WMS?** Many WMS platforms not listed above can still connect via a custom integration. Email <support@moselle.io> with your platform name and we'll confirm availability or timeline.
{% endhint %}

***

### Which Accounting Platforms Does Moselle Integrate With?

Accounting integrations pull invoice, revenue, and cost data needed for landed cost calculations, margin projections, and financial reporting inside Moselle. Connecting your accounting platform means Moselle automatically attributes revenue to the right SKUs — without manual reconciliation between systems.

**What this connection provides:**

* Invoice and revenue data mapped to individual products and SKUs
* COGS and cost of goods data for margin calculations
* Accounts payable data for cash flow planning
* SKU-level revenue attribution across sales channels

**Sync frequency:** Daily.

**What syncs specifically:** Moselle imports sales invoices and maps them to Products in your accounting system. For accurate SKU-level attribution, every product you sell needs a corresponding Product entry in your accounting platform. See the QuickBooks Online guide for setup details.

| Platform                  | Notes                                                           |
| ------------------------- | --------------------------------------------------------------- |
| **QuickBooks Online**     | SMB accounting; invoices, COGS, and AP data synced to SKU level |
| **QuickBooks Enterprise** | Advanced accounting for larger operations                       |
| **Xero**                  | International and multi-entity accounting                       |

{% content-ref url="/pages/vCskk8syIet4XHmjzr24" %}
[QuickBooks Online (QBO)](/getting-started/onboarding/setup-integrations/quickbooks-online-qbo)
{% endcontent-ref %}

{% content-ref url="/pages/nmmftmPwfc5j6j3gKruu" %}
[QuickBooks Enterprise](/getting-started/onboarding/setup-integrations/quickbooks-enterprise)
{% endcontent-ref %}

***

### Which Fulfillment and 3PL Platforms Does Moselle Integrate With?

Third-party logistics and fulfillment partners hold real-time inventory at their facilities. Without a direct connection, on-hand quantities are always out of date — creating blind spots in your replenishment plan. Connecting your 3PL means Moselle sees inventory where it actually lives, not where it was last manually counted.

**What this connection provides:**

* Real-time inventory quantities at each fulfillment center location
* Inbound shipment tracking (platform-dependent)
* Order and return data (platform-dependent)

**Sync frequency:** Daily. Real-time inventory visibility within the day depends on the 3PL platform's API capabilities.

| Platform                | Notes                                                       |
| ----------------------- | ----------------------------------------------------------- |
| **ShipBob**             | DTC fulfillment; real-time inventory at fulfillment centers |
| **ShipMonk**            | Tech-enabled 3PL for e-commerce brands                      |
| **ShipHero**            | WMS and fulfillment for DTC and wholesale                   |
| **ShipFusion**          | Fulfillment and WMS for growing brands                      |
| **ShipStation**         | Order management and carrier data                           |
| **ShipWire**            | Global fulfillment and inventory management                 |
| **ShipOffers**          | Fulfillment for direct response brands                      |
| **Stord**               | On-demand warehousing and fulfillment                       |
| **Flexport**            | International freight and logistics                         |
| **Flowspace**           | On-demand fulfillment network                               |
| **Fulfillment.com**     | Global fulfillment services                                 |
| **GoBolt**              | Sustainable fulfillment network                             |
| **MasonHub**            | Enterprise fulfillment for premium brands                   |
| **Whiplash**            | Fulfillment for e-commerce and retail                       |
| **DCL Logistics**       | Fulfillment for consumer electronics and tech               |
| **Smart Warehousing**   | Fulfillment and distribution services                       |
| **NFI Industries**      | Third-party logistics and supply chain                      |
| **Byrd Fulfillment**    | European e-commerce fulfillment                             |
| **AMWare**              | Fulfillment and warehousing                                 |
| **AMS Fulfillment**     | Pick, pack, and ship services                               |
| **The Fulfillment Lab** | Customized fulfillment solutions                            |
| **Elite Ops**           | Fulfillment for high-growth brands                          |
| **Teapplix**            | Order management and fulfillment automation                 |
| **ShipStream**          | WMS for 3PLs                                                |
| **RJW Logistics**       | Third-party logistics                                       |

***

### Which Marketing and Advertising Platforms Does Moselle Integrate With?

Your advertising drives demand — but without a connection, Moselle can't see when a sales spike was fueled by a campaign versus organic growth. Connecting your ad platform gives Mo visibility into advertising activity alongside sales, so it can explain what's driving a product and keep promotions from skewing your forecasts.

**What this connection provides:**

* Advertising activity and performance from your connected ad account
* Context for Mo to link demand spikes to live campaigns
* Awareness of promotions so forecasts don't over- or under-react to marketing-driven demand

**How it works:** Connecting Meta is **self-serve** — a one-click authorization that redirects you to Facebook to grant read-only access to your ad account. The connection never changes or spends against your campaigns.

| Platform                        | What It Connects                                                  | Setup                                                      |
| ------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------- |
| **Meta (Facebook & Instagram)** | Ad account activity and performance across Facebook and Instagram | Self-serve — one-click authorization                       |
| **Google Ads**                  | Search and display advertising activity                           | Coming soon — [contact support](mailto:support@moselle.io) |

{% content-ref url="/pages/rypLzifD5cg6nsfjvnFG" %}
[Meta Ads (Facebook & Instagram)](/getting-started/onboarding/setup-integrations/meta-ads)
{% endcontent-ref %}

***

## What Data Syncs, Specifically?

| Category                                          | Orders & Sales History | Live Inventory Levels | SKUs & Variants | Purchase Orders | COGS & Financials |
| ------------------------------------------------- | :--------------------: | :-------------------: | :-------------: | :-------------: | :---------------: |
| E-Commerce (Shopify, Amazon, TikTok Shop)         |            ✓           |           ✓           |        ✓        |        —        |         —         |
| ERP / Operations (NetSuite, Cin7 Omni, Cin7 Core) |            ✓           |           ✓           |        ✓        |        ✓        |      Partial      |
| WMS (SkuVault, Logiwa, Packiyo, Infoplus)         |            —           |           ✓           |        ✓        |        —        |         —         |
| Accounting (QuickBooks Online, Xero)              |            ✓           |           —           |        ✓        |        —        |         ✓         |
| Fulfillment / 3PL (ShipBob, ShipMonk, ShipHero)   |         Varies         |           ✓           |        ✓        |        —        |         —         |
| Data Warehouse (Snowflake)                        |         Varies         |         Varies        |      Varies     |      Varies     |       Varies      |

***

## Linking Products After Connecting

After connecting an integration, Moselle links external listings to your product catalog:

* **Automatic linking** — Products with matching SKUs link automatically
* **Manual linking** — Non-matching SKUs require manual linking in the Catalog

Review unlinked listings regularly to ensure complete data coverage. Gaps in linking mean gaps in your forecast data.

***

## Don't See Your Platform?

If your platform isn't listed, there are two paths forward:

1. **Manual CSV uploads** — Moselle supports CSV uploads for sales data, inventory levels, purchase orders, and catalog data. This keeps planning running while a native integration is pending or in development.
2. **Contact the team** — New integrations are added regularly. Email <support@moselle.io> to request your platform, check the integration roadmap, or discuss a custom connection.

{% content-ref url="/pages/MSPVU3BYQtL9A3tpxneV" %}
[Manual Data Uploads](/getting-started/onboarding/manual-data-uploads)
{% endcontent-ref %}

***

## Frequently Asked Questions

### How long does integration take?

**Self-serve integrations** (Shopify, Amazon, QuickBooks Online, and select WMS platforms like SkuVault, Logiwa, Packiyo, and Infoplus) take 5–15 minutes to connect. Data begins syncing immediately and the initial full import typically completes within 24 hours.

**Assisted integrations** (NetSuite, Cin7 Omni, OrderDesk, and most 3PL and enterprise WMS platforms) require coordination with the Moselle support team to configure data mapping and verify sync settings. Plan for 1–3 business days from initial contact to confirmed data flow.

### What do I need to connect my WMS?

Most WMS platforms connect via an **API key** — a credential you generate from your WMS's settings page, then paste into Moselle. Some platforms also require your **account subdomain** (e.g., `yourcompany.logiwa.com`) or a **username and password** alongside the key. See the [WMS setup steps above](#how-do-i-connect-a-warehouse-management-system-wms) for the full checklist.

### Can I connect multiple stores or accounts?

**Yes.** Moselle supports multiple connections of the same type within a single workspace. You can connect multiple Shopify stores, multiple Amazon Seller Central accounts across different marketplaces, and multiple instances of other platforms. Each store or account maps to a distinct Sales Channel in Moselle, so data from each source is tracked separately.

### Why can't I find my integration on this list?

See [Don't See Your Platform?](#dont-see-your-platform) above for your options, including manual CSV uploads and requesting a new integration.

### How secure are Moselle's integrations?

Moselle connects to third-party platforms using each provider's official secure authentication methods — the same industry-standard approach used by enterprise software integrations. Moselle does not store your platform login credentials. You can revoke Moselle's access at any time from the connected platform's settings.

### Does Moselle write data back to connected platforms?

Currently, Moselle integrations are **read-only**. Data flows from your connected platforms into Moselle — Moselle does not create, update, or delete records in your source systems.

### What if I need historical data from before the integration was connected?

Moselle pulls your full available history on first sync. If you need data older than what was imported — or if you suspect a gap — contact <support@moselle.io> to request a historical re-sync. Availability depends on the source platform's own data retention limits.

***

## Related Guides

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}

{% content-ref url="/pages/CplT1KkggteOjkCnpCqD" %}
[Catalog](/operations/catalog)
{% endcontent-ref %}

{% content-ref url="/pages/Zr13jISmmmessAspTnsc" %}
[Inventory](/operations/inventory)
{% endcontent-ref %}


# Shopify

Connect Shopify to Moselle to sync sales, inventory, and product data for demand forecasting and inventory planning.

### Overview

The Shopify integration imports your sales history, current inventory levels, and product catalog into Moselle. Once connected, data syncs automatically on a daily basis.

***

### Connect Shopify

1. Log in to Moselle and click your avatar in the top right corner
2. Select **Settings** from the dropdown menu
3. Click the **Integrations** tab
4. Select **Shopify** and click **Connect**
5. You will be redirected to Shopify to install the Moselle app
6. Click **Install** on the Moselle app page
7. Enter your Shopify login credentials

Once connected, your sales and inventory begin importing and appear on the Catalog page.

#### Multiple Stores

You can connect multiple Shopify stores to a single Moselle account. Repeat the connection process for each store.

***

### Data Sync Details

**Sync Frequency** — Shopify data syncs daily overnight (EST).

**Sales Attribution** — By default, Moselle uses **gross sales**. Your administrator can switch to **net sales** if needed. See [Revenue Calculation Methods](#revenue-calculation-methods) below for details.

**SKU Matching** — Shopify listings automatically link to Moselle items when SKUs match exactly. Non-matching SKUs require manual linking.

***

### App Permissions & Legacy Installs

If you installed the Moselle app on Shopify before **mid-2025**, your integration might lack the specific permissions required for newer inventory features. This can cause inventory syncs to fail even if sales data is updating correctly.

**The Fix:** To resolve this, you must **approve the updated permissions**:

1. Go to **Settings > Integrations** in Moselle.
2. Locate the Shopify integration and click **Connect** again.
3. Shopify will show a screen with the updated permissions. Click **Install App** or **Update App** to grant the new inventory scopes required.

***

### Troubleshooting

| Issue                                     | Cause                                                    | Solution                                                                                                          |
| ----------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Sales numbers don't match Shopify exactly | Timezone differences and gross vs. net sales definitions | Expected behavior — see [Revenue Calculation Methods](#revenue-calculation-methods) above to align your settings. |
| Listings not linking automatically        | SKUs don't match between Shopify and Moselle             | Manually link listings or update SKUs to match                                                                    |
| **Inventory not syncing**                 | Missing permissions (Legacy Install)                     | Click **Connect** again in Settings to approve updated permissions (see above).                                   |
| Missing historical sales data             | Shopify listing was deleted                              | Contact Moselle support — deleted listings lose variant IDs and require manual repair                             |

***

### Revenue Calculation Methods

{% hint style="info" %}
**Quick Answer:** Moselle supports two Shopify revenue methods — **gross** (default, before discounts) and **net** (after discounts). Your administrator can switch between them at any time.
{% endhint %}

#### Gross Revenue (Default)

**Gross revenue** is the total sales amount before any discounts are applied. This is the default setting for all Shopify stores connected to Moselle.

**Example:** A customer buys 2 items at $50 each with a 20% discount code. Gross revenue is **$100** (the full price before the discount).

This method is ideal if you want to track total potential revenue before promotional activity.

#### Net Revenue

**Net revenue** is the sales amount after all discounts are subtracted, including:

* **Line-level discounts** (automatic discounts, product-specific promotions)
* **Order-level discounts** (checkout promo codes)

**Example:** Using the same scenario above, net revenue is **$80** (after the $20 discount).

#### Why It Matters

The revenue method you choose affects:

* **Historical sales data** displayed across Moselle
* **Forecast revenue projections** used for planning
* **Comparison with Shopify reports** — match Moselle to Shopify's "Gross Sales" or "Net Sales" metrics

#### How to Change the Revenue Method

1. Contact your Moselle administrator or support team
2. Specify which Shopify store(s) need the change
3. After configuration, a backfill recalculates your historical sales data automatically

{% hint style="info" %}
**Note:** After changing the revenue method, historical sales numbers are recalculated to ensure consistency across all your data.
{% endhint %}

#### Matching Shopify Reports

| Moselle Setting         | Compare With in Shopify                   |
| ----------------------- | ----------------------------------------- |
| Gross revenue (default) | **Gross Sales** metric                    |
| Net revenue             | **Net Sales** or **Product Sales** metric |

Minor variances may occur due to timezone differences between Moselle and Shopify.

***

### Important

**Do not delete Shopify listings.** Deleted listings lose their variant IDs, which breaks historical sales and inventory data. If listings are deleted, contact Moselle support to repair the affected data.


# Amazon FBA

Connect your Amazon Seller Central account to Moselle to sync FBA inventory and sales data for demand forecasting.

### Overview

The Amazon FBA integration allows you to sync sales history and current FBA inventory levels directly into Moselle. This enables accurate demand forecasting and inventory planning for your Amazon marketplaces.

***

### Supported Marketplaces

Moselle supports the following Amazon marketplaces:

* **North America:** United States, Canada, Mexico
* **Europe:** United Kingdom, Germany, France, Spain, Italy
* **Asia-Pacific:** Japan, Australia

### Enabling All Marketplaces

By default, Moselle may only sync data from your primary marketplace (typically the US). If you sell across multiple regions (e.g., North America and Europe) or multiple countries within a region using the same Seller Central account, you can enable syncing for all supported marketplaces.

{% hint style="info" %}
**How to Enable:** To sync data from all your active marketplaces, please contact **Customer Experience (CX)** via email at <support@moselle.io>. This is a backend setting that must be enabled by our team.
{% endhint %}

***

### Connect Amazon

1. Log in to Moselle and click your avatar in the top right corner
2. Select **Settings** from the dropdown menu
3. Click the **Integrations** tab
4. Select **Amazon** and click **Connect**
5. Select your **Marketplace** region
6. You will be redirected to Amazon Seller Central to authorize Moselle
7. Click **Confirm** to grant access

Once connected, your sales and FBA inventory data will begin importing automatically.

***

### Data Sync Details

**Sync Frequency** — Amazon data syncs daily overnight (EST).

**FBA Inventory** — Moselle imports "Fulfillable" inventory quantities from Amazon FBA. Unfulfillable or reserved inventory is not currently included in the available stock count.

**Sales History** — Moselle imports historical order data to build your demand forecast. Returns and cancellations are processed during the nightly sync.

***

### Troubleshooting

| Issue                      | Solution                                                                                                                           |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Marketplace not listed** | Ensure you are selling in one of the [supported marketplaces](#supported-marketplaces). Contact support if your region is missing. |
| **Authentication failed**  | Verify you are logged into the correct Amazon Seller Central account that matches the selected marketplace.                        |
| **Data not appearing**     | Initial sync can take up to 24 hours. Check back the following day.                                                                |


# QuickBooks Online (QBO)

Connect QuickBooks Online (QBO) to Moselle to sync sales data, track revenue by SKU, and align your inventory planning with your accounting system.

### Overview

The QuickBooks Online integration pulls sales and invoice data into Moselle, enabling accurate demand forecasting and financial reporting. Once connected, Moselle automatically syncs your QBO transactions and attributes revenue to the correct products.

***

### Connect QuickBooks Online

1. Navigate to **Settings → Integrations**
2. Select the **QuickBooks Online** widget
3. Click **Connect** — you will be redirected to the QuickBooks login page
4. Sign in with your QuickBooks credentials
5. Authorize Moselle to access your account

Once authenticated, Moselle begins syncing your sales and invoice data automatically.

***

### Setting Up QBO Products

For Moselle to track sales accurately, every product you sell must have a corresponding Product entry in QuickBooks Online.

#### Why This Matters

Moselle links QBO Products to your SKUs to attribute revenue correctly. Without proper product setup:

* New SKUs won't be detected
* Sales data may be misattributed
* Reporting and forecasting will be incomplete

When invoices use generic descriptions instead of linked products, Mo attempts to match sales to the correct SKUs. While this works in many cases, it isn't reliable when product names are similar or descriptions are vague.

#### Best Practices

**Create a QBO Product for every SKU**

Each product in your catalog should have a corresponding entry in QuickBooks Online, including:

* Products sold across different channels (DTC, Amazon, wholesale)
* Bundles and kits tracked separately from components
* Retailer-specific products requiring separate tracking

**Use QBO Products on all invoices**

When creating invoices, select the specific Product from your list rather than typing a generic description. This ensures sales are attributed to the correct SKU in Moselle.

**Review unlinked listings regularly**

Check your Moselle dashboard for products that aren't being tracked. Verify that a matching QBO Product exists and is linked correctly.

***

### Troubleshooting

| Issue                        | Cause                                     | Solution                                         |
| ---------------------------- | ----------------------------------------- | ------------------------------------------------ |
| SKU not appearing in Moselle | No QBO Product exists                     | Create the product in QBO and link it in Moselle |
| Sales under wrong product    | Invoice uses generic item                 | Update invoice to use the correct QBO Product    |
| Cannot link multiple SKUs    | Single QBO Product used for multiple SKUs | Create separate QBO Products for each SKU        |


# QuickBooks Enterprise

Connect QuickBooks Enterprise to Moselle using the QuickBooks Web Connector. Step-by-step setup with the .QWC file and password token — about 15 minutes.

{% hint style="info" %}
**Quick Answer:** QuickBooks Enterprise connects to Moselle through the **QuickBooks Web Connector**, a free desktop app from Intuit. You install the Web Connector, add the `.QWC` file Moselle provides, enter the password token from our team, and start the sync. Setup takes about 15 minutes and runs on the Windows machine where QuickBooks Enterprise is installed.
{% endhint %}

## What this connection does

The QuickBooks Enterprise integration syncs your sales, invoice, and financial data into Moselle so your forecasts and replenishment plans stay aligned with your accounting system. Because QuickBooks Enterprise is desktop software, the connection runs through the **QuickBooks Web Connector** — a small Intuit application that securely passes data between your company file and Moselle on a schedule you control.

## What you'll need

* [ ] **QuickBooks Enterprise** installed, with the company file you want to sync
* [ ] A **Windows machine** where QuickBooks Enterprise runs (the Web Connector is Windows-only)
* [ ] **Admin rights** on that machine to install the Web Connector
* [ ] The **`.QWC` file** Moselle provides during onboarding
* [ ] The **password token** Moselle provides during onboarding

{% hint style="warning" %}
Moselle's team will send you the `.QWC` file and password token directly. Keep the password token handy — you'll paste it into the Web Connector during setup.
{% endhint %}

## Video walkthrough

{% hint style="info" %}
A full video walkthrough of connecting QuickBooks Enterprise to Moselle is available.
{% endhint %}

## Set it up

{% stepper %}
{% step %}

### Install the QuickBooks Web Connector

1. Download the Web Connector installer.
2. Extract all files from the installer `.zip` folder.
3. Open the extracted folder and find **`QBWebConnectorInstaller.exe`**.
4. **Right-click** the file and choose **Run as administrator** to install it.

The Web Connector is the program you'll use to connect QuickBooks Enterprise to Moselle.
{% endstep %}

{% step %}

### Open QuickBooks and the Web Connector

Before connecting, make sure all three are open on the same machine:

* The **QuickBooks Web Connector**
* **QuickBooks Enterprise**
* The **company file** you want to sync with Moselle
  {% endstep %}

{% step %}

### Add the Moselle application

In the QuickBooks Web Connector window, click **Add an Application** and select the **`.QWC` file** Moselle provided. Click **Open**.

When the **Authorize New Web Service** window appears, confirm the application name is **Moselle**, then click **OK**.

![The Authorize New Web Service dialog showing Moselle as the requesting application](/files/ECTOLunFYfj9Mpx6Sqb0)
{% endstep %}

{% step %}

### Enter your password token

Back in the Web Connector window, the Moselle application now appears in the list.

1. Select the **leftmost checkbox** next to the application to save the password.
2. In the **Password** field, paste the **password token** Moselle provided.
   {% endstep %}

{% step %}

### Start the sync

Select the checkbox again, then click **Update Selected** to begin syncing your QuickBooks data with Moselle.

{% hint style="success" %}
**Connected.** Moselle will validate the connection and begin importing your data. The initial sync may take some time depending on your history.
{% endhint %}
{% endstep %}

{% step %}

### Set a sync schedule (recommended)

Check the **Auto-Run** box to sync automatically on a schedule. For example, set **60 minutes** to have Moselle sync with QuickBooks every hour.

Prefer manual control? Leave Auto-Run off and click **Update Selected** whenever you want to run a sync.

![The QuickBooks Web Connector showing the Moselle application with Auto-Run enabled at a 60-minute interval and a Ready status](/files/skCUHyq1sScmxHgTGjl9)

{% hint style="warning" %}
Keep the QuickBooks Web Connector **open** for syncing to run. If the Web Connector is closed, Moselle cannot sync with QuickBooks Enterprise.
{% endhint %}
{% endstep %}
{% endstepper %}

## Notes & FAQ

### Why does QuickBooks Enterprise need the Web Connector?

QuickBooks Enterprise is desktop software, not a cloud platform. The Web Connector is Intuit's official tool for securely connecting desktop QuickBooks to outside applications like Moselle.

### Does the sync run if my computer is off?

No. Because QuickBooks Enterprise and the Web Connector run on your machine, both QuickBooks and the Web Connector must be open for a sync to run. Use **Auto-Run** to schedule syncs while they're open.

### How often does it sync?

You choose. With **Auto-Run** enabled, you set the interval (e.g., every 60 minutes). Without it, you sync manually with **Update Selected**.

### Where do I get the `.QWC` file and password?

Moselle's onboarding team provides both. If you don't have them yet, contact <support@moselle.io>.

### I use QuickBooks Online, not Enterprise.

QuickBooks Online connects differently — with a one-click authorization, no Web Connector needed. See the QuickBooks Online guide below.

***

## Related Guides

{% content-ref url="/pages/vCskk8syIet4XHmjzr24" %}
[QuickBooks Online (QBO)](/getting-started/onboarding/setup-integrations/quickbooks-online-qbo)
{% endcontent-ref %}

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}


# Cin7 Omni

Complete guide to connecting Cin7 Omni with Moselle for inventory and order syncing. Learn about prerequisites, sync schedules, and known limitations.

{% hint style="info" %}
**Quick Answer:** The Cin7 Omni integration syncs your inventory, sales, and purchase orders to Moselle automatically. Setup currently requires assistance from Moselle support.
{% endhint %}

## What is the Cin7 Omni Integration?

**The Cin7 Omni integration** connects your warehouse management system directly to Moselle's planning engine. It automates the flow of critical supply chain data, ensuring your forecasts and replenishment plans are based on real-time stock levels.

### Key Benefits:

* **Automated Sync:** Daily updates of inventory, sales, and orders.
* **Unified Planning:** View all your warehouse data in one dashboard.
* **Accurate Forecasting:** Use historical sales data from Cin7 to predict future demand.

## Prerequisites

**Time Required:** 5-10 minutes (with Support) **Difficulty:** Easy

Before you begin, ensure you have:

* [ ] Admin access to your Cin7 Omni account
* [ ] Your **Cin7 Omni Account ID**
* [ ] An **API Application Key** from Cin7

## How to Connect

Currently, the setup process is handled by our team to ensure proper configuration of your warehouse mappings.

{% stepper %}
{% step %}

#### Gather Your Credentials

Log in to Cin7 Omni and retrieve your Account ID and generate an API Application Key.
{% endstep %}

{% step %}

#### Contact Support

Email <support@moselle.io> with your credentials and request the Cin7 Omni integration activation.
{% endstep %}

{% step %}

#### Verification

Once configured, our team will confirm that data is flowing correctly. You should see your products and inventory populate in Moselle within 24 hours.
{% endstep %}
{% endstepper %}

## Data Synchronization Details

### Sync Schedule

Moselle performs a full sync **daily**. This ensures your "Stock on Hand" and order statuses are current.

### Data Sync Strategy: The 90-Day Lookback

To keep your account fast and responsive, Moselle uses a "Lookback Period" strategy for syncing large datasets.

**Why we do this:** Instead of re-downloading your entire history every single day (which can be slow and cause timeouts), we only check for changes made in the last **90 days**. This is efficient because historical data rarely changes once an order is closed.

**What you need to know:** If you need to update an old record, you must be mindful of this window.

{% hint style="info" %}
**Recent Update:** Prior to January 21, 2026, the lookback period for **Branch Transfers** was limited to 2 days. If you find transfers missing from before this update, please request a historical re-sync.
{% endhint %}

{% hint style="warning" %}
**Backdating Limitation**

If you modify a Sales Order, Purchase Order, or Branch Transfer to a date **older than 90 days**, Moselle will **not** see the change automatically because it falls outside the daily sync window.

**Fix:** If you must change data older than 90 days, please contact <support@moselle.io> to request a one-time "Historical Re-sync."
{% endhint %}

### Data Mapping

#### Products

| Moselle Field | Cin7 Omni Field       | Notes                                |
| ------------- | --------------------- | ------------------------------------ |
| **Name**      | `name`                |                                      |
| **SKU**       | `productOptions.code` | Unique identifier used for matching. |
| **Category**  | `category`            | Used for grouping in forecasts.      |

#### Sales Orders (Historical Sales)

| Moselle Field    | Cin7 Omni Field | Notes                                              |
| ---------------- | --------------- | -------------------------------------------------- |
| **Order Number** | `reference`     |                                                    |
| **Date**         | `invoiceDate`   | Only **"Dispatched"** orders are imported.         |
| **Channel**      | *Derived*       | Mapped based on settings; Shopify orders excluded. |

#### Purchase Orders

| Moselle Field    | Cin7 Omni Field | Notes                                                                       |
| ---------------- | --------------- | --------------------------------------------------------------------------- |
| **Order Number** | `reference`     |                                                                             |
| **Status**       | `status`        | **Voided** Purchase Orders in Cin7 are imported as **Archived** in Moselle. |

#### Inventory

| Moselle Field | Cin7 Omni Field | Notes                               |
| ------------- | --------------- | ----------------------------------- |
| **Available** | `available`     | Stock currently available for sale. |
| **Incoming**  | `incoming`      | Stock on order (PO).                |
| **Branch**    | `branchId`      | Mapped to Moselle Warehouses.       |

#### Branch Transfers

| Moselle Field   | Cin7 Omni Field       | Notes                                                 |
| --------------- | --------------------- | ----------------------------------------------------- |
| **Reference**   | `reference`           | Used as the Order Number in Moselle.                  |
| **Source**      | `sourceBranchId`      | The sending warehouse.                                |
| **Destination** | `destinationBranchId` | The receiving warehouse.                              |
| **Status**      | *Derived*             | Maps to Moselle's Draft, Active, or Delivered states. |

## How Transfers Work in Moselle

Moselle treats Cin7 Omni **Branch Transfers** as a type of replenishment. This allows you to plan stock movements between your own warehouses just like you plan purchases from suppliers.

### Transfers as Purchase Orders

In the Moselle app, your Cin7 Branch Transfers are displayed alongside your regular Purchase Orders. This provides a unified view of all incoming stock for any specific warehouse.

* **In-Transit Visibility:** When a transfer is "Dispatched" in Cin7, Moselle shows it as "Active" in your replenishment plan, accurately reflecting stock that is currently in transit.
* **Replenishment Planning:** Moselle's engine accounts for these transfers when calculating your "Projected Stock," ensuring you don't over-order from suppliers when a transfer is already on its way.

## Troubleshooting & FAQ

| Problem / Question                        | Solution / Answer                                                                                 |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------- |
| **Custom fields not mapping**             | Contact Support to map specific Cin7 attributes to Moselle.                                       |
| **Missing recent orders**                 | Check if the order is marked as **"Dispatched"** in Cin7. Only dispatched orders are imported.    |
| **Inventory count mismatch**              | Verify that the correct Warehouses are enabled in settings and products exist in Moselle.         |
| **Duplicate sales**                       | Ensure "Shopify" orders aren't being double-counted if both integrations are active.              |
| **Can I trigger a manual sync?**          | Yes, typically via **Settings > Integrations** or **Beta** tab in Moselle.                        |
| **Does Moselle write data back to Cin7?** | No, the integration is currently one-way (Cin7 to Moselle) for planning purposes.                 |
| **Why aren't my open orders showing?**    | Moselle only imports **"Dispatched"** orders for sales history. Open/pending orders are excluded. |


# NetSuite

Connect NetSuite to Moselle to sync sales orders, purchase orders, inventory, and product data for comprehensive demand forecasting and inventory planning.

### Overview

The NetSuite integration imports your transaction history, inventory levels, and product catalog from NetSuite saved searches into Moselle. Once connected, data syncs automatically on a daily basis.

***

### Connect NetSuite

To set up the NetSuite integration, you will need to generate API credentials in NetSuite and have them ready to share with the Moselle support team during your initial onboarding call.

#### Step 1: Create Web Services Role in NetSuite

1. In NetSuite, navigate to **Setup → Users/Roles → Manage Roles**
2. Click **New** to create a new role
3. Name the role (e.g., "Moselle Web Services")
4. Under **Permissions**, add the following (ensure access level is set to **Full**):
   * **Setup Tab**:
     * Log in using Access Tokens
     * SOAP Web Services
   * **Lists Tab**:
     * Perform Search
     * Persist Search
     * Publish Search
     * Items
     * Locations
     * Customers
     * Vendors
     * Any custom records you want to sync
   * **Transactions Tab**:
     * Find Transactions
     * Sales Orders
     * Purchase Orders
     * Transfer Orders
   * **Reports Tab**:
     * SuiteAnalytics Workbook
5. Save the role

#### Step 2: Create Integration Record

1. Navigate to **Setup → Integration → Manage Integrations**
2. Click **New**
3. Name the integration (e.g., "Moselle Integration")
4. Under the **Authentication** tab:
   * Enable **Token-Based Authentication**
   * **Turn off** TBA: ISSUETOKEN Endpoint
   * **Turn off** TBA: Authorization Flow
   * Under the **OAuth 2.0** section, ensure everything is **turned off**
5. Save the integration
6. **Record the Consumer Key and Consumer Secret** — you will need these for authentication

#### Step 3: Generate Access Tokens

1. Navigate to **Setup → Users/Roles → Access Tokens → New**
2. Select the **Application** (integration record from Step 2)
3. Select your **User**
4. Select the **Role** (web services role from Step 1)
5. Save the access token
6. **Record the Token ID and Token Secret** — you will need these for authentication

#### Step 4: Get Your Account ID

Your NetSuite Account ID is found in your NetSuite URL:

* If your URL is `https://1234567.app.netsuite.com`, your Account ID is `1234567`
* If your URL includes a region code like `https://1234567-sb1.app.netsuite.com`, your Account ID is `1234567-sb1`

#### Step 5: Create Saved Searches

NetSuite integration pulls data from saved searches you create in NetSuite. Create saved searches for the data you want to sync:

1. Navigate to **Lists → Search → Saved Searches → New**
2. Select the record type (e.g., Transaction, Item, Customer)
3. Add the fields you want to include in Moselle
4. Set search criteria if needed
5. Make the search **Public** or share it with the integration user
6. Save the search with a descriptive name

**Important Limitations:**

* Formula fields within saved searches will not be returned
* Saved searches with summary results are not supported
* Related objects return only internal IDs (see Data Sync Details below)

#### Step 6: Share Credentials During Onboarding Call

Have the following credentials ready to share with the Moselle support team during your initial onboarding call:

* **Consumer Key**
* **Consumer Secret**
* **Token ID**
* **Token Secret**
* **Account ID**
* **Names of saved searches** you want to sync

During the call, our team will work with you to configure the integration in Moselle and verify that data syncs correctly.

***

### Data Sync Details

**Sync Frequency** — NetSuite data syncs daily.

**Saved Search Results** — The integration pulls the full data results from your configured saved searches.

**Related Objects** — Related objects (e.g., customer on a sales order) return only internal IDs. To get full details for related objects:

* Add joined fields to your NetSuite saved search (e.g., customer name, customer email), or
* Create separate saved searches for related record types and link them in Moselle using the internal IDs

**SKU Matching** — NetSuite items automatically link to Moselle items when SKUs match exactly. Non-matching SKUs require manual linking.

***

### Supported Record Types

The NetSuite integration supports pulling data from:

* **Transactions** — Sales orders, purchase orders, transfer orders, and custom transactions
* **List Objects** — Items, locations, companies, customers, vendors
* **Custom Records** — Any organization-defined custom record objects
* **Reports** — Specific report types with appropriate permissions

***

### Data Mapping & Routing

To ensure your data flows correctly into Moselle, we use specific mapping logic for Sales Channels and Warehouses.

#### Sales Channel Routing

Sales orders from NetSuite need to be routed to specific Sales Channels in Moselle (e.g., Wholesale, Ecommerce, Retail).

* **How it works:** We configure the integration to filter orders based on a field in your NetSuite Sales Order.
* **Common Method (Entity/Customer):** Most often, we route orders based on the **Entity** (Customer or Project). For example, if you have a "Wholesale" channel in Moselle, you provide us the NetSuite Entity ID for your wholesale customer, and we route all matching orders to that channel.
* **Alternative Methods:** If you distinguish channels differently (e.g., by Class, Department, or a Custom Field), let us know! We can configure the routing based on any field available in your Saved Search.

#### Warehouse Mapping (Location Linking)

Moselle links NetSuite **Locations** to Moselle **Warehouses** using an **exact name match**.

* **Automatic Linking:** If a Location name in NetSuite exactly matches a Warehouse name in Moselle (case-sensitive), they will be automatically linked. Inventory levels from that NetSuite Location will sync to the corresponding Moselle Warehouse.
* **Automatic Creation:** If Moselle receives a Location name from NetSuite that does not exist in Moselle, it will **automatically create a new Warehouse** with that name and link them.

**Tip:** To prevent duplicate warehouses, ensure your NetSuite Location names match your existing Moselle Warehouse names exactly before the first sync.

***

### Saved Search Requirements

For the Sales Order sync to function correctly, your NetSuite Transaction Saved Search must return the following fields with these specific properties:

| Field        | Description      | Required Format / Notes                                   |
| ------------ | ---------------- | --------------------------------------------------------- |
| **trandate** | Transaction Date | Must be formatted as `M/D/YYYY` (e.g., `1/28/2026`).      |
| **tranid**   | Transaction ID   | The unique identifier for the order (e.g., `SO-12345`).   |
| **item**     | Item Internal ID | The internal ID of the item sold.                         |
| **quantity** | Quantity         | Numeric value.                                            |
| **amount**   | Total Amount     | Numeric value.                                            |
| **rate**     | Unit Price       | Numeric value. Used to calculate amount if total is zero. |

* **Note:** If your NetSuite configuration uses different field IDs, please let the Moselle team know so we can map them correctly.

***

### Troubleshooting

| Issue                              | Cause                                                  | Solution                                                                      |
| ---------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------------- |
| Integration not connecting         | Incorrect credentials or insufficient role permissions | Verify credentials and ensure role has all required permissions               |
| Saved search not appearing         | Search is private or not shared with integration user  | Make search public or share with the integration user                         |
| Missing fields in synced data      | Formula fields or summary results in saved search      | Remove formula fields and summary settings from saved search                  |
| Related object details not syncing | NetSuite returns only internal IDs for related objects | Add joined fields to saved search or create separate searches for each record |
| Items not linking automatically    | SKUs don't match between NetSuite and Moselle          | Manually link items or update SKUs to match                                   |

***

### Important

**Formula fields are not supported.** NetSuite saved searches containing formula fields will not return those fields in the sync. Use standard fields or add joined fields instead.

**Summary searches are not supported.** Saved searches with summary results enabled cannot be synced. Disable summary mode in your saved search configuration.

***

### Optimizing NetSuite Data for Forecasting

If you use Moselle's forecasting features, these additional considerations help ensure accurate demand predictions from your NetSuite data.

#### Include the Right Transaction Types

Make sure your saved search captures all transaction types that represent real customer demand:

* **Sales Orders** — Primary demand signal
* **Cash Sales** — If you use point-of-sale or cash transactions
* **Credit Memos / Returns** — To net out returns from gross demand

{% hint style="warning" %}
**Exclude Transfer Orders and Purchase Orders** from your demand saved search. These represent internal inventory movement, not customer demand, and will distort your forecast.
{% endhint %}

#### Include Sufficient History

Include at least **12–24 months** of historical transactions. More history gives Mo better seasonal pattern detection. If you have multiple years of data, include it all — Mo will weight recent data more heavily.

#### Add Joined Fields for Channel Routing

If you route sales to different Moselle channels based on customer or class, include the relevant joined fields:

* **Entity/Customer name or ID** — For customer-based channel routing
* **Class or Department** — For class-based channel routing
* **Custom fields** — If you use custom fields to distinguish channels

Without these fields, Moselle can't route transactions to the correct sales channels, which leads to inaccurate channel-level forecasts.

#### Verify Channel Routing After Sync

After your initial sync:

1. Navigate to **Forecasting** and review demand by channel
2. Confirm that the volume and patterns per channel match your expectations
3. If a channel looks unexpectedly high or low, check whether transactions are being misrouted

#### Fiscal Period Alignment

NetSuite supports custom fiscal calendars, while Moselle forecasts on a standard **calendar month** basis.

| Your NetSuite Setup               | Impact on Moselle Forecasting                 | What to Do                                           |
| --------------------------------- | --------------------------------------------- | ---------------------------------------------------- |
| **Standard calendar months**      | No issues — dates align directly              | No action needed                                     |
| **4-4-5 fiscal calendar**         | Fiscal weeks don't align with calendar months | Use `trandate` (not fiscal period) in saved searches |
| **Non-January fiscal year start** | Fiscal Q1 may not equal calendar Q1           | Be aware when setting quarterly forecast guidelines  |
| **13-period calendar**            | Periods don't map to 12 calendar months       | Use `trandate` for calendar-month alignment          |

{% hint style="info" %}
Moselle uses the **transaction date** (`trandate`) to assign sales to calendar months. As long as your saved search returns accurate transaction dates, data will align correctly — regardless of your NetSuite fiscal calendar configuration.
{% endhint %}

If you use a non-standard fiscal calendar, minor differences between Moselle's monthly totals and NetSuite's fiscal period totals are expected. Quarterly totals should still align closely.

#### Forecasting Data Quality Checklist

Before generating your first forecast with NetSuite data, verify:

* [ ] Saved search includes all required fields (`trandate`, `tranid`, `item`, `quantity`, `amount`, `rate`)
* [ ] Date format is correct (`M/D/YYYY`)
* [ ] No formula fields or summary results in the saved search
* [ ] At least 12 months of transaction history included
* [ ] Channel routing configured and verified
* [ ] No overlapping saved searches causing duplicate transactions
* [ ] Warehouse names match between NetSuite Locations and Moselle Warehouses
* [ ] Transfer orders and purchase orders excluded from demand saved search


# Snowflake

Connect your Snowflake data warehouse to Moselle using read-only key-pair authentication. Step-by-step setup with a copy-paste SQL script — about 15 minutes.

{% hint style="info" %}
**Quick Answer:** Moselle connects to your Snowflake data warehouse using **read-only key-pair authentication**. You'll create a dedicated role, a small warehouse, and a service user that can only read the schema you choose — then send Moselle a few connection details. No passwords are exchanged, and Moselle can never write to your warehouse. Setup takes about 15 minutes and needs someone with admin access to Snowflake.
{% endhint %}

## What this connection does

Moselle reads sales, inventory, and order tables directly from your Snowflake warehouse so your forecasts and replenishment plans stay current — no exports. The connection is **read-only**: Moselle is granted `SELECT` on only the schema you specify, runs on its own isolated warehouse, and authenticates with a key pair (no shared password).

## What you'll need

* [ ] A Snowflake user with **ACCOUNTADMIN** (or delegated `SECURITYADMIN` + `USERADMIN`) to run the setup SQL
* [ ] The **public key** Moselle provides you during onboarding (a single text block beginning `MII...`)
* [ ] The **database and schema** you want Moselle to read

{% hint style="warning" %}
Moselle generates the key pair and gives you **only the public key**. The matching private key stays in Moselle's secure key store and is never shared. You do not need to generate any keys yourself.
{% endhint %}

## Set it up

{% stepper %}
{% step %}

### Open a Snowflake worksheet

Sign in to Snowflake, click **Worksheets** in the sidebar, then **+ Worksheet** in the top right.
{% endstep %}

{% step %}

### Run the setup script

Paste the script below, replace the three placeholders (`<YOUR_DATABASE>`, `<YOUR_SCHEMA>`, and the public key), then click **Run**.

{% code overflow="wrap" %}

```sql
-- 1) Dedicated, cost-isolated warehouse (auto-suspends when idle)
USE ROLE SYSADMIN;
CREATE WAREHOUSE IF NOT EXISTS MOSELLE_WH
  WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE
  INITIALLY_SUSPENDED = TRUE
  COMMENT = 'Read-only warehouse for Moselle';

-- 2) Read-only role scoped to one schema
USE ROLE SECURITYADMIN;
CREATE ROLE IF NOT EXISTS MOSELLE_RO_ROLE;
GRANT USAGE ON WAREHOUSE MOSELLE_WH               TO ROLE MOSELLE_RO_ROLE;
GRANT USAGE ON DATABASE <YOUR_DATABASE>           TO ROLE MOSELLE_RO_ROLE;
GRANT USAGE ON SCHEMA <YOUR_DATABASE>.<YOUR_SCHEMA> TO ROLE MOSELLE_RO_ROLE;
GRANT SELECT ON ALL TABLES    IN SCHEMA <YOUR_DATABASE>.<YOUR_SCHEMA> TO ROLE MOSELLE_RO_ROLE;
GRANT SELECT ON ALL VIEWS     IN SCHEMA <YOUR_DATABASE>.<YOUR_SCHEMA> TO ROLE MOSELLE_RO_ROLE;
-- cover tables/views created later, automatically:
GRANT SELECT ON FUTURE TABLES IN SCHEMA <YOUR_DATABASE>.<YOUR_SCHEMA> TO ROLE MOSELLE_RO_ROLE;
GRANT SELECT ON FUTURE VIEWS  IN SCHEMA <YOUR_DATABASE>.<YOUR_SCHEMA> TO ROLE MOSELLE_RO_ROLE;

-- 3) Service user that authenticates with Moselle's public key
USE ROLE USERADMIN;
CREATE USER IF NOT EXISTS MOSELLE_SVC
  TYPE = SERVICE
  DEFAULT_ROLE = MOSELLE_RO_ROLE
  DEFAULT_WAREHOUSE = MOSELLE_WH
  DEFAULT_SECONDARY_ROLES = ()
  RSA_PUBLIC_KEY = '<PASTE_MOSELLE_PUBLIC_KEY>'
  COMMENT = 'Moselle read-only service account';
GRANT ROLE MOSELLE_RO_ROLE TO USER MOSELLE_SVC;
```

{% endcode %}
{% endstep %}

{% step %}

### Find your account identifier

Your account identifier is the first part of your Snowflake URL: `<account_identifier>.snowflakecomputing.com`. If your URL includes a region, include it (e.g. `xy12345.us-east-1`).
{% endstep %}

{% step %}

### Send Moselle your connection details

Reply to your onboarding contact (or email <support@moselle.io>) with:

| Field              | Value                    |
| ------------------ | ------------------------ |
| Account identifier | e.g. `xy12345.us-east-1` |
| User               | `MOSELLE_SVC`            |
| Role               | `MOSELLE_RO_ROLE`        |
| Warehouse          | `MOSELLE_WH`             |
| Database           | `<YOUR_DATABASE>`        |
| Schema             | `<YOUR_SCHEMA>`          |

{% hint style="success" %}
**Done.** Moselle will validate the connection and begin the initial sync. None of these values are secret on their own — the connection only works with the private key Moselle holds.
{% endhint %}
{% endstep %}
{% endstepper %}

## Control your sync schedule

Once your connection is live, you control how often Moselle refreshes data from Snowflake — right from **Settings → Integrations → Snowflake**. No need to email support to change it.

{% hint style="info" %}
**Quick Answer:** Open **Settings → Integrations → Snowflake**, choose a sync **frequency** (Off, Hourly, Every 6 hours, Daily, or Weekly), and Moselle keeps your data refreshed on that cadence. Need fresh data right now? Click **Sync now** to trigger a one-off sync without waiting for the next scheduled run.
{% endhint %}

### Choose how often Moselle syncs

| Frequency         | Best for                                                 |
| ----------------- | -------------------------------------------------------- |
| **Off**           | Pausing automatic syncs (you can still use **Sync now**) |
| **Hourly**        | Fast-moving catalogs that need near-real-time data       |
| **Every 6 hours** | A balance of freshness and Snowflake compute cost        |
| **Daily**         | Most brands — the recommended default                    |
| **Weekly**        | Slow-moving data or a tighter compute budget             |

* For **Daily** and **Weekly**, pick the **hour** the sync should run.
* For **Weekly**, also pick the **day of the week**.

A less frequent schedule (or **Off**) lowers your Snowflake compute cost — see [What this costs you](#what-this-costs-you) below.

### Sync on demand

Click **Sync now** any time to pull the latest data immediately — useful right after you've loaded new tables in Snowflake or want to confirm a change end-to-end. The page shows the **last synced** time as a relative timestamp (e.g. "2 hours ago") so you always know how current your data is.

## What this costs you

{% hint style="info" %}
**Short version:** Expect roughly **$10–40/month** in Snowflake compute on a typical daily sync. Moselle adds **no storage cost** (we only read your existing data), and the warehouse only bills while it's actively running.
{% endhint %}

Moselle's connection runs on its own **X-Small** warehouse (`MOSELLE_WH`) — the smallest size, 1 credit/hour — set to suspend after 60 seconds of inactivity. It only consumes credits during the seconds it's actively pulling data; there's no charge while it sits idle.

* **Compute** — billed per second (60-second minimum per run) at your account's credit rate. On a normal daily forecast/inventory sync, that's about **$10–40/month** depending on your Snowflake edition and region. A more frequent schedule (e.g. hourly) increases compute roughly in proportion to the number of runs, so pick the least frequent cadence that keeps your data fresh enough. (Credit rates run roughly $2/credit on Standard, \~$3 on Enterprise, \~$4 on Business Critical for US AWS on-demand; non-US regions carry a premium.)
* **Storage** — **$0 added.** Moselle reads your existing tables and stores nothing new in your warehouse.
* **Data transfer** — usually none. If Moselle's infrastructure is in a different cloud region than your Snowflake account, standard per-GB egress may apply to the data we read; for incremental daily syncs this is typically minimal. Ask us if you'd like to confirm region alignment.

### Cap the cost (optional)

For a guaranteed ceiling, attach a resource monitor to `MOSELLE_WH`. This caps monthly credits and can notify or auto-suspend if the limit is reached:

{% code overflow="wrap" %}

```sql
USE ROLE ACCOUNTADMIN;
CREATE RESOURCE MONITOR moselle_monitor
  WITH CREDIT_QUOTA = 50            -- generous monthly ceiling; well above typical use
  FREQUENCY = MONTHLY
  START_TIMESTAMP = IMMEDIATELY
  TRIGGERS
    ON 80 PERCENT DO NOTIFY
    ON 100 PERCENT DO SUSPEND;
ALTER WAREHOUSE MOSELLE_WH SET RESOURCE_MONITOR = moselle_monitor;
```

{% endcode %}

## Optional hardening (recommended for security teams)

Force key-pair-only authentication for the service user, so the account can never be used with a password:

{% code overflow="wrap" %}

```sql
USE ROLE SECURITYADMIN;
CREATE AUTHENTICATION POLICY moselle_keypair_only
  AUTHENTICATION_METHODS = ('KEYPAIR')
  CLIENT_TYPES = ('DRIVERS');
ALTER USER MOSELLE_SVC SET AUTHENTICATION POLICY moselle_keypair_only;
```

{% endcode %}

## Notes & FAQ

### How often does Moselle sync from Snowflake?

You choose. Set the frequency to **Hourly**, **Every 6 hours**, **Daily**, or **Weekly** under **Settings → Integrations → Snowflake**, or turn automatic syncing **Off** and refresh manually with **Sync now**. Daily is the recommended default for most brands.

### Is it really read-only?

Yes. `MOSELLE_RO_ROLE` is granted only `USAGE` and `SELECT`. Moselle cannot insert, update, or delete.

### What does Moselle see?

Only the database/schema you grant. To add more later, re-run the grant statements for the new schema.

### Will this increase my Snowflake bill much?

No. See [What this costs you](#what-this-costs-you) above — typically $10–40/month in compute, no added storage, and you can cap it with a resource monitor.

### How does key rotation work?

Snowflake supports two active keys (`RSA_PUBLIC_KEY` and `RSA_PUBLIC_KEY_2`) so Moselle can rotate keys with zero downtime. Moselle drives this; no action needed from you.

### How do I revoke access?

Run `ALTER USER MOSELLE_SVC SET DISABLED = TRUE;` to pause immediately, or `DROP USER MOSELLE_SVC;` to remove access entirely.

***

## Related Guides

{% content-ref url="/pages/29eF8AdlBEKOD8ebbN0F" %}
[NetSuite](/getting-started/onboarding/setup-integrations/netsuite)
{% endcontent-ref %}

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}


# Meta Ads (Facebook & Instagram)

Connect your Meta (Facebook & Instagram) ad account to Moselle so Mo can see advertising activity alongside sales — a one-click setup in about 5 minutes.

{% hint style="info" %}
**Quick Answer:** The Meta Ads integration connects your **Facebook and Instagram ad account** to Moselle in one click. Once connected, Moselle pulls in your advertising activity so Mo can see when campaigns are running alongside your sales — helping explain demand spikes and factor promotions into your forecasts. Setup is self-serve and takes about 5 minutes.
{% endhint %}

{% embed url="<https://youtu.be/r2EemsXheO0>" %}

## What this connection does

The Meta Ads integration links your **Meta (Facebook & Instagram) ad account** to Moselle so your advertising activity sits next to your sales data. This gives Mo the context to answer the question every brand asks: *"This SKU is doing well — is that an ad driving it, or something else?"*

Once connected, Moselle reads your ad account's activity and performance so Mo can:

* **Explain demand spikes** — connect a jump in sales to a campaign that was live at the same time
* **Account for promotions in planning** — recognize when marketing activity is inflating recent demand, so forecasts don't over- or under-react
* **Give fuller answers about performance** — factor advertising alongside sales history when you ask Mo why a product is moving

The connection is **read-only**. Moselle reads your advertising activity — it never creates, edits, pauses, or spends against your ad campaigns.

## What you'll need

* [ ] A **Meta Business** account with access to the ad account you want to connect
* [ ] Permission to authorize third-party apps for that ad account (typically an **admin** on the Business account)

{% hint style="info" %}
**Tip:** Make sure you're logged into the correct Facebook account before you start — the one with access to the ad account you want Moselle to see. If you manage several ad accounts, you'll choose which to grant access to during the authorization step.
{% endhint %}

## Connect Meta Ads

{% stepper %}
{% step %}

### Open the Integrations tab in Moselle

Click your **avatar** in the top right corner → **Settings** → the **Integrations** tab.
{% endstep %}

{% step %}

### Select Meta and click Connect

Find the **Meta** integration in the grid and click **Connect**. Moselle redirects you to Facebook to authorize access.
{% endstep %}

{% step %}

### Authorize access on Facebook

On Facebook, review the requested access and choose the **ad account** you want Moselle to read. Approve the request to return to Moselle.

{% hint style="success" %}
**Connected.** Your advertising activity begins syncing automatically. Mo can start using ad context in its answers once the first sync completes.
{% endhint %}
{% endstep %}
{% endstepper %}

## Reconnecting Meta

You may need to re-authorize the connection — for example, if you switch ad accounts or your access expires. When Meta is already connected, the button changes to **Reconnect**.

1. Go to your **avatar** → **Settings** → **Integrations**
2. Find **Meta** and click **Reconnect**
3. Complete the Facebook authorization again to refresh access

Reconnecting re-authorizes Moselle without removing your existing connection.

## Data Sync Details

**What syncs** — Advertising activity and performance data from the ad account you authorize.

**Sync frequency** — Meta data syncs automatically once connected. Like other Moselle integrations, updates refresh on a daily cycle.

**Where it shows up** — Meta context is used by **Mo** when reasoning about demand. Ask Mo about a product's recent performance and it can factor in whether advertising was running.

## Frequently Asked Questions

### Does connecting Meta let Moselle change my ads?

**No.** The integration is **read-only**. Moselle reads your advertising activity to inform planning — it never creates, edits, pauses, or spends against your campaigns.

### Can I connect Instagram ads too?

**Yes.** Meta ad accounts cover both **Facebook and Instagram** placements. Connecting your Meta ad account brings in activity across both platforms.

### Do you support Google Ads?

Google Ads is **coming soon**. If connecting Google Ads is a priority for your team, email <support@moselle.io> to register your interest.

### How do I disconnect Meta?

You can revoke Moselle's access at any time from your **Meta Business** settings, under connected apps. Reach out to <support@moselle.io> if you'd like help.

***

## Related Guides

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}


# OrderDesk

Connect OrderDesk to Moselle to sync sales and order data for each of your stores.

### Overview

The OrderDesk integration allows Moselle to import sales and order data from your various OrderDesk stores, centralizing your multi-channel information for better planning.

***

### Connect OrderDesk

The OrderDesk integration is currently configured with the help of the Moselle Customer Success team. To connect your stores, follow these steps:

{% stepper %}
{% step %}

#### Gather OrderDesk Credentials

For each store you wish to connect in OrderDesk, you will need:

* **Store ID**
* **API Key**

You can find these details within your OrderDesk store settings.
{% endstep %}

{% step %}

#### Create Channels in Moselle

Before the data can be synced, you must create a corresponding channel in Moselle for each OrderDesk store.

1. Navigate to **Settings → Channels**.
2. Create a new channel for each unique OrderDesk store.
3. Note the name of the channel you've created for each store.

For more details, see [Setting Up Channels](/getting-started/onboarding/setting-up-channels).
{% endstep %}

{% step %}

#### Contact Customer Success

Send your **Store IDs**, **API Keys**, and the names of the corresponding **Moselle Channels** to your Moselle Customer Success representative or email <support@moselle.io>.

Our team will finalize the connection and ensure your data begins syncing correctly.
{% endstep %}
{% endstepper %}

***

### Data Sync

**Sync Frequency** — Once configured, OrderDesk data syncs daily to ensure your plans are always up to date.

***

### Troubleshooting

{% hint style="info" %}
If you notice data discrepancies or if a specific store stops syncing, please reach out to your Customer Success representative for assistance.
{% endhint %}


# Sephora

Forward Sephora sell-through reports to Moselle via email to automatically feed weekly best-sellers, POS, and regional retail data into your forecasts.

{% hint style="info" %}
**Quick Answer:** Forward your Sephora sell-through reports to your dedicated `@mail.moselle.io` email address with a clear subject line. Moselle processes single files within 24–48 hours.
{% endhint %}

**Sephora sell-through reports** are the weekly best-seller, monthly sell-through, and region-specific POS files Sephora sends brands to share retail performance at shelf. Moselle ingests these reports via your dedicated Moselle email address so the data feeds directly into your forecasts and replenishment plans — no manual uploads needed.

**Your Moselle email address** follows the format: `yourworkspace@mail.moselle.io`

{% hint style="warning" %}
**Don't have your Moselle email address?** It's created during onboarding. If you're unsure what yours is or need one set up, contact your Customer Success Manager or email <support@moselle.io>.
{% endhint %}

***

## Setup

**Time Required:** 5 minutes\
**Difficulty:** Beginner

{% stepper %}
{% step %}

### Set up forwarding from your Sephora reports inbox

In your email client, create a forwarding rule that automatically sends any Sephora sell-through report to your `@mail.moselle.io` address as soon as it arrives.

**Recommended schedule:** Set forwarding to run on **Sundays** — most Sephora weekly reports arrive over the weekend, so this ensures your data is processed at the start of your planning week.
{% endstep %}

{% step %}

### Use a clear subject line

The subject line tells Moselle which type of Sephora report it's receiving. Use one of the following formats:

| Subject Line                  | Use For                       |
| ----------------------------- | ----------------------------- |
| `Sephora Weekly Best Sellers` | Weekly best-seller report     |
| `Sephora US`                  | US sell-through or POS report |
| `Sephora Canada`              | Canadian region report        |
| `Sephora UK`                  | UK region report              |
| `Sephora EU`                  | European region report        |

If your report covers a region not listed here, add the region name to the subject line — e.g., `Sephora Australia`. The more specific your subject line, the more accurately Moselle can categorise and process the file.
{% endstep %}

{% step %}

### Allow 24–48 hours for processing

Once the email is received, Moselle processes the report within **24–48 hours**. No further action is needed — your data will appear in your workspace automatically.
{% endstep %}
{% endstepper %}

***

## Sending Historical Reports

If you have a backlog of past Sephora reports to send, compress them into a single ZIP file and include a date range in the subject line.

**ZIP rules:**

* [ ] Include the date range in the subject line — e.g., `Sephora US — September 2024 to January 2025`
* [ ] Name the ZIP file to match the subject line — e.g., `sephora-us-sep2024-jan2025.zip`
* [ ] One region per ZIP where possible

{% hint style="warning" %}
**Processing time for ZIP submissions:** Allow **2–3 business days**. Batched files take longer than single-file emails.
{% endhint %}

***

## Frequently Asked Questions

### What file formats are accepted?

Excel (`.xlsx`, `.xls`) and CSV files are accepted. If you're unsure whether your file format will work, send a sample to <support@moselle.io> before setting up automated forwarding.

### How do I know my report was processed?

Allow 24–48 hours from the time the email was sent. If your data hasn't appeared after that window, email <support@moselle.io> with the original forwarded email in the thread.

### Can multiple team members forward reports?

Yes. Your `@mail.moselle.io` address is shared across your workspace — any team member can forward reports to it and they'll be processed the same way.

***

## Need Help?

Contact your Customer Success Manager or email <support@moselle.io> if:

* You don't have a `@mail.moselle.io` address
* Your reports aren't appearing after 48 hours
* You need help setting up email forwarding rules

## Related Guides

{% content-ref url="/pages/MSPVU3BYQtL9A3tpxneV" %}
[Manual Data Uploads](/getting-started/onboarding/manual-data-uploads)
{% endcontent-ref %}

{% content-ref url="/pages/jzk90k9YoMWK7XMHLRVq" %}
[Sell-In vs. Sell-Through](/planning-and-execution/forecasting/phase-1-understand-forecasting/sell-in-vs-sell-through)
{% endcontent-ref %}

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}


# How Your Data Works in Moselle

Learn how Moselle syncs data from your integrations, what sync lag is normal, and how to troubleshoot data discrepancies — includes triage checklist.

{% hint style="info" %}
**Quick Answer:** Moselle pulls data from your connected integrations (Shopify, Amazon, 3PL, QuickBooks, SPS Commerce) on a scheduled sync cadence. If numbers look slightly behind, sync lag is usually the cause. Check **Settings > Integrations** for last sync times before escalating.
{% endhint %}

Understanding where your numbers come from — and why they sometimes look different from what you expect — is one of the most important things you can know as a Moselle user. This page explains how Moselle pulls data from your integrations, what sync lag is normal, and what to do when something looks off.

***

## Where Does Moselle Get Its Data?

**Moselle is** a read-only aggregation layer that connects to your sales channels, warehouses, and financial systems to build a single, live view of your business. It never modifies or writes back to any of your source systems.

Here's what each integration contributes:

* **Shopify** — DTC orders, returns, and real-time inventory adjustments. Includes all fulfilled and unfulfilled orders, refunds, and manual inventory changes made directly in Shopify.
* **Amazon (FBA / FBM)** — Marketplace sales and FBA inventory levels. FBA inventory reflects what Amazon reports, which may differ slightly from your internal purchase records.
* **3PL / Warehouse (via Trackstar)** — Daily inventory snapshots from your fulfillment partner. Trackstar acts as a middleware layer connecting Moselle to supported 3PLs.
* **QuickBooks Online** — Financial actuals and cost of goods sold (COGS) data.
* **SPS Commerce** — EDI-based retailer and wholesale purchase orders.

{% hint style="info" %}
Moselle is read-only. Your Shopify, Amazon, and 3PL data is never modified by Moselle.
{% endhint %}

***

## What Is the Sync Schedule for Each Integration?

Each integration syncs on its own schedule. Use this table as your reference for what's normal:

| Integration        | Sync Frequency     | Expected Lag   | What's Synced                          |
| ------------------ | ------------------ | -------------- | -------------------------------------- |
| Shopify            | Every 15–30 min    | Up to 1 hour   | Orders, returns, inventory adjustments |
| Amazon (FBA / FBM) | Every 1–2 hours    | Up to 4 hours  | Sales orders, FBA inventory levels     |
| 3PL / Trackstar    | Daily or on-push   | Up to 24 hours | Warehouse inventory snapshots          |
| QuickBooks Online  | Daily              | Up to 24 hours | COGS, financial actuals                |
| SPS Commerce       | File-based (daily) | Up to 48 hours | EDI orders, retailer POs               |

{% hint style="warning" %}
**Sync lag is normal.** If your data looks slightly behind, check the table above before assuming there's a bug. If lag exceeds 2× the expected window, that's worth investigating.
{% endhint %}

***

## What Does Syncing Look Like Inside Moselle?

When Moselle is actively syncing data, you may notice:

* A **"Last synced"** timestamp in your Sales, Inventory, or Channel views
* Slight discrepancies between what you see in Moselle and what's live in Shopify — these typically resolve within the next sync cycle
* The Forecast and Replenishment pages refreshing after a sync completes — this is expected behavior as Moselle recalculates projections with fresh data

**To check your last sync time:**

{% stepper %}
{% step %}

### Go to Settings

Navigate to **Settings > Integrations** in the left sidebar.
{% endstep %}

{% step %}

### Review Each Integration's Status

Each connected integration shows its last successful sync timestamp. A green indicator means the connection is healthy.
{% endstep %}

{% step %}

### Check for Errors

If a sync is failing, you'll see an error indicator next to the affected integration. Re-authenticate the connection if prompted.
{% endstep %}
{% endstepper %}

***

## What Should I Do If My Data Looks Wrong?

Run through this self-serve triage checklist before contacting support. Most data discrepancies have a straightforward explanation.

| What You're Seeing                            | Likely Cause                                  | What To Do                                                              |
| --------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------------------- |
| Numbers are lower than expected               | Sync lag — data hasn't arrived yet            | Wait for the next sync window, then refresh                             |
| Data hasn't updated in 24+ hours              | Integration connection issue or token expired | Check Settings > Integrations for errors; re-authenticate if prompted   |
| A specific channel shows no recent sales      | Channel may be disconnected or mapping is off | Go to Settings > Channels and confirm the channel is linked correctly   |
| Inventory is way off from 3PL actuals         | 3PL sync hasn't run yet today                 | Check last sync time in Moselle; if over 24 hrs, contact support        |
| Sales history has a gap (e.g., missing March) | Backfill was not completed at onboarding      | Contact your CSM to run a targeted backfill for the affected date range |

### Quick Triage Checklist

Run through these steps in order before escalating:

* [ ] Check the sync timestamp — is the data simply waiting for the next sync window?
* [ ] Check **Settings > Integrations** — are all connections showing green / no errors?
* [ ] Check **Settings > Channels** — are all sales channels properly linked?
* [ ] Has data been consistent before today? If a sudden drop appeared, check whether a disconnect event happened around that date.
* [ ] Is the discrepancy limited to one channel or all channels? Isolated = likely an integration issue. All channels = may be a platform-side issue.

{% hint style="danger" %}
**When to contact support:** If you've completed the checklist above and data is still incorrect after 24 hours, reach out via the **Report Issue** button in the platform or contact your CSM directly. Include your integration name, the affected date range, and what you expected to see vs. what you're seeing.
{% endhint %}

***

## What Are Historical Data Backfills?

When you first joined Moselle, the team completed a **historical data backfill** — pulling in past sales and inventory records so your forecasts have a strong baseline from day one.

If you notice a gap in a specific time period (for example, a full month of missing sales), this is typically a backfill gap rather than an ongoing sync issue.

**Common backfill scenarios:**

* A channel was connected after onboarding — no historical data was pulled for it
* An integration was disconnected and reconnected — sales during the disconnected window may be missing
* A new SKU was added after the original backfill — no historical data exists for that product

{% hint style="success" %}
**Backfill gaps are fixable.** Contact your CSM with the affected channel, date range, and integration name. Backfills are typically completed within 1–2 business days.
{% endhint %}

***

## Ask Mo About Your Data

Mo can help you investigate data questions directly — cross-referencing your connected integrations, last sync times, and known data patterns to help determine whether you're looking at sync lag, a disconnection event, or something that needs escalation.

Try these prompts:

* *"My Shopify sales look lower than expected today — is this a sync issue or are my numbers actually down?"*
* *"When was the last time my Amazon data was updated in Moselle?"*
* *"My inventory for \[SKU] doesn't match what my 3PL is showing — can you help me figure out why?"*
* *"There's a gap in my sales data for March — what could have caused this?"*

***

## Related Guides

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}

{% content-ref url="/pages/MSPVU3BYQtL9A3tpxneV" %}
[Manual Data Uploads](/getting-started/onboarding/manual-data-uploads)
{% endcontent-ref %}


# Setting Up Channels

Set up your sales channels in Moselle to connect your stores, link warehouses, and configure forecasting and payment settings for accurate demand planning.

{% hint style="info" %}
**Quick Answer:** Go to **Settings** → **Channels**, click **+ Create Channel**, enter a name and optional data source, then configure the fulfillment location, forecast resolution, and payment terms in the Existing Channels table.
{% endhint %}

**Time required:** 5–10 minutes

## Creating a Channel

1. Click your **avatar** at the top right corner of the dashboard.
2. Go to **Settings** → **Channels**.
3. Click the **"+ Create Channel"** button — a pop-up will appear.
4. Enter a **Channel Name**.
5. Optionally, select a **Data Source** from the dropdown to link it to an integration you've already connected.
   * If you skip this, an empty channel will be created and you can attach a data source later.
6. Click **Create** to save.

***

## Managing Existing Channels

Once channels are created, they appear in the **Existing Channels** table. Each row shows the channel's configuration and lets you edit settings inline.

### Data Source

If you didn't attach a data source when creating the channel, you'll see a **+ Attach** button in this column. Click it to select and link an integration to this channel at any time.

### Fulfillment Location

Select a warehouse location from the dropdown. This warehouse acts as the **inventory node** for the channel — Moselle pulls stock from this location when calculating the demand and production plan.

{% hint style="info" %}
You'll need at least one warehouse set up before you can assign a fulfillment location. See [Setting Up Inventory](https://github.com/Moselle-io/moselle-docs/blob/master/getting-started/onboarding/setting-up-inventory.md) if you haven't done this yet.
{% endhint %}

### Forecast Resolution

Choose how demand is forecasted for this channel:

| Resolution  | Best For                                                                         |
| ----------- | -------------------------------------------------------------------------------- |
| **Daily**   | High-volume channels like DTC (direct-to-consumer) where order frequency is high |
| **Monthly** | B2B channels like wholesale or retail accounts where orders are less frequent    |

### Payment Terms

Select how many days after an invoice is issued your customer is expected to pay, using the dropdown (e.g., **Net 30**, **Net 45**). For example, if Sephora buys from you today but pays invoices 30 days later, set this to Net 30.

### Payout Lag

Enter the number of days between when a sale occurs and when the platform deposits the funds into your bank account. For example, if Shopify sales happen today but funds arrive at the end of the week, enter **7**.

### Last Synced

Displays the timestamp of the most recent data sync for this channel, so you can confirm your integration is up to date.

***

## Archiving a Channel

Click the **three-dot menu (⋯)** at the end of the channel row and select **Archive** to remove the channel from your active list.

***

{% hint style="info" %}
Need to split a channel by order type, region, retailer, or fulfillment method? See [Channel Segmentation](/getting-started/onboarding/setting-up-channels/channel-segmentation) to learn how your CSM can configure this for you.
{% endhint %}


# Channel Segmentation

Learn how to segment your Moselle channels by order type, region, retailer, or fulfillment method to keep demand planning accurate and channel-specific.

{% hint style="info" %}
**Quick Answer:** Channel segmentation splits a single integration (e.g. Shopify) into multiple named channels — such as DTC, TikTok Shop, or B2B — so each revenue stream has its own clean sales history and forecast. Contact your CSM to configure it.
{% endhint %}

When setting up your channels in Moselle, you can segment a channel further into its own designated channel. This captures more granular sales data across different order types, regions, customer segments, and fulfillment methods — keeping your demand planning accurate and channel-specific.

Channel segmentation can be configured during onboarding or at any point after your account is live.

## Why Segment Your Channels?

**Channel segmentation** separates distinct revenue streams that behave differently, giving you cleaner data and more accurate forecasts. Without it, sales get grouped together and can distort your inventory planning.

Common reasons to segment:

* Separating DTC and TikTok Shop orders within a Shopify integration
* Isolating B2B retailer sales by retailer or retailer group
* Breaking out Amazon by fulfillment region
* Removing marketing, samples, and gifting orders from core sales channels

## Shopify / DTC Segmentation

Moselle can identify and split out specific order types within a Shopify integration using the following identifiers:

| Identifier               | Description                                                                                              |
| ------------------------ | -------------------------------------------------------------------------------------------------------- |
| **Order Tags**           | Tags on Shopify orders that indicate the sales channel or order type (e.g. TikTok orders vs. DTC orders) |
| **Shipping Destination** | The destination address used to route orders into specific channels                                      |
| **Shipping Country**     | Splits sales by market or geography                                                                      |
| **Currency**             | Identifies orders transacted in a specific currency                                                      |
| **Retailer Name**        | Distinguishes wholesale or B2B orders by retailer                                                        |
| **App Tags**             | Tags applied by third-party Shopify apps tied to specific sales channels                                 |
| **Order Prefixes**       | Unique prefixes assigned to orders from specific sales channels                                          |

## B2B Channel Segmentation

Segmentation is not limited to Shopify. B2B sales flowing through other integrations or channels can also be split into their own dedicated channel.

When segmenting B2B, specify **which retailers you want grouped together** and how you want the channel named. For example, Target and Nordstrom can be grouped into a single "Other B2B" channel, or each retailer can have its own dedicated channel.

Your CSM will align on the right grouping structure based on your retailer mix.

## Amazon Regional Segmentation

For clients selling on Amazon, separating your Amazon channel by fulfillment region is strongly recommended. Examples include:

* FBA North America
* FBA Europe (EU)
* FBA Japan

This keeps regional demand signals separate, resulting in more accurate forecasts and replenishment plans per market.

## Marketing, Samples & Gifting

Isolating marketing orders, samples, and gifting into a dedicated channel is one of the most commonly requested segmentations. These orders typically have no revenue value and should not be factored into your demand forecast.

Separating these out ensures:

* Your DTC channel reflects true consumer demand
* Your B2B channel reflects true wholesale demand
* Giveaways, influencer gifting, and sample programs are tracked without distorting your data

## How to Request Channel Segmentation

Channel segmentation is configured by your Moselle CSM. Setup typically takes 1–2 business days once your CSM has the details they need.

{% stepper %}
{% step %}

### Contact Your CSM

Reach out to your CSM and specify:

* Which order types, retailers, regions, or identifiers you want split out
* How you want each channel named and grouped
  {% endstep %}

{% step %}

### CSM Configures Your Channels

Your CSM creates the custom channel and configures the routing logic to direct sales into the appropriate channel.
{% endstep %}

{% step %}

### Verify Your Data

Confirm that sales are flowing in correctly and that units sold are accurate across each month of historical data.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
**Tip:** The more specific you are upfront — retailer names, order prefixes, existing tags — the faster your CSM can get your channels configured correctly.
{% endhint %}

## Related Guides

{% content-ref url="/pages/XeG8X01ydINzo9HZqLlY" %}
[Setting Up Channels](/getting-started/onboarding/setting-up-channels)
{% endcontent-ref %}

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}


# Manual Data Uploads

The Data Room lets you securely share all your documents with the Moselle team. Including; inventory, sales data, purchase orders, marketing calendars, product catalogs, and more.

### Access the Data Room

1. Click your avatar at the top right corner
2. Select **Data Room**
3. View existing uploads and add new files

### Upload Documentation

| Section                                                                                                                        | Description                                                        |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| [How to Upload Sales Data](/getting-started/onboarding/manual-data-uploads/how-to-upload-sales-data)                           | Import historical sales transactions to build accurate forecasts   |
| [How to Upload to the Product Catalog](/getting-started/onboarding/manual-data-uploads/how-to-upload-to-the-product-catalog)   | Add products with SKUs, names, and attributes to your master list  |
| [How to Upload Inventory](/getting-started/onboarding/manual-data-uploads/how-to-upload-inventory)                             | Import current stock levels across warehouse locations             |
| [How to Upload Purchase Orders](/getting-started/onboarding/manual-data-uploads/how-to-upload-purchase-orders)                 | Add existing purchase orders to track incoming inventory           |
| [How to Upload Your Marketing Calendar](/getting-started/onboarding/manual-data-uploads/how-to-upload-your-marketing-calendar) | Import marketing events to account for demand spikes in forecasts  |
| [How to Delete or Download a File](/getting-started/onboarding/manual-data-uploads/how-to-delete-or-download-a-file)           | Manage uploaded files by downloading or removing them from Moselle |

### Quick Overview

**Sales Data** Upload historical sales transactions to establish baseline demand patterns. Moselle uses this data to generate accurate forecasts using machine learning models.

**Product Catalog** Import your complete product list with SKUs, names, pricing, and product attributes. This creates the foundation for inventory tracking and forecasting.

**Inventory** Upload current inventory snapshots to establish starting stock levels. Track inventory across multiple warehouse locations.

**Purchase Orders** Import existing purchase orders to account for incoming inventory in your planning. Track orders that are already in transit or production.

**Marketing Calendar** Upload planned promotions and events to improve forecast accuracy. Moselle accounts for marketing-driven demand spikes in projections.

**File Management** Download previously uploaded files or delete outdated data to keep your Data Room organized.

Start by [uploading your product catalog](/getting-started/onboarding/manual-data-uploads/how-to-upload-to-the-product-catalog) to establish your item list, then add [sales data](/getting-started/onboarding/manual-data-uploads/how-to-upload-sales-data) to begin forecasting.


# How do I Upload Sales Data to Moselle?

Export your sales data from any platform, use Mo to reformat it to the correct template, then upload it to the Data Room — no manual formatting required.

{% hint style="info" %}
**Quick Answer:** Export your sales file from your platform (e.g., SPS Commerce), attach it to Mo in the chat and ask Mo to reformat it, review the output file, then upload it to the Data Room under **Upload Data → Sales**.
{% endhint %}

## Overview

Moselle uses your sales history to generate demand forecasts. The recommended workflow is a two-step process:

1. **Reformat with Mo** — Drop your raw export into the Mo chat. Mo maps your file's columns to Moselle's required format and returns a clean, ready-to-upload file.
2. **Upload via Data Room** — Take Mo's output file and upload it to the Data Room, selecting your sales channel and time format.

This means you don't need to manually reformat your exports or match column names — Mo handles the heavy lifting.

***

## Prerequisites

**Time Required:** 5–10 minutes\
**Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] Access to the Mo chat in your Moselle account
* [ ] A raw sales export file from your platform (CSV or Excel)
* [ ] Knowledge of which sales channel(s) are in your file (e.g., DTC, Amazon, Wholesale)

***

## Step 1 — Export Your Sales File

Export your historical sales data from your sales platform. **Moselle accepts any CSV or Excel export — your file does not need to be in a specific format.** Mo will read whatever columns you have and map them to the correct fields automatically.

This works for exports from any platform, including SPS Commerce, retailer portals, ERPs, 3PLs, and custom reports. As long as your file contains the relevant sales data — such as quantities, PO or order numbers, delivery or ship dates, unit costs, total costs, or similar fields — Mo can work with it.

**Common export sources:**

* **SPS Commerce** — Run your sales report and export as CSV
* **Retailer portals** — Download your sell-through or POS data export
* **ERP or 3PL systems** — Pull a sales history report in CSV or Excel format
* **Custom spreadsheets** — Any internally built sales report works too

{% hint style="info" %}
Your column names don't need to match Moselle's template. Mo understands common variations — for example, "ship date", "delivery date", or "order date" will all be recognised and mapped to the correct field.
{% endhint %}

{% hint style="warning" %}
Do not modify the export file before uploading to Mo. Mo is designed to work with raw exports, and editing columns or headers before the conversation can cause mismatches.
{% endhint %}

***

## Step 2 — Use Mo to Reformat Your File

{% stepper %}
{% step %}

### Open Mo

Click **Mo** in the left sidebar to open the Mo chat.
{% endstep %}

{% step %}

### Attach Your Sales File

Click the **file clip icon (📎)** in the chat input area and select your exported sales file.

Supported formats: **CSV** and **XLSX**.
{% endstep %}

{% step %}

### Tell Mo What to Do

In the chat message, ask Mo to reformat the file to Moselle's sales template. Be specific about the channel your data relates to.

**Example prompts:**

* *"Please reformat this SPS sales export to Moselle's sales template. This data is for our Amazon channel."*
* *"Reformat this file for upload to Moselle — it's DTC sales data."*
* *"This file has sales across multiple channels. Can you split the reformatted output by channel?"*

{% hint style="info" %}
**Always specify your channel.** Moselle needs to know which sales channel the data belongs to (e.g., Amazon, DTC, Wholesale). If your file contains multiple channels, ask Mo to split the reformatted output by channel so you can upload each one separately.
{% endhint %}
{% endstep %}

{% step %}

### Review Mo's Output

Mo will map your file's columns to the required Moselle fields (`sku`, `date`, `quantity`, `order_#`, `total_sales`) and return a reformatted file for you to download.

**Before moving on, review the output file and check:**

* SKUs look correct and match your Moselle catalog
* Dates are formatted consistently (YYYY-MM-DD)
* Quantities and sales values look accurate
* Channel assignment is correct
* The `order_#` column is populated for every row
* There are no duplicate SKUs across rows

{% hint style="warning" %}
Mo does its best to match your columns automatically, but always review the output before uploading. If something looks off, follow up in the same Mo conversation — for example: *"The SKU column looks incorrect, can you check column B instead?"*
{% endhint %}

{% hint style="danger" %}
**Check for empty `order_#` values and duplicate SKUs** — both will cause the upload to fail. See [File Requirements](#file-requirements-moselle-template) below for details and example prompts to fix them with Mo.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Step 3 — Upload to the Data Room

Once you have your reformatted file from Mo, upload it to the Data Room.

{% stepper %}
{% step %}

### Open the Data Room

Click your **avatar** in the top-right corner of the screen, then select **Data Room** from the menu.
{% endstep %}

{% step %}

### Start a New Upload

Click **Upload Data**. A list of data types will appear — select **Sales**.
{% endstep %}

{% step %}

### Upload Your File

Click to upload and select the reformatted file Mo provided.
{% endstep %}

{% step %}

### Select Your Channel

Choose the **sales channel** this file belongs to from the dropdown (e.g., Amazon, DTC, Wholesale).

{% hint style="info" %}
If Mo split your file by channel in Step 2, upload each channel file separately and select the matching channel here each time.
{% endhint %}
{% endstep %}

{% step %}

### Select Your Time Format

Choose how your sales data is aggregated:

* **Weekly** — Each row represents a week of sales
* **Monthly** — Each row represents a month of sales

{% hint style="warning" %}
**Daily format is strongly recommended for the best forecast accuracy.** When Moselle receives weekly or monthly data, it distributes sales across individual days, which can reduce the accuracy of AI-generated forecasts. If you have daily data available, use it.
{% endhint %}
{% endstep %}

{% step %}

### Submit

Click **Upload** to submit. Uploaded data can take up to 24 hours to propagate into your forecasts.
{% endstep %}
{% endstepper %}

***

## File Requirements (Moselle Template)

Mo handles the reformatting for you, but for reference, Moselle's required sales template uses these columns:

| Column        | Required | Description                                      | Example      |
| ------------- | -------- | ------------------------------------------------ | ------------ |
| `sku`         | Yes      | Product SKU matching your Moselle catalog        | `ABC-001`    |
| `date`        | Yes      | Sale date in YYYY-MM-DD format                   | `2025-01-15` |
| `quantity`    | Yes      | Units sold                                       | `5`          |
| `order_#`     | **Yes**  | Order or PO reference number — must not be blank | `10234`      |
| `total_sales` | Yes      | Revenue for the line in your currency            | `125.00`     |

Ensure all column headers are lowercase exactly as shown. SKUs must match your Moselle catalog for automatic linking.

{% hint style="danger" %}
**Two rules that will cause the upload to fail if not met:**

1. **`order_#` must be populated for every row.** If your source file has no PO or order number, ask Mo to prefill sequential values before you download the output.
2. **Each SKU must appear only once.** If the same SKU appears on multiple rows the upload will be rejected. Ask Mo to combine duplicate SKU rows by summing their quantities and sales values.
   {% endhint %}

***

## Frequently Asked Questions

### My file doesn't have a PO or order number — what do I do?

**Answer:** Ask Mo to generate placeholder values before you download the output. For example: *"The order\_# column is empty — can you prefill it with sequential PO numbers for each row?"*

### The upload failed because of duplicate SKUs — how do I fix it?

**Answer:** Ask Mo to consolidate duplicate rows before you download. For example: *"Please check for any duplicate SKUs and combine them into a single row per SKU, summing the quantities and total sales."*

### What if my file has multiple channels mixed together?

**Answer:** Ask Mo to split the reformatted output by channel — for example: *"This file has Amazon and DTC sales mixed together, please split them into separate files by channel."* Upload each file to the Data Room separately, selecting the correct channel each time.

### Do I need to clean my export before giving it to Mo?

**Answer:** No. Mo is designed to work with raw exports. Just attach the file as-is and describe what it contains. Editing the file before uploading can sometimes cause Mo to misidentify columns.

### My SKUs in the export don't match my Moselle catalog — will Mo fix that?

**Answer:** Mo won't remap SKUs on its own, but you can give Mo a mapping file to do it for you. If you have a spreadsheet that maps your retailer's item numbers to your internal Moselle SKUs, attach both files in the Mo chat and ask Mo to remap the SKUs in the output — for example: *"Here's my sales export and a mapping file. Please reformat the sales file and replace the retailer item numbers with the matching Moselle SKUs from the mapping file."* If you don't have a mapping file, let Mo know which identifiers the export uses and you may need to contact support for a bulk SKU mapping.

### How long does uploaded data take to appear?

**Answer:** Uploaded sales data can take up to 24 hours to propagate into your forecasts and planning views.

### Can I upload multiple channels in one session?

**Answer:** Yes. Ask Mo to split your file by channel, then upload each output file to the Data Room one at a time, selecting the correct channel for each.

### What if I don't have daily data?

**Answer:** Upload weekly or monthly data using the matching time format option in the Data Room. For the most accurate forecasts, contact <support@moselle.io> so the team can adjust your forecasting configuration.

***

## Troubleshooting

| Problem                                        | Solution                                                                                                                               | Time to Fix  |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| Mo misidentifies a column                      | Follow up in the Mo chat describing the correct column (e.g., *"The date column is column C, not B"*)                                  | 2 minutes    |
| SKUs in the output don't match Moselle catalog | Check your catalog for matching SKUs; contact support for a bulk SKU mapping                                                           | 5–10 minutes |
| Upload fails — `order_#` column is empty       | Ask Mo to prefill the column: *"Prefill the order\_# column with sequential PO numbers"*, then re-download and upload                  | 2 minutes    |
| Upload fails — duplicate SKUs in file          | Ask Mo to consolidate rows: *"Combine duplicate SKUs into one row per SKU, summing quantities and sales"*, then re-download and upload | 2 minutes    |
| Upload fails in Data Room                      | Ensure the file is CSV or XLSX and under the size limit; re-export from Mo if needed                                                   | 2 minutes    |
| Data not appearing after upload                | Wait up to 24 hours; if still missing after that, contact support                                                                      | —            |
| Unsure which channel to select                 | Check your export source — it should indicate the retailer or channel the sales came from                                              | 1 minute     |

***

## Related Guides

{% content-ref url="/pages/bhnbOdyzHJU16Tc1oHKc" %}
[Upload Your Files to Mo](/mo/tips/upload-your-files-to-mo)
{% endcontent-ref %}

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/ZqW13VR5LMwgmjbdhqwg" %}
[How to Upload Inventory](/getting-started/onboarding/manual-data-uploads/how-to-upload-inventory)
{% endcontent-ref %}


# How to Upload to the Product Catalog

Save some time by importing your Master list of Items into Moselle, and customizing your item details.

1. To upload your product catalog, click on the **Upload Data** button.
2. Choose **Product Catalog** as the data type.
3. A fly out will open and redirect you to the product catalog page to upload your products. To learn more about how to import your product catalog [click here](/operations/catalog/adding-products/import-your-items)


# How to Upload Inventory

1. To upload your Inventory, click on the **Upload Data** button and choose Inventory as the data type.
2. A fly out will open and redirect you to go to the warehouse page to update your inventory. To learn more about how to upload an inventory snapshot [click here](/getting-started/onboarding/manual-data-uploads/how-to-upload-inventory).


# How to Upload Purchase Orders

1. To upload your Purchase Orders, click on the **Upload Data** button and choose Purchase Orders as the data type.
2. A fly out will open up and redirect you to go to the Orders page to upload your purchase orders. To learn more about how to upload an Order [click here](/getting-started/onboarding/manual-data-uploads/how-to-upload-purchase-orders).


# How to Upload your Marketing Calendar

1. To upload your marketing calendar, click on the **Upload Data** button and choose the marketing calendar as the data type.
2. **Download** the given **template** within the fly out.
3. **Drag and drop** your updated CSV file into the **upload box**, or **select** the files from your computer into the **upload box**.
4. Click on the **Upload button** to upload your Marketing Calendar.


# How to Delete or Download a file

### How to Delete a Data room File

* To Delete a file, select the **trash icon** found on the right hand side.
* Select **Delete File.**

### How to Download a Data room File

* To Download a file, select the download symbol found on the right hand side.
* The file should begin downloading to your computer.

<figure><img src="/files/aa9evhPJtcriMIUr7uJT" alt=""><figcaption></figcaption></figure>


# Moving off spreadsheets

Transitioning from spreadsheets to Moselle — what to bring, what to leave behind, and how to build trust in the system quickly.

If your inventory planning lives in a spreadsheet right now, you're not alone. Most consumer brands start there. Spreadsheets are flexible, familiar, and free — until they become the bottleneck.

This guide is for teams making the move to Moselle. Here's what to bring, what to leave behind, and how to build trust in the system quickly.

***

### Why this transition feels harder than it is

The hesitation is usually one of two things:

**"Our spreadsheet has years of logic in it."**\
It probably does. Formulas built over time, columns only one person fully understands, conditional formatting that nobody remembers creating. That logic exists because the data wasn't connected. Moselle connects the data — so most of that logic becomes unnecessary.

**"I'm not sure I trust the system yet."**\
That's fair. Mo's recommendations are grounded in your actual sales data, but trust is earned. This guide will show you how to verify Mo's outputs against what you already know, so you can build confidence at your own pace.

***

### What to bring into Moselle

**Historical sales data**\
The more history Moselle has, the better Mo's forecasts get. If you have clean sales data going back 12–24 months, import it. Even imperfect historical data is better than none.

**Your product catalog**\
SKUs, variants, bundles, kits — all of it. If Moselle doesn't know what you sell, it can't plan for it.

**Supplier lead times**\
How long it takes to get stock from each supplier is one of the most important inputs in replenishment planning. This is often locked in someone's memory or buried in email threads. Getting it into Moselle is worth the effort.

**Channel breakdown**\
If you sell across Shopify, Amazon, wholesale, or retail, bring that structure in. Planning by channel lets Mo give you more accurate projections for each.

***

### What to leave behind

**Manual override formulas**\
If your spreadsheet has cells that add 15% to certain SKUs "just in case," or subtract from slow movers based on a rule someone set years ago, those adjustments can go. Mo handles safety stock and risk buffers from the data. You can adjust from there — but start clean.

**Copy-paste reporting**\
Weekly inventory snapshots that get pasted into a summary tab, then emailed. Moselle's reporting gives you live projections, so the manual compile step disappears.

**The single-person dependency**\
Most inventory spreadsheets have one person who truly understands them. When that person is out, planning stalls. Moselle is built for team access — so institutional knowledge lives in the system, not in one person's head.

***

### How to build trust in Mo, step by step

**Week 1–2: Verify the forecast**\
Ask Mo to show you projections for SKUs you know well. Compare them to what your gut says. Note where they're close and where they diverge. Ask Mo why — it can explain the signals driving any projection.

**Week 3–4: Run a parallel plan**\
Keep your spreadsheet open but create your replenishment plan in Moselle. See how the two compare. You'll usually find Moselle catches something the spreadsheet missed — a stockout risk, a timing issue, an overorder.

**Week 5+: Let Mo drive**\
Once you've seen the outputs hold up over a few cycles, start trusting Mo's recommendations as your starting point. Override where you have context Mo doesn't — a promotion coming, a supplier delay you know about. That's the right use of your judgment.


# Fast Tutorial

Get your first inventory plan done today — no CX needed. Connect your integrations, load your catalog and inventory, then create a plan or ask Mo what to order.

{% hint style="info" %}
**Quick Answer:** Most brands complete their first inventory plan on the same day they sign up. This guide takes you from zero to your first plan.
{% endhint %}

## What You'll Accomplish

By the end of this tutorial you will have:

* Your integrations connected and syncing
* Your product catalog loaded into Moselle
* At least one channel and warehouse configured
* A working inventory plan or purchase orders ready to review

**Time required:** A couple of hours (same day)\
**Who this is for:** Founders, COOs, and operators getting started with Moselle

***

## Need More Detail?

* [Forecasting](/planning-and-execution/forecasting) — Advanced forecast methods, AI models, and accuracy tuning
* [Replenishment & Planning](/planning-and-execution/replenishment) — Constraints, parameters, and plan management
* [Order Management](/planning-and-execution/orders) — Full order workflows and receiving


# Step 1: Connect Your Integrations

Connect your e-commerce platforms, ERPs, accounting tools, and fulfillment partners to Moselle so your sales history and inventory data sync automatically.

Moselle connects directly to your e-commerce platforms, ERPs, accounting tools, and fulfillment partners to automatically pull in your sales history, live inventory levels, and purchase order data.

**Time required:** 5–10 minutes

***

## How to Connect

1. Click your **avatar** in the top-right corner
2. Go to **Settings** → **Integrations**
3. Select your platform and click **Connect**
4. Follow the authentication prompts — OAuth (one-click), API key, or login credentials depending on the platform

{% hint style="info" %}
**Heads up:** Integrations can take a few hours to fully sync after connecting. You don't need to wait — continue through the tutorial and your data will be ready by the time you need it.
{% endhint %}

***

## Full Integration Guides

For platform-specific setup instructions, see:

{% content-ref url="/pages/iSRNCSGVWQanaAuYnC4i" %}
[Setup Integrations](/getting-started/onboarding/setup-integrations)
{% endcontent-ref %}


# Step 2: Set Up Channels

Connect your sales channels to warehouses in Moselle. Channels link stores to inventory locations so Moselle knows what's selling and where to pull stock.

{% hint style="info" %}
**Quick Answer:** Go to **Settings** → **Channels**, click **+ Create Channel**, enter a name and optional data source, then configure each channel's fulfillment location, forecast resolution, and payment terms in the Existing Channels table.
{% endhint %}

Channels connect your sales stores (Shopify, Amazon, etc.) to your warehouses. Moselle uses this link to track where inventory is being drawn from and to surface at-risk items accurately.

**Time required:** 5–10 minutes

{% embed url="<https://youtu.be/8UkDwkAs9Iw>" %}

***

## Create a Channel

1. Click on your **avatar** at the top right corner of your dashboard page
2. From your settings click on the **Channels** tab
3. Click the **+ Create channel** button in the top right corner
4. Enter a **Channel Name** and click **Create**

Your new channel will appear in the **Existing channels** table. From here you can configure each channel inline:

***

## Configure Your Channels

* **Data sources** — Click **+ Attach** on the channel row. A modal will appear — select your integration from the **Pick a data source** dropdown and click **Attach** to link it. This connects your integration's sales data directly into the channel.
* **Fulfilment location** — Select a warehouse from the dropdown. This tells Moselle which warehouse to pull stock from when calculating demand and your replenishment plan.
* **Forecast** — Choose **Daily** or **Monthly** depending on your channel type (Daily for DTC, Monthly for wholesale/B2B).
* **Payment terms** — Set how many days after an invoice your customer is expected to pay (e.g., Net 30).
* **Payout lag** — Enter the number of days between when a sale occurs and when funds land in your account.

{% hint style="info" %}
If your channels require to be split by different sales and locations, please reach out to <support@moselle.io> for this to be customized for you.
{% endhint %}

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/getting-started/onboarding/setting-up-channels/README.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/getting-started/onboarding/setting-up-channels/README.md>
{% endcontent-ref %}

***

## Don't Have Historical Sales Data Yet?

That's fine — channels don't need historical data to work. If your integration is still syncing or you're starting fresh:

* Set up the channel now with the correct store link
* In Step 4, Mo can build your forecast directly from your existing sales spreadsheets instead of relying on synced history

{% hint style="info" %}
Mo can work from the spreadsheets you already have. You don't need to wait for a full data sync to start planning.
{% endhint %}


# Step 3: Set Up Your Catalog

Load your product catalog into Moselle via CSV import or Shopify sync. Your catalog is the foundation for every forecast, plan, and order.

Your catalog is the foundation of everything in Moselle — every forecast, plan, and order runs off your product list. Get this in first.

**Time required:** 15–30 minutes

{% embed url="<https://youtu.be/sVKNXpmXpco>" %}

***

## Option A: Sync from Shopify *(Fastest)*

If your Shopify integration is already connected, your catalog syncs automatically. This can take a few hours to complete.

1. Go to **Catalog** in the left nav
2. Check if your products are already appearing under **Products**
3. If the sync is still in progress, continue to Step 4: Set Up Inventory and come back once it's done

{% hint style="info" %}
Shopify syncs product names, SKUs, and variants. You can enrich items with cost, lead time, and other attributes after the sync completes.
{% endhint %}

***

## Option B: Import via CSV

Use this if you're not on Shopify, or your product list lives in a spreadsheet.

{% stepper %}
{% step %}

### Download the Template

1. Go to **Catalog** → **Products**
2. Click **Import** on the right side
3. Click **Generate a Sample CSV** to download the template
   {% endstep %}

{% step %}

### Fill In Your Products

Every row requires:

| Field  | Description                    |
| ------ | ------------------------------ |
| `sku`  | Your unique product identifier |
| `name` | Product name                   |

Useful to add now (optional):

| Field          | Description                                 |
| -------------- | ------------------------------------------- |
| `unit_cost`    | Cost per unit — used in planning and orders |
| `product_type` | Product category                            |

{% hint style="warning" %}
**Do not add column headers that aren't in the template.** Unknown columns cause imports to fail silently.
{% endhint %}
{% endstep %}

{% step %}

### Upload Your File

1. Go to **Catalog** → **Products** → **Import**
2. Drag and drop your CSV, or click to browse
3. Click **Upload**, then **Import Products**
4. Refresh the catalog and spot-check a few items to confirm they imported correctly

{% hint style="success" %}
Your catalog is loaded. Move on to set up your channels.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Mo Tip: Let Mo Clean Up Your Spreadsheet

If your product list is in a non-standard format, drop it into a Mo chat session and ask:

> *"Help me format this product list into a Moselle catalog CSV. Required columns are SKU and name."*

Mo will reformat your data into the right structure so your import goes smoothly.


# Step 4: Set Up Inventory

Create a warehouse, link it to an integration, and upload stock levels into Moselle so it can identify at-risk SKUs and generate accurate replenishment plans.

{% hint style="info" %}
**Quick Answer:** Create a warehouse under **Operations → Inventory → Warehouse tab**, then either link it to an existing integration via **Settings → Warehouse** for automatic syncing, or upload a manual inventory CSV snapshot. Takes 1–2 minutes if you have an integration connected.
{% endhint %}

With your catalog and channels in place, load your current stock levels. Moselle uses this to identify what's at risk and what needs to be ordered.

**Time required:** 15–20 minutes

***

## Step 1: Create a Warehouse

1. Go to **Inventory** in the left nav
2. Click the **Warehouse** tab
3. Click **+ Add Warehouse**
4. Enter your warehouse name and address details
5. Click **Create**

{% hint style="info" %}
**Already on Shopify or Amazon?** A synced warehouse for those integrations may already exist under the Warehouse tab. Check before creating a new one.
{% endhint %}

### Link Your Warehouse to an Integration

If you've already connected an integration (e.g. Shopify, Amazon), you can link your warehouse directly to it so inventory syncs automatically — no manual upload needed.

{% embed url="<https://www.youtube.com/watch?v=uF2C8gpNHGM>" %}

1. Click your **avatar** in the top right → **Settings**
2. Click the **Warehouse** tab
3. Click **Create a Warehouse**
4. Enter a name, then select your integration from the **Data source** dropdown
5. Pick the matching location from the second dropdown
6. Click **Create**

{% hint style="success" %}
Once linked, Moselle syncs inventory from that integration automatically. You can skip Step 2 below.
{% endhint %}

For full warehouse type details, see the Create a Warehouse guide in Operations → Inventory.

***

## Step 2: Upload Your Stock Levels

For manual warehouses, upload a snapshot of your current available inventory.

{% stepper %}
{% step %}

### Get the CSV Template

1. Go to **Inventory** → select your warehouse
2. Click **Update Warehouse** → **Upload Inventory Snapshot**
3. Download the **CSV Template**
   {% endstep %}

{% step %}

### Fill In Your Stock

The CSV requires two columns:

| Column      | Description                                              |
| ----------- | -------------------------------------------------------- |
| `sku`       | Must match your catalog SKUs exactly (case-sensitive)    |
| `available` | Current units available (use `0` for out-of-stock items) |

{% hint style="warning" %}
SKUs must match your catalog exactly. Mismatched SKUs will be skipped without an error.
{% endhint %}
{% endstep %}

{% step %}

### Upload the File

1. Return to **Upload Inventory Snapshot**
2. Drag and drop or browse for your CSV
3. Click **Upload**
4. Check that stock levels appear correctly in the warehouse view

{% hint style="success" %}
Your inventory is loaded. Moselle will now use these levels in planning.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Mo Tip: Let Mo Reformat Your Stock Spreadsheet

If your inventory is tracked in a spreadsheet with a different layout, drop it into Mo and ask:

> *"Help me reformat this stock spreadsheet into a Moselle inventory CSV. Required columns are SKU and available quantity."*

Mo will map your columns to the correct format so you can upload without manual reformatting.


# Step 5: Create a Forecast

Create your first forecast in Moselle using Mo and your existing spreadsheets. Build demand projections in minutes without waiting for a full data sync.

A forecast tells Moselle what demand to plan for. You'll create an empty forecast on the Forecast page, then use Mo to populate it from your existing projections or sales data.

**Time required:** 20–30 minutes

{% hint style="info" %}
**No historical data in Moselle yet?** You can still build a forecast. Upload your existing sales spreadsheet or revenue targets to Mo and let Mo write the values directly into your forecast.
{% endhint %}

***

## Step 1: Create an Empty Forecast

1. Select **Forecast** from the left nav
2. Click **+ Create Plan**
3. Enter:
   * **Forecast name** (e.g., "2025 Plan")
   * **Start date**
   * **Number of months** to plan ahead
   * Optionally check **Master Plan** to set this as your primary forecast
4. Click **Next**, then **Save**

You now have an empty forecast. Mo will fill in the values.

***

## Step 2: Use Mo to Build Your Projections

Open a **Mo chat session** and upload your existing data — a sales spreadsheet, revenue targets, or any projection document you already have.

**Example prompts to get started:**

* *"Here's our sales data from last year. Can you write a 12-month forecast into our 2025 Plan?"*
* *"We're targeting $2M in revenue next quarter. Distribute this across our SKUs based on our sales mix."*
* *"Use this spreadsheet to build a forecast for Q2 and Q3."*

Mo will review your data, propose forecast values, and show a preview table before writing anything.

{% hint style="info" %}
**Review before committing.** Mo shows every proposed change in a preview table. You can edit individual values inline before confirming.
{% endhint %}

For a deeper guide on working with Mo for forecasting, see Build Your Forecast with Mo in Planning & Execution → Forecasting.

***

## Alternatively: Use AI Models *(if your sync has completed)*

If your Shopify or Amazon integration has finished syncing historical sales data, you can generate forecasts directly from that data instead.

**Bottom-Up (AI model):**

1. Open your forecast → click **Gear Icon** → **Modify Forecast**
2. Select **Change Forecast Method** → choose an AI model
3. Click through the steps and click **Generate Forecast**

**Top-Down (Revenue targets):**

1. Open your forecast → click **Gear Icon** → **Modify Forecast**
2. Select **Adjust Revenue Targets**
3. Enter your sales goals by channel and month
4. Click **Generate Forecast**


# Step 6: Build a Plan

Turn your forecast into a replenishment plan in Moselle. Step-by-step guide to creating a plan, setting coverage periods, and reviewing buy recommendations.

With your forecast in place, create a replenishment plan. Moselle uses your forecast and current stock levels to surface what's at risk and calculate order quantities.

**Time required:** 10 minutes

{% hint style="warning" %}
A plan requires an existing forecast. Complete Step 5: Create a Forecast first.
{% endhint %}

***

## Create Your Plan

**Step 1 — Name and scope:**

1. Go to **Planning** in the left nav
2. Click **Create Plan**
3. Choose **Replenishment Plan**
4. Fill in:
   * **Plan Name** — Give it a name
   * **Coverage Period** — Set the date range for this plan

**Step 2 — Configure:** 5. Select the **Forecast** you just created 6. Choose the **Warehouse** to replenish 7. Set the **Frequency** — Monthly or weekly 8. Choose **Product Handling**:

* **SKUs (including bundles)** — All product variations
* **Core SKUs** — Roll up bundles and cases
* **Components** — Break down to component level

**Optional settings:**

* **Transit Lead Times** — Default lead times in days per month (item-level attributes override this)
* **Safety Stock** — Buffer stock in days before triggering a reorder (item-level attributes override this)

Click **Create Replenishment Plan** when done.

{% hint style="info" %}
Each plan is a snapshot of your forecast. Click **Rebuild** at any time to refresh it with the latest data. Note: rebuilding resets any order quantities you've manually edited.
{% endhint %}


# Step 7: Generate Orders

Ask Mo what to order next and generate purchase orders directly. Get from inventory data to POs in minutes.

With your catalog, channels, and inventory loaded, Mo has everything it needs to tell you what to order.

**Time required:** 5–10 minutes

***

## Ask Mo What to Order

Open a **Mo chat session** and ask:

> *"Based on my current inventory and recent sales, what should I order next?"*

> *"Which SKUs are at risk of stocking out in the next 60 days? Generate draft orders for those."*

> *"Create purchase orders for everything that needs replenishment in the next 90 days."*

Mo will analyse your catalog and stock levels, then generate draft purchase orders for you to review. No suppliers need to be set up first — you can add supplier details to the orders later.

***

## Reviewing and Activating Orders

All Mo-generated orders start in **Draft** status.

1. Go to the **Orders** section in the left nav
2. Review each order — quantities, SKUs, and any supplier details
3. Click **Activate PO** to confirm and move the order to active

For full order management, see [Order Management](/planning-and-execution/orders).

***

## While You're in Mo: Ask for a Report

You're already in a Mo chat session — this is the fastest way to get a full picture of your inventory health before those orders go out.

Try these prompts:

> *"Show me which SKUs are at risk of stocking out in the next 60 days."*

> *"Give me a weeks of supply breakdown by product."*

> *"What's my slowest-moving inventory right now?"*

> *"Build me a dashboard showing sales velocity by channel."*

Mo pulls from your live Moselle data and returns a structured report you can refine conversationally or export to CSV. No report builder. No configuration. Just ask.

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/mo/key-capabilities/building-reports-with-mo/README.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/mo/key-capabilities/building-reports-with-mo/README.md>
{% endcontent-ref %}

***

## You're Done

You've completed the fast tutorial. Here's where you are:

* ✅ Products loaded in your catalog
* ✅ Channels and inventory configured
* ✅ Purchase orders ready to review
* ✅ Inventory health visible in Mo

**Where to go next:**

{% content-ref url="/pages/zf1JJggt2bvFRz0Q00cz" %}
[Key Capabilities](/mo/key-capabilities)
{% endcontent-ref %}

{% content-ref url="/pages/5l1isZUpoJlB9dV2sixp" %}
[Forecasting](/planning-and-execution/forecasting)
{% endcontent-ref %}

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

{% content-ref url="/pages/zJTX33Agu64EJnWEBenj" %}
[Orders](/planning-and-execution/orders)
{% endcontent-ref %}


# Pulse Check

See a daily pulse on your sales and inventory in Moselle's Pulse Check page — top SKU performance, stock alerts, and purchase order status in one view.

{% hint style="info" %}
**Quick Answer:** Pulse Check is Moselle's home page — click **Pulse** in the left sidebar to see your top-performing SKUs month over month, plus stock alerts (Out of Stock, Critically Low) and purchase order alerts (Overdue, Upcoming), all in one view. Click any SKU row for a quick summary or full detail.
{% endhint %}

![The Pulse Check page loading in Moselle](/files/lv2tpVUywSZ6r93WHFQD)

## What Is Pulse Check?

**Pulse Check is** Moselle's overview page — a single view of how your sales and inventory are trending right now. Instead of checking Forecast, Inventory, and Orders separately, Pulse Check surfaces the SKUs and purchase orders that need your attention today.

### Key Benefits:

* **Start your day in one place:** Sales performance, stock risk, and PO status without navigating between pages
* **Spot what's urgent:** Out-of-stock and critically low SKUs, plus overdue and upcoming purchase orders, are called out automatically
* **Act without leaving the page:** Ask Mo about a SKU, preview its details, or jump straight to Orders to confirm drafts

## Prerequisites

**Time Required:** Under 1 minute to review **Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] Sales and inventory data synced to Moselle
* [ ] At least one warehouse connected

## Opening Pulse Check

Click **Pulse** in the left sidebar — it's Moselle's default landing page, right below **Ask Mo**.

## What's on the Pulse Check Page?

Pulse Check is organized into cards, each covering a different signal:

| Card                  | What It Shows                                                                      |
| --------------------- | ---------------------------------------------------------------------------------- |
| **Sales Pulse (MoM)** | Your top-performing SKUs by revenue, with month-over-month change                  |
| **Out of Stock**      | SKUs with zero available units, grouped by warehouse                               |
| **Critically Low**    | SKUs approaching a stockout, grouped by warehouse, with an estimated stockout date |
| **Overdue POs**       | Purchase orders past their expected delivery date                                  |
| **Upcoming POs**      | Purchase orders due in the next 14 days, plus any drafts waiting to be confirmed   |

### Sales Pulse (MoM)

The **Sales Pulse** table lists your top-performing SKUs for the current month, ranked by revenue. For each SKU you'll see:

| Column            | What It Shows                                                              |
| ----------------- | -------------------------------------------------------------------------- |
| **Grade**         | The SKU's [performance tier](/operations/catalog/sku-grading) — A, B, or C |
| **SKU**           | The item's identifier                                                      |
| **Name**          | The product name                                                           |
| **Revenue Share** | The SKU's share of total revenue across the table                          |
| **MoM %**         | Change in revenue versus the prior month                                   |
| **Days on Hand**  | How many days of inventory remain at the current sales rate                |
| **Ordered**       | Units currently on order, or **None** if nothing is on order               |

### Out of Stock & Critically Low

These two cards flag inventory risk before it becomes a stockout:

* **Out of Stock** lists SKUs with no available units, grouped by warehouse
* **Critically Low** lists SKUs approaching a stockout, grouped by warehouse, with a **Stockout Date** column showing when you're projected to run out

Both cards show a checkmark and a confirmation message when there's nothing to flag.

### Overdue & Upcoming POs

* **Overdue POs** lists purchase orders past their expected delivery date, so you can follow up with suppliers
* **Upcoming POs** shows how many purchase orders are due in the next 14 days

If you have draft purchase orders that haven't been confirmed, Upcoming POs shows an alert — for example, "6 draft POs need to be confirmed." Click **Review** to go straight to the Orders page and confirm them.

## Take Action on Any SKU

Every SKU row on Pulse Check has a menu of quick actions.

{% stepper %}
{% step %}

### Open the Row Menu

Hover any SKU row — a **Click for actions** tooltip appears. Click the row to open the action menu.
{% endstep %}

{% step %}

### Choose an Action

* **Ask Mo** — Opens Mo and prompts it to explain and break down that SKU
* **Quick SKU Summary** — Opens a slide-out on the right with the SKU's details
* **View SKU Details** — Takes you to that SKU's full item page in the Product Catalog
  {% endstep %}
  {% endstepper %}

### What's in the Quick SKU Summary?

The slide-out has two tabs:

**Overview** — Total stock, units ordered, and Days on Hand (DoH), plus the SKU's identifier, MOQ, DOH min/max, transit lead time, and production lead time

**Inventory** — A per-warehouse breakdown, including total stock, units ordered, DoH, and any related purchase orders (PO #, status, shipment, and delivery date)

{% hint style="info" %}
Click **View Item Details** at the bottom of the slide-out to open the SKU's full item page.
{% endhint %}

## Frequently Asked Questions

### Does Pulse Check show data for a specific warehouse only?

**Answer:** No. Pulse Check rolls up sales and inventory across your entire account. The Out of Stock and Critically Low cards group results by warehouse so you can see where each issue is happening.

### Can I customize what appears on Pulse Check?

**Answer:** Not currently — Pulse Check always shows the Sales Pulse, Out of Stock, Critically Low, Overdue POs, and Upcoming POs cards.

### What does "Ordered: None" mean in the Sales Pulse table?

**Answer:** It means there's no purchase order currently open for that SKU.

## Related Guides

{% content-ref url="/pages/FW5BIY6NMDJQG2UyJCBL" %}
[Stock Overview](/operations/inventory/stock-overview)
{% endcontent-ref %}

{% content-ref url="/pages/gW8m9eWpcWjmTbVni0Ik" %}
[Reporting](/analytics/reporting)
{% endcontent-ref %}

{% content-ref url="/pages/zJTX33Agu64EJnWEBenj" %}
[Orders](/planning-and-execution/orders)
{% endcontent-ref %}


# Forecasting

Forecasting predicts future customer demand based on historical sales data, trends, and seasonal patterns. Accurate forecasts enable brands to order the right quantities at the right time.

***

### How Moselle builds your forecast

Moselle uses machine learning to generate SKU-level demand projections across a 12-month horizon. Here's what's happening under the surface.

**It starts with your sales history**\
Mo analyzes your historical order and sales data to identify baseline demand patterns — how much of each SKU sells in a typical week, how that shifts across seasons, and how different channels perform relative to each other.

**It accounts for seasonality and trends**\
Mo separates recurring seasonal patterns (a product that always spikes in November) from actual trend changes (a product that's genuinely growing or declining). These are different signals, and treating them the same is one of the most common forecasting mistakes.

**It flags anomalies**\
Unusual demand events — a viral moment, a stockout that suppressed real demand, a one-time bulk order — can distort a forecast if they're treated as normal. Mo detects these and adjusts so they don't inflate or deflate your baseline.

**It updates continuously**\
Your forecast isn't static. As new sales data comes in, Mo recalculates. If demand shifts, your projections shift with it — without you having to manually revise anything.

***

**Two ways to look at your forecast**

Moselle supports both **bottom-up** and **top-down** planning views:

* **Bottom-up** builds from the SKU level upward — useful for operational decisions like replenishment and production scheduling, where SKU-level accuracy matters.
* **Top-down** starts from an overall revenue or category target and distributes it down — useful for financial planning and budgeting.

You can use both views and compare them. Where they diverge is usually worth a closer look.

***

**A note on forecast accuracy**

Moselle gets you 80% of the way there on day one — a working forecast grounded in your actual data, without any manual setup or formula-building. That 80% is enough to make better decisions than most brands are making today.

The remaining 20% is where your judgment comes in. Mo's forecast is built from signals it can see — historical sales, seasonality, channel trends. It doesn't know about the promotion you're planning next month, the supplier delay you just heard about, or the new product launch that's going to shift demand in a category. That context is yours to add.

You can see how accurate Mo's projections have been for any SKU or category. If a forecast consistently misses in one direction, that's a signal worth investigating — either there's context Mo doesn't have, or there's a pattern in your demand that hasn't been captured yet.

Override when you have information Mo doesn't. Add context, adjust the projection, and Mo will recalibrate. Over time, as Mo learns your business, the gap between the forecast and reality narrows.

***

### Why Forecasting Matters

**Generate Revenue** — Inventory availability when customers want to buy. Stockouts mean lost sales to competitors.

**Reduce Costs** — Avoid overstocking that ties up cash and increases carrying costs.

**Catch Mistakes Early** — Surface anomalies before they become costly problems.

***

### Demand Planning vs. Forecasting

**Forecasting** is the analytical process of predicting future demand — the numbers.

**Demand Planning** is the broader operational discipline that uses forecasts to make inventory decisions, coordinate with suppliers, and align cross-functional teams.

Forecasting is an input to demand planning. Moselle handles both: generating forecasts automatically and translating them into actionable replenishment and production plans.

***

### Measuring Accuracy with MAPE

**MAPE (Mean Absolute Percentage Error)** measures the average percentage difference between forecasted and actual values.

| MAPE   | Interpretation    |
| ------ | ----------------- |
| < 10%  | Highly accurate   |
| 10-20% | Good              |
| 20-30% | Reasonable        |
| > 30%  | Needs improvement |

Moselle tracks MAPE automatically by SKU, channel, and time period.

***

### Top-Down vs. Bottom-Up Forecasting

#### Top-Down

Starts with revenue goals and works backward to unit requirements.

* Set revenue target → calculate each SKU's contribution → determine units needed
* Best for: new brands, stable demand patterns, financial alignment

#### Bottom-Up

Analyzes each SKU individually and aggregates upward.

* Analyze historical sales per SKU → project demand → aggregate totals
* Best for: rich historical data, seasonal products, complex catalogs

#### Recommended Approach

Use both. Build a top-down forecast from revenue goals, generate a bottom-up forecast from SKU data, compare, and reconcile. Moselle automates this process.

***

{% content-ref url="/pages/45SGntCeqHsmCprE3TW4" %}
[Phase 1: Understand Forecasting](/planning-and-execution/forecasting/phase-1-understand-forecasting)
{% endcontent-ref %}

{% content-ref url="/pages/7L0sImolriTHrSGJ6KyN" %}
[Phase 2: Build Your Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/TQ9SkfuybcsgIlSj8pAQ" %}
[Phase 3: Refine & Maintain](/planning-and-execution/forecasting/phase-3-refine-and-maintain)
{% endcontent-ref %}


# Phase 1: Understand Forecasting

Learn the core concepts behind Mo's forecasting before you start building — how demand projections work, key terminology, and what data Mo uses to forecast.

Before building your first forecast, it helps to understand how Mo generates demand projections and what the key concepts mean. The pages in this section give you that foundation.

{% content-ref url="/pages/KXh7MTxw84WmaJhhHp6g" %}
[How Mo's Forecasting Works](/planning-and-execution/forecasting/phase-1-understand-forecasting/how-mos-forecasting-works)
{% endcontent-ref %}

**How Mo's Forecasting Works** — How Mo turns your sales history into a directional forecast.

{% content-ref url="/pages/mpXIdcppjHO1UYCYrGXr" %}
[Forecast vs. Plan](/planning-and-execution/forecasting/phase-1-understand-forecasting/forecast-vs-plan)
{% endcontent-ref %}

**Forecast vs. Plan** — The difference between a forecast and a replenishment plan, and how they connect.

{% content-ref url="/pages/jzk90k9YoMWK7XMHLRVq" %}
[Sell-In vs. Sell-Through](/planning-and-execution/forecasting/phase-1-understand-forecasting/sell-in-vs-sell-through)
{% endcontent-ref %}

**Sell-In vs. Sell-Through** — Which data type Mo uses and how to submit your sell-through reports.

***

Once you're comfortable with the basics, move on to [Phase 2: Build Your Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast).


# How Mo's Forecasting Works

Understand how Mo generates directional forecasts, why statistical baselines need business logic, and how to turn data-driven predictions into actionable demand plans.

{% hint style="info" %}
**Quick Answer:** Mo analyzes your historical sales data to generate a **directional forecast**—a statistically grounded starting point. Because no model can capture promotions, market shifts, or product launches on its own, Mo is designed for you to layer in business logic through forecast guidelines and targeted edits.
{% endhint %}

## The Baseline Challenge

Every forecast starts with the same fundamental question: **what will demand look like in the future?**

Mo answers this by analyzing your historical sales data—identifying trends, seasonal patterns, and demand signals across your catalog. The result is a **directional forecast**: a data-driven projection that reflects what your sales patterns suggest will happen next.

**The challenge:** Historical data tells you what *has* happened, not what *will* happen. Statistical models are excellent at detecting patterns, but they cannot account for:

* **Upcoming promotions** that will spike demand
* **New product launches** with no sales history
* **Market shifts** like a competitor exiting or a viral trend
* **Supply-side changes** like a key supplier delay
* **Strategic decisions** like entering a new channel or discontinuing a line

This is why Mo generates a directional forecast as a *starting point*, not a finished plan.

***

## From Directional Forecast to Demand Plan

The forecasting process in Moselle follows three stages:

### Stage 1: Generate a Directional Forecast

Mo processes your historical data and produces a baseline projection. You choose the approach:

| Approach      | How It Works                                                   | Best For                                                  |
| ------------- | -------------------------------------------------------------- | --------------------------------------------------------- |
| **Top-Down**  | Starts with a revenue target and distributes units across SKUs | Financial alignment, new brands, stable demand            |
| **Bottom-Up** | Analyzes each SKU individually and aggregates upward           | Rich historical data, seasonal products, complex catalogs |

Both approaches give you a statistically grounded starting point. Most teams use both and reconcile the differences.

### Stage 2: Layer In Business Logic

This is where your expertise transforms a directional forecast into an accurate demand plan. Mo supports two refinement methods:

* **Mass Updates via Forecast Guidelines** — Apply broad business rules across categories (e.g., "summer products increase 40% May through August")
* **Surgical Edits** — Make targeted adjustments to specific SKUs through conversation with Mo

### Stage 3: Finalize and Execute

Once your forecast reflects both the data and your business knowledge, lock it and move into replenishment planning. Moselle translates your finalized forecast into production plans and purchase orders.

***

## Why Directional Forecasts Need Business Logic

A common misconception is that a good forecasting model should "just get it right" without human input. In practice, even the best statistical models produce directional guidance that requires refinement.

**Here's why:**

### Models see patterns, not context

Mo can detect that your sunscreen sales spike every June. But it doesn't know you're planning a 30% off promotion this June, or that a competitor just launched a similar product at a lower price.

### New products have no history

When you launch a new SKU, there's no historical data to analyze. Mo can use comparable products to estimate demand, but your knowledge of the product's positioning, marketing support, and target audience is critical.

### Business strategy evolves

Your go-to-market strategy changes over time. Entering a new marketplace, adjusting pricing, or shifting marketing spend all affect demand in ways that historical data cannot predict.

### One-time events distort patterns

A viral social media post, a weather event, or a supply shortage can create anomalies in your historical data. Without context, the model may over- or under-weight these events in future projections.

{% hint style="success" %}
**The goal isn't a perfect model—it's a collaborative process.** Mo handles the heavy lifting of data analysis, and you provide the business context that turns a statistical projection into a reliable plan.
{% endhint %}

***

## What Mo Considers When Forecasting

When generating a directional forecast, Mo evaluates several dimensions of your data:

* **Trend direction** — Is demand for this SKU growing, declining, or stable?
* **Seasonal patterns** — Are there recurring peaks and valleys tied to time of year?
* **Demand volatility** — How much does demand fluctuate week to week or month to month?
* **Sales velocity** — What's the typical rate of sales, and how has it changed recently?
* **Channel behavior** — Do different sales channels show different demand patterns for the same product?

Mo selects the appropriate forecasting approach based on the characteristics of your data—you don't need to manually configure model parameters.

***

## The Feedback Loop

Forecasting improves over time. Moselle tracks forecast accuracy using **MAPE (Mean Absolute Percentage Error)** so you can see where your projections are landing relative to actuals.

| MAPE   | Interpretation    |
| ------ | ----------------- |
| < 10%  | Highly accurate   |
| 10–20% | Good              |
| 20–30% | Reasonable        |
| > 30%  | Needs improvement |

Use the **Forecast Performance Report** to identify which categories or SKUs need better guidelines, and refine your approach each cycle.

***

## Frequently Asked Questions

### Can Mo forecast without historical data?

Mo needs historical sales data to generate a directional forecast. For new products without history, you can assign **product comparables**—existing items with similar demand patterns—to give Mo a reference point. You can also manually set projections for new launches.

### How far back does Mo look at historical data?

Mo uses all available historical data in your account. Generally, more data leads to better pattern detection, but recent trends are weighted more heavily than older data.

### Does Mo automatically account for promotions?

Not automatically. Promotions are a key example of business logic you should layer in through forecast guidelines or surgical edits. Tell Mo about upcoming promotions, and it will adjust the affected SKUs accordingly.

### How often should I regenerate my directional forecast?

Most teams regenerate quarterly or when significant data changes occur (e.g., after a major selling season). Between regenerations, use Mo's refinement tools to keep your forecast current.

### What if my directional forecast looks completely wrong?

Start by checking your data inputs—are all sales channels connected and syncing? Are there data gaps or anomalies? If the data looks clean, the forecast may reflect patterns you don't expect. Ask Mo to explain the reasoning behind specific projections before making broad changes.

***

## Related Guides

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/xw73NKz5xgFvPbpY6Q2n" %}
[Demand Forecast Performance](/analytics/reporting/moselle-reports/performance-reports/demand-forecast-performance)
{% endcontent-ref %}


# Forecast vs. Plan

Understand the difference between a forecast and a plan in Moselle — what each does, how they link together, and why it matters for inventory planning.

These two words get used interchangeably in most planning conversations. They shouldn't. Understanding the difference is what separates brands that react to inventory problems from brands that prevent them.

***

### A forecast is a prediction

A forecast answers the question: *what do we expect to sell?*

It's an estimate — built from your sales history, seasonality, channel trends, and any signals Mo has detected in your data. It gives you a range of likely outcomes across time.

Moselle generates a 12-month SKU-level forecast automatically, updating as new data comes in. It doesn't require you to do anything. It just runs.

A forecast is not a commitment. It's a starting point.

***

### A plan is a decision

A plan answers a different question: *what are we going to do about it?*

A demand plan takes your forecast and translates it into action — what to order, when, how much to hold in each location, and how to sequence production against your cash position. It accounts for your lead times, your supplier minimums, your storage constraints, and your risk tolerance.

This is where Moselle earns its place. Mo connects your forecast directly to your replenishment plan, your purchase orders, and your cash flow — so the path from "here's what we expect" to "here's what we're doing" is a short one.

***

### Why the distinction matters

When a forecast and a plan are confused, one of two things usually happens:

**Over-reliance on the forecast.** Teams treat the projection as the answer and skip the planning step. The result is orders placed at the wrong time, in the wrong quantities, with no adjustment for what's actually feasible.

**Under-reliance on the forecast.** Teams don't trust the numbers, so they plan from gut feel instead. The forecast exists but nobody uses it. The result is the same spreadsheet chaos, just with a fancier tool in the background.

The goal is a clean handoff: a forecast Mo generates and refines, and a plan you commit to — together.

***

### In Moselle

|                          | Forecast                    | Plan                    |
| ------------------------ | --------------------------- | ----------------------- |
| **What it is**           | What you expect to sell     | What you're going to do |
| **Who creates it**       | Moselle, with your guidance | You, with Mo's guidance |
| **How often it updates** | Continuously                | As you decide           |
| **Where to find it**     | Forecasting                 | Planning, Orders        |

***

### How the Link Works in Practice

In Moselle, a plan is linked to a specific **forecast scenario** — not just "a forecast." A forecast can contain multiple scenarios (for example, a base case and an optimistic scenario). When you create a plan, you choose which scenario drives the demand math.

This matters for a few reasons:

**Mo knows which scenario you're using.** When Mo is open on your plan page, it's automatically injected with context about the linked scenario — not just the plan settings, but the demand signal behind them. When you ask "why is this buy quantity so high?", Mo can trace the answer back to the specific forecast scenario and explain what's driving demand in that period.

**Rebuilding re-reads the scenario.** When you click Rebuild, Moselle re-reads your linked scenario at that moment. If the scenario has been updated since you created the plan, the rebuild will reflect the new demand signal. If you want to plan against a different scenario, you need to create a new plan linked to that scenario — you can't relink an existing plan.

**Parallel scenarios = parallel plans.** Many teams run two plans simultaneously: one linked to an internal demand scenario, one linked to an inflated factory-facing scenario. Because each plan reads its own scenario independently, they stay in sync with their respective forecasts without manual reconciliation.

***

**Next:** [Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)


# Sell-In vs. Sell-Through

Learn the difference between Sell-In and Sell-Through data, and how to submit your weekly Sell-Through reports to Moselle for demand forecasting.

{% hint style="info" %}
**Quick Answer:** Sell-In records when your brand ships product to a retailer. Sell-Through records when the retailer sells that product to a consumer. **Sell-Through data is submitted by emailing your weekly report to your unique Moselle data address (\[your-company].mail.moselle.io).** Sell-In data is managed through the Data Room.
{% endhint %}

## What Is the Difference?

When brands sell through retail partners, there are two distinct points at which a "sale" is recorded:

**Sell-In** : When the brand ships product to the retailer. This reflects purchase orders (POs) placed by the retailer and is owned by the brand.

**Sell-Through** : When the retailer sells that product to the end consumer. This reflects actual point-of-sale (POS) transactions and is owned by the retailer (e.g., Sephora, Ulta Beauty).

These two numbers are often very different. Sell-Through is the ground truth of consumer demand — it reflects what shoppers are actually buying, week over week, at each store. Forecasting from Sell-Through leads to more accurate replenishment recommendations and earlier visibility into slow-moving SKUs.

|                   | Sell-In                            | Sell-Through                           |
| ----------------- | ---------------------------------- | -------------------------------------- |
| **Measures**      | Brand shipments to retailer        | Consumer purchases at retail           |
| **Data Owner**    | Brand                              | Retailer                               |
| **Timing**        | Can precede actual demand by weeks | Reflects real-time consumer demand     |
| **Common Source** | ERP, order management system       | Sephora Brand Portal, Ulta Partner Hub |
| **Best Used For** | Supply and production planning     | Demand forecasting and replenishment   |

***

## Updating Sell-In Data

Sell-In data is updated through the **Data Room**.

{% content-ref url="/pages/LbJu5JdXTAddmFeLGbt2" %}
[How do I Upload Sales Data to Moselle?](/getting-started/onboarding/manual-data-uploads/how-to-upload-sales-data)
{% endcontent-ref %}

***

## How to Submit Sell-Through Data

Sell-Through data is submitted by emailing your weekly retailer POS report directly to Moselle. Once processed, Mo can answer questions about your sell-through performance.

**Time Required:** 2 minutes per submission **Processing Time:** Up to 1 business day

{% stepper %}
{% step %}

### Download Your Weekly Report

Log into your retailer's vendor portal and download your weekly POS or sell-through report.

* **Sephora** — Available via the Sephora Brand Portal
* **Ulta Beauty** — Available via Ulta Partner Hub
* Other retailers — Download from your assigned vendor portal

Accepted formats: Excel (.xlsx) or CSV
{% endstep %}

{% step %}

### Email the File to Moselle

Send the report as an attachment to your Moselle data email address. This address is unique to your account and follows the format:

**\[your-company].mail.moselle.io**

{% hint style="info" %}
Not sure what your address is? Contact your Customer Success Manager — they can confirm the exact email for your account.
{% endhint %}

{% hint style="warning" %}
**Do not leave the subject line blank.** A clear subject line is required for the system to route and process your file correctly.
{% endhint %}
{% endstep %}

{% step %}

### Use a Clear Subject Line

Your subject line must include:

1. **The retailer name**
2. **What the data represents** (report type, week, region, or other identifier)

**Examples:**

* `Sephora Best Seller Week 30`
* `Ulta USA Weekly Sales`
* `Nordstrom POS Data June`

The more specific your subject line, the faster and more accurately the system can process your file.
{% endstep %}

{% step %}

### Wait for Processing

Moselle will process your file within **1 business day**. You do not need to take any action during this time.
{% endstep %}

{% step %}

### Ask Mo for Your Sell-Through Data

Once your file has been processed, open Mo and ask about your sell-through performance. Mo will have access to the updated data and can answer questions like:

* "What are my top-selling SKUs at Ulta this week?"
* "Show me my sell-through rate at Sephora for the last 4 weeks"
* "Which stores are underperforming on \[product]?"

{% hint style="success" %}
Mo will let you know if it cannot find data — in that case, check that your email was sent with a clear subject line and allow up to 1 business day for processing.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Frequently Asked Questions

<details>

<summary>What happens if my subject line isn't clear enough?</summary>

The system uses the subject line to identify the retailer and data type. A vague or missing subject line may cause processing delays or errors. If your data doesn't appear within 1 business day, re-send the email with a clearer subject line (e.g., "Ulta USA Weekly Sales Week 32").

</details>

<details>

<summary>How often should I submit Sell-Through data?</summary>

Most retail partners (Sephora, Ulta) provide POS data on a weekly basis. We recommend submitting on a weekly cadence to keep your forecasts current and ensure Mo has the most recent demand signal available.

</details>

<details>

<summary>My retailer uses different SKU codes than my internal system. Will Moselle handle that?</summary>

Yes. Moselle supports SKU mapping between retailer item numbers and your internal SKUs/UPCs. This is configured during onboarding. Reach out to your Customer Success Manager if you need to update or add mappings.

</details>

<details>

<summary>What is a healthy sell-through rate?</summary>

This varies by category, channel, and product lifecycle stage. As a general benchmark, a sell-through rate of 80% or above is considered healthy in most beauty and personal care categories. Your Customer Success Manager can help you interpret your sell-through data in context.

</details>


# Phase 2: Build Your Forecast

Create your first forecast in Moselle — generate projections using top-down or bottom-up AI models, refine and customize them with Mo, and move data in and out.

With the basics in place, you're ready to create your forecast. This section walks you through generating a forecast, using Mo to shape it, and moving data in and out of Moselle.

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}

**How to Create a Forecast** — Generate a new forecast using a top-down or bottom-up AI model.

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

**Build Your Forecast with Mo** — Use Mo conversationally to generate, edit, and validate projections.

{% content-ref url="/pages/nINkxQ4xiLuINjG4cVNp" %}
[Filter Your Forecast with Custom Views](/planning-and-execution/forecasting/phase-2-build-your-forecast/filter-forecast-with-custom-views)
{% endcontent-ref %}

**Filter Your Forecast with Custom Views** — Save reusable, filtered tabs by product line, sub-line, and attributes.

{% content-ref url="/pages/m7P5Z47OAkdJCWudsFQK" %}
[Customize a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/customize-a-forecast)
{% endcontent-ref %}

**Customize a Forecast** — Upload your own projections or fine-tune items to improve accuracy.

{% content-ref url="/pages/uiyBUBi8r56D1ZueVTqo" %}
[Import and Export Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/import-and-export-forecast)
{% endcontent-ref %}

**Import and Export Forecast** — Export your forecast, make bulk edits externally, and re-upload.

***

Once your forecast is in shape, move on to [Phase 3: Refine & Maintain](/planning-and-execution/forecasting/phase-3-refine-and-maintain).


# How to Create a Forecast

Quickly build a 12 month forecast by leveraging our AI models, with just a couple of clicks. Let's get started below!

{% hint style="danger" %}
In order to start creating your first forecast, please ensure that your master product list has been uploaded to Moselle. For more information [click here](https://learn.moselle.io/operations/catalog/import-your-items).
{% endhint %}

{% hint style="info" %}
Note: You may see the term "Scenario Plan" in some parts of Moselle. This is a legacy name that refers to forecasts.
{% endhint %}

### Creating a New Forecast

#### Navigation

1. Select **Forecast** from the left hand sidebar.
2. Click the **+ Create Plan** button.
3. Follow the wizard to create your forecast.

#### Setup Steps

1. Give your forecast a name (e.g., "November Plan")
2. Enter your forecast **start date** and **how many months** you want to plan ahead
3. *Optional:* Check the master plan checkbox if you'd like to set this as your master forecast
4. Click the **Next** button at the bottom right
5. Choose how to populate your forecast:
   * **a)** [Upload your own forecast](https://learn.moselle.io/planning-and-execution/forecasting/forecast-settings)
   * **b)** Use AI forecast models
6. **If using AI forecast models**, select from:
   * **a)** [Top Down](https://learn.moselle.io/planning-and-execution/forecasting/generate-a-top-down-forecast)
   * **b)** [Bottoms Up](https://learn.moselle.io/planning-and-execution/forecasting/generate-a-bottom-up-forecast)

<figure><img src="/files/unmr26G0WlGf73yNfi6U" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Tip:** A common approach in Moselle is to select one of our machine learning models to forecast the next 12 months, then export it, make edits, and re-upload. This allows you to build a 12-month forecast in minutes instead of days or weeks!
{% endhint %}

### Manually Uploading a Forecast

You can export an existing forecast, make manual adjustments, and re-upload it to Moselle.

#### Export Your Forecast

1. Navigate to your Forecast page
2. Click the **Gear Icon**
3. Select **Export / Download**
4. Check your email for a file named `projections_[...].csv`

#### Edit the Exported File

When editing the exported file, keep these guidelines in mind:

* **Keep these columns intact:** `scenarioPlanId`, `itemId`, `channelId` — these are required for the upload to work correctly
* **You can delete:** Any rows or date columns you don't need
* **Important:** Do not change the date format in the month columns (keep it exactly as exported)

#### Upload Your Changes

1. Make your edits to the forecast values
2. Save the file
3. Upload the file back into Moselle through the forecast upload interface
4. You will receive a **push notification** when the upload is complete

### Modifying an Existing Forecast

You can adjust settings and regenerate your forecast without creating a new one.

**Access Forecast Settings**

1. Navigate to your Forecast page
2. Click the **Gear Icon** at the top right corner
3. Select **Modify Forecast**

**Adjust Revenue Targets**

Update revenue goals for specific sales channels. This is particularly useful when:

* You need to update goals for newly split channels (e.g., Amazon USA vs Amazon Canada)
* Your original revenue goals were set before channel splits occurred
* Revenue targets have changed since the forecast was created

**To update revenue targets:**

1. Click **Gear Icon** → **Modify Forecast** → **Adjust Revenue Targets**
2. Enter updated revenue goals for each channel
3. Click **Regenerate** to update the forecast with new targets

{% hint style="info" %}
**Common Issue:** If you created revenue goals before channels were split (e.g., when Amazon was one channel instead of Amazon USA and Amazon Canada), your goals may only appear for one of the split channels. Update revenue targets for all channels and regenerate to fix this.
{% endhint %}

### Managing Your Forecasts

#### Navigation

Your list of active forecasts appears on the Forecast landing page. You can navigate between your **Master** forecasts and **Previous** forecasts.

#### Forecast Details

Each forecast displays:

* Forecast name
* MAPE score
* Author who created the forecast
* Creation date
* Last updated timestamp

#### Forecast Actions

Click the **three dots (⋮)** on any forecast to:

* **a)** View and Edit
* **b)** Duplicate
* **c)** Archive

{% hint style="danger" %}
**Warning:** Archiving a forecast will remove it from the list indefinitely.
{% endhint %}


# Generate a Bottom-Up Forecast

Learn how to create a bottom-up demand forecast using AI and machine learning models to predict SKU-level sales for inventory planning.

Bottom-up forecasting models analyze historical sales data at the individual SKU level to generate predictions. These models are excellent starting points for your business and intelligently learn from your sales patterns. As you continue to use Moselle, the forecasts will improve over time.

While there are many factors to consider, the best indicator when choosing a model is your [MAPE score](https://learn.moselle.io/analytics/reporting/forecast-performance-report#how-to-read-ape-and-maps). Once you apply the model, you'll be able to evaluate its performance.

***

## Steps to Generate a Bottom-Up Forecast

1. On the [scenario plan flow](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast), select the **Use AI Forecast Models** button. This reveals options for both Top-Down and Bottom-Up approaches.
2. Select the **Bottom-Up** approach and select one of the forecast models listed below.
3. After selecting your desired model, click **Next**.
4. Lastly, click **Generate Forecast** to incorporate machine learning projections into the planning page table.

***

## Available Bottom-Up Models

|                 | Rome                    | Athens                  | Venice                                                             | Hong Kong                                                          | London                                                |
| --------------- | ----------------------- | ----------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------------------------------------------- |
| Model Type      | Statistical             | Statistical             | Probabilistic                                                      | Probabilistic                                                      | Deep Learning                                         |
| Cost / Compute  | $                       | $                       | $$                                                                 | $$                                                                 | $$$                                                   |
| Forecast Method | Bottom-up               | Bottom-up               | Bottom-up                                                          | Bottom-up                                                          | Bottom-up                                             |
| Outcomes        | Quick analysis, results | Quick analysis, results | Seasonal planning, layering in custom data i.e. Marketing Calendar | Seasonal planning, layering in custom data i.e. Marketing Calendar | Seasonality, retail stores (in addition to Ecommerce) |
| Business Type   | Simple business         | Simple business         | Fast-growing                                                       | Fast-growing                                                       | Complex, Enterprise                                   |

### Rome

Rome is built on [ARIMA (Auto Regressive Integrated Moving Average)](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average), a widely-used statistical method for time series forecasting. This model blends multiple ARIMA forecasts, each designed to capture different time-series patterns like trends, seasonality, and short-term changes.

**This model is optimized for:**

* Substantial sales data, with regular sales activity
* Predictable patterns that repeat over time (i.e. Seasonal Trends)

**Example Use Case:**

This model can predict moisturizer sales as they rise in winter due to dry skin and spike again in summer when SPF-infused products gain popularity. It helps identify high-demand weeks so teams can stock accordingly.

### Athens

Athens is built on [Exponential Smoothing (ETS)](https://en.wikipedia.org/wiki/Exponential_smoothing), a statistical method that applies weighted averages to past observations, giving more importance to recent data. This model is designed for products with stable long-term trends and seasonality to create robust predictions. This approach can be effective for products with consistent historical patterns and minimal sudden changes.

**This model is optimized for:**

* Minimal no zero-sales weeks or months
* Items with at least 12 months of data
* Items with slow, steady growth or decline in sales
* Predictable demand with few surprises

**Example Use Case:**

Your signature exfoliating cleanser has been slowly increasing over the past year, a notable steady growth trend, and with no surprises it stays steady week to week.

### Venice

Venice is built on [Prophet](https://facebook.github.io/prophet/), an open-source forecasting tool developed by Meta. Prophet uses an additive model to fit non-linear trends with yearly, weekly, and daily seasonality, plus holiday effects. This model captures yearly, weekly, and holiday-based trends, and works especially well for retail products that see spikes in events such as Black Friday, back-to-school, or holiday sales. It helps you prepare for busy seasons by learning from past trends, even if some days of data are missing or sales were irregular.

**This model is optimized for:**

* Products with clear weekly and yearly patterns (e.g. Mondays, Black Friday)
* Holiday or event-driven sales spikes
* Sales with occasional gaps or missing data

**Example Use Case:**

Your essential t-shirt sales have a huge spike in November and December during the holiday season including a small bump in early September for back to school. Venice will track these patterns and recognize the holiday trends of those t-shirts from previous years.

### Hong Kong

Hong Kong is Moselle's in-house built ensemble model. It blends three forecasting models into a single forecast using equal weighting. It evaluates patterns over time, seasonality, and messy data for a more balanced prediction.

**This model is optimized for:**

* Items with occasional zero-sales periods
* Steady sales from week-to-week or month-to-month
* Items with more than 2 years of sales history
* Capturing seasonal patterns (e.g. Holidays, End of season sales, etc.)

**Example Use Case:**

A mid-tier skincare cream that sells steadily about 1,000 units per month with a noticeable uplift every December. Hong Kong averages its three component forecasts to provide a smooth projection that preserves the holiday bump while filtering out random week-to-week noise.

### London

London is built on [Chronos](https://github.com/amazon-science/chronos-forecasting), an open-source family of pretrained time series forecasting models developed by Amazon. Chronos uses deep learning to transform time series data into token sequences, enabling probabilistic forecasts by learning patterns across diverse datasets. This lightweight deep learning model is designed for businesses needing accurate, short- to medium-term predictions with limited sales history. While it has a higher compute cost than statistical models, London delivers fast, reliable forecasts that adapt quickly to stable and seasonal demand patterns.

**This model is optimized for:**

* Items with short history (approximately 6 - 9 months)
* Sales patterns that are simple and stable
* Fast results needed for quick decisions
* Online sales with a lot of historical data

**Example Use Case:**

You sell a jar of all-seasoned spices in your online shop every day which gives steady and predictable sales every day. Usually, you sell the same number each day with a small increase seasonally during summer, and sales do not jump around as much.

***

## How It Works

Understanding the different types of forecasting models can help you choose the right one for your business:

### Ensemble

An ensemble model combines multiple forecasting methods into one prediction. Think of it like getting opinions from several experts and averaging them together. By blending different approaches, ensemble models reduce the risk of any single method being wrong and typically produce more stable, reliable forecasts. Hong Kong is an example of an ensemble model that combines three different forecasting techniques.

### Statistical vs Probabilistic

**Statistical models** (like Rome and Athens) use traditional mathematical formulas to identify patterns in your historical data. They work like a calculator that applies proven equations to your sales history. These models are fast, cost-effective, and work well when your sales patterns are consistent and predictable. However, they give you a single "best guess" forecast number.

**Probabilistic models** (like Venice and Hong Kong) go a step further by providing a range of possible outcomes rather than just one number. Instead of saying "you'll sell 1,000 units," a probabilistic model might say "you'll likely sell between 900 and 1,100 units, with 1,000 being most probable." This range helps you plan for uncertainty and make better decisions about safety stock and inventory buffers.

### Probabilistic vs Deep Learning

**Probabilistic models** use structured mathematical approaches that are designed to handle uncertainty. They're transparent in how they work and are great for capturing known patterns like seasonality and holidays.

**Deep learning models** (like London) use artificial intelligence that learns patterns the way a human brain might—by processing vast amounts of data and finding hidden connections. These models can discover complex patterns that traditional methods might miss, especially when you have limited history or unusual sales behavior. The tradeoff is higher computational cost, but they can adapt quickly to new products or changing market conditions.

***

## Adjust Your Bottom-Up Forecast

* Select the **Gear Icon** found in the top right corner, choose **Modify Forecast.**
* Select **Change Forecast Method**
* This will direct you to the **Forecast Creation Workflow** where you can re-select your **AI Forecast Models**.
* Select **AI Forecast models**, and choose **Bottom Up**. This option will list you the available forecast models you can choose from.

Once a model has been selected follow the Forecast Creation Workflow to finalize your Bottom Up forecast.

<figure><img src="/files/V7Gl30NIDSNIFzBfL68b" alt=""><figcaption></figcaption></figure>


# Generate a Top-Down Forecast

Learn how to create a top-down demand forecast by converting revenue goals into SKU-level unit projections for inventory and supply chain planning.

The Top-Down approach allows you to enter your sales revenue goals and automatically convert them into a detailed unit forecast at the channel and SKU level.

***

## Steps to Generate a Top-Down Forecast

{% hint style="danger" %}
Warning - You are unable to create a top-down forecast until your unit prices are fully up to date within your product catalog.
{% endhint %}

1. On the [scenario plan flow](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast), select the **Use AI Forecast Models** button.
2. This reveals options for both Top-Down and Bottom-Up approaches. Select the **Top-Down approach**.
3. Within the flyout, enter your sales goals for your channels based on the given months you've entered.

{% hint style="success" %}
Tip: You can input your sales goals directly into each cell, or copy and paste an entire row of gross sales into the table.
{% endhint %}

4. Click the **Generate Forecast** button to transform your gross sales into unit sales projections. The planning page table will automatically update to display the converted data.

***

## Available Top-Down Models

|                 | Bombay                               | New York (Coming Soon)           |
| --------------- | ------------------------------------ | -------------------------------- |
| Model Type      | Probabilistic                        | One-Shot                         |
| Cost / Compute  | $                                    | $$$                              |
| Forecast Method | Top-down                             | Top-down                         |
| Outcomes        | Sales goals defined for the business | First one-shot forecasting model |
| Business Type   | Fast-growing                         | Enterprise                       |

### Bombay

Bombay is designed to convert projected revenue forecasts into unit sales forecasts, enabling more accurate planning. This model is particularly useful for businesses where forecasts are often made in revenue terms, but operational planning requires forecasts in physical units.

**This model is optimized for:**

* Businesses that forecast in revenue but need unit-level planning
* Inventory and supply chain teams requiring unit sales estimates
* Product lines with stable or predictable price-per-unit relationships
* Scenarios where price data is available to translate revenue into units

**Example Use Case:**

If a skincare company expects to make $50,000 in sales and each skincare kit sells for $50, the model predicts they will need to prepare for 10,000 kits. This helps the company know how many toners, cleansers, and moisturizers to buy in advance.

***

## How It Works

Moselle's Top-Down forecasting uses several advanced techniques to accurately translate revenue targets into unit projections:

### Average Selling Price (ASP)

We use **Average Selling Price (ASP)** rather than MSRP (Manufacturer's Suggested Retail Price) to convert revenue into units. ASP reflects what customers are actually paying after discounts, promotions, and markdowns—giving you a more accurate forecast based on real market conditions.

For example, if a product has an MSRP of $99.99 but typically sells for $79.99 after promotions, using ASP ensures your unit projections reflect actual sales patterns rather than theoretical pricing.

### Real-Time Currency Conversion

When your revenue targets are set in one currency but your sales channels operate in another, Moselle uses **real-time market FX rates** to adjust projections automatically. This ensures accurate revenue-to-unit conversions across international channels without manual currency calculations.

### Probabilistic SKU Distribution

Starting from a total revenue target, Moselle uses **probabilistic modeling** to determine how revenue should be distributed down to the channel and SKU level. This approach analyzes historical sales patterns, product relationships, and channel performance to create realistic unit projections across your entire catalog.

### AI-Generated SKU Grading

To further enhance revenue distribution, Moselle applies **AI-generated SKU grading** to your product catalog. This grading system evaluates each SKU's historical performance, seasonality, and market positioning to intelligently allocate revenue across products—ensuring top performers receive appropriate forecast weight while accounting for tail products.

***

## Adjust Your Top-Down Forecast

1. Select the **Gear Icon** found in the top right corner, choose **Modify Forecast.**
2. Click **Adjust Revenue Targets**.
3. A flyout will appear, where you can adjust and edit your revenue forecast by clicking into each cell or pasting your values into each cell.
4. Click **Regenerate Forecast**, found on the bottom right of the flyout.

{% hint style="danger" %}
Warning - Regenerating a forecast will override any existing cells permanently.
{% endhint %}

<figure><img src="/files/xIrRdcatKzsddX6m5Ouf" alt=""><figcaption></figcaption></figure>

***

## Known Limitations

* **Directional forecasts:** All forecasts generated in Moselle are directional and should be refined using Mo to incorporate business context.
* **Price and currency volatility:** Significant price changes or currency fluctuations may reduce model accuracy. Regenerate forecasts after major pricing or FX adjustments.
* **Incomplete product data:** Missing unit prices or limited sales history may prevent certain SKUs from being forecast. Ensure the product catalog is current and complete before generating a forecast.


# Build Your Forecast with Mo

Use Mo to generate, refine, and validate your demand forecast through natural conversation — covering bulk edits, scenario planning, and explaining the numbers.

{% hint style="info" %}
**Quick Answer:** Mo can help you create forecasts from scratch, apply business rules across your catalog, and make targeted adjustments—all through natural conversation. Start by asking Mo to generate a forecast, then refine it with your business knowledge.
{% endhint %}

## What Mo Can Do for Forecasting

Mo transforms forecast creation from a manual, spreadsheet-heavy process into an interactive conversation. Instead of configuring settings and running reports, you describe what you need and Mo handles the execution.

**Mo helps you:**

* Generate initial forecasts based on your data
* Apply business rules across product categories
* Make targeted adjustments to specific SKUs
* Explore "what-if" scenarios
* Explain the reasoning behind forecast values

{% embed url="<https://www.youtube.com/watch?v=wfz7BUq7nMU>" %}
Vibe Demand Planning with Mo | Edit Your Forecast
{% endembed %}

***

## Getting Started with Mo Forecasting

### Generate a Forecast

Ask Mo to create a forecast using natural language:

**Example prompts:**

* "Create a bottom-up forecast for Q2 2026"
* "Generate a top-down forecast based on $5M revenue target for next quarter"
* "Build a forecast for my summer collection using last year's seasonal patterns"

Mo will select appropriate models and parameters based on your request and available data.

### Review and Understand

Once Mo generates a forecast, ask questions to understand the output:

* "Why is SKU-12345 forecasted so high for June?"
* "What data are you using for the new product projections?"
* "How does this compare to last year's actual performance?"

Mo provides transparent reasoning so you can validate the forecast against your business knowledge.

***

## Refining Your Forecast with Mo

After generating an initial forecast, refine it using Mo's two primary approaches:

### Mass Updates with Forecast Guidelines

When you need to apply consistent business rules across many products, share your guidelines with Mo:

"Apply these rules to my forecast:

* Summer products increase 40% from May through August
* New launches ramp to full demand over 6 weeks
* Discontinued items decrease 20% monthly"

Mo will process your guidelines and apply adjustments across the relevant SKUs.

### Surgical Edits for Specific SKUs

For targeted changes to individual products, describe the specific adjustment:

* "Increase SKU-ABC by 30% for the promotional period in March"
* "Match the new protein bar forecast to our chocolate bar launch last year"
* "Zero out the forecast for discontinued winter items after February"

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

***

## Scenario Planning with Mo

Mo excels at exploring different forecast scenarios:

**Test assumptions:**

* "What if BFCM sales increase 50% this year?"
* "Show me the forecast if we launch in Amazon in Q3"
* "What happens to inventory needs if lead times increase by 2 weeks?"

**Compare approaches:**

* "Compare a conservative vs. aggressive forecast for summer"
* "What's the difference between top-down and bottom-up for this category?"

Mo can create multiple scenarios and help you understand the tradeoffs between them.

***

## How Do I Review Mo's Bulk Changes Before They're Applied?

**Time Required:** 2–3 minutes per review

When Mo proposes bulk forecast changes — such as a seasonal uplift, a growth target, or a channel-wide adjustment — a **mass edit preview table** opens automatically so you can review every line before anything is applied.

**Key benefits:**

* **Full visibility:** See every proposed change before it lands in your forecast
* **Inline control:** Edit any value Mo proposed without rejecting the whole batch
* **Flexible review:** Organize and view changes the way your team thinks about the plan

### What's in the Mass Edit Table?

| Feature                  | What it does                                                                                         |
| ------------------------ | ---------------------------------------------------------------------------------------------------- |
| **Row expansion**        | Drill into product line, channel, and time period groupings to see exactly what's changing and where |
| **Group-by**             | Organize changes by SKU, channel, or another dimension to review at the right level of detail        |
| **Channel-only view**    | Toggle off SKU grouping to see aggregated totals per channel across all items (read-only view)       |
| **Dollar / Unit toggle** | Switch between viewing proposed changes in units or revenue                                          |
| **Inline editing**       | Adjust any value Mo has proposed directly in the table before committing                             |

### Step-by-Step: Reviewing and Committing Mass Edits

{% stepper %}
{% step %}

#### Ask Mo to Make Bulk Changes

Prompt Mo with a bulk forecast request — for example, applying a seasonal uplift, a revenue target, or a category-wide adjustment across channels.

Mo will process your request and prepare a set of proposed changes.
{% endstep %}

{% step %}

#### Review the Preview Table

The mass edit table opens automatically, showing every line Mo intends to modify.

* Use **row expansion** to drill into specific product lines, channels, or time periods
* Use **group-by** to reorganize the view by SKU, channel, or another dimension
* Use the **Dollar / Unit toggle** to switch between revenue and units view

{% hint style="warning" %}
Nothing is applied to your forecast at this stage. You are in review mode only.
{% endhint %}
{% endstep %}

{% step %}

#### Adjust Any Values Inline

If a specific value looks off, click directly into that cell and edit it. You can keep Mo's changes everywhere else and only override what needs to change.

This is faster than rejecting the full batch and re-prompting Mo.
{% endstep %}

{% step %}

#### Commit When You're Ready

Once you're satisfied with the changes — including any manual overrides — click **Commit** to apply the edits to your forecast.

{% hint style="success" %}
Your forecast is updated only at this point. All changes reflect both Mo's proposals and any inline edits you made.
{% endhint %}
{% endstep %}
{% endstepper %}

### Mass Edit Tips

**Use the dollar/unit toggle to sense-check Mo's numbers.** If your team plans in revenue, switch to dollar view before committing — it's easier to spot outliers that way.

**Toggle to channel-only view for high-level validation.** Uncheck "SKU" in the grouping options to see aggregated totals per channel. This is useful when you want to validate overall channel impact without drilling into individual items.

**Expand rows before approving top-line numbers.** A channel or time-period breakdown can reveal a concentration of changes that looks fine in aggregate but is off at the detail level.

**Edit inline instead of rejecting the batch.** If one value is wrong, adjust it directly in the table. There's no need to redo Mo's work across all the other lines that are correct.

***

## Understanding Mo's Forecast Calculations

After creating your forecast and reviewing any adjustments, you can dig deeper into how Mo arrived at each number — directly within the platform.

### Clicking Into a Cell

When you click on any white (editable) cell in your forecast, Mo surfaces two quick-action options:

* **Explain This** — Mo breaks down how it calculated the forecasted number for that specific SKU and channel, giving you full visibility into the logic behind the figure.
* **Sales History** — Mo displays the historical sales data for that SKU by channel, so you can contextualize the forecast against past performance.

### Using the ? Icon

On the left-hand side of the screen, you'll see a **?** icon. Clicking this opens the Mo chat box, where you can ask any question related to your forecast — whether it's about a specific SKU, a channel trend, or the methodology behind a number. This opens a full conversation with Mo, allowing you to explore further without leaving the forecasting view.

{% hint style="info" %}
**Build this into your workflow:** After creating your forecast and reviewing adjustments, take a moment to click into Mo and validate the numbers. Understanding the *why* behind a forecast leads to more confident decisions.
{% endhint %}

***

## Locking Your Forecast

When you've finalized your forecast and want to prevent further changes:

{% hint style="warning" %}
You can lock your forecast to prevent adjustments, including changes by Mo. This is useful when you've completed planning and want to preserve the forecast for execution.
{% endhint %}

To lock a forecast, navigate to your forecast scenario and select the lock option. Locked forecasts can be unlocked later if you need to make additional changes.

***

## Tips for Working with Mo

**Be specific:** "Increase outdoor furniture 50% from April through September" works better than "increase summer products"

**Provide context:** "We're running a major promotion" or "this product is being discontinued" helps Mo make better adjustments

**Iterate:** Start with broad guidelines, review the results, then make surgical edits for fine-tuning

**Ask questions:** If a forecast value seems wrong, ask Mo to explain its reasoning before making changes

***

## Related Guides

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/sb2SV5PNVIJy5jUlhar2" %}
[Meet Mo](/mo/meet-mo)
{% endcontent-ref %}


# Filter Your Forecast with Custom Views

Learn how to filter your forecast in Moselle with custom views — save reusable, filtered tabs by product line, sub-line, channel, and product attributes.

{% hint style="info" %}
**Quick Answer:** To filter your forecast, open a forecast and click **Custom view** above the SKU table. Give the view a name, choose the **Line**, **Sub-Line**, **Channel**, and **Attributes** you want to see, and save. Your view is added as a reusable tab next to **All SKUs**, so you can switch back to it any time in one click.
{% endhint %}

## What is a Custom View?

**A custom view is** a saved, filtered version of your forecast table that shows only the SKUs you care about. Instead of scrolling through every SKU each time, you build a focused view once — for example "SS26 Footwear" or "Wholesale Apparel" — and Moselle keeps it as a tab you can return to.

### Key Benefits

* **Focus fast:** Jump straight to a subset of SKUs without re-filtering each visit
* **Stay organized:** Group your forecast by line, sub-line, or any custom attribute
* **Reusable:** Saved views persist as tabs, so the whole team works from the same cuts
* **Non-destructive:** Filtering changes what you see, never your underlying forecast

## Prerequisites

**Time Required:** 2 minutes\
**Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] An existing forecast open in Moselle
* [ ] Product lines, sub-lines, or attributes set on your catalog to filter by

## How to Create a Custom View

{% stepper %}
{% step %}

### Open your forecast

Navigate to your forecast to open the SKU table. Above the table you'll see tabs for **All SKUs** and **Missing SKUs**.

**Expected Result:** The forecast table is visible with the tab bar across the top.
{% endstep %}

{% step %}

### Click "Custom view"

Select the **Custom view** button (with the **+** icon) to the right of the tabs. A **Create custom view** dialog opens.
{% endstep %}

{% step %}

### Name and filter your view

Fill in the dialog:

* **Name** — a label for the tab, e.g. `SS26 Footwear`
* **Line** — pick one or more product lines to include
* **Sub-Line** — narrow further by sub-line (product type)
* **Channel** — pick one or more of your active sales channels (for example DTC vs. wholesale) to include
* **Attributes** — add a row to filter by any custom attribute (for example a season or category) and choose which values to include

{% hint style="info" %}
Selecting several values within one filter shows SKUs matching **any** of them. Adding filters across **Line**, **Sub-Line**, **Channel**, and **Attributes** narrows the view to SKUs that match **all** of those filters.
{% endhint %}

{% hint style="warning" %}
**Channel behaves differently from the other filters.** Line, Sub-Line, and Attributes narrow down *which SKUs* appear. Channel instead narrows down *which numbers* you see for those SKUs — it limits projections and actuals to the selected channel(s) and hides any row with no sales or forecast there. A SKU with no data in your selected channels simply won't appear, rather than showing up with empty values.
{% endhint %}
{% endstep %}

{% step %}

### Save the view

Click **Save**. Your view appears as a new tab next to **All SKUs**.

{% hint style="success" %}
Success! Click your view's tab any time to filter the forecast table down to just those SKUs.
{% endhint %}
{% endstep %}
{% endstepper %}

## How to Edit or Delete a View

1. Click the view's tab to make it active.
2. Click the **pencil** (edit) icon next to the tabs to reopen the dialog.
3. Update the name or filters and click **Save**, or click **Delete** to remove the view.

## Frequently Asked Questions

### Does a custom view change my forecast?

**Answer:** No. A view only filters which SKUs are displayed. Your projections and forecast data are never changed by creating, editing, or deleting a view.

### What's the difference between "All SKUs" and "Missing SKUs"?

**Answer:** **All SKUs** shows every SKU in the forecast. **Missing SKUs** shows only SKUs that still need details before their projections are complete. Custom views appear as additional tabs alongside these two.

### Can I filter by a custom attribute?

**Answer:** Yes. In the **Attributes** section of the dialog, add a row, choose the attribute, and select the values to include. You can combine multiple attributes in one view.

### Can I filter my forecast by sales channel?

**Answer:** Yes. Choose one or more channels in the **Channel** field when creating or editing a view. Unlike the other filters, this limits the projection and actuals numbers to those channels rather than filtering which SKUs are shown — see the note above for details.

## Related Guides

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/m7P5Z47OAkdJCWudsFQK" %}
[Customize a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/customize-a-forecast)
{% endcontent-ref %}


# Customize a Forecast

You can refine your forecast further by uploading your own projections or fine-tuning your items to improve accuracy

### **Upload Custom Projections**

Under the file drop down menu, select the "**Export**" button to have a forecast upload template of the scenario plan emailed to you.

<figure><img src="/files/QOPl8dGNSFgz1WihVE2a" alt=""><figcaption><p>Export Forecast</p></figcaption></figure>

{% hint style="warning" %}
**Use this template for the selected scenario plan only.** Do not remove the scenario plan, channel, or item IDs as they are needed to map out your forecast in Moselle.
{% endhint %}

Fill in or edit your projections using the template provided. Once you have updated your forecast, save it as a CSV file and upload your new forecast using the "**Upload Forecast**" button under the File drop down menu on the planning page.

<figure><img src="/files/HvP7Ktj0QDugDNGQ8Lek" alt=""><figcaption><p>Upload Your Own Forecast</p></figcaption></figure>

Select the file and click on the "**Upload**" button to overwrite the current forecast for the plan. Refresh the page and your forecast will appear in the SKU table.

### Add Product Launch Dates

You can include a product launch date for any item to further customize your forecast. This is useful when you plan to launch a new item in your catalog.

In the Moselle search bar, type in an item that you want to adjust. In the item details page, click on the "**Edit**" button at the top right corner to open the slide-out. Select the "**Adjust Forecast**" tab and the first option below will be called "**Product Launch Date**". Choose a date from the drop down menu where you would like to start recording sales for that item in Moselle.

<figure><img src="/files/GMAGWsDe32vl9VTvSuND" alt=""><figcaption><p>Adjust Forecast by Item</p></figcaption></figure>

### Sales Spikes

The Sales Spikes bar will help indicate how you expect the item will change in demand over time. For example, if it will be affected by certain markdowns, promotions, liquidations, or other sales. Move the indicator on the bar from left to right to mark how often it will be affected by certain sales spikes.

### Seasonality

The Seasonality bar will help indicate how much seasonality impacts the demand of the product in the past. For example, if it is an item that is a summer-only product you can indicate that it is a "**Very Seasonal**" item.

### Product Comparables

This section will allow you to rank and compare your products against other products in your catalog. For example, if you are launching a new product with no sales history you can select a comparable product from your catalog you think that will perform the similarly.

Type in or Choose an item from the "Select Comparable Product" drop down menu and once selected, it will appear as a product comparable. A delete button will also appear beside the item comparable if you want to remove it from the list.


# Import and Export Forecast

Learn how to export your forecast data, make bulk modifications externally, and re-upload to update your projections in Moselle.

Moselle allows you to export your forecast data, make modifications externally, and re-upload it to update your projections. This is useful for bulk editing forecasts outside of the application or integrating data from external planning tools.

## Exporting a Forecast

To export your forecast:

1. Navigate to the **Forecasting** tab and select your scenario plan
2. Click on the **Gear Icon** next to the Done Planning button
3. Select **Export and Download**
4. A CSV file will be sent to your email

The exported file contains all items across your channels with projection data for each month in your forecast timeframe.

<figure><img src="/files/jg7nMaygMqB5Yz4Jpq0X" alt="" width="335"><figcaption></figcaption></figure>

## Understanding the Export Template

The exported CSV file contains the following columns:

| Column           | Description                                            |
| ---------------- | ------------------------------------------------------ |
| `channelId`      | The unique identifier for the sales channel            |
| `itemId`         | The unique identifier for the product/item             |
| `scenarioPlanId` | The unique identifier for the forecast scenario        |
| Date columns     | Monthly projection values (e.g., `2024-01`, `2024-02`) |

## Importing a Forecast

To upload your modified forecast:

1. Navigate to the **Forecasting** tab and select your scenario plan
2. Click on the **Gear Icon** next to the Done Planning button
3. Select **Upload & Replace**
4. Drag and drop your file or click to browse
5. Click **Upload** to process the file

<figure><img src="/files/GB3KT7IWGgUX1UsCD8Kj" alt="" width="261"><figcaption></figcaption></figure>

{% hint style="info" %}
You will receive a notification once your forecast upload has been processed, confirming whether it was successful or if there were any errors.
{% endhint %}

## File Format Requirements

### Supported File Types

* **CSV** (.csv)
* **Excel** (.xlsx)

### Required Columns

The following columns are **required** and must not be removed from the file:

| Column           | Required | Notes                                             |
| ---------------- | -------- | ------------------------------------------------- |
| `channelId`      | Yes      | Must match an existing channel in your account    |
| `itemId`         | Yes      | Must match an existing item in your catalog       |
| `scenarioPlanId` | Yes      | Must match the scenario plan you are uploading to |

{% hint style="danger" %}
Removing any of the required columns (`channelId`, `itemId`, or `scenarioPlanId`) will cause the import to fail.
{% endhint %}

### Date Column Formats

Date columns represent the monthly projection periods. The following date formats are supported:

| Format       | Example      |
| ------------ | ------------ |
| `YYYY-MM`    | `2024-01`    |
| `YYYY-M`     | `2024-1`     |
| `MM-YYYY`    | `01-2024`    |
| `MM/D/YYYY`  | `01/1/2024`  |
| `M/D/YYYY`   | `1/1/2024`   |
| `YYYY-MM-DD` | `2024-01-01` |

{% hint style="warning" %}
All dates are processed as the beginning of the month regardless of the day specified. For example, `2024-01-15` will be treated as `2024-01-01`.
{% endhint %}

{% hint style="warning" %}
Date columns **must be in chronological order** (e.g., `2024-01`, `2024-02`, `2024-03`). Uploading out-of-order dates will result in an error.
{% endhint %}

### Adding or Removing Date Columns

You can modify the date columns in your template:

* **Add new months** by adding columns with properly formatted date headers
* **Remove months** by deleting the corresponding date columns
* **Dates must use one of the supported formats** listed above

## Modifying Rows

### Removing Rows

You can delete any number of rows from the template to limit your upload to specific item and channel combinations. This is useful when you only want to update projections for a subset of your catalog.

{% hint style="info" %}
Rows that are removed from the upload file will retain their existing projections in Moselle. Only rows included in the upload will be updated.
{% endhint %}

### Empty Rows

Empty rows (where all values are blank) are automatically ignored during processing.

### Skipping Specific Items

If a row is missing both `itemId` and `channelId` and `scenarioPlanId`, that row will be skipped during processing.

## Projection Values

### Numeric Format

* Projection values should be numeric
* Commas in numbers are automatically removed (e.g., `1,000` becomes `1000`)
* Values are stored with decimal precision

### Empty Values

If a date column cell is left blank for a row, no projection will be created or updated for that item/channel/month combination.

## Validation Rules

The import process validates the following:

| Validation              | Behavior                                                                                                                                                             |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Channel exists          | Rows with invalid `channelId` values are skipped                                                                                                                     |
| Item exists             | Items must exist in your catalog                                                                                                                                     |
| Scenario plan exists    | Must be an active (non-archived) scenario plan                                                                                                                       |
| Scenario plan ownership | Must belong to your company                                                                                                                                          |
| Valid dates             | The file must contain at least one valid date column formatted as `YYYY-MM` or `MM/DD/YYYY`                                                                          |
| Chronological order     | Date columns must be in chronological order                                                                                                                          |
| Unrecognized columns    | The file cannot contain any columns that are not recognized system headers (`channelId`, `channel`, `itemId`, `sku`, `name`, `scenarioPlanId`) or valid date headers |

{% hint style="warning" %}
When exporting and uploading a forecast, you must use the template from the same scenario plan you intend to upload to. Each exported forecast contains specific scenario IDs tied to that forecast.
{% endhint %}

## Best Practices

1. **Always start with an export** - Use the exported file as your template to ensure all IDs are correct
2. **Keep required columns intact** - Never remove `channelId`, `itemId`, or `scenarioPlanId`
3. **Use consistent date formats** - Stick to one date format throughout your file
4. **Validate before uploading** - Check that your file opens correctly and data appears as expected
5. **Upload to the correct scenario** - Ensure you're uploading to the same scenario plan you exported from

## Troubleshooting

| Issue                       | Solution                                                                                  |
| --------------------------- | ----------------------------------------------------------------------------------------- |
| Import fails immediately    | Verify all required columns are present                                                   |
| Some rows not imported      | Check that `channelId` and `itemId` match existing records                                |
| Date columns not recognized | Ensure date format matches one of the supported formats (e.g., `YYYY-MM` or `MM/DD/YYYY`) |
| Dates out of order          | Ensure all date columns are arranged chronologically                                      |
| Unrecognized columns        | Remove any extra columns that aren't system headers or valid dates                        |
| Notification shows error    | Review the file format and try re-exporting a fresh template                              |

## Exporting with Financials (Amount Mode)

For advanced financial planning, you can export a detailed financial breakdown of your forecast. This report is generated when you export while viewing your forecast in **Amount** mode.

### How to Generate

1. Navigate to your **Scenario Plan**.
2. Locate the toggle in the header and switch from **Quantity** to **Amount**.
3. Click the **Gear Icon** and select **Export and Download**.

### Report Structure

The CSV file is organized into three distinct sections, repeating the date columns for each financial metric:

| Section                         | Description                                                  | Data Source                                                                        |
| ------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------------------------- |
| **ASP** (Average Selling Price) | Projected revenue based on historical average selling price. | Calculated from your historical sales data (`Analytics::AverageMonthlyItemPrice`). |
| **MSRP** (Retail Value)         | Projected revenue based on the item's current list price.    | Pulls directly from the `Unit Price` field in your item catalog.                   |
| **COGS** (Cost of Goods Sold)   | Projected inventory cost.                                    | Pulls directly from the `Unit Cost` field in your item catalog.                    |

### Column Layout

The export follows this sequence:

1. **Item Details:** Channel, SKU, Name
2. **ASP Section:** Monthly columns showing `Forecast Units * ASP`
3. **Separator:** Blank column
4. **MSRP Section:** Monthly columns showing `Forecast Units * Unit Price`
5. **Separator:** Blank column
6. **COGS Section:** Monthly columns showing `Forecast Units * Unit Cost`

{% hint style="info" %}
**Currency Note:** ASP values are automatically converted to your company's operating currency if the sales channel uses a different currency.
{% endhint %}


# Phase 3: Refine & Maintain

Apply business rules, handle edge cases, and keep your forecast accurate as your business evolves — using guidelines, anomaly detection, and best practices.

A forecast improves with iteration. This section covers how to apply business rules, handle edge cases, and keep your forecast accurate as your business evolves.

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

**Refine Your Forecast** — Apply mass updates and surgical edits to sharpen your directional forecast.

{% content-ref url="/pages/TjZWhp7S3BQuUPkS8Ynq" %}
[Forecast by Week](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-by-week)
{% endcontent-ref %}

**Forecast by Week** — Break a monthly forecast into weekly detail while keeping the monthly total intact.

{% content-ref url="/pages/4gitCN5nghFqhYUADKXv" %}
[Custom Forecast Views](/planning-and-execution/forecasting/phase-3-refine-and-maintain/custom-forecast-views)
{% endcontent-ref %}

**Custom Forecast Views** — Filter your forecast table by product line, sub-line, and attributes, and save the view for later.

{% content-ref url="/pages/a4VaHeybGOn75f976xpb" %}
[Setting Up Forecast Guidelines](/planning-and-execution/forecasting/phase-3-refine-and-maintain/setting-up-forecast-guidelines)
{% endcontent-ref %}

**Setting Up Forecast Guidelines** — Define business rules Mo uses to refine forecasts across your catalog.

{% content-ref url="/pages/1QTsDXIGqcGWPST68DgD" %}
[Anomaly Detection](/planning-and-execution/forecasting/phase-3-refine-and-maintain/anomaly-detection)
{% endcontent-ref %}

**Anomaly Detection** — Set up variance reporting to catch forecast anomalies early.

{% content-ref url="/pages/9RDig5cQWudNgHK0uKRa" %}
[Special Situations](/planning-and-execution/forecasting/phase-3-refine-and-maintain/special-situations)
{% endcontent-ref %}

**Special Situations** — Handle new launches, one-time events, and manual overrides.

{% content-ref url="/pages/D2BTtZoIEwFaGlVVWPXZ" %}
[Forecast Best Practices](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-best-practices)
{% endcontent-ref %}

**Forecast Best Practices** — Tips for building accurate, repeatable forecasts over time.

{% content-ref url="/pages/xFhW5j3Fg4TGKksxnLE3" %}
[Forecast Settings](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-settings)
{% endcontent-ref %}

**Forecast Settings** — Configure forecast preferences and scenario plan settings.


# Refine Your Forecast

Learn how to refine your forecast in Moselle using mass updates and surgical edits with Mo — step-by-step guide to editing projections by channel and SKU.

{% hint style="info" %}
**Quick Answer:** After generating a directional forecast, refine it using two approaches: **mass updates** for broad adjustments based on business rules, and **surgical edits** with Mo for targeted SKU-level changes. Most users start with mass updates, then fine-tune with surgical edits.
{% endhint %}

{% tabs %}
{% tab title="Video Tutorial" %}
{% embed url="<https://youtu.be/VIdvc5OShoc>" %}
How to edit forecast projections by channel and SKU
{% endembed %}
{% endtab %}

{% tab title="Written Guide" %}
See the step-by-step instructions below.
{% endtab %}
{% endtabs %}

## Understanding Your Directional Forecast

When you generate a forecast in Moselle—whether top-down or bottom-up—the initial output is a **directional forecast**. This forecast provides a data-driven starting point based on historical patterns, trends, and the model you selected.

**Directional forecasts are:**

* Statistically grounded predictions based on your data
* Starting points that reflect general demand patterns
* Meant to be refined with your business knowledge

**Why refinement matters:** Your directional forecast doesn't yet include your institutional knowledge—upcoming promotions, product lifecycle changes, market shifts, or category-specific dynamics that only you understand. Refinement bridges the gap between statistical prediction and operational reality.

***

## Two Paths to Forecast Refinement

After reviewing your directional forecast, you have two complementary approaches:

| Approach           | Best For                                               | Method                       |
| ------------------ | ------------------------------------------------------ | ---------------------------- |
| **Mass Updates**   | Broad changes across many SKUs based on business rules | Mo Forecast Guidelines       |
| **Surgical Edits** | Targeted adjustments to specific SKUs                  | Conversational edits with Mo |

Most users follow this progression: start with mass updates to apply broad business logic, then use surgical edits for fine-tuning individual items.

***

## Mass Updates with Mo Forecast Guidelines

Mass updates are ideal when you need to apply consistent business rules across multiple products. Instead of editing SKUs one by one, you provide Mo with guidelines that describe how your products should behave.

### What Are Mo Forecast Guidelines?

Mo Forecast Guidelines are a set of business rules and product knowledge that you provide to Mo. These guidelines help Mo understand:

* How you think about different product categories
* Seasonal patterns specific to your business
* Promotional calendars and their expected impact
* Product lifecycle stages (launch, growth, maturity, decline)
* Category-specific demand drivers

### Creating Your Forecast Guidelines

{% stepper %}
{% step %}

### Review Your Directional Forecast

Start by examining your directional forecast to identify patterns that need adjustment:

1. Navigate to **Forecasting** in the left sidebar
2. Open your forecast scenario
3. Review the SKU-level projections
4. Note categories or product groups where the forecast doesn't align with your expectations

**Questions to consider:**

* Which product categories look too high or too low?
* Are seasonal patterns correctly reflected?
* Do new product launches have appropriate projections?
* Are promotional periods accounted for?
  {% endstep %}

{% step %}

### Document Your Business Rules

Capture how you think about demand for different parts of your catalog. Consider documenting:

**Category-level rules:**

* "Summer products should show 40% higher demand May through August"
* "Holiday gift sets peak in November with 3x normal volume"
* "Basics maintain steady demand year-round with minimal seasonality"

**Product lifecycle rules:**

* "New launches typically ramp to full velocity over 8 weeks"
* "Products in decline phase should forecast 15% lower than last year"

**Promotional rules:**

* "BFCM products see 2-3x lift during the promotional window"
* "Products featured in email campaigns see 25% lift for 2 weeks"

{% hint style="warning" %}
Focus on patterns and rules rather than individual SKU adjustments. Save specific SKU changes for surgical edits.
{% endhint %}
{% endstep %}

{% step %}

### Share Guidelines with Mo

Open the Mo chat interface and share your forecast guidelines. Mo will use these rules to suggest adjustments across your catalog.

**Example prompt:** "I've reviewed my directional forecast and want to apply these guidelines to my Spring 2026 forecast:

* Outdoor furniture should increase 50% from April through September
* Indoor furniture remains flat year-round
* New product launches should ramp to full demand over 6 weeks
* Products marked as discontinued should decrease 20% each month"

Mo will process your guidelines and propose mass updates that align with your business rules.
{% endstep %}

{% step %}

### Review and Apply Mass Updates

Mo will present the proposed changes based on your guidelines. Review the adjustments to ensure they match your intent:

1. Check sample SKUs from each affected category
2. Verify the magnitude of changes aligns with your expectations
3. Confirm the timing of seasonal adjustments
4. Approve the changes to apply them to your forecast

{% hint style="success" %}
Mass updates are applied across your catalog while preserving any individual item settings you've configured (launch dates, comparables, etc.).
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Surgical Edits with Mo

After applying mass updates, use surgical edits for targeted adjustments to specific SKUs. This approach is ideal for:

* Individual products with unique circumstances
* Corrections to specific items after reviewing mass updates
* One-off adjustments based on specific market intelligence
* Testing different scenarios for key products

### How to Make Surgical Edits

{% stepper %}
{% step %}

### Identify SKUs Needing Adjustment

Review your forecast after mass updates to find items that need individual attention:

* SKUs where the forecast still doesn't match your expectations
* Products with unique circumstances not covered by your guidelines
* High-value items that warrant closer scrutiny
  {% endstep %}

{% step %}

### Use Natural Language with Mo

Open the Mo chat and describe the specific changes you need:

**Example prompts:**

* "Increase the forecast for SKU-12345 by 30% for Q2—we're running a major promotion"
* "Set the forecast for our new protein bar line to match the chocolate bar performance from last year's launch"
* "Reduce the forecast for winter accessories by 25% in March—we're exiting the category"

Mo will make the targeted adjustments while preserving your other forecast settings.
{% endstep %}

{% step %}

### Verify Changes

After each surgical edit, verify the change was applied correctly:

1. Check the updated forecast values for the affected SKUs
2. Confirm the timing of changes aligns with your request
3. Review any downstream impacts (inventory projections, reorder points)
   {% endstep %}
   {% endstepper %}

***

## Bring Report Findings into Your Forecast

Spotted something in a report that should change your plan — a channel accelerating, a SKU falling off? Any card on a saved report has an **Incorporate Into Forecast** action. Click it, pick the forecast to update, and Mo reads the data behind the card, summarizes the findings, and proposes how to factor them in. You review and approve every change.

{% content-ref url="/pages/4mwkWnGdXiSNmal5kL88" %}
[Save & Share Reports from Explore](/analytics/explore/save-and-share-reports)
{% endcontent-ref %}

## Forecast Revision History (Coming Soon)

{% hint style="info" %}
**What's This?** Moselle automatically tracks every forecast change behind the scenes. While the UI for browsing revision history isn't available yet, your forecast edits are being captured with full audit trails—and we're building tools to make this history accessible to you.
{% endhint %}

### What's Being Tracked

Every time Mo makes bulk edits to your forecast, Moselle captures a complete revision snapshot:

**Change Details:**

* Before/after values for every modified cell
* Number of items and channels affected
* Total magnitude of changes across your forecast

**Context & Reasoning:**

* Your original prompt to Mo
* Mo's assumptions and reasoning for the changes
* Thread ID linking to your full conversation
* Timestamp and user information

### Upcoming Capabilities

We're actively building UI features to make this revision history accessible:

**Revision History Browser:**

* View a timeline of all changes to your forecast
* See who made changes and when
* Filter by date range, user, or change magnitude
* Click into any revision to see detailed before/after comparisons

**Change Comparison:**

* Side-by-side view of forecast values before and after each edit
* Visual diff highlighting exactly what changed
* Mo's reasoning displayed alongside the changes
* Export revision details for your records

**Revert Functionality:**

* Undo problematic bulk edits with one click
* Preview revert impact before applying

**Audit & Compliance:**

* Export complete audit trails for compliance reporting
* Share revision history with stakeholders
* Track forecast evolution over time
* Understand the full story of how your forecast was built

### Need Access Now?

If you have an urgent need to review forecast revision history or revert changes before the UI is available:

{% hint style="success" %}
**Contact your Moselle success team** and we can provide engineering support to:

* Generate detailed revision reports
* Review Mo's reasoning for specific changes
* Revert problematic edits
* Export audit trails for your analysis
  {% endhint %}

### Why This Matters

**Transparency:** See exactly what Mo changed and why, building trust in AI-assisted forecasting.

**Accountability:** Track who made changes and when, essential for team collaboration and compliance.

**Safety Net:** Know that you can always review or revert changes if something doesn't look right.

**Learning:** Understand how your prompts translate to forecast adjustments, helping you work more effectively with Mo over time.

***

## Recommended Workflow for New Users

If you're new to Moselle or working with a fresh forecast, follow this recommended workflow:

{% stepper %}
{% step %}

### Generate Your Directional Forecast

Create your initial forecast using top-down or bottom-up methods. This gives you a data-driven starting point.

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Review and Identify Gaps

Examine the directional forecast and document what doesn't align with your business knowledge. Focus on:

* Categories that need adjustment
* Seasonal patterns that are missing
* Product lifecycle considerations
  {% endstep %}

{% step %}

### Build Your Mo Forecast Guidelines

Create a document capturing your business rules. This becomes your playbook for forecast refinement that you can reuse and refine over time.
{% endstep %}

{% step %}

### Apply Mass Updates

Share your guidelines with Mo and apply broad adjustments across your catalog.
{% endstep %}

{% step %}

### Make Surgical Edits

Fine-tune individual SKUs that need specific attention beyond the mass updates.
{% endstep %}

{% step %}

### Finalize Your Forecast

Review the complete forecast, make any final adjustments, and lock it when ready.

{% hint style="info" %}
You can lock your forecast to prevent further changes, including changes by Mo. This is useful when you've finalized planning and want to preserve the forecast for execution.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Frequently Asked Questions

### When should I use mass updates vs. surgical edits?

**Use mass updates when:**

* You need to apply consistent rules across many products
* You're adjusting entire categories or product groups
* You want to encode business logic that applies broadly

**Use surgical edits when:**

* You're adjusting specific individual SKUs
* The change is unique to one product or situation
* You're fine-tuning after mass updates

### Can I undo forecast changes?

Yes. You can regenerate your directional forecast at any time to start fresh, or use Mo to reverse specific changes. Moselle automatically tracks all forecast changes with detailed audit trails—see the [Forecast Revision History](#forecast-revision-history-coming-soon) section above to learn about upcoming features for browsing and reverting changes.

### How do I know if my forecast guidelines are working?

After applying mass updates, spot-check representative SKUs from each affected category. The changes should align with the rules you provided. Over time, track your forecast accuracy using the Forecast Performance Report to see if your guidelines improve predictions.

### What if Mo's suggestions don't match my expectations?

Clarify your guidelines with more specific instructions. Mo works best with clear, concrete rules rather than vague direction. For example, instead of "increase summer products," specify "increase outdoor furniture by 50% from April through September."

### How often should I refine my forecast?

Most users refine their forecast:

* **Monthly**: Review accuracy and make minor adjustments
* **Quarterly**: Update guidelines based on performance data
* **Seasonally**: Major updates before peak periods (BFCM, summer, etc.)
* **As needed**: When significant business changes occur

***

## Related Guides

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/m7P5Z47OAkdJCWudsFQK" %}
[Customize a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/customize-a-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/uiyBUBi8r56D1ZueVTqo" %}
[Import and Export Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/import-and-export-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/sb2SV5PNVIJy5jUlhar2" %}
[Meet Mo](/mo/meet-mo)
{% endcontent-ref %}


# Forecast by Week

Learn how to forecast by week in Moselle — break a monthly forecast into weekly detail, edit week by week, and keep your monthly total locked in.

{% hint style="info" %}
**Quick Answer:** On the planning page, hover any future month and click **Forecast by week** to open the weekly view. Edit each week's projection while Moselle keeps the total tied to your monthly forecast, then click **Save weekly forecast**. Setup takes about 2 minutes.
{% endhint %}

## What Is Weekly Forecasting in Moselle?

**Weekly forecasting** lets you break a monthly forecast down into individual weeks so you can shape demand at a finer level of detail. Instead of spreading a month's demand evenly, you decide how much lands in each week — useful for promotions, launches, holidays, and any period where timing within the month matters.

### Key Benefits:

• **Plan around timing** — Place demand in the exact weeks a promotion or launch happens • **Keep totals honest** — Your weekly numbers always roll up to the monthly forecast • **Sharper replenishment** — Weekly detail feeds more precise ordering and coverage

## Prerequisites

**Time Required:** 2 minutes **Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] A scenario plan with a generated forecast
* [ ] At least one **future** month in your plan (past months can't be edited)
* [ ] Your retail calendar set in Company Settings (see Step 1)

## Step-by-Step Instructions

{% stepper %}
{% step %}

### Confirm Your Retail Calendar

Weekly forecasting uses your account's retail calendar to define where each week starts and ends.

1. Go to **Settings → Company → Company Settings**
2. Find the **Retail Calendar** field
3. Confirm it is set to **ISO / Standard Calendar Week (Mon–Sun)**

**Expected Result:** Weeks in the weekly view run Monday through Sunday and are numbered by ISO week.
{% endstep %}

{% step %}

### Open the Weekly View

1. Open your scenario plan on the **Planning** page
2. Hover over a **future month** in the forecast table header
3. Click **Forecast by week**

**Expected Result:** The weekly view opens, titled **"\[Month] Weekly Forecast"**, with one column per week plus a **Monthly Forecast** column.
{% endstep %}

{% step %}

### Edit Your Weekly Projections

1. Click into any weekly cell and enter your projected demand for that week
2. Watch the **Monthly Forecast** column — it shows how your weekly numbers compare to the month's total

{% hint style="warning" %}
Your weekly values must add up to the monthly forecast. Moselle keeps the month total fixed as you edit, so raising one week means lowering another.
{% endhint %}
{% endstep %}

{% step %}

### Adjust the Monthly Total (Optional)

The **Monthly Forecast** column is read-only by default so you don't change the total by accident.

1. Hover the **Monthly Forecast** cell
2. Click **Unlock**
3. Edit the monthly total inline and confirm

**Expected Result:** The month total updates and your weekly breakdown adjusts to the new total.
{% endstep %}

{% step %}

### Save Your Weekly Forecast

1. Click **Save weekly forecast**
2. Navigate back to your plan

{% hint style="success" %}
A **blue dot** appears on any month that has a saved weekly forecast, so you can see at a glance which months are planned by week.
{% endhint %}
{% endstep %}
{% endstepper %}

## Editing or Removing a Weekly Forecast

Once a month has a weekly forecast, its header menu changes:

| Action                     | Where to Find It  | What It Does                                                              |
| -------------------------- | ----------------- | ------------------------------------------------------------------------- |
| **Edit weekly forecast**   | Month header      | Reopens the weekly view to make changes                                   |
| **Remove weekly forecast** | Month header menu | Clears the weekly detail and returns the month to a single monthly figure |

If you try to leave the weekly view with unsaved changes, Moselle prompts you to **Save** or **Discard** so you never lose an edit by accident.

## Frequently Asked Questions

### Why don't I see "Forecast by week" on a month?

Weekly forecasting is only available for **future** months. Past and in-progress months are read-only, so the option won't appear.

### Do my weekly numbers change my monthly forecast?

No. By default the monthly total stays fixed and your weekly edits are distributed within it. To change the total itself, use the **Unlock** option on the Monthly Forecast column.

### What calendar do the weeks follow?

Weeks follow the **ISO / Standard Calendar Week (Mon–Sun)** set in your Company Settings, numbered by ISO week.

### Can I remove a weekly forecast later?

Yes. Open the month's header menu and choose **Remove weekly forecast** to return that month to a single monthly figure.

## Troubleshooting Common Issues

| Problem                               | Solution                                                           | Time to Fix |
| ------------------------------------- | ------------------------------------------------------------------ | ----------- |
| "Forecast by week" is missing         | Confirm you're on a future month — past months can't be telescoped | 1 minute    |
| Weekly totals won't save              | Make sure your weekly values add up to the monthly total           | 2 minutes   |
| Can't edit the Monthly Forecast cell  | Hover the cell and click **Unlock** first                          | 1 minute    |
| Lost track of which months are weekly | Look for the **blue dot** on month headers in the plan             | 1 minute    |

## Related Guides

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/m7P5Z47OAkdJCWudsFQK" %}
[Customize a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/customize-a-forecast)
{% endcontent-ref %}


# Custom Forecast Views

Learn how to create Custom Views in Moselle to filter your forecast table by product line, sub-line, and attributes — save, edit, and manage views per plan.

{% hint style="info" %}
**Quick Answer:** Above your forecast table, click **+ Custom View**, name the view, and select the product **Line**, **Sub-line**, and **attributes** you want to filter to. Click **Save** and the table filters down to just those items. Setup takes about 1 minute.
{% endhint %}

## What Is a Custom View?

**A Custom View is** a saved filter for your forecast table, scoped to a specific product line, sub-line, or set of attributes. Instead of scrolling through every SKU in your catalog, you narrow the table down to the slice you actually want to review — like a single season, product line, or color.

### Key Benefits:

* **Focus your review** — See only the SKUs relevant to the plan you're working on
* **Reuse your filters** — Save a view once and revisit it anytime from that forecast
* **Drill down further** — Combine line, sub-line, and attribute filters for a precise slice

## Prerequisites

**Time Required:** 1 minute **Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] A scenario plan with projections populated in the forecast table

## Step-by-Step: Create a Custom View

{% stepper %}
{% step %}

### Open the Custom View Flyout

Above your forecast table, click **+ Custom View**.

**Expected Result:** A flyout opens where you can build your view.
{% endstep %}

{% step %}

### Name Your View

Give the view a descriptive name — for example, "Jackets Season 2026 View."
{% endstep %}

{% step %}

### Select a Product Line

Under **Line**, use the dropdown to select or deselect the product line(s) you want the view to include.
{% endstep %}

{% step %}

### Select a Sub-line

Under **Sub-line**, choose the product type or sub-line to narrow the view further within the line(s) you selected.
{% endstep %}

{% step %}

### Select Attributes (Optional)

If you want to drill down further, use **Attributes** to filter by any attribute set up at the product level — for example, color or size.
{% endstep %}

{% step %}

### Save the View

Click **Save**.

{% hint style="success" %}
Success! Your forecast table now filters down to match the view, and the view is saved for that forecast so you can return to it anytime.
{% endhint %}
{% endstep %}
{% endstepper %}

## Editing or Deleting a Custom View

Once a view is saved, click the **pencil icon** on it to reopen the flyout:

| Action                                                          | What It Does                              |
| --------------------------------------------------------------- | ----------------------------------------- |
| Adjust name, line, sub-line, or attributes, then click **Save** | Updates the view with your new selections |
| Click **Delete View**                                           | Removes the view from that forecast       |

## Frequently Asked Questions

### Does a Custom View change my forecast data?

**Answer:** No. A Custom View only filters what you see in the table — it doesn't edit, hide, or remove any projections from your forecast.

### Are Custom Views shared with my team?

**Answer:** A Custom View is saved on the forecast it was created in, so anyone with access to that forecast can use it.

### Can I combine line, sub-line, and attribute filters?

**Answer:** Yes. Selections across **Line**, **Sub-line**, and **Attributes** all apply together, so you can narrow down to a precise slice of your catalog.

## Related Guides

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/TjZWhp7S3BQuUPkS8Ynq" %}
[Forecast by Week](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-by-week)
{% endcontent-ref %}


# Setting Up Forecast Guidelines

Learn how to set up Mo Forecast Guidelines in Moselle — define seasonality, channel weightings, growth assumptions, and SKU-level rules to refine your forecast.

{% hint style="info" %}
**Quick Answer:** Forecast guidelines are business rules you share with Mo to apply bulk adjustments across your catalog. Define rules for seasonality, regional demand, growth rates, and SKU-level behavior, then let Mo process them across hundreds or thousands of products at once.
{% endhint %}

## What Are Forecast Guidelines?

**Forecast guidelines** are structured business rules that tell Mo how to adjust your directional forecast based on your knowledge of the business. Instead of editing SKUs one by one, you describe patterns and rules that Mo applies across your entire catalog.

Guidelines typically cover:

* **Seasonality** — How demand shifts throughout the year for different product categories
* **Regional weightings** — How demand varies across sales channels or geographies
* **Growth assumptions** — Expected growth or decline rates by category or product line
* **SKU-level logic** — Specific rules for individual products or product groups

### Forecast Guidelines Template

Use the template below to document your guidelines before sharing them with Mo. Fill in the rows that apply to your business, delete the example rows, then upload the completed file via the **paperclip icon** in the Mo chat and ask Mo to update your forecast based on the guidelines.

{% hint style="success" %}
**How to use this template with Mo:**

1. Copy the table into a spreadsheet or text file and fill in your rules
2. Save the file (CSV, Excel, or plain text all work)
3. Open Mo in your Moselle chat
4. Click the **paperclip (📎)** icon to attach the file
5. Send a message like: *"Please update my forecast based on these guidelines"*
   {% endhint %}

{% hint style="info" %}
**Tips:** Fill in as many or as few rows as you need. Delete any example rows before uploading. The more specific you are with percentages, dates, and product names, the more precisely Mo can apply each rule.
{% endhint %}

| SECTION                               | GUIDELINE TYPE                                                                                                                                                                                                               | PRODUCT CATEGORY / SKU                 | RULE DESCRIPTION                                                                | ADJUSTMENT TYPE        | ADJUSTMENT VALUE                             | START MONTH / DATE                 | END MONTH / DATE                  | NOTES / CONTEXT                                            |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------- | ---------------------- | -------------------------------------------- | ---------------------------------- | --------------------------------- | ---------------------------------------------------------- |
| **HOW TO USE**                        | Fill in each row that applies to your business. Delete example rows. Add as many rows as needed. Once complete, share this file with Mo in your Moselle chat and ask Mo to re-apply your forecast based on these guidelines. |                                        |                                                                                 |                        |                                              |                                    |                                   |                                                            |
| **— SEASONALITY RULES —**             |                                                                                                                                                                                                                              |                                        |                                                                                 |                        |                                              |                                    |                                   |                                                            |
| EXAMPLE                               | Seasonality                                                                                                                                                                                                                  | \[e.g. Sunscreen SPF 50]               | \[e.g. Demand peaks in summer months due to beach season]                       | % Increase / Decrease  | \[e.g. +60%]                                 | \[e.g. May]                        | \[e.g. August]                    | \[e.g. Return to baseline in September]                    |
| EXAMPLE                               | Seasonality                                                                                                                                                                                                                  | \[e.g. Winter Candle Collection]       | \[e.g. Strong seasonal demand tied to holiday gifting]                          | % Increase             | \[e.g. +150% Nov / +180% Dec]                | \[e.g. November]                   | \[e.g. December]                  | \[e.g. Minimal demand Jan–Sep]                             |
| EXAMPLE                               | Seasonality                                                                                                                                                                                                                  | \[e.g. Daily Moisturizer]              | \[e.g. Year-round staple — no seasonal swing expected]                          | Flat / No Adjustment   | \[e.g. 0%]                                   | \[e.g. January]                    | \[e.g. December]                  |                                                            |
| **— CHANNEL & REGIONAL WEIGHTINGS —** |                                                                                                                                                                                                                              |                                        |                                                                                 |                        |                                              |                                    |                                   |                                                            |
| EXAMPLE                               | Channel Weighting                                                                                                                                                                                                            | \[e.g. Amazon]                         | \[e.g. Primary volume driver — largest single channel]                          | % of Total Demand      | \[e.g. 55%]                                  | \[e.g. Full Year]                  | \[e.g. Full Year]                 | \[e.g. Holiday spike stronger here than on DTC site]       |
| EXAMPLE                               | Channel Weighting                                                                                                                                                                                                            | \[e.g. DTC Website]                    | \[e.g. Growing direct channel — moderate promotional lift]                      | % of Total Demand      | \[e.g. 30%]                                  | \[e.g. Full Year]                  | \[e.g. Full Year]                 |                                                            |
| EXAMPLE                               | Channel Weighting                                                                                                                                                                                                            | \[e.g. Wholesale / Retail]             | \[e.g. Pre-season buy windows — orders placed well ahead of sell dates]         | Ordering Pattern       | \[e.g. Concentrated Q1]                      | \[e.g. January / July]             | \[e.g. March / September]         | \[e.g. Not a transactional channel — plan for buy windows] |
| EXAMPLE                               | Channel Weighting                                                                                                                                                                                                            | \[e.g. International DTC]              | \[e.g. International demand follows domestic trends with a delay]               | Timing Lag             | \[e.g. 4–6 week lag vs. domestic]            | \[e.g. Rolling]                    | \[e.g. Rolling]                   |                                                            |
| **— GROWTH ASSUMPTIONS —**            |                                                                                                                                                                                                                              |                                        |                                                                                 |                        |                                              |                                    |                                   |                                                            |
| EXAMPLE                               | Category Growth                                                                                                                                                                                                              | \[e.g. Body Care]                      | \[e.g. Strong momentum — new hero product and increased paid media]             | YoY Growth Rate        | \[e.g. +20%]                                 | \[e.g. Full Year 2026]             | \[e.g. Full Year 2026]            |                                                            |
| EXAMPLE                               | Channel Growth                                                                                                                                                                                                               | \[e.g. DTC Website]                    | \[e.g. Investing heavily in email and retention — expect channel to grow]       | YoY Growth Rate        | \[e.g. +35%]                                 | \[e.g. Full Year 2026]             | \[e.g. Full Year 2026]            |                                                            |
| EXAMPLE                               | Decline Rate                                                                                                                                                                                                                 | \[e.g. Old Packaging SKUs]             | \[e.g. Legacy packaging being phased out — still sell through remaining stock]  | Monthly Decline Rate   | \[e.g. -10% per month]                       | \[e.g. March 2026]                 | \[e.g. Until discontinued]        |                                                            |
| EXAMPLE                               | Flat / No Growth                                                                                                                                                                                                             | \[e.g. Core Replenishment Basics]      | \[e.g. Stable, mature SKUs — no growth planned]                                 | Flat                   | \[e.g. 0%]                                   | \[e.g. Full Year 2026]             | \[e.g. Full Year 2026]            |                                                            |
| **— SKU-LEVEL RULES —**               |                                                                                                                                                                                                                              |                                        |                                                                                 |                        |                                              |                                    |                                   |                                                            |
| EXAMPLE                               | New Launch                                                                                                                                                                                                                   | \[e.g. SKU-1001 — New Serum]           | \[e.g. New SKU launching April 1 — ramp to full velocity over 6 weeks]          | Ramp Curve             | \[e.g. Use SKU-0988 Vitamin C as comparable] | \[e.g. April 1, 2026]              | \[e.g. May 15, 2026]              |                                                            |
| EXAMPLE                               | Promotional Hero                                                                                                                                                                                                             | \[e.g. SKU-2045 — Hero Moisturizer]    | \[e.g. Key hero product for BFCM — expect significant demand lift]              | % Increase             | \[e.g. 4x normal demand]                     | \[e.g. November 2026]              | \[e.g. Mid-December 2026]         |                                                            |
| EXAMPLE                               | Discontinuation                                                                                                                                                                                                              | \[e.g. SKU-3312 — Discontinued Colour] | \[e.g. Colour being retired — reduce forecast until fully phased out]           | Monthly Decline        | \[e.g. -25% per month]                       | \[e.g. May 2026]                   | \[e.g. September 2026 (zero out)] |                                                            |
| EXAMPLE                               | Supply Constraint                                                                                                                                                                                                            | \[e.g. SKU-4400 — Limited Edition]     | \[e.g. Constrained by supplier capacity until new PO arrives]                   | Hard Cap               | \[e.g. 300 units/month max]                  | \[e.g. Now]                        | \[e.g. Q3 2026]                   | \[e.g. Remove cap once new shipment clears]                |
| EXAMPLE                               | Bundle Logic                                                                                                                                                                                                                 | \[e.g. Holiday Gift Set]               | \[e.g. Bundle demand will cannibalize individual SKU sales during promo period] | Cannibalization Offset | \[e.g. \~40% of individual SKU demand]       | \[e.g. November 2026]              | \[e.g. December 2026]             |                                                            |
| **— PROMOTIONAL CALENDAR —**          |                                                                                                                                                                                                                              |                                        |                                                                                 |                        |                                              |                                    |                                   |                                                            |
| EXAMPLE                               | Promotion                                                                                                                                                                                                                    | \[e.g. BFCM Sale]                      | \[e.g. Site-wide and Amazon sale — biggest demand event of the year]            | % Demand Lift          | \[e.g. 3x on Amazon / 2x on DTC]             | \[e.g. November 28, 2026]          | \[e.g. December 2, 2026]          | \[e.g. Pre-campaign inventory by Nov 10]                   |
| EXAMPLE                               | Promotion                                                                                                                                                                                                                    | \[e.g. New Year New You Campaign]      | \[e.g. January wellness push — category-specific demand lift]                   | % Demand Lift          | \[e.g. +45%]                                 | \[e.g. January 1, 2026]            | \[e.g. January 31, 2026]          | \[e.g. New campaign — won't appear in historical data]     |
| EXAMPLE                               | Promotion                                                                                                                                                                                                                    | \[e.g. Influencer Collab Drop]         | \[e.g. Limited edition drop with major creator — viral spike expected]          | Demand Spike           | \[e.g. 5x normal velocity]                   | \[e.g. TBD — confirm with creator] | \[e.g. TBD]                       | \[e.g. Update dates once confirmed]                        |

***

**Time Required:** 15–30 minutes for initial setup **Difficulty:** Intermediate

***

## Prerequisites

Before setting up forecast guidelines, make sure you have:

* [ ] A directional forecast already generated (top-down or bottom-up)
* [ ] Understanding of your product categories and their demand drivers
* [ ] Knowledge of your upcoming promotional calendar
* [ ] Access to Mo in your Moselle account

{% content-ref url="/pages/XFbBg0MSQpAiqVkBJo75" %}
[How to Create a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/how-to-create-a-forecast)
{% endcontent-ref %}

***

## Building Your Seasonality Rules

Seasonality is often the most impactful set of guidelines you can provide. These rules tell Mo how demand for different product categories fluctuates throughout the year.

### How to Define Seasonality Rules

{% stepper %}
{% step %}

### Identify Your Seasonal Categories

Group your products by how seasonality affects them:

* **Highly seasonal** — Products with dramatic demand swings (e.g., swimwear, holiday gifts, outdoor equipment)
* **Moderately seasonal** — Products with noticeable but less extreme shifts (e.g., fitness apparel, skincare)
* **Non-seasonal** — Products with steady demand year-round (e.g., everyday basics, consumables)

{% hint style="warning" %}
Don't over-categorize. Start with 3–5 seasonal groupings. You can always add granularity later.
{% endhint %}
{% endstep %}

{% step %}

### Quantify the Seasonal Impact

For each seasonal category, estimate the demand change by month or quarter:

**Example seasonality rules:**

* "Outdoor furniture: +50% April through September, -30% November through February"
* "Holiday gift sets: +200% in November, +300% in December, return to baseline in January"
* "Everyday basics: flat year-round, no seasonal adjustment"
* "Fitness equipment: +40% January through March, -10% June through August"
  {% endstep %}

{% step %}

### Share with Mo

Open the Mo chat and provide your seasonality rules. Be specific about which categories are affected and the magnitude of the adjustment.

**Example prompt:** "Apply these seasonality rules to my 2026 forecast:

* Outdoor furniture increases 50% from April through September and decreases 30% from November through February
* Holiday gift sets increase 200% in November and 300% in December
* Everyday basics remain flat with no seasonal adjustment
* Fitness equipment increases 40% January through March"
  {% endstep %}
  {% endstepper %}

***

## Defining Regional and Channel Weightings

If you sell across multiple channels or regions, demand patterns may vary significantly. Channel weightings help Mo distribute your forecast appropriately.

### When to Use Channel Weightings

* You sell through both **wholesale** and **direct-to-consumer** with different demand curves
* Certain **marketplaces** (Amazon, Shopify) show different seasonality than your own website
* **Geographic regions** have distinct demand patterns

### How to Set Up Channel Weightings

Describe the relative demand differences across your channels:

**Example guidelines:**

* "Amazon typically represents 60% of our total demand, Shopify 25%, and wholesale 15%"
* "Wholesale orders are concentrated in Q1 and Q3 for pre-season buys"
* "Our Amazon channel has a stronger BFCM spike—2.5x vs. 1.5x on Shopify"
* "International channels lag domestic trends by approximately 4–6 weeks"

{% hint style="info" %}
You don't need exact percentages. Directional guidance like "Amazon is our largest channel and spikes harder during promotions" gives Mo enough context to apply meaningful adjustments.
{% endhint %}

***

## Setting Growth Assumptions

Growth assumptions tell Mo how you expect demand to evolve beyond what historical patterns suggest.

### Types of Growth Assumptions

| Type                 | Description                                         | Example                                                   |
| -------------------- | --------------------------------------------------- | --------------------------------------------------------- |
| **Category growth**  | Expected growth rate for an entire product category | "Our protein bar category is growing 25% year-over-year"  |
| **Channel growth**   | Expected growth for a specific sales channel        | "Amazon sales growing 30% YoY after our advertising push" |
| **Decline rates**    | Expected decrease for products being phased out     | "Legacy packaging SKUs declining 15% monthly"             |
| **Flat assumptions** | Categories expected to maintain current levels      | "Core basics should remain flat, no growth expected"      |

### How to Apply Growth Assumptions

{% stepper %}
{% step %}

### Review Historical Growth Rates

Before setting forward-looking assumptions, check your recent performance:

1. Navigate to **Reports** in the left sidebar
2. Review the **Demand Reports** for category-level trends
3. Note which categories are growing, stable, or declining
   {% endstep %}

{% step %}

### Define Your Assumptions

Create growth rules based on your business strategy and recent performance:

**Example prompt:** "Apply these growth assumptions:

* Protein bars: grow 25% YoY across all channels
* Premium supplements: grow 15% YoY
* Legacy packaging SKUs: decline 15% per month until discontinued
* Core basics: flat, no growth adjustment"
  {% endstep %}

{% step %}

### Verify the Output

After Mo applies growth assumptions, spot-check key SKUs to confirm:

* Growth rates compound correctly over the forecast horizon
* Declining products reach expected levels by their discontinuation date
* Flat categories haven't been inadvertently adjusted
  {% endstep %}
  {% endstepper %}

***

## Creating SKU-Level Logic

Some products need rules that don't fit neatly into category-level guidelines. SKU-level logic lets you define behavior for specific items or small groups.

### Common SKU-Level Rules

**New product launches:**

* "New protein bar (SKU-2468) launches March 15 — ramp to full velocity over 8 weeks using our chocolate bar launch as a comparable"

**Promotional items:**

* "SKU-1357 is our BFCM hero product — 3x normal demand in November, with a 2-week tail into December"

**Discontinuation:**

* "SKU-9876 is being phased out — reduce forecast by 20% per month starting April, zero by August"

**Constrained supply:**

* "SKU-5555 is supply-limited to 500 units per month until our new supplier comes online in Q3"

**Bundled products:**

* "When we run the holiday bundle, the individual SKUs in the bundle should decrease by the percentage of sales expected from the bundle"

{% hint style="warning" %}
Keep SKU-level rules for items that genuinely need individual attention. If a rule applies to an entire category, define it as a category-level guideline instead.
{% endhint %}

***

## Organizing Your Guidelines Document

As your guidelines grow, it helps to organize them in a structured way. Consider this format when sharing with Mo:

**Category Rules:**

* List broad rules that apply to product groups

**Channel/Regional Rules:**

* List rules specific to sales channels or geographies

**Growth Assumptions:**

* List forward-looking growth or decline rates

**SKU-Specific Rules:**

* List rules for individual products that need unique treatment

**Promotional Calendar:**

* List upcoming promotions with expected demand impact and timing

{% hint style="success" %}
Save your guidelines document externally so you can reuse and refine it each planning cycle. Over time, your guidelines become a valuable playbook for demand planning.
{% endhint %}

***

## Recommended Workflow

{% stepper %}
{% step %}

### Start Broad

Begin with 3–5 category-level seasonality rules and your most important growth assumptions. Apply these first and review the results.
{% endstep %}

{% step %}

### Add Channel Detail

Layer in channel-specific weightings if your demand varies meaningfully across sales channels.
{% endstep %}

{% step %}

### Apply SKU-Level Rules

Address individual products that need specific treatment—new launches, discontinuations, promotional heroes.
{% endstep %}

{% step %}

### Review and Iterate

Spot-check representative SKUs from each category. If the adjustments don't match your expectations, refine the guidelines and reapply.
{% endstep %}

{% step %}

### Finalize

Once your forecast reflects your business knowledge, lock the forecast and move into replenishment planning.
{% endstep %}
{% endstepper %}

***

## Frequently Asked Questions

### How many guidelines should I start with?

Start with 5–10 rules covering your most impactful categories and seasonal patterns. You can always add more granularity in subsequent cycles.

### Can I update guidelines after applying them?

Yes. You can share updated guidelines with Mo at any time. Mo will adjust the forecast based on your latest rules, preserving any surgical edits you've already made unless the guideline directly conflicts.

### Do guidelines carry over between forecast cycles?

Guidelines are applied per conversation with Mo. Save your guidelines externally so you can reuse and refine them each planning cycle.

### What if my guidelines conflict with each other?

If Mo detects conflicting rules (e.g., a category growth rule and a SKU decline rule for the same product), it will ask for clarification. Be as specific as possible to avoid ambiguity.

### How do I know if my guidelines improved the forecast?

Track your **MAPE scores** in the Forecast Performance Report before and after applying guidelines. Over multiple cycles, you should see accuracy improve as your guidelines capture business dynamics the model alone cannot detect.

***

## Related Guides

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/KXh7MTxw84WmaJhhHp6g" %}
[How Mo's Forecasting Works](/planning-and-execution/forecasting/phase-1-understand-forecasting/how-mos-forecasting-works)
{% endcontent-ref %}

{% content-ref url="/pages/D2BTtZoIEwFaGlVVWPXZ" %}
[Forecast Best Practices](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-best-practices)
{% endcontent-ref %}


# Anomaly Detection

Set up variance reporting and weekly monitoring in Moselle to catch forecast anomalies early and keep your demand plan on track.

{% hint style="info" %}
**Quick Answer:** Use Moselle's Forecast Performance Report to compare projections against actuals, identify SKUs with high variance (MAPE > 30%), and establish a weekly monitoring rhythm so you can catch and correct anomalies before they cause stockouts or overstock.
{% endhint %}

## Why Anomaly Detection Matters

Even a well-built forecast will drift from reality. Customer behavior shifts, promotions land differently than expected, and external events disrupt demand patterns. The goal isn't to prevent every variance — it's to **catch significant deviations early** so you can adjust before they become costly.

**Common consequences of undetected anomalies:**

* **Stockouts** from under-forecasted items losing you sales
* **Excess inventory** from over-forecasted items tying up cash
* **Missed reorder windows** when lead times don't leave room for late corrections
* **Eroded trust** in the forecast when the team discovers large variances after the fact

***

## Setting Up Variance Reporting

### Access the Forecast Performance Report

1. Click **Reports** in the left sidebar
2. Select **Forecast Performance**
3. Choose your **Forecast Plan** from the dropdown
4. Set your **Date Filter** to the current month or rolling 30-day window

The report displays a bar graph comparing projections to actuals, with a detailed pivot table below.

### Key Metrics to Monitor

| Metric                                    | What It Tells You                              | Action Threshold                      |
| ----------------------------------------- | ---------------------------------------------- | ------------------------------------- |
| **APE (Absolute Percentage Error)**       | Accuracy for a single SKU in a single month    | Investigate if > 30%                  |
| **MAPE (Mean Absolute Percentage Error)** | Average accuracy across multiple months        | Review guidelines if > 30%            |
| **Units Sold vs. Projected**              | Direction of the miss (over or under)          | Flag if consistently in one direction |
| **% of Total**                            | Revenue contribution of the misforecasted item | Prioritize high-contribution items    |

{% hint style="warning" %}
Focus your attention on items with **both** high variance **and** high revenue contribution. A 50% miss on a low-volume SKU matters less than a 25% miss on your top seller.
{% endhint %}

### Customizing Your Variance View

Click **Columns** on the far right of the performance table to configure your view:

1. Enable **APE** to see per-item accuracy
2. Enable **Channel** to spot channel-specific issues
3. Enable **Category** or **Product Line** to identify category-level patterns
4. Use **Filters** to narrow results to specific categories, channels, or SKUs

**Recommended grouping:** Group by **Category** first, then **SKU**, to quickly identify whether a variance is category-wide or item-specific.

***

## Building a Weekly Monitoring Rhythm

Catching anomalies requires consistent check-ins. A weekly review takes 15–20 minutes and prevents small variances from compounding into major problems.

### Weekly Review Checklist

{% stepper %}
{% step %}

### Check Overall Accuracy

Open the Forecast Performance Report and review the current month's performance:

* Is total demand tracking above or below forecast?
* Are there categories significantly over- or under-performing?
* Has accuracy improved or declined versus last week?
  {% endstep %}

{% step %}

### Identify Top Variances

Sort the performance table by **APE (highest first)** and review the top 10–15 items:

* Are these items consistently missing, or is this a one-week blip?
* Is the miss driven by a known event (promotion, stockout, competitor action)?
* Does the variance pattern suggest a systemic issue (e.g., an entire category is off)?
  {% endstep %}

{% step %}

### Classify Each Anomaly

For each significant variance, determine the root cause:

| Anomaly Type           | Description                                | Example                                           |
| ---------------------- | ------------------------------------------ | ------------------------------------------------- |
| **Data issue**         | Incorrect or missing sales data            | Integration sync delay, duplicate transactions    |
| **Known event**        | Expected deviation from a planned activity | Promotion hit harder than expected                |
| **Trend shift**        | Sustained change in demand pattern         | Competitor launched a similar product             |
| **One-time spike/dip** | Isolated event unlikely to repeat          | Viral social media post, weather event            |
| **Forecast gap**       | Guidelines didn't capture a real pattern   | Seasonal transition started earlier than expected |
| {% endstep %}          |                                            |                                                   |

{% step %}

### Take Corrective Action

Based on the anomaly type, decide your response:

* **Data issue** → Fix the data source, verify integration sync
* **Known event** → No action needed if the event is over; update guidelines if recurring
* **Trend shift** → Update forecast guidelines to reflect the new pattern
* **One-time event** → Make a surgical edit for the affected period; no guideline change needed
* **Forecast gap** → Refine your guidelines to capture the missed pattern
  {% endstep %}

{% step %}

### Document and Share

Note what you found and any adjustments made. Sharing weekly variance summaries with your team builds confidence in the planning process and surfaces insights that inform future guidelines.
{% endstep %}
{% endstepper %}

***

## Setting Up Proactive Alerts

Beyond weekly reviews, you can stay ahead of variances by monitoring key indicators:

### Early Warning Signs

| Signal                                                  | What It Means                          | How to Respond                                              |
| ------------------------------------------------------- | -------------------------------------- | ----------------------------------------------------------- |
| Actuals running 20%+ below forecast mid-month           | Demand is weaker than expected         | Investigate cause; consider adjusting future months         |
| Actuals running 20%+ above forecast mid-month           | Demand is stronger than expected       | Check inventory coverage; consider increasing future months |
| Multiple SKUs in a category trending the same direction | Category-level issue, not SKU-specific | Review and update category-level guidelines                 |
| Single SKU with extreme variance (50%+)                 | Item-specific issue                    | Check for stockouts, data errors, or one-time events        |
| New products significantly under-performing comparables | Launch assumptions may be off          | Review comparable selection; adjust ramp timeline           |

### Mid-Month Proration

Moselle automatically prorates the current month's forecast based on actual sales progress. If you see the prorated projection diverging significantly from your forecast, it's an early signal that adjustments may be needed.

**Example:** If your February forecast is 1,000 units but actuals are only 100 units by mid-month, the prorated calculation will flag this gap—giving you time to investigate before month-end.

***

## Analyzing Patterns Across Cycles

Over time, your variance data reveals patterns that make your forecasting process smarter.

### What to Look for Quarterly

* **Consistent over-forecasting** in a category → Your growth assumptions may be too aggressive
* **Consistent under-forecasting** in a category → You may be underestimating demand or seasonality
* **Seasonal timing misses** → Your seasonality rules may need shifted dates (e.g., summer starts in April, not May)
* **Channel-specific patterns** → One channel may need different guidelines than others
* **Promotional accuracy** → Are your promotional lift assumptions matching reality?

### Using Insights to Improve Guidelines

After each quarterly review, update your forecast guidelines:

1. Adjust seasonal timing if patterns consistently start earlier or later than assumed
2. Recalibrate growth rates based on actual performance
3. Refine promotional lift assumptions using post-event data
4. Add new rules for patterns you identified but hadn't previously captured

***

## Frequently Asked Questions

### How much variance is normal?

For most consumer products, a MAPE of 20% or lower is considered good. Highly seasonal or promotional items may show higher variance, which is expected. Focus on trending toward better accuracy over time rather than hitting a specific number.

### Should I adjust the forecast every time I see a variance?

Not necessarily. One-time events and short-term fluctuations don't always warrant forecast changes. Adjust when you see a **sustained trend shift** or when the variance is driven by a **systematic gap** in your guidelines. Reacting to every blip can introduce more noise than it removes.

### How do I tell the difference between a real trend and noise?

Look at the duration and consistency. A single week of above-average sales could be noise. Three consecutive weeks of above-average sales in the same category likely signals a real trend shift that warrants a guideline update.

### What if my anomaly is caused by a data issue?

Fix the data issue first, then reassess. Common culprits include integration sync delays, duplicate transactions, and missing channel data. After resolving the data issue, the apparent anomaly may disappear.

### Can Mo help identify anomalies?

Yes. You can ask Mo to review your forecast performance and highlight significant variances. Mo can also help you investigate potential causes by analyzing patterns across your data.

***

## Related Guides

{% content-ref url="/pages/xw73NKz5xgFvPbpY6Q2n" %}
[Demand Forecast Performance](/analytics/reporting/moselle-reports/performance-reports/demand-forecast-performance)
{% endcontent-ref %}

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/a4VaHeybGOn75f976xpb" %}
[Setting Up Forecast Guidelines](/planning-and-execution/forecasting/phase-3-refine-and-maintain/setting-up-forecast-guidelines)
{% endcontent-ref %}

{% content-ref url="/pages/D2BTtZoIEwFaGlVVWPXZ" %}
[Forecast Best Practices](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-best-practices)
{% endcontent-ref %}


# Special Situations

Handle one-time events, new product launches, manual forecast locks, and other special forecasting situations in Moselle that fall outside standard business rules.

{% hint style="info" %}
**Quick Answer:** Special situations — one-time events, new product launches, discontinuations, and manual overrides — require targeted forecast adjustments that don't fit standard category-level rules. Use Mo's surgical edits, product comparables, and forecast locking to handle these scenarios without disrupting your broader forecast.
{% endhint %}

## One-Time Events

One-time events are demand drivers that aren't part of your regular business rhythm. They create temporary spikes or dips that shouldn't be baked into your ongoing forecast.

### Types of One-Time Events

| Event Type                  | Demand Impact          | Example                                                   |
| --------------------------- | ---------------------- | --------------------------------------------------------- |
| **Flash sale or promotion** | Temporary spike        | 48-hour site-wide sale, influencer collaboration          |
| **Viral moment**            | Unpredictable spike    | Product featured on social media, celebrity endorsement   |
| **External disruption**     | Temporary dip or spike | Weather event, competitor recall, supply chain disruption |
| **Channel launch**          | New demand source      | Launching on a new marketplace or entering retail         |
| **PR or media event**       | Temporary lift         | Magazine feature, TV appearance, trade show               |

### How to Forecast One-Time Events

{% stepper %}
{% step %}

### Estimate the Demand Impact

Before the event, estimate the expected lift or decline:

* **Promotions:** Review past promotional performance for similar events. If your last site-wide sale drove a 2x lift, use that as a starting point.
* **Viral/media events:** These are harder to predict. If you have advance notice (e.g., a planned TV feature), estimate conservatively and monitor actuals.
* **External disruptions:** Estimate the duration and percentage impact on affected SKUs.
  {% endstep %}

{% step %}

### Apply a Surgical Edit with Mo

Use Mo to adjust the specific SKUs and time period:

**Example prompts:**

* "Increase SKU-1234 by 150% for the week of March 15 — we're running a flash sale"
* "Add 500 units to our protein bar forecast for April — we're being featured in a fitness magazine"
* "Reduce outdoor furniture forecast by 40% for the first two weeks of June — our main supplier has a shipping delay"
  {% endstep %}

{% step %}

### Isolate the Event Period

Make sure the adjustment applies **only** to the event window. One-time events should not bleed into subsequent months unless you expect a sustained tail effect.

{% hint style="warning" %}
After a major promotion, some categories see a **demand dip** in the following weeks as customers pulled forward their purchases. Factor in post-event normalization when planning.
{% endhint %}
{% endstep %}

{% step %}

### Lock the Event Period After It Passes

Once the event concludes and actuals are recorded, lock that period to prevent future guideline updates from overwriting the actual event data.
{% endstep %}
{% endstepper %}

### Preventing One-Time Events from Distorting Future Forecasts

When Mo generates your next directional forecast, it will include data from one-time events in its analysis. This can distort future projections if the event was truly non-recurring.

**How to handle this:**

* Note one-time events in your forecast guidelines: "The March 2026 flash sale was a one-time event — do not extrapolate the demand spike into March 2027"
* Use Mo to flag specific periods: "When forecasting Q1 2027, the March 2026 spike was a one-time promotion and should not be used as a baseline"

***

## New Product Launches

New products have no sales history, which means Mo can't generate a data-driven forecast for them. The key tool for this is **Item Comparables** — mapping a similar existing product so Mo can borrow its demand patterns as a starting point.

{% content-ref url="/pages/qHmiH0z8KHuvQI9BqrZh" %}
[Item Comparables](/planning-and-execution/forecasting/phase-3-refine-and-maintain/special-situations/item-comparables)
{% endcontent-ref %}

### Additional Launch Configuration

Beyond assigning a comparable, you can fine-tune the launch forecast:

**Set the Product Launch Date** — In the item details page, set the **Product Launch Date** to tell Mo not to forecast demand before that date.

**Define a Ramp Period** — New products rarely hit full velocity on day one. Use Mo to define a ramp-up:

* "New protein bar (SKU-2468) launches April 1 — ramp to full velocity over 8 weeks based on our chocolate bar launch trajectory"
* "New summer collection launches May 15 — start at 25% of comparable demand in week 1, reach 100% by week 6"

{% hint style="info" %}
A typical ramp period for consumer products is 4–8 weeks. Products with existing brand awareness may ramp faster; products in new categories may ramp slower.
{% endhint %}

**Monitor Post-Launch** — Review performance weekly during the ramp period. After 8–12 weeks, Mo will have enough actual data to start generating data-driven projections.

***

## Product Discontinuation

When you discontinue a product, you need to wind down its forecast gracefully to avoid over-ordering.

### How to Forecast a Discontinuation

{% stepper %}
{% step %}

### Determine the Exit Timeline

Decide when you want to sell through remaining inventory:

* **Hard stop** — Fixed date after which you stop selling (e.g., end of season)
* **Gradual wind-down** — Reduce forecast over several months as inventory depletes
* **Fire sale** — Short-term promotional burst to clear remaining stock
  {% endstep %}

{% step %}

### Apply the Appropriate Guideline

**Gradual wind-down:** "Reduce the forecast for SKU-9876 by 20% per month starting April. Forecast should reach zero by August."

**Hard stop:** "Zero out the forecast for all winter-only SKUs after March 31."

**Fire sale:** "Increase SKU-9876 by 50% for the month of March (clearance sale), then zero out from April onward."
{% endstep %}

{% step %}

### Update the Product Catalog

Once the product is fully discontinued:

1. Archive the item in your product catalog
2. Verify that no future forecasts include the discontinued SKU
3. Confirm that no open purchase orders reference the item
   {% endstep %}
   {% endstepper %}

***

## Manual Forecast Locks

Locking sections of your forecast prevents any changes — including Mo's guidelines and surgical edits — from modifying the locked values.

### When to Use Manual Locks

| Scenario                            | Why Lock                                                 |
| ----------------------------------- | -------------------------------------------------------- |
| **Approved budget periods**         | Finance has signed off on these numbers                  |
| **Committed purchase orders**       | POs are already placed based on these projections        |
| **Completed months**                | Actuals are in; forecast is no longer relevant           |
| **Negotiated supplier commitments** | Changing the forecast would break contractual agreements |
| **Cross-team alignment**            | Multiple teams have planned around these numbers         |

### How Locks Work

* **Locked periods** are unaffected by mass updates via forecast guidelines
* **Mo will not modify** locked values during surgical edits unless you explicitly unlock first
* **You can still view** locked forecast data for reporting and comparison
* **Unlocking** is available to users with appropriate permissions

{% hint style="warning" %}
If you apply forecast guidelines and some SKUs don't update as expected, check whether those periods are locked. Locks take precedence over all other adjustments.
{% endhint %}

### Rolling Lock Strategy

Many teams use a rolling lock approach:

1. **Lock** the current month and all prior months (actuals are already recorded)
2. **Keep open** the next 2–3 months for active refinement
3. **Review and lock** each month as it transitions from planning to execution
4. **Extend** the forecast horizon as locked months roll off

***

## Handling Stockout Periods

When you experience a stockout, actual sales understate true demand — customers wanted to buy, but couldn't. This creates a problem when Mo uses that period to generate future forecasts.

### How to Account for Stockouts

**In your forecast guidelines:** "SKU-5678 was stocked out for 3 weeks in June 2025. Actual sales during that period understate demand by approximately 40%. Adjust June 2026 projections upward to reflect true demand."

**Using surgical edits:** "Increase SKU-5678 forecast for June by 40% to account for last year's stockout — actual demand was higher than recorded sales."

{% hint style="info" %}
If you consistently experience stockouts for certain products, this may indicate your safety stock levels need adjustment. Review your replenishment settings after updating your forecast.
{% endhint %}

***

## Handling Returns and Refunds

Significant return events can distort your sales data and, consequently, your forecast.

### When Returns Affect Your Forecast

* **Seasonal return spikes** — Post-holiday returns in January may create a temporary negative demand signal
* **Product quality issues** — A batch defect causing high returns understates net demand
* **Policy changes** — Extending your return window may shift when returns are recorded

### How to Address Return-Related Anomalies

1. Check if your integration nets returns against sales (most do)
2. If a specific period has abnormally high returns, note it in your guidelines so Mo doesn't understate demand for that period
3. For recurring return patterns (e.g., post-holiday), include them in your seasonal guidelines

***

## Frequently Asked Questions

### How far in advance should I set up a new product launch forecast?

Set up the product launch date and comparables as soon as the product is confirmed in your catalog. For the detailed ramp forecast, 4–6 weeks before launch gives you enough time to align with your replenishment plan.

### Can I apply one-time event adjustments retroactively?

You can adjust forecast numbers for past periods, but this primarily affects accuracy reporting rather than operational outcomes. It's more useful to note the event in your guidelines so future directional forecasts are not distorted.

### What happens if I lock a period and then need to change it?

You can unlock any locked period if you have the appropriate permissions. After unlocking, make your changes, then re-lock. Use this sparingly — frequent lock/unlock cycles can create confusion about which numbers are final.

### How do I forecast a product that's been out of stock for months?

Use product comparables to establish a demand baseline. If you have pre-stockout sales data, ask Mo to project based on that period rather than the stockout period. You can also manually set projections based on your expected demand at relaunch.

### Should I create a separate scenario for special situations?

For major events (like BFCM or a large product launch), creating a separate scenario can be helpful for comparison. For smaller adjustments, incorporate them directly into your active forecast to avoid scenario sprawl.

***

## Related Guides

{% content-ref url="/pages/KXh7MTxw84WmaJhhHp6g" %}
[How Mo's Forecasting Works](/planning-and-execution/forecasting/phase-1-understand-forecasting/how-mos-forecasting-works)
{% endcontent-ref %}

{% content-ref url="/pages/a4VaHeybGOn75f976xpb" %}
[Setting Up Forecast Guidelines](/planning-and-execution/forecasting/phase-3-refine-and-maintain/setting-up-forecast-guidelines)
{% endcontent-ref %}

{% content-ref url="/pages/m7P5Z47OAkdJCWudsFQK" %}
[Customize a Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/customize-a-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/D2BTtZoIEwFaGlVVWPXZ" %}
[Forecast Best Practices](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-best-practices)
{% endcontent-ref %}

{% content-ref url="/pages/ja1XQcZPneh77RB6KNv3" %}
[Build Your Forecast with Mo](/planning-and-execution/forecasting/phase-2-build-your-forecast/build-your-forecast-with-mo)
{% endcontent-ref %}


# Item Comparables

Learn how Moselle uses Item Comparables to forecast new and sparse SKUs without sales history — and how to set up comparable mappings in your catalog.

{% hint style="info" %}
**Quick Answer:** When a new or sparse SKU doesn't have enough data to forecast reliably, Mo borrows demand signals from a similar product already in your catalog — called an **Item Comparable**. You assign the comparable in the Product Catalog, and Mo applies it automatically on the next forecast run.
{% endhint %}

## What Are Item Comparables?

**Item Comparables are products in your catalog that share relevant characteristics with a new SKU** — similar product category, sales velocity profile, channel mix, or launch trajectory. When Mo detects that a SKU has insufficient history to forecast reliably, it identifies the mapped comparable and uses its demand patterns as a proxy.

The result is a forecast that reflects realistic demand expectations for the new product — not a zero, and not a guess.

Mo has direct access to your comparable product mappings as part of his context. This means when you ask Mo questions about a new SKU — reorder timing, expected demand, weeks of stock — he factors in comparable item signals automatically, without you needing to prompt him separately.

***

## When Does Mo Apply Item Comparables?

Item Comparables are used as a fallback in two situations:

| Situation                            | Description                                                                                                                                                                                  |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **New Product Introductions (NPIs)** | SKUs that have just launched and don't yet have enough sales data for a reliable forecast                                                                                                    |
| **Sparse items**                     | Products that have been in the catalog but have very limited or inconsistent sales history, often because of distribution gaps, seasonal introductions, or channel-specific pipefill effects |

In both cases, Mo applies comparable item data automatically once a comparable is mapped. No additional configuration is required.

***

## How to Set Up Item Comparables

**Time Required:** 2 minutes\
**Difficulty:** Beginner

Comparables are assigned directly from the Product Catalog at the individual item level.

{% stepper %}
{% step %}

### Navigate to the Product Catalog

Go to **Catalog** in the left sidebar and open the item detail page for the SKU you want to configure.
{% endstep %}

{% step %}

### Find the Comparable SKU Field

Locate the **Comparable SKU** field on the item record.
{% endstep %}

{% step %}

### Search and Select a Comparable

Search for and select the comparable product from your catalog.

**Choosing a good comparable:**

* Same product category and price point
* Similar sales velocity and channel mix
* Comparable marketing support and launch trajectory
* Launched in a similar season

{% hint style="success" %}
If you're replacing an outgoing SKU with a new one, map the outgoing SKU as the comparable — this gives Mo the most relevant demand signal available.
{% endhint %}
{% endstep %}

{% step %}

### Save

Click **Save**. Mo will pick up the mapping on the next forecast run.
{% endstep %}
{% endstepper %}

You can also check or manage comparable mappings conversationally through Mo:

* "What comparable SKU is mapped to \[new SKU]?"
* "Which of my new SKUs don't have a comparable assigned yet?"

***

## What to Expect for New Product Introductions

When a new SKU is added to Moselle and doesn't yet have sufficient history, Mo will:

1. **Flag the SKU as a New Product Introduction** internally
2. **Apply the mapped comparable item's demand patterns** to generate an initial forecast across all relevant channels
3. **Refine the forecast progressively** as actual sales data accumulates for the new SKU

This means new launches enter the planning workflow with a usable forecast from day one — rather than sitting at zero and triggering false stockout alerts or missed reorder signals.

***

## How Mo Uses Comparable Data

Mo has visibility into the following for every SKU with a comparable mapped:

**Launch date** — Mo knows when a SKU entered the catalog and adjusts how much weight to give comparable signals versus actual history.

**Comparable product** — Mo knows which SKU is mapped and references it when answering questions about the new product's expected trajectory.

**Channel mix** — Comparable signals are applied per channel. If the comparable SKU sold primarily through DTC, Mo applies that demand pattern to the new SKU's DTC channel specifically.

### The Transition to Actual History

As the new SKU accumulates its own data — typically after 2–3 months — Mo progressively shifts weight away from the comparable and toward the SKU's actual sales history. This transition happens automatically.

***

## Where to Find It in the Platform

| Action                          | Where                                                    |
| ------------------------------- | -------------------------------------------------------- |
| Assign a comparable to a SKU    | Product Catalog → Item Detail → **Comparable SKU** field |
| Check what comparable is mapped | Product Catalog → Item Detail, or ask Mo in chat         |
| View NPI forecast in context    | Forecasting → Active Plan → filter by new SKUs           |

***

## Troubleshooting Common Issues

| Problem                                      | Solution                                                                                                 | Time to Fix |
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ----------- |
| Forecast still shows zero for a new SKU      | Verify a comparable is assigned in Product Catalog → Item Detail → **Comparable SKU** field              | 1 minute    |
| Comparable mapping not reflected in forecast | Mo applies changes on the next forecast run — wait for the next cycle or trigger a new run               | 2 minutes   |
| New SKU forecast looks unrealistic           | Review whether the assigned comparable has clean, representative sales history                           | 5 minutes   |
| Unsure which product to use as a comparable  | Choose the closest category match at a similar price point, or ask Mo: "Suggest a comparable for \[SKU]" | 5 minutes   |

***

## Tips

* For best results, ensure your comparable products are well-represented in Moselle with clean sales history — Mo draws on this data when forecasting new items.
* Item Comparables work across all channels. If a new SKU is launching into multiple channels simultaneously, Mo will apply comparable signals per channel where data is available.
* If a new product is genuinely unlike anything else in your catalog, reach out to your Moselle account team — additional configuration may help Mo identify the best comparable match.

***

## Frequently Asked Questions

### What happens if I don't assign a comparable to a new SKU?

Mo will generate a forecast based on available data. For a true NPI with zero history, this typically results in a near-zero forecast until enough actuals accumulate. Assigning a comparable gives Mo a meaningful starting point from day one.

### Can I assign more than one comparable?

Each SKU supports a single comparable mapping. Choose the product that most closely reflects the new SKU's expected demand profile. If no single product is a perfect match, the closest category match at a similar price point is usually the best choice.

### How long until Mo switches from comparable data to actual history?

Typically 2–3 months after the first meaningful sales data flows in. Mo blends signals progressively — there's no hard cutover. You can ask Mo directly: "How much of \[SKU]'s forecast is based on comparable data versus actuals?"

### Will changing the comparable mid-cycle affect my active forecast?

Yes. Updating the comparable mapping will be reflected on Mo's next forecast run. If you're mid-cycle and want to preserve your current forecast values, review them before making the change.

***

## Related Guides

{% content-ref url="/pages/KXh7MTxw84WmaJhhHp6g" %}
[How Mo's Forecasting Works](/planning-and-execution/forecasting/phase-1-understand-forecasting/how-mos-forecasting-works)
{% endcontent-ref %}

{% content-ref url="/pages/9RDig5cQWudNgHK0uKRa" %}
[Special Situations](/planning-and-execution/forecasting/phase-3-refine-and-maintain/special-situations)
{% endcontent-ref %}

{% content-ref url="/pages/RbYy0HPVSBxYN9NZ0J5y" %}
[Product Setup](/operations/catalog/product-setup)
{% endcontent-ref %}

{% content-ref url="/pages/D2BTtZoIEwFaGlVVWPXZ" %}
[Forecast Best Practices](/planning-and-execution/forecasting/phase-3-refine-and-maintain/forecast-best-practices)
{% endcontent-ref %}


# Forecast Best Practices

Best practices for demand forecasting in Moselle — starting from clean baselines, importing existing forecasts, locking finalized sections, and building a repeatable planning process.

{% hint style="info" %}
**Quick Answer:** Start from a clean data baseline, layer in business logic through forecast guidelines, import existing forecasts when transitioning from other tools, lock finalized sections to prevent unintended changes, and review accuracy monthly to continuously improve your process.
{% endhint %}

## Start from a Clean Baseline

A forecast is only as good as the data behind it. Before generating your first directional forecast, make sure your data foundation is solid.

### Data Quality Checklist

* [ ] **All sales channels connected and syncing** — Verify each integration is active in **Settings > Integrations**
* [ ] **Historical data covers at least 12 months** — More history gives Mo better seasonal pattern detection
* [ ] **No duplicate transactions** — Check that orders aren't being double-counted across channels
* [ ] **Product catalog is up to date** — Archived or discontinued items are properly flagged
* [ ] **Anomalous periods are identified** — Note any unusual events (stockouts, viral spikes, data gaps) that could distort the baseline

{% hint style="warning" %}
If you had extended stockout periods, your historical sales will understate actual demand during those times. Note these periods so you can account for them in your forecast guidelines.
{% endhint %}

### Handling Data Gaps

| Situation                       | Impact on Forecast                    | Recommended Action                          |
| ------------------------------- | ------------------------------------- | ------------------------------------------- |
| Channel connected mid-year      | Incomplete seasonal picture           | Supplement with uploaded historical data    |
| Stockout period in history      | Understated demand during that window | Flag in Mo guidelines to adjust upward      |
| Return/refund spike             | Inflated negative demand signal       | Verify data integrity with your integration |
| Migration from another platform | Potential data overlap or gaps        | Audit transaction counts before forecasting |

***

## Importing Existing Forecasts

If you're transitioning to Moselle from spreadsheets or another planning tool, you can import your existing forecast rather than starting from scratch.

### When to Import vs. Generate Fresh

{% tabs %}
{% tab title="Import Existing" %}
**Import when:**

* You have a well-established forecast you trust
* You're mid-cycle and don't want to restart
* Your team has already approved numbers for the current period
* You want to use Moselle for execution (replenishment/orders) while keeping your current forecast methodology

**How:** Export your forecast into Moselle's CSV template format and upload it.
{% endtab %}

{% tab title="Generate Fresh" %}
**Generate fresh when:**

* You're starting a new planning cycle
* Your previous forecast was significantly inaccurate
* You've added new channels or products since your last forecast
* You want to take advantage of Mo's data analysis and forecasting models

**How:** Use the top-down or bottom-up forecast generation in Moselle.
{% endtab %}
{% endtabs %}

### How to Import an Existing Forecast

{% stepper %}
{% step %}

### Create a Scenario Plan

Navigate to **Forecasting** and create a new scenario plan for the period you want to forecast.
{% endstep %}

{% step %}

### Export the Template

Click the **Gear Icon** and select **Export and Download**. Moselle will email you a CSV template with the correct column structure and IDs.
{% endstep %}

{% step %}

### Map Your Data

Fill in the template with your existing forecast numbers. Keep the `channelId`, `itemId`, and `scenarioPlanId` columns intact — only modify the date columns with your projected values.

{% hint style="danger" %}
Do not remove or rename the required ID columns. The import will fail without them.
{% endhint %}
{% endstep %}

{% step %}

### Upload and Verify

Upload the completed file via **Gear Icon > Upload & Replace**. After processing, spot-check several SKUs to confirm the values imported correctly.
{% endstep %}
{% endstepper %}

{% content-ref url="/pages/uiyBUBi8r56D1ZueVTqo" %}
[Import and Export Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/import-and-export-forecast)
{% endcontent-ref %}

***

## Locking Finalized Forecast Sections

Once you've finalized a portion of your forecast, lock it to prevent unintended changes — including changes made by Mo during subsequent refinement sessions.

### Why Lock Your Forecast?

* **Prevent accidental overwrites** — Mass updates via guidelines won't affect locked sections
* **Preserve approved numbers** — Once your team has signed off on a period, locking ensures those numbers stay intact
* **Enable rolling planning** — Lock completed months while keeping future months open for adjustment

### When to Lock

| Timing                     | What to Lock                                            |
| -------------------------- | ------------------------------------------------------- |
| **After team review**      | Lock the periods your team has approved                 |
| **At month-end**           | Lock the completed month before starting the next cycle |
| **Before execution**       | Lock the forecast before generating purchase orders     |
| **After major promotions** | Lock promotional periods once the event has passed      |

### How to Lock a Forecast

1. Navigate to your forecast scenario in the **Forecasting** tab
2. Select the period or section you want to lock
3. Apply the lock to prevent further changes

{% hint style="info" %}
Locked forecasts can be unlocked later if you need to make adjustments. Only users with appropriate permissions can lock and unlock forecasts.
{% endhint %}

***

## Build a Repeatable Planning Cadence

The best forecasting teams follow a consistent cadence. Here's a recommended rhythm:

### Monthly Review (30 minutes)

* [ ] Review forecast accuracy for the previous month in the **Forecast Performance Report**
* [ ] Identify SKUs or categories with high variance (MAPE > 30%)
* [ ] Make surgical edits for any known changes in the upcoming month
* [ ] Lock the completed month

### Quarterly Refresh (1–2 hours)

* [ ] Regenerate or extend your directional forecast for the upcoming quarter
* [ ] Update forecast guidelines based on lessons learned
* [ ] Review and adjust growth assumptions
* [ ] Incorporate new products or discontinuations
* [ ] Align with your team on key assumptions

### Pre-Season Deep Dive (2–3 hours)

Before major selling seasons (BFCM, summer, back-to-school):

* [ ] Review comparable period performance from the prior year
* [ ] Build detailed promotional guidelines with expected demand lifts
* [ ] Set up SKU-level rules for hero products and new launches
* [ ] Create optimistic and conservative scenarios using Mo
* [ ] Get cross-functional sign-off before locking

***

## Collaboration Best Practices

### Align on Assumptions

Before finalizing a forecast, ensure all stakeholders agree on key assumptions:

* **Revenue targets** — Finance and leadership alignment
* **Promotional calendar** — Marketing input on timing and expected impact
* **Supply constraints** — Operations input on lead times and capacity
* **Channel strategy** — Sales input on channel mix and growth plans

### Use Scenarios for Alignment

Mo can generate multiple forecast scenarios (conservative, moderate, aggressive) to facilitate discussions. Present scenarios with clear tradeoffs:

* "If we plan conservatively, we reduce overstock risk but may miss sales if demand exceeds expectations"
* "If we plan aggressively, we capture upside but carry more inventory risk"

### Document Your Decisions

Keep a record of the assumptions and guidelines you applied each cycle. This makes it easier to:

* Explain variances when actuals differ from forecast
* Refine guidelines in subsequent cycles
* Onboard new team members to your planning process

***

## Common Mistakes to Avoid

| Mistake                           | Why It's Problematic                                             | What to Do Instead                                                 |
| --------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------ |
| Skipping the directional forecast | You lose the data-driven baseline                                | Always generate a directional forecast first, then refine          |
| Over-adjusting every SKU          | Time-consuming and often less accurate than category-level rules | Use mass updates for broad patterns, surgical edits for exceptions |
| Never reviewing accuracy          | You can't improve what you don't measure                         | Check the Forecast Performance Report monthly                      |
| Ignoring stockout periods         | Understated demand in history leads to understated forecasts     | Flag stockout periods in your guidelines                           |
| Planning only once per year       | Markets change too fast for annual plans                         | Follow a monthly review + quarterly refresh cadence                |
| Not locking approved periods      | Subsequent edits can overwrite finalized numbers                 | Lock months after team approval                                    |

***

## Frequently Asked Questions

### How accurate should my forecast be?

A MAPE of 20% or lower is considered good for most consumer products. Newer products and highly seasonal items will typically have higher variance. Focus on improving accuracy over time rather than achieving perfection in any single cycle.

### Can I combine imported forecasts with Mo-generated forecasts?

Yes. You can import a forecast for certain categories and use Mo to generate projections for others within the same scenario. You can also import a baseline and then use Mo to refine it with guidelines and surgical edits.

### What if my team disagrees on growth assumptions?

Use Mo's scenario planning to create multiple versions. Comparing a conservative and aggressive scenario side-by-side often resolves disagreements by making the tradeoffs visible.

### How do I handle products with very limited sales history?

For products with less than 3 months of history, assign product comparables and set manual projections. As sales data accumulates, Mo's predictions will become more reliable.

### Should I forecast at the SKU level or category level?

Moselle forecasts at the SKU level for operational accuracy (you need SKU-level numbers for purchase orders), but your guidelines can operate at the category level. This gives you the best of both — strategic thinking at the category level, executable numbers at the SKU level.

***

## Related Guides

{% content-ref url="/pages/KXh7MTxw84WmaJhhHp6g" %}
[How Mo's Forecasting Works](/planning-and-execution/forecasting/phase-1-understand-forecasting/how-mos-forecasting-works)
{% endcontent-ref %}

{% content-ref url="/pages/a4VaHeybGOn75f976xpb" %}
[Setting Up Forecast Guidelines](/planning-and-execution/forecasting/phase-3-refine-and-maintain/setting-up-forecast-guidelines)
{% endcontent-ref %}

{% content-ref url="/pages/0j4ySH8ZiAtDK6eRiQ77" %}
[Refine Your Forecast](/planning-and-execution/forecasting/phase-3-refine-and-maintain/refine-your-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/uiyBUBi8r56D1ZueVTqo" %}
[Import and Export Forecast](/planning-and-execution/forecasting/phase-2-build-your-forecast/import-and-export-forecast)
{% endcontent-ref %}

{% content-ref url="/pages/xw73NKz5xgFvPbpY6Q2n" %}
[Demand Forecast Performance](/analytics/reporting/moselle-reports/performance-reports/demand-forecast-performance)
{% endcontent-ref %}


# Forecast Settings

Under the forecast settings, you can update the Forecast Name and the Timeframe of the forecast. In this option, you can also set a forecast to Master where it will make the current forecast as your primary plan for tracking progress, issue alerts, and team guidance. This will also be reflected on your main dashboard.

There are two options to modify a forecast:<br>

* Adjust Revenue Targets: Update your gross revenue targets and regenerate your forecast accordingly
* Change Forecast Method: Update and switch between different forecasting model or logic

#### Upload & Replace

The Upload & Replace option will allow you to upload your own forecast and replace any existing projections.

* Export a copy of the forecast you want to replace
* Receive the exported copy from your email
* Use the exported forecast as a template, and update your projections accordingly

Once finished, select the Gear Icon again choose the Upload & Replace option to upload the updated file. Drag and drop your file into the box upload, and click on the Upload button. Your uploaded forecast will now overwrite any existing projections in that same forecast.

{% hint style="warning" %}
When exporting and uploading a forecast, you must use that same template for the forecast you uploaded from. Each exported forecast plan will carry specific scenario ID's which are tied to the forecast you exported from.
{% endhint %}

#### **Duplicate**

Selecting this option will allow you to duplicate your existing forecast and its projections to another scenario plan.

#### **Exporting and Download**

When selecting to export your scenario plan, a CSV file will be sent to your email to download. Under the Gear Icon, select the Export and Download option to download a copy of you forecast. This will send over a CSV file to your email.

Once you download the exported forecast, it will display all your items across your channels, along with the number of months you've included for forecasting.﻿

####

#### **Archive**

When selecting the archive selection, your scenario plan will be moved into the archive section. This will make it hidden from all of your active scenario plans.

{% hint style="info" %}
We store your archived scenario plans if you want to view them again. If you wish to view or revive a plan, ask our support team for assistance at <support@moselle.io>
{% endhint %}


# Replenishment

Turn your forecast into action. Create replenishment and allocation plans, review Mo's buy recommendations, set constraints, and generate purchase orders.

## What Is the Planning Section?

**Planning is where forecasts become action.** The Planning section connects your demand forecast to your procurement decisions — telling you what to order, how much, and when, based on your inventory position, supplier lead times, and constraints.

When you open Planning from the left nav, you land on the **Plans List** — a view of all your active and past plans. Two types of plans are available:

| Plan Type              | What It Does                                                                         | Use When                                                |
| ---------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------- |
| **Replenishment Plan** | Calculates buy quantities per SKU and generates purchase orders to send to suppliers | You need to restock — you're ordering new inventory     |
| **Allocation Plan**    | Distributes inventory you already own across locations, channels, or stores          | You have existing stock to move, not new stock to order |

Plans are built on top of a forecast scenario. Changing your forecast doesn't automatically update a plan — you rebuild the plan to pull in the latest demand signal.

***

## Where to Start

{% content-ref url="/pages/vhTY249VKGoERw9TwQiu" %}
[Core Workflow](/planning-and-execution/replenishment/core-workflow)
{% endcontent-ref %}

**Core Workflow** — The essential four-step process from forecast to purchase orders. Start here if you're new to Planning or running a standard replenishment cycle. Covers creating a plan, managing recommendations, adding constraints, and generating orders.

***

{% content-ref url="/pages/mHNMfuZIgMWqBo90himO" %}
[Advanced Planning](/planning-and-execution/replenishment/advanced-planning)
{% endcontent-ref %}

**Advanced Planning** — Power-user features for complex scenarios. Includes advanced production plans, AI-driven planning with Mo, and bulk editing for large SKU catalogs. Best for experienced users managing multi-SKU or multi-supplier operations.

***

{% content-ref url="/pages/9EQ4GVPDYNcEJrl48GcI" %}
[Financial Planning](/planning-and-execution/replenishment/financial-planning)
{% endcontent-ref %}

**Financial Planning** — Integrate cash flow and budget constraints into your replenishment strategy. Essential for seasonal businesses and teams managing tight working capital.

***

## Related Sections

{% content-ref url="/pages/5l1isZUpoJlB9dV2sixp" %}
[Forecasting](/planning-and-execution/forecasting)
{% endcontent-ref %}

{% content-ref url="/pages/zJTX33Agu64EJnWEBenj" %}
[Orders](/planning-and-execution/orders)
{% endcontent-ref %}

{% content-ref url="/pages/mpXIdcppjHO1UYCYrGXr" %}
[Forecast vs. Plan](/planning-and-execution/forecasting/phase-1-understand-forecasting/forecast-vs-plan)
{% endcontent-ref %}


# Core Workflow

The essential replenishment workflow in Moselle — four steps to go from forecast to purchase orders, covering plan creation, constraints, and order generation.

{% hint style="info" %}
**Quick Answer:** The core replenishment workflow walks you through four steps — Create a Plan, Manage & Review, Add Constraints, and Generate Orders — to turn your forecast data into purchase orders.
{% endhint %}

## What Is the Core Workflow?

**The core replenishment workflow is the heart of Moselle's inventory planning.** It connects forecasting to procurement through a simple four-step process that takes you from demand signal to automated purchase orders.

Moselle's replenishment system connects forecasting to procurement through a simple four-step workflow:

1. **Create a Plan** — Generate a replenishment or allocation plan from your forecast, specifying coverage periods and key parameters
2. **Manage & Review** — Adjust order quantities and review Mo's AI-powered suggestions in the interactive planning table
3. **Add Constraints** — Define service levels, lead times, minimum order quantities, and other business constraints
4. **Generate Orders** — Automatically create purchase orders for at-risk inventory based on your plan

This workflow ensures that your inventory levels stay optimal, critical items are never at risk, and procurement is efficient and predictable.

**Who Should Use This:** All Moselle users. This is the primary path for creating and executing replenishment plans.

**Time Required:** 15–30 minutes for your first plan; faster as you build familiarity.

***

## The Four Steps

{% stepper %}
{% step %}

### Step 1: Create a Replenishment or Allocation Plan

Link a forecast scenario, set a coverage period, choose a plan type, and configure product scope and frequency.

{% content-ref url="/pages/8QlNv4eTnXy8INtmWeyS" %}
[Create a Replenishment or Allocation Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Step 2: Manage Your Production Plan

Open the plan, review Mo's buy recommendations, surface at-risk items, and edit quantities as needed.

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Step 3: Add Your Constraints

Set MOQ, min/max stock levels, and lead times for your SKUs or product groups. These shape Mo's recommendations to match your real supplier realities.

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

{% step %}

### Step 4: Generate Orders

When the plan is ready, generate purchase orders — either via Mo (which groups by supplier and sets delivery dates automatically) or using the Generate Purchase Orders button.

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}
{% endstep %}
{% endstepper %}

***

## Core Workflow Pages

| Page                                                                                          | What It Covers                                                 | Time   |
| --------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ------ |
| [Create a Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan) | Plan type, coverage period, forecast link, frequency           | 5 min  |
| [Manage Your Plan](/planning-and-execution/replenishment/core-workflow/production-planning)   | Planning grid, editing quantities, views, filters, and exports | 10 min |
| [Add Constraints](/planning-and-execution/replenishment/core-workflow/add-your-constraints)   | MOQ, min/max stock, lead times, and constraint hierarchy       | 5 min  |
| [Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)        | Creating POs from the plan via Mo or the Generate button       | 5 min  |

{% hint style="success" %}
**Start here:** [Create a Replenishment or Allocation Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan)
{% endhint %}

***

## Related Sections

{% content-ref url="/pages/mHNMfuZIgMWqBo90himO" %}
[Advanced Planning](/planning-and-execution/replenishment/advanced-planning)
{% endcontent-ref %}

{% content-ref url="/pages/9EQ4GVPDYNcEJrl48GcI" %}
[Financial Planning](/planning-and-execution/replenishment/financial-planning)
{% endcontent-ref %}

{% content-ref url="/pages/5l1isZUpoJlB9dV2sixp" %}
[Forecasting](/planning-and-execution/forecasting)
{% endcontent-ref %}


# Create a Replenishment or Allocation Plan

Create a replenishment or allocation plan in Moselle using the two-step wizard. Link a forecast, set a coverage period, generate buy recommendations, and create purchase orders with Mo in one workflow

{% hint style="info" %}
**Quick Answer:** Go to **Planning** in the left nav, click **Create Plan**, and follow the two-step wizard: name your plan and choose a type, then link a forecast, select locations, and set a coverage period. Once the plan is ready, click the green **Generate Purchase Orders** button — Mo will open automatically and create your POs for review.
{% endhint %}

## Watch: End-to-End Production Planning Walkthrough

Not sure where to start? This video walks through the full process — what a production plan actually is, how to navigate it, and how to generate orders at the end. The second half covers how Mo fits into the workflow once your plan is built.

**What's covered:**

* The journey from forecast to production plan (and what usually gets lost along the way)
* Replenishment vs. allocation — knowing which lens to plan through
* How safety stock, lead time, and MOQ factor into an executable plan
* Navigating the plan table and reviewing buy recommendations
* Generating purchase orders and where Mo accelerates the process

{% embed url="<https://www.youtube.com/watch?v=l7faaxHIMgA>" %}
End-to-end production planning walkthrough in Moselle
{% endembed %}

## What Is a Production Plan?

**A production plan in Moselle** is a time-series buy schedule that turns your forecast into concrete order recommendations. It shows how much to order, when to order, and what will happen to your inventory levels if you follow — or deviate from — the plan.

Every plan is linked to a forecast scenario, so demand signals flow directly into the replenishment math. When your forecast changes, you can rebuild the plan to reflect the latest projections.

**Time Required:** 5–10 minutes\
**Difficulty:** Beginner

**Before you begin, make sure you have:**

* [ ] An active Moselle account with at least one warehouse configured
* [ ] At least one forecast created and saved
* [ ] Supplier and lead time data configured (for best recommendations)

{% hint style="success" %}
Plans require an existing forecast. [Learn how to create a forecast](/getting-started/fast-tutorial/create-a-forecast) before proceeding.
{% endhint %}

***

## Choose Your Plan Type

From the **Planning** page, click **Create Plan**. Before filling in any details, choose the type of plan you need:

### Replenishment Plan

**A replenishment plan** determines what to reorder from suppliers and when. Moselle identifies at-risk items and recommends order quantities based on your forecast, current stock, lead times, and safety stock targets.

Use this when you need to **place new purchase orders** with suppliers.

### Allocation Plan

**An allocation plan** distributes existing inventory across multiple locations — warehouses, retail stores, or sales channels. No new orders are placed; inventory is moved or committed from existing stock.

Use this when you have **stock on hand** that needs to be assigned across locations rather than reordered.

***

## Step 1: Name Your Plan

{% stepper %}
{% step %}

### Set the Basics

Fill in the foundational details for your plan:

| Field               | Description                                                                    |
| ------------------- | ------------------------------------------------------------------------------ |
| **Plan Name**       | A memorable name for easy reference (e.g., "Q3 Replenishment — North America") |
| **Plan Type**       | Replenishment or Allocation (selected above)                                   |
| **Coverage Period** | The date range for this plan — how far out you want to plan orders             |

**Coverage Period guidance:**

* **Short-lead-time brands (< 4 weeks):** 3–4 months of coverage
* **Long-lead-time brands (ocean freight, 3–6 month lead times):** 6–12 months of coverage
* **Seasonal businesses:** Cover through the end of your peak season plus one reorder cycle

{% hint style="info" %}
**How Moselle uses your coverage period:** Moselle works backward from your coverage end date. Given your lead times, it calculates the latest date you can place each order and still be in stock by the time you need inventory. This is why a longer coverage window surfaces order trigger dates earlier — so you're never caught with too little runway to act.
{% endhint %}

Click **Next** when ready.
{% endstep %}
{% endstepper %}

***

## Step 2: Configure Your Plan

{% stepper %}
{% step %}

### Link a Forecast Scenario

Select the forecast that will drive your buy recommendations. This is the demand signal your plan uses to calculate how much inventory you'll need across the coverage period.

{% hint style="info" %}
Each plan is a snapshot of the forecast at the time it was generated. If your forecast has been updated since you created the plan, click **Rebuild** to refresh the recommendations.
{% endhint %}
{% endstep %}

{% step %}

### Select Locations

Choose which warehouse or location this plan is for. Moselle calculates inventory projections and buy quantities relative to the stock at the selected location.
{% endstep %}

{% step %}

### Filter Products

Decide which products to include:

| Option                       | What It Includes                                  |
| ---------------------------- | ------------------------------------------------- |
| **SKUs (including bundles)** | All product variations, including bundle SKUs     |
| **Core SKUs**                | Roll up bundles and cases to their component SKUs |
| **Components**               | Break down to the component/ingredient level      |

**Optional settings:**

* **All Products Toggle** — Include products with no current planning recommendations (useful for reviewing the full catalog)
* **Transit Lead Times** — Default lead time in days per month, used as a fallback for items without a specific Transit Lead Time attribute
* **Safety Stock** — Default safety stock buffer in days, used as a fallback for items without a specific Safety Stock attribute
  {% endstep %}

{% step %}

### Set Order Frequency

Choose how the plan groups time periods:

| Frequency   | Best For                                     |
| ----------- | -------------------------------------------- |
| **Monthly** | Most brands; standard planning cadence       |
| **Weekly**  | High-velocity SKUs or short lead times       |
| **Daily**   | Advanced use cases with daily reorder points |

{% hint style="warning" %}
**Important:** The frequency setting cannot be changed after a plan is created. If you need a different cadence, create a new plan.
{% endhint %}

Click **Create Replenishment Plan** (or **Create Allocation Plan**) to generate your plan. It will appear in the Plans list, nested under the forecast scenario you selected.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Optional — Optimization Method (Beta):** Replenishment plans support an opt-in **Optimized** build that consolidates buys across the full coverage horizon instead of placing one order per deficit period. Useful when MOQs are large relative to monthly demand. The default **Standard** method is unchanged. See [Choose an Optimization Method (Beta)](/planning-and-execution/replenishment/advanced-planning/advanced-production-plans#how-do-i-use-the-optimized-build-method-beta) in the Advanced guide.
{% endhint %}

***

## Reviewing Your Plan

Your plan opens to the **Order Schedule** tab — a time-series grid showing:

* **Buy quantities** — Mo's recommended order amounts per period
* **Ending inventory projections** — Starting Balance + Buys − Projected Sales, period by period. Periods showing zero indicate stockouts where sales exceed available inventory.
* **Coverage metrics** — Days on hand for each SKU across the coverage window
* **Constraint data** — MOQ, min/max levels, and lead time impacts reflected in recommendations

Above the table you'll see two tabs:

| Tab                 | What It Shows                                                            |
| ------------------- | ------------------------------------------------------------------------ |
| **Order Schedule**  | The time-series grid with buy quantities and inventory projections       |
| **Purchase Orders** | All purchase orders Mo has created from this plan, linked directly to it |

From the Order Schedule view, review Mo's suggestions and edit order quantities as needed before generating purchase orders.

***

## Generating Purchase Orders with Mo

Once your order quantities look right, you're ready to turn the plan into purchase orders. There are two ways to do this:

{% tabs %}
{% tab title="Option 1: Ask Mo directly" %}
Open the Mo chat panel and ask Mo to generate orders from your plan. This gives you the most control — you can scope the request before Mo builds anything.

**Example prompts:**

* "Create purchase orders from this plan"
* "Generate POs for all at-risk items in this plan"
* "Create a PO for Supplier X from this plan"

Mo will show you a summary of the orders it plans to create, ask you to confirm, then generate the POs.
{% endtab %}

{% tab title="Option 2: Click the Generate button" %}
Click the green **Generate Purchase Orders** button at the top of your plan. Mo opens automatically and starts generating purchase orders right away — no prompt needed.

Mo will:

* Create **one PO per supplier** based on the items in your plan
* Pull unit costs and lead times from your catalog automatically
* Ask you to choose a supplier for any items that have multiple options

{% hint style="info" %}
This is the fastest path when you want Mo to handle everything and you're ready to generate orders for the full plan.
{% endhint %}
{% endtab %}
{% endtabs %}

### Reviewing Mo's Orders

Once Mo finishes generating, review the purchase orders it created:

* Verify supplier groupings and quantities
* Check expected delivery dates against your lead times
* Confirm unit costs match your current supplier agreements

If anything needs adjusting, ask Mo to make changes directly in the chat — for example: "Change the delivery date on this PO to June 15th" or "Reduce the quantity on SKU-123 by 20%."

***

## Viewing All Purchase Orders for This Plan

After Mo generates your orders, click the **Purchase Orders** tab above the table (beside the Order Schedule tab) to see every purchase order linked to this plan.

From the Purchase Orders tab you can:

* See all POs Mo created, organized by supplier
* Check the status of each order (draft, active, received)
* Navigate directly to any PO for further review or edits
* Confirm that all plan quantities have been converted to orders

{% hint style="success" %}
Purchase orders generated from a plan are automatically linked to it. The Purchase Orders tab always reflects the current state of those orders — so you can track your plan through to fulfillment in one place.
{% endhint %}

***

## Frequently Asked Questions

### Can I change the plan type after creating it?

No. Plan type (Replenishment vs. Allocation) is set at creation. If you need a different type, create a new plan — your existing plan remains accessible for reference.

### Can I have multiple plans at the same time?

Yes. You can maintain as many plans as needed. Your most recent active plan appears at the top of the Planning page; previous plans are listed below for reference and comparison.

### What happens when I rebuild a plan?

Rebuilding regenerates the plan's recommendations using the latest data from the linked forecast, current inventory levels, and any updated constraints. Your manually edited order quantities are not preserved after a rebuild.

### Can I link a plan to a different forecast?

No. The forecast link is set at creation. To use a different forecast, create a new plan. This allows you to run parallel scenario plans — for example, an internal demand plan and a factory-facing plan — side by side.

### What if Mo doesn't create a PO for some SKUs?

Moselle will not generate a PO line item for SKUs without a configured supplier. Assign suppliers to affected SKUs in **Operations > Suppliers** before generating orders. You can also ask Mo: "Are there any SKUs in this plan without a supplier assigned?"

### Can I edit a purchase order after Mo creates it?

Yes. All generated POs start as drafts. You can ask Mo to adjust them in the chat, or go to the **Orders** section to edit quantities, delivery dates, or supplier details before activating.

***

## Related Guides

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}

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

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}

{% content-ref url="/pages/rt03PNU9zAGxsqubrFMs" %}
[Planning with Mo](/planning-and-execution/replenishment/advanced-planning/production-planning-with-mo)
{% endcontent-ref %}


# Manage Your Production Plan

Manage your replenishment plan in Moselle — review Mo's buy recommendations, edit quantities, filter by grade or product line, and generate purchase orders.

{% hint style="info" %}
**Quick Answer:** Go to **Planning** in the left nav to see all your replenishment plans organised under each forecast. Select the plan you want to manage, then review Mo's buy recommendations, edit quantities, filter by grade or product line, and generate purchase orders — all from the same table view.
{% endhint %}

## Order Schedule & Inventory Planning

The Production Planning feature provides a streamlined way to manage your order schedules and inventory planning. This table-based interface provides an actionable, editable experience that lets you plan your purchases directly within Moselle.

{% hint style="info" %}
**Pro Tip:** Blue values indicate Mo's suggested orders. These are recommendations based on your forecast and inventory data—use them as a reference point when planning your purchases.
{% endhint %}

## What's New

### Simplified Interface

* **Removed summary cards** – The stats cards at the top weren't providing actionable insights, so we've streamlined the view.
* **New table view** – Built with AG Grid for faster loading and better performance.
* **Direct editing** – Edit "Order" quantities directly in the table cells.
* **Expandable rows** – Click into any SKU to see detailed breakdowns (Starting Stock, Projected Sales, etc.).
* **Advanced Filtering** – Filter by **Grade (A/B/C)**, **Product Line**, **Product Type** (Sub-Line), or use the global **Search**.

### Editable Order Quantities

You can now edit order quantities directly in the table. When you expand a SKU row, you'll see the following detail rows:

| Row Label                | Description                                                                                                                                                                                                                                                                                                          |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Starting Stock Level** | Your inventory position at the beginning of each period.                                                                                                                                                                                                                                                             |
| **Projected Sales**      | Forecasted units based on your linked forecast scenario.                                                                                                                                                                                                                                                             |
| **Suggested Order**      | Mo's recommended order quantity. Appears in blue in the "Order" column.                                                                                                                                                                                                                                              |
| **Ending Quantity**      | The projected inventory balance for each period: **Starting Balance + Buys − Projected Sales**. When projected sales exceed available stock, the ending balance shows **zero** to indicate a stockout. When a purchase order arrives, you'll see the balance jump to a positive number reflecting the new inventory. |
| **Days on Hand**         | Coverage metric showing how many days of demand the projected ending inventory covers. Use this to spot coverage gaps before they become stockouts.                                                                                                                                                                  |

{% hint style="success" %}
**Key Concept:** The **Total Suggested Order** column is fixed and stays visible as a reference point, even when you adjust individual monthly orders. This helps you see how your actual orders compare to Mo's recommendations.
{% endhint %}

## Understanding the Table Layout

### Columns

* **Total Suggested Order**: The sum of Mo's recommendations (fixed).
* **Total Order**: The sum of your actual/edited orders (updates dynamically).
* **MOQ**: The Minimum Order Quantity for the item.
* **Period Columns** (e.g., "January 2026"):
  * **Order**: Your editable buy quantity.
  * **Ending**: The projected ending inventory.
  * **Days on Hand**: Coverage metric — how many days of forecasted demand the ending inventory covers. A low or negative value signals a coverage gap.

**Breakdowns available:** The plan table can be filtered and grouped by **Product Line**, **Product Type**, and **Grade (A/B/C)** using the tabs and filters at the top of the table.

You can customize which fixed columns are visible by clicking the **Overflow Menu (⋮)** > **Show Columns**.

### Visual Indicators

* **Blue Background/Text**: Indicates Mo's suggestions or "Total Suggested Order" column.
* **White Cells**: Editable fields for your actual order quantities.
* **Grey Cells**: Read-only calculated fields (like Ending Quantity).

## How to Use Production Planning

### Step 1: Access Your Production Plan

1. Navigate to **Production Planning** from the main menu.
2. Click into a specific production plan to open the Order Schedule view.

### Step 2: Review Mo's Suggestions

1. Look at the **Suggested Order** detail row or the **Total Suggested Order** column.
2. These suggestions are calculated based on your forecast, lead times, safety stock, and constraints.

### Step 3: Edit Order Quantities

1. Click on any editable cell in the **Order** column to modify the quantity.
2. Your changes will automatically recalculate the **Ending** quantity for future periods.
   * **Note:** Inventory updates reflect the item's lead time. For example, increasing an order in January for an item with a 3-month lead time will increase the Ending Quantity starting in April.
3. The **Total Order** column will update to reflect your changes.

{% hint style="info" %}
**Tip:** Most users work at the top level (collapsed rows). Expand a row only when you need to verify the detailed breakdown or verify calculations.
{% endhint %}

### Step 4: Switch Views

Use the toggles at the top left to switch between:

* **Quantity View** – Default view, fully editable (Unit counts).
* **Value View** – Shows dollar amounts ($) instead of units.

{% hint style="danger" %}
**Important:** Value View is read-only. Switch back to Quantity View to make edits.
{% endhint %}

### Step 5: Filter by Grade (ABC Analysis)

Use the tabs to filter your order schedule by inventory grade:

* **All SKUs**
* **Grade A** – High-value, high-priority SKUs.
* **Grade B** – Medium priority.
* **Grade C** – Lower priority.

### Step 6: Generate Purchase Orders

Once you're satisfied with your order schedule, click **Generate Purchase Orders**. You will be presented with two optimization options:

1. **Cost**: Minimize spend by optimizing for cash flow and unit costs.
2. **Lead time**: Get inventory sooner by prioritizing supplier lead time and geographic distance.

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}

### Step 7: Export Options

You can export your plan data to CSV by clicking the **Overflow Menu (⋮)** > **Download Order Schedule**. The export respects your current aggregation view:

* **Item Level**: Detailed row-by-row data for every SKU.
* **Product Line**: Aggregated totals grouped by product line.
* **Product Type**: Aggregated totals grouped by product type.

## Working with Mo (AI Assistant)

Mo is available in two places when you're inside a plan:

**Contextual Mo (sidebar)** — The primary way to use Mo during planning. Click the **Mo** button on the plan detail page to open Mo in a sidebar. Mo is automatically injected with context about the open plan — its type (replenishment or allocation), coverage period, frequency, and the linked forecast scenario. You don't need to explain what you're looking at; Mo already knows.

**Full-page Mo (/mo)** — For broader, multi-step analysis not tied to a specific plan. Access from the main nav. Useful for cross-plan comparisons or open-ended demand questions.

### Ask Questions About Your Plan

Click any cell in the table, then open the Mo sidebar. Mo will use the selected cell as context for the most precise answer.

* "Why did you suggest this quantity?"
* "What's driving this recommendation?"
* "Is my starting inventory showing correctly?"
* "Which SKUs are projected to stock out before the end of the plan?"

### Bulk-Edit Buy Quantities via Mo

Mo can calculate and apply changes across many SKUs at once. Describe your intent in plain language — Mo will run the math, show you a summary of what will change, and wait for your explicit confirmation before committing anything.

**Example prompts:**

* "Adjust all buys to cover 90 days of demand"
* "Reduce buys for items with more than 6 months of stock on hand"
* "Bring everything in Product Line X up to 12 weeks of coverage"
* "Cut buys on Grade C items by 20%"

{% hint style="warning" %}
Mo always previews bulk changes and requires your explicit confirmation before any quantities are updated. No edits are committed automatically.
{% endhint %}

### Mo's Capabilities in This Context

| Feature                                    | Status      |
| ------------------------------------------ | ----------- |
| Explain cell values                        | ✅ Available |
| Answer questions about the plan            | ✅ Available |
| Surface stockout risk across the plan      | ✅ Available |
| Bulk-edit buy quantities with confirmation | ✅ Available |
| Generate purchase orders from the plan     | ✅ Available |

## Tips for Success

1. **Start with Mo's suggestions** – They're calculated based on your forecast, lead times, and safety stock requirements. Remember that item-level **Transit Lead Time** and **Safety Stock** custom attributes will override any defaults set during plan creation.
2. **Work at the top level first** – Make your main adjustments on the collapsed rows, then expand only when you need to verify the math.
3. **Use Value View for reporting** – Great for sharing with finance teams, but remember to switch back for editing.
4. **Check your constraints** – If recommendations look off, check your constraints. Moselle uses a **3-tier lookup** order:
   1. **SKU Level** (Highest priority)
   2. **Product Type Level**
   3. **Product Line Level** (Lowest priority) *A constraint set on a specific SKU will override a general constraint set on its Product Line.*
5. **Rebuild if needed** – If you've updated underlying data (like lead times or Safety Stock), use the **Settings (⚙️)** menu > **Rebuild** to refresh the plan calculations.

{% hint style="danger" %}
**Rebuild resets manual edits.** Any order quantities you have manually changed in the plan will be overwritten when you rebuild. Export or note your manual edits before running a rebuild.
{% endhint %}

## Frequently Asked Questions

### Q: Why doesn't my Total Order match the sum of my monthly orders?

**A:** The **Total Suggested Order** is fixed and reflects Mo's original recommendation (which may include MOQ adjustments). Your **Total Order** column *should* match the sum of your edits. If it doesn't, ensure you aren't viewing a cached version by refreshing the page.

### Q: Can I edit orders in Value View?

**A:** No, Value View is read-only for display purposes. Switch to Quantity View to make changes.

### Q: Why are my constraints not applying?

**A:** Check the hierarchy. A constraint on a specific **SKU** will always take precedence over a **Product Type** constraint, which takes precedence over a **Product Line** constraint. Ensure you haven't accidentally set a stricter constraint at a lower level.

### Q: Can I change the plan frequency?

**A:** Yes, the production plan supports **Daily, Weekly, and Monthly** views. This is configured when you first create the plan. To change it, you would need to create a new production plan with the desired frequency.

### Q: How do I generate monthly POs instead of one large PO?

**A:** Currently, POs are generated for the full coverage period. For monthly POs, export your schedule using the **Download Order Schedule** option and create them manually in your procurement system.

### Q: Can I track unfulfilled demand from previous periods?

**A:** By default, Moselle calculates inventory independently for each period. When a period shows zero inventory (stockout), that unfulfilled demand does not carry forward as a "debt" to future periods. This prevents phantom backlog from accumulating.

If your business model accepts preorders or backorders and you want unfulfilled demand to carry forward, contact your Moselle team to enable the **Preorder Demand** setting. With this enabled, negative inventory balances will accumulate across periods until fulfilled by arriving orders.

## Troubleshooting Common Issues

| Problem                                                     | Solution                                                                                                                                                                                                                                                                     |
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Table is slow to load**                                   | The new table uses optimized batch loading. If it feels stuck, try refreshing the page to trigger a new data fetch.                                                                                                                                                          |
| **Cannot find a product**                                   | Check your active filters (Grade, Product Line, Product Type). If still missing, use the global search bar to locate the specific SKU.                                                                                                                                       |
| **Export looks different**                                  | Check your aggregation view. The export matches the current grouping (Line/Type/Item) you see on screen.                                                                                                                                                                     |
| **Starting stock is 0**                                     | This usually means the plan data is stale or there's a sync issue. Check the actual inventory on the Item page. If it matches, go to **Settings (⚙️)** > **Rebuild** to refresh the plan.                                                                                    |
| **Ending shows zero even though I have projected sales**    | When projected sales exceed available inventory, the Ending balance shows **zero** to indicate a stockout. This is expected behavior and signals that you need to place an order for this period.                                                                            |
| **Ending jumps from zero to a positive number**             | This happens when a purchase order arrives. The periods before the order show zero (stockout), and when the order lands, the balance jumps to reflect the new inventory. Check the Order row to see when buys are scheduled to arrive.                                       |
| **Zero ending inventory doesn't carry forward as negative** | Ending inventory balance resets each period based on actual stock, sales, and arriving orders. When a period shows zero, it means stock runs out that period — but unfulfilled demand doesn't create a "debt" that carries forward. Each period is calculated independently. |


# Add Your Constraints

Set MOQ, min/max, and lead time constraints on your plan to ensure Moselle's buy recommendations match your real supplier minimums and logistics realities.

{% hint style="info" %}
**Quick Answer:** Open your plan, click the **Constraints** tab, then click **Add Constraints**. Search for a SKU, Product Type, or Product Line, enter your minimum and maximum order quantities, and click **Add**. Run a Rebuild to apply them to the plan.
{% endhint %}

## What Are Constraints?

**Constraints are rules you apply to a plan** that reflect the real-world limits of your supply chain — supplier minimums, case pack sizes, target stock levels, and ordering frequencies. Without constraints, Mo's buy recommendations are based purely on demand math. With constraints, they're shaped to match what you can actually order.

**Time Required:** 5–10 minutes\
**Difficulty:** Beginner

**Before you begin:**

* [ ] An active plan already created
* [ ] Supplier MOQ data available for your key SKUs

***

## Types of Constraints

### Minimum Order Quantity (MOQ)

**MOQ** is the smallest quantity your supplier will accept per order. If Mo recommends 45 units but your supplier's MOQ is 50, setting this constraint ensures the plan always recommends at least 50.

### Maximum Order Quantity

**Max order quantity** caps how much Moselle will recommend in a single order. Useful for managing cash flow, storage capacity, or supplier allocation limits.

### Min/Max Stock Levels

**Min stock** sets a floor for ending inventory — Moselle will recommend ordering enough to stay above this level. **Max stock** caps ending inventory — Moselle will not recommend orders that push stock above this ceiling.

### Lead Time

**Lead time** (in days) tells Moselle how long it takes from placing an order to having usable inventory available. This controls when orders are triggered relative to projected stockouts — Moselle works backward from your projected depletion date by the lead time to determine the latest you can act.

For brands that **manufacture their own products**, lead time has two components that both need to be factored in:

| Lead Time Type                         | What It Covers                                                                             | Who It Applies To                                  |
| -------------------------------------- | ------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| **Manufacturing lead time**            | Time from placing a production order to finished goods being ready to ship                 | Brands that manufacture or assemble products       |
| **Raw material procurement lead time** | Time for components or raw materials to arrive at your factory before production can start | Brands that source components before manufacturing |

If your manufacturing process requires 90 days and your raw material supplier needs 30 days, your effective lead time is 120 days — Moselle needs to see the combined total to trigger orders at the right time.

Lead times can be set at the SKU level via custom attributes (highest priority) or as plan-level defaults when you create the plan.

***

## How to Add Constraints

{% stepper %}
{% step %}

### Open Your Plan

Navigate to **Planning** in the left nav and click into the plan you want to configure.
{% endstep %}

{% step %}

### Go to the Constraints Tab

Click the **Constraints** tab at the top of the plan page. This opens the constraints panel alongside your order schedule.
{% endstep %}

{% step %}

### Click "Add Constraints"

Click **Add Constraints** to open the search panel.
{% endstep %}

{% step %}

### Find the Item or Group

Search for the **SKU**, **Product Type**, or **Product Line** you want to constrain. Constraints can be applied at any level of the product hierarchy.

{% hint style="info" %}
**Setting constraints at scale:** Apply a constraint at the Product Line or Product Type level to cover all SKUs within that group at once. SKU-level constraints always take precedence — see the hierarchy below.
{% endhint %}
{% endstep %}

{% step %}

### Enter Your Values

Fill in the constraint fields relevant to your situation:

| Field            | Description                              | Example  |
| ---------------- | ---------------------------------------- | -------- |
| **Min Quantity** | Minimum units per order (MOQ)            | 50       |
| **Max Quantity** | Maximum units per order                  | 500      |
| **Min Stock**    | Minimum ending inventory (units or days) | 30 days  |
| **Max Stock**    | Maximum ending inventory cap             | 180 days |

You don't need to fill in every field — set only what applies.
{% endstep %}

{% step %}

### Click "Add"

Click **Add** to save the constraint. It will appear in your constraints list.
{% endstep %}

{% step %}

### Rebuild the Plan

After adding or changing constraints, click **Settings (⚙️) > Rebuild** to recalculate the plan with your new rules applied.

{% hint style="danger" %}
**Important:** Rebuilding the plan recalculates all buy recommendations from scratch. Any order quantities you have manually edited in the plan will be reset. Review and save any manual edits before rebuilding.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## The 3-Tier Constraint Hierarchy

When constraints exist at multiple levels, Moselle uses a **3-tier priority system** to determine which one applies:

```
SKU Level         ← highest priority (always wins)
      ↓
Product Type Level
      ↓
Product Line Level ← lowest priority (broadest)
```

**In practice:**

| Scenario                                          | Which constraint applies? |
| ------------------------------------------------- | ------------------------- |
| SKU has its own MOQ + Product Line also has a MOQ | SKU-level MOQ wins        |
| No SKU constraint, but Product Type has a MOQ     | Product Type MOQ applies  |
| No SKU or Product Type constraint                 | Product Line MOQ applies  |
| No constraints at any level                       | No MOQ enforced           |

{% hint style="success" %}
**Recommended approach:** Set a baseline constraint at the Product Line or Product Type level, then override with SKU-level constraints only where individual products have different supplier requirements.
{% endhint %}

***

## Troubleshooting Constraints

### My MOQ constraint doesn't seem to be applying

1. Open the Constraints tab and confirm the constraint is saved (it appears in the list)
2. Check the hierarchy — a SKU-level constraint may be overriding your Product Line setting
3. Run **Settings (⚙️) > Rebuild** — constraints only apply after a rebuild
4. Verify you're looking at the correct plan — constraints are per-plan, not global

### My recommendations look too high or too low after adding constraints

* **Too high:** Check for a Min Stock constraint that's set very high, or a Min Quantity (MOQ) that's inflating orders beyond true demand
* **Too low:** Check if a Max Quantity or Max Stock constraint is capping orders below what demand requires
* Use Mo: "Show me constraint conflicts for my Grade A items" or "Why is this SKU's suggested order so high?"

### How do I remove a constraint?

In the Constraints tab, find the constraint in the list and click the delete icon. Then rebuild the plan.

***

## Using Mo to Debug Constraints

Mo can help you find and fix constraint issues without manually scanning the list:

* "Show me all SKUs where the MOQ constraint is inflating my order quantities"
* "Are there any constraint conflicts for my Grade A items?"
* "Why is the Product Line constraint not applying to \[SKU name]?"
* "Check if any SKU-level constraints are overriding my product line settings"
* "List items where max stock constraints are limiting my coverage"

***

## Related Guides

{% content-ref url="/pages/8QlNv4eTnXy8INtmWeyS" %}
[Create a Replenishment or Allocation Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan)
{% endcontent-ref %}

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}

{% content-ref url="/pages/I9gucwtJ2LWj6vkAOOjb" %}
[Advanced Production Plans Guide](/planning-and-execution/replenishment/advanced-planning/advanced-production-plans)
{% endcontent-ref %}


# Generate Orders

Generate purchase orders from your replenishment plan in Moselle — use Mo for supplier-grouped POs with automatic delivery dates or bulk-create in one step.

{% hint style="info" %}
**Quick Answer:** Once your order quantities look right, click **Generate Purchase Orders** in your plan — or ask Mo directly. Mo groups line items by supplier, pulls pricing and lead times from your catalog, and creates draft POs for you to review before activating.
{% endhint %}

## Overview

Generating orders is the final step in the planning workflow. Moselle takes your approved buy quantities, matches each SKU to its supplier, and creates purchase orders ready for review and activation.

**Time Required:** 2–5 minutes\
**Difficulty:** Beginner

**Before generating orders:**

* [ ] Your plan's order quantities are reviewed and ready
* [ ] Suppliers are configured with lead times and pricing in Moselle
* [ ] You've decided on your optimization priority: cost or lead time

***

## Option A: Generate Orders via Mo (Recommended)

Mo can create purchase orders directly from your plan in a conversational flow. This is the recommended approach when you want Mo to handle supplier grouping and delivery date logic automatically.

### How It Works

Mo reads your plan's approved buy quantities, groups line items by supplier, looks up unit costs from your item catalog, and sets expected delivery dates based on each supplier's configured lead time. It then shows you a summary of the POs it will create before generating anything.

### Example Prompts

**Generate all orders from the plan:**

* "Create purchase orders from this plan"
* "Generate POs for everything in my Q3 replenishment plan"
* "Build purchase orders for all at-risk items in this plan"

**Targeted generation:**

* "Create a PO for Supplier X from this plan"
* "Generate orders for Grade A SKUs only"
* "Build a PO for items that will stock out in the next 60 days"

**Review before generating:**

* "Show me a summary of what POs would be created before I confirm"
* "Which suppliers would receive orders and for how much?"
* "What's the total spend if I generate all orders right now?"

{% hint style="success" %}
Mo always shows a summary of the POs it will create before generating them. Review the supplier groupings, quantities, and expected delivery dates, then confirm to proceed.
{% endhint %}

***

## Option B: Generate Orders via the Button

Use the **Generate Purchase Orders** button in your plan for bulk PO creation without a conversational flow.

{% stepper %}
{% step %}

### Finalize Your Order Quantities

Review your plan and confirm the **Order** column quantities are correct. These are the quantities that will be used to generate POs — not Mo's suggested quantities, but your actual approved amounts.

{% hint style="info" %}
**Tip:** The **Total Suggested Order** column shows Mo's original recommendations. Your **Total Order** column reflects your final approved quantities. Make sure you're satisfied with the **Order** column before proceeding.
{% endhint %}
{% endstep %}

{% step %}

### Click "Generate Purchase Orders"

Click the **Generate Purchase Orders** button at the top of your plan.
{% endstep %}

{% step %}

### Choose Your Optimization Priority

Select how Moselle should prioritize supplier selection when a SKU is available from multiple suppliers:

| Option        | How It Works                                                                                | Best For                                      |
| ------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------- |
| **Cost**      | Selects the lowest-priced supplier for each SKU across all available vendors                | Cash-constrained buying cycles                |
| **Lead Time** | Selects the geographically closest supplier with the best pricing, minimizing shipping time | Time-sensitive restocking, avoiding stockouts |

{% hint style="warning" %}
**Current behavior:** Purchase orders are generated for the **full coverage period** in a single PO per supplier. If you need monthly POs, see the workaround below.
{% endhint %}
{% endstep %}

{% step %}

### Review and Activate

Generated orders are created in **draft status**. Review the POs in the Orders section before activating.
{% endstep %}
{% endstepper %}

***

## Draft → Active: Reviewing Your Orders

All generated purchase orders start as drafts. Nothing is committed to a supplier until you activate.

### What to Check Before Activating

* **Quantities** — confirm the line item quantities match your plan
* **Supplier** — verify the correct supplier was selected for each SKU
* **Delivery date** — check the expected arrival date based on the supplier's lead time
* **Unit cost** — confirm pricing matches your current supplier agreement

### How to Activate a Purchase Order

1. Go to **Orders** in the left nav
2. Find the draft PO you want to activate
3. Click **Activate PO**

Once activated, the order moves to active status and can be managed through the full Orders workflow — tracking receipt, partial deliveries, and reconciliation.

{% content-ref url="/pages/zJTX33Agu64EJnWEBenj" %}
[Orders](/planning-and-execution/orders)
{% endcontent-ref %}

***

## Monthly PO Workaround

POs are currently generated for the full coverage period rather than split by month. If you need monthly purchase orders:

**Using Mo:**

* "Help me split this full-period PO into monthly orders"
* "Show me how much inventory arrives each month if I place this order now"
* "Create a monthly ordering schedule based on the quantities in this plan"

**Manual approach:**

1. Export your plan: **Overflow Menu (⋮) > Download Order Schedule**
2. Open the CSV in Excel or Google Sheets
3. Split quantities by month based on your preferred ordering cadence
4. Create individual POs manually for each month

{% hint style="info" %}
Monthly PO generation is on the Moselle roadmap. This section will be updated when it ships.
{% endhint %}

***

## Frequently Asked Questions

### What if a SKU has no supplier assigned?

Moselle will not generate a PO line item for SKUs without a configured supplier. Assign suppliers to affected SKUs in **Operations > Suppliers** before generating orders. Mo will flag these gaps if you ask: "Are there any SKUs in this plan without a supplier assigned?"

### Can I generate orders for only some SKUs?

Yes — use Mo for targeted generation ("Generate a PO for Grade A SKUs only") or manually zero out order quantities for SKUs you don't want to order before clicking Generate Purchase Orders.

### Can I edit a draft PO after it's generated?

Yes. Draft POs can be edited in the Orders section before you activate them. You can adjust quantities, change delivery dates, and add or remove line items.

### What happens to the plan after I generate orders?

The plan remains active and unchanged. You can continue editing the plan, rebuilding it with new data, or generating additional orders for future periods. The plan and the purchase orders are independent once orders are created.

***

## Related Guides

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}

{% content-ref url="/pages/rt03PNU9zAGxsqubrFMs" %}
[Planning with Mo](/planning-and-execution/replenishment/advanced-planning/production-planning-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/zJTX33Agu64EJnWEBenj" %}
[Orders](/planning-and-execution/orders)
{% endcontent-ref %}


# Advanced Planning

Power-user replenishment features in Moselle — advanced production plans, AI-driven planning with Mo, and bulk editing for complex or high-SKU operations.

{% hint style="info" %}
**Quick Answer:** Advanced Planning unlocks power-user replenishment features including multi-constraint production plans, AI-driven recommendations with Mo, and bulk editing for large SKU catalogs.
{% endhint %}

## What Is Advanced Planning?

**Advanced Planning gives experienced Moselle users the tools to handle complex scenarios, leverage AI recommendations, and manage large-scale operations.** Once you've mastered the core workflow, these features enable precision planning across large catalogs, dynamic demand environments, and complex supplier relationships.

**Advanced Production Plans** — Create sophisticated multi-constraint plans that account for seasonal patterns, supplier variability, and business rules.

**Planning with Mo** — Use Moselle's intelligent assistant (Mo) to get AI-powered demand forecasting, inventory recommendations, and what-if analysis directly in your planning workflow.

**Mass Editing** — Efficiently update dozens of SKUs at once with Mo's bulk editing capabilities, saving hours of manual configuration work.

These features unlock precision planning for enterprise operations and dynamic demand environments.

**Who Should Use This:** Multi-SKU operators, seasonal businesses, complex supply chains, teams managing high-touch forecasting.

***

## Advanced Planning Pages

{% content-ref url="/pages/I9gucwtJ2LWj6vkAOOjb" %}
[Advanced Production Plans Guide](/planning-and-execution/replenishment/advanced-planning/advanced-production-plans)
{% endcontent-ref %}

**Advanced Production Plans Guide** — Ocean freight ordering, MOQ hierarchy debugging, and exports. For teams managing complex procurement scenarios and multi-supplier operations.

***

{% content-ref url="/pages/rt03PNU9zAGxsqubrFMs" %}
[Planning with Mo](/planning-and-execution/replenishment/advanced-planning/production-planning-with-mo)
{% endcontent-ref %}

**Planning with Mo** — Full Mo prompt guide covering risk review, bulk edits, PO strategy, and advanced scenarios. Use Mo as your AI planning co-pilot to accelerate decisions and surface insights.

***

{% content-ref url="/pages/l9ml4ZumgPlQAIGamldP" %}
[Mass Editing with Mo](/planning-and-execution/replenishment/advanced-planning/mass-editing-with-mo)
{% endcontent-ref %}

**Mass Editing with Mo** — Efficiently update dozens of SKUs at once using Mo's bulk editing capabilities. Ideal for seasonal resets, supplier changes, or large catalog reconfigurations.

***

{% hint style="success" %}
**Get started:** [Advanced Production Plans Guide](/planning-and-execution/replenishment/advanced-planning/advanced-production-plans)
{% endhint %}

***

## Related Sections

{% content-ref url="/pages/vhTY249VKGoERw9TwQiu" %}
[Core Workflow](/planning-and-execution/replenishment/core-workflow)
{% endcontent-ref %}

{% content-ref url="/pages/9EQ4GVPDYNcEJrl48GcI" %}
[Financial Planning](/planning-and-execution/replenishment/financial-planning)
{% endcontent-ref %}


# Advanced Production Plans Guide

Advanced production planning techniques in Moselle — dual scenario plans, order frequency, MOQ hierarchy, exports, pallet rounding, and seasonal planning with Mo.

{% hint style="info" %}
**Quick Answer:** This guide covers advanced production planning topics in Moselle including dual scenario plans, order frequency settings, MOQ constraints, export options, and using Mo for seasonal planning.
{% endhint %}

## What Are Advanced Production Planning Techniques?

**Advanced production planning in Moselle** goes beyond basic plan creation to help operations teams handle complex sourcing realities — factory-facing vs. internal quantities, ocean freight rhythms, MOQ hierarchies, and seasonal demand spikes. These techniques reduce reliance on external spreadsheets and give your team a single source of truth.

**Time Required:** Varies by topic (5–15 minutes each)\
**Difficulty:** Intermediate\
**Prerequisites:**

* [ ] At least one production plan already created
* [ ] Forecasts connected to your plan
* [ ] Supplier and SKU data configured

***

## How Do I Run Two Parallel Scenario Plans (Internal vs. Factory-Facing)?

**Dual scenario planning** is the recommended approach for brands that need to maintain separate internal demand models and inflated factory-facing order quantities without managing two spreadsheets.

### Why Use Dual Scenario Plans?

Many brands submit inflated quantities to factories to secure capacity or negotiate better pricing, while tracking true demand internally. Running two parallel scenario plans in Moselle replaces the error-prone, manual process of maintaining separate spreadsheets.

{% hint style="info" %}
**Key Concept:** Each scenario plan is independently generated from its own forecast. Changes to one plan do not affect the other.
{% endhint %}

### How to Set Up Dual Scenario Plans

{% stepper %}
{% step %}

### Create Your Internal Demand Forecast

Build a forecast that reflects your true internal demand model. This becomes the basis for your internal production plan.

1. Navigate to **Forecasting** in the main menu
2. Create or select your baseline demand forecast
3. Name it clearly (e.g., "Internal Demand — Q3 2026")
   {% endstep %}

{% step %}

### Create a Second Scenario Forecast

Build a second forecast with your factory-facing quantities. You can adjust this forecast upward to account for capacity buffers or negotiation cushion.

1. Duplicate or create a new forecast
2. Apply your adjustments (e.g., increase demand by 15–20%)
3. Name it clearly (e.g., "Factory-Facing — Q3 2026")
   {% endstep %}

{% step %}

### Generate Independent Production Plans

Create one production plan linked to each forecast:

1. Go to **Production** > **Create Production Plan**
2. Under **Basic Details**, select your internal forecast
3. Complete setup and save as your internal plan
4. Repeat the process, selecting your factory-facing forecast for the second plan
   {% endstep %}

{% step %}

### Manage Plans Independently

Each production plan operates independently:

* Edit order quantities in each plan without affecting the other
* Export each plan to share with the appropriate audience (internal team vs. factory)
* Use **Value View** in the factory-facing plan for dollar-amount summaries

{% hint style="success" %}
**Best Practice:** Name your plans clearly (e.g., "Internal Plan — Q3" and "Factory Plan — Q3") so your team always knows which plan to reference.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## What Is the Difference Between Order Frequency and the Timeline View Toggle?

This is one of the most common points of confusion for brands ordering on ocean freight or quarterly rhythms.

{% hint style="info" %}
**Quick Answer:** The Daily / Weekly / Monthly toggle controls how the plan **displays** data — it does not change how often orders are recommended or placed.
{% endhint %}

### Display Cadence vs. Order Frequency

| Setting                             | What It Controls                                                     | Where to Set It                                              |
| ----------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------ |
| **Daily / Weekly / Monthly toggle** | How data is grouped in the production plan table (display only)      | Set at plan creation — cannot be changed on an existing plan |
| **Order Frequency constraint**      | How often Moselle recommends placing orders (e.g., once per quarter) | Set at the SKU or supplier level in Constraints              |

### How to Set Actual Order Frequency

To control how frequently Moselle recommends orders, set the **order frequency constraint** at the SKU or supplier level:

1. Open your production plan
2. Click the **Constraints** tab
3. Search for the SKU or supplier
4. Set the desired order frequency (e.g., every 90 days for quarterly ocean freight)
5. Click **Add** to apply

{% hint style="warning" %}
**Important:** The view cadence (Daily / Weekly / Monthly) is configured when you first create a production plan and **cannot be changed** on an existing plan. If you need a different cadence, create a new production plan with the correct setting.
{% endhint %}

### Example: Ocean Freight / Quarterly Ordering

If your brand orders via ocean freight on a quarterly schedule:

* Set the **Monthly** display toggle so you see data grouped by month
* Set an **order frequency constraint** of 90 days at the supplier level
* Moselle will recommend consolidating orders into quarterly buckets while still showing monthly demand breakdowns

***

## How Do MOQ Constraints Work? What Is the Priority Hierarchy?

**MOQ (Minimum Order Quantity) constraints** in Moselle follow a 3-tier priority system. Understanding this hierarchy prevents unexpected constraint conflicts.

### The 3-Tier Constraint Hierarchy

```
SKU Level (Highest Priority)
        ↓
Product Type Level
        ↓
Product Line Level (Lowest Priority)
```

**SKU Level** : The most specific constraint. If a MOQ is set directly on a SKU, it always takes precedence over any Product Type or Product Line constraint.

**Product Type Level** : Applies to all SKUs within a product type (sub-line) that do not have a SKU-level override.

**Product Line Level** : The broadest constraint. Applies to all SKUs in the product line that do not have a more specific constraint set above.

### Constraint Priority in Practice

| Scenario                                               | Which Constraint Applies?          |
| ------------------------------------------------------ | ---------------------------------- |
| SKU has its own MOQ + Product Line has a MOQ           | **SKU-level MOQ** takes precedence |
| No SKU MOQ, but Product Type has a MOQ                 | **Product Type MOQ** applies       |
| No SKU or Product Type MOQ, but Product Line has a MOQ | **Product Line MOQ** applies       |
| No constraints set at any level                        | No MOQ enforced                    |

{% hint style="info" %}
**Tip:** If your recommendations look off after updating MOQ settings, go to **Settings (⚙️) > Rebuild** to refresh the plan calculations and apply your latest constraints.
{% endhint %}

### How to Set MOQ Constraints

1. Open your production plan
2. Click the **Constraints** tab
3. Click **Add Constraints**
4. Search for the SKU, Product Type, or Product Line
5. Enter the minimum (and optionally maximum) order quantity
6. Click **Add** to apply
7. After setting all constraints, click **Settings (⚙️) > Rebuild** to recalculate

***

## How Do I Export a Production Plan for External Sharing?

Moselle provides three levels of export aggregation, each suited for a different audience.

### Export Levels

| Export Level     | What It Shows                                 | Best For                                             |
| ---------------- | --------------------------------------------- | ---------------------------------------------------- |
| **Item Level**   | Every SKU with individual quantities          | Internal teams, detailed planning                    |
| **Product Line** | Quantities grouped by product line            | Factory-facing exports (hides individual SKU detail) |
| **Product Type** | Quantities grouped by product type (sub-line) | Factory-facing exports with mid-level detail         |

{% hint style="success" %}
**Recommended:** Use **Product Line** or **Product Type** export when sharing plans with factories or external suppliers. This hides individual SKU details while still communicating total order quantities.
{% endhint %}

### How to Export Your Production Plan

{% stepper %}
{% step %}

### Open the Overflow Menu

In your production plan, click the **Overflow Menu (⋮)** in the top-right corner.
{% endstep %}

{% step %}

### Select Download Order Schedule

Click **Download Order Schedule** from the dropdown menu.
{% endstep %}

{% step %}

### Choose Your Aggregation Level

Select the aggregation level that matches your audience:

* **Item** — full SKU-level detail
* **Product Line** — grouped by line (recommended for factory exports)
* **Product Type** — grouped by sub-line
  {% endstep %}

{% step %}

### Share the Export

The CSV file will download to your device. Share it with your factory, 3PL, or finance team as appropriate.

{% hint style="info" %}
**Finance Teams:** Before exporting, switch to **Value View** in your production plan to see dollar amounts instead of unit quantities. Value View is read-only and ideal for finance-facing summaries. Then export from Value View for a dollar-denominated report.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## How Do I Use the Optimized Build Method? (Beta)

Replenishment plans can be built using one of two optimization methods. **Standard** is the default and is unchanged for all existing plans. **Optimized** is a new opt-in method that looks across the entire coverage horizon at once and finds the lowest-cost set of orders that still meets demand.

{% hint style="info" %}
**Quick Answer:** When creating or rebuilding a replenishment plan, choose **Optimized** as the optimization method to consolidate buys across the planning horizon. The setting is saved on the plan, so rebuilds keep using it automatically.
{% endhint %}

### Standard vs. Optimized

|                           | Standard (Default)                                                              | Optimized (Beta)                                                                                                                           |
| ------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **How it builds**         | Walks period by period — places one order per deficit and rounds each up to MOQ | Looks at the whole coverage horizon together and solves for the cheapest set of orders that covers demand                                  |
| **MOQ handling**          | Pads each individual deficit to MOQ                                             | Consolidates small deficits into fewer, larger orders                                                                                      |
| **Trade-offs considered** | Coverage and constraints                                                        | Coverage, MOQ, holding cost vs. potential lost sales                                                                                       |
| **Best for**              | Most brands; predictable, transparent recommendations                           | Brands with high MOQs relative to monthly demand, meaningful storage / holding costs, or many small monthly deficits across a long horizon |
| **Inputs required**       | MOQ, lead time, safety stock, forecast                                          | Same — no new fields to configure                                                                                                          |

### When the Optimized Method Helps Most

* **Long-tail or slow-moving SKUs with large MOQs.** Eight months of small deficits with a 2,000-unit MOQ would generate three separate 2,000-unit orders under Standard. Optimized typically consolidates these into a single larger order earlier in the horizon — same demand fulfilled, less inventory tied up.
* **Brands with meaningful holding costs** (3PL storage fees, capital-tight operations). The optimizer will defer placements when carrying cost outweighs the benefit of ordering earlier.
* **Long-lead-time / ocean freight brands** where order consolidation across the horizon meaningfully reduces working capital.

### How to Enable Optimized Builds

{% stepper %}
{% step %}

### Choose Optimized at Plan Creation

When creating a new replenishment plan, select **Optimized** as the **Optimization Method** before clicking **Create Replenishment Plan**.
{% endstep %}

{% step %}

### Or Switch an Existing Plan on Rebuild

Open an existing replenishment plan, go to **Settings (⚙️) > Rebuild**, and change the **Optimization Method** to **Optimized**. The plan is rebuilt using the new method.

{% hint style="info" %}
The optimization method is saved on the plan. Once selected, every future rebuild keeps using the same method — no need to re-select.
{% endhint %}
{% endstep %}

{% step %}

### Review the Results

Open the order schedule and compare against your previous plan. You should expect:

* Fewer, larger orders in MOQ-heavy scenarios
* Lower total order quantities for the same coverage
* In some cases, demand at the very end of the horizon may be intentionally unmet if the cost of placing one more MOQ-sized order exceeds the lost-sales penalty
  {% endstep %}
  {% endstepper %}

{% hint style="warning" %}
**Beta:** The Optimized method is in beta. The Standard method remains the default for all new and existing plans and is unaffected. If a plan looks too lean, double-check **Safety Stock** and preorder settings before escalating.
{% endhint %}

### When to Stick With Standard

* You want recommendations that match a straightforward "one order per deficit" mental model
* Your MOQs are small relative to monthly demand (consolidation gains are minimal)
* You prefer fully predictable, period-by-period buy timing

***

## Does Moselle Support Pallet Rounding for Freight-Friendly Orders?

{% hint style="warning" %}
**Current Status:** Native pallet rounding is **not yet supported** in Moselle. This feature is on the roadmap.
{% endhint %}

### Current Workaround

To apply freight-friendly rounding (e.g., round quantities to the nearest full pallet):

1. Export your production plan using **Overflow Menu (⋮) > Download Order Schedule**
2. Open the CSV in Excel or Google Sheets
3. Apply your pallet rounding formula manually (e.g., round up to the nearest 50 units per pallet)
4. Use the rounded quantities when communicating with your factory or creating purchase orders

### What's Coming

Pallet rounding will be supported natively in a future Moselle release. When available, you will be able to set pallet quantities at the SKU or supplier level, and the production plan will automatically round up to freight-friendly amounts.

{% hint style="info" %}
This section will be updated when pallet rounding is released. Check the Moselle changelog for the latest updates.
{% endhint %}

***

## Frequently Asked Questions

<details>

<summary>Can I convert an existing production plan from monthly to weekly view?</summary>

No. The display cadence (Daily / Weekly / Monthly) is set at plan creation and cannot be changed on an existing plan. Create a new production plan with the desired cadence. Your existing plan remains accessible for historical reference.

</details>

<details>

<summary>Why is my SKU-level MOQ being ignored?</summary>

Check that the constraint is saved correctly by opening the **Constraints** tab and confirming the SKU appears with the correct minimum quantity. After setting or updating constraints, always run **Settings (⚙️) > Rebuild** to recalculate the plan. If the issue persists, verify that no conflicting constraint exists at a higher specificity level.

</details>

<details>

<summary>Can I share a factory-facing plan without revealing internal SKU pricing?</summary>

Yes. Export using **Product Line** or **Product Type** aggregation, which groups quantities without exposing individual SKU detail. Avoid sharing Item-level exports externally, as these include full SKU breakdowns.

</details>

<details>

<summary>What's the difference between the Standard and Optimized optimization methods?</summary>

**Standard** builds the plan period by period, placing one order per deficit and rounding each up to MOQ. **Optimized** (beta) looks across the entire coverage horizon and solves for the cheapest set of orders that still meets demand — consolidating small monthly deficits into fewer, larger orders. Standard is the default; Optimized is opt-in per plan.

</details>

<details>

<summary>Do I need to re-select Optimized every time I rebuild?</summary>

No. The optimization method is saved on the plan. Once you build a plan with Optimized, every subsequent rebuild keeps using it until you explicitly change it.

</details>

<details>

<summary>Why does my Optimized plan leave some end-of-horizon demand unmet?</summary>

The Optimized method weighs holding cost and the cost of placing an extra MOQ-sized order against potential lost sales. If covering a small, late-horizon deficit would require placing a full MOQ that sits in storage, the optimizer may choose not to fulfill it. Switch to **Standard** if you need every period of forecasted demand fully covered regardless of cost.

</details>

<details>

<summary>Will pallet rounding ever be automated in Moselle?</summary>

Yes, pallet rounding is on the Moselle product roadmap. In the meantime, use the Download Order Schedule export and apply rounding manually in a spreadsheet.

</details>

***

## Related Guides

{% content-ref url="/pages/8QlNv4eTnXy8INtmWeyS" %}
[Create a Replenishment or Allocation Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan)
{% endcontent-ref %}

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}

{% content-ref url="/pages/sb2SV5PNVIJy5jUlhar2" %}
[Meet Mo](/mo/meet-mo)
{% endcontent-ref %}


# Planning with Mo

Use Mo during planning to review at-risk SKUs, bulk-edit buy quantities, generate purchase orders by supplier, and run advanced planning scenarios in Moselle.

{% hint style="info" %}
**Quick Answer:** Mo is embedded directly inside your plan and automatically knows which plan is open, what type it is, the coverage period, and the linked forecast scenario. Ask Mo to surface stockout risks, explain buy recommendations, bulk-edit quantities, and generate purchase orders — all without leaving the plan.
{% endhint %}

{% hint style="info" %}
**New to production planning?** Watch the end-to-end walkthrough on the [Create a Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan) page first — it covers the full process from forecast to generated orders, then introduces Mo in context.
{% endhint %}

## How Mo Works Inside a Plan

**Mo is embedded directly on the plan detail page** via a contextual sidebar. When you open Mo here, it's automatically injected with live context about the plan you're looking at:

* **Plan type** — replenishment or allocation
* **Coverage period** — the date range of the plan
* **Frequency** — daily, weekly, or monthly view
* **Linked forecast scenario** — the demand signal driving all recommendations

You don't need to explain what you're looking at. Mo already knows, and answers are grounded in your specific plan data.

{% hint style="info" %}
**Two ways to access Mo:**

* **Contextual sidebar (recommended)** — Click the **Mo** button on the plan page. This is the primary planning experience. Mo has full context about the open plan.
* **Full-page Mo (/mo)** — For open-ended questions not tied to a specific plan, or for multi-plan analysis. Access from the main nav.
  {% endhint %}

### The Typical Planning Session

Most planning sessions follow this arc:

**1. Review risk** → Ask Mo "What looks off?" or "Which SKUs are at risk of stocking out?" Mo surfaces the critical items without you having to scan every row.

**2. Explain** → Click into a SKU or cell, then ask Mo "Why is this buy so high?" or "What's driving this recommendation?" Mo walks through the net inventory math and forecast signal.

**3. Approve adjustments** → Describe what you want to change ("Adjust all buys to cover 12 weeks of demand"), review Mo's preview summary, and confirm. Mo applies the changes.

**4. Generate POs** → Ask Mo to create purchase orders. Mo groups line items by supplier, pulls in unit costs and lead times, and generates draft POs for review.

This replaces what would otherwise be a multi-tab, spreadsheet-heavy process — and every write action requires your explicit confirmation before anything is committed.

***

## What Can Mo Help With in Planning?

**Mo is your AI planning partner** across every stage of the replenishment workflow. Rather than guessing why a quantity was recommended or manually comparing scenarios in a spreadsheet, you can ask Mo directly.

### Prerequisites

**Time Required:** Ongoing (reference guide) **Difficulty:** Beginner to Advanced

Before using Mo in your plan, make sure you have:

* [ ] An active Moselle account with Mo credits available
* [ ] At least one plan created in Moselle
* [ ] Relevant data connected (forecasts, inventory, suppliers)

### What Mo Excels At

| Capability                          | Example                                                                  |
| ----------------------------------- | ------------------------------------------------------------------------ |
| **Coverage & depletion analysis**   | "How many weeks of coverage do I have for \[SKU] across all channels?"   |
| **SKU prioritization**              | "Which SKUs need to be ordered first based on lead times and depletion?" |
| **Risk surfacing**                  | "Which SKUs are projected to stock out in the next 60 days?"             |
| **Explaining recommendations**      | "Why did you suggest this order quantity?"                               |
| **Net inventory math**              | "Walk me through the Starting Balance + Buys − Sales for this SKU"       |
| **Bulk-edit with confirmation**     | "Adjust all buys to cover 90 days of demand"                             |
| **Scenario modeling**               | "If I produce 5,000 units of \[SKU], how long will that last?"           |
| **Component & raw material demand** | "What raw materials do I need for a production run of \[SKU]?"           |
| **Constraint troubleshooting**      | "Why isn't my MOQ constraint applying to this SKU?"                      |
| **PO generation**                   | "Create purchase orders from this plan, grouped by supplier"             |
| **Forecast alignment**              | "Explain why demand is spiking in October in the linked forecast"        |
| **Stakeholder summaries**           | "Summarize the key buys this month and why"                              |

### How to Get Better Results from Mo

* **Be specific** — Mention SKU names, time periods, and supplier names
* **Provide context** — Tell Mo your constraints: "I'm cash-constrained this quarter" or "I cannot afford any stockouts"
* **Click first, then ask** — For cell-specific questions, click the cell in the table before opening Mo's chat
* **Ask "why"** — Mo can explain the reasoning behind any recommendation
* **Request breakdowns** — Ask for monthly views, product line groupings, or supplier-level summaries

***

## Ask Mo: Pre-Plan Questions

**Before creating your plan**, Mo can help you make informed decisions about coverage periods, lead times, and safety stock so your plan is configured correctly from the start.

### Choosing Plan Parameters

Not sure how to set up your plan? Mo can guide your configuration decisions before you commit to a setup.

* "What coverage period should I use for seasonal items?"
* "Should I use core SKUs or components for my BOM structure?"
* "How far ahead should I plan for products with 4-month lead times?"

### Lead Time Guidance

Estimating lead times — especially with international suppliers — can be uncertain. Mo can provide context-aware guidance.

* "What's the typical lead time for products manufactured in Vietnam?"
* "Help me estimate transit lead times from my Shanghai supplier"
* "Should I factor ocean freight delays into my lead time?"

### Safety Stock Recommendations

Setting the right safety stock buffer balances cash flow against stockout risk. Mo can help you find the right level for your business.

* "How many days of safety stock should I hold for high-velocity SKUs?"
* "What buffer do I need for items with long lead times?"
* "Is 15 days of safety stock appropriate for seasonal products?"

{% hint style="info" %}
**Tip:** Always give Mo your business context when asking for recommendations. "We're cash-constrained and can absorb some stockout risk" will produce a very different answer than "We cannot afford any stockouts heading into our peak season."
{% endhint %}

***

## Ask Mo: Managing Your Plan

**Once your plan is open**, Mo is connected to your plan data and can explain individual cell values, surface at-risk items, and help you understand the impact of any changes you're considering.

### Explain Cell Values

Click any cell in the planning table, then ask Mo about it for the most precise answer.

* "Why did you suggest this quantity?"
* "What's driving this recommendation?"
* "Is my starting inventory showing correctly?"

### Diagnostic Questions

Use Mo to quickly surface issues across your entire plan without manually scanning every row.

* "Why is my ending inventory negative in March?"
* "What happens if I increase this order by 100 units?"
* "Show me all SKUs at risk of stockout in Q2"
* "Which products have the highest suggested orders this period?"

### Constraint Troubleshooting

If your MOQ or safety stock constraints don't seem to be applying correctly, Mo can help you identify the conflict.

* "Why isn't my MOQ constraint applying to this SKU?"
* "Check if my safety stock is being overridden at the product line level"
* "Are there any constraint conflicts for my Grade A items?"

### Comparing Suggested vs. Actual Orders

After you've made edits to order quantities, Mo can help you understand the total variance and flag SKUs where you've diverged significantly from its suggestions.

* "Compare my actual orders vs. your suggestions for Grade A SKUs"
* "What's the total variance between my orders and your recommendations?"
* "Which SKUs am I ordering significantly more or less than suggested?"

***

## Ask Mo: Bulk-Edit Buy Quantities

**Instead of editing rows individually**, describe your intent to Mo and let it calculate the changes across the entire plan. Mo will show you a preview of what will change — including which SKUs are affected and by how much — and wait for your explicit confirmation before committing anything.

### How Bulk Edits Work

1. Open the Mo sidebar from your plan page
2. Describe what you want to adjust in plain language
3. Mo calculates the delta across all affected SKUs and shows you a summary
4. Review the preview — confirm to apply, or refine your request

### Example Bulk-Edit Prompts

**Coverage-based adjustments:**

* "Adjust all buys to cover 90 days of demand"
* "Bring everything in Product Line X up to 12 weeks of coverage"
* "Set coverage to 60 days for all Grade A SKUs"

**Risk-based reductions:**

* "Reduce buys for items with more than 6 months of stock on hand"
* "Cut buys on Grade C items by 20%"
* "Remove orders for any SKU with more than 180 days of coverage"

**What-if analysis before committing:**

* "If I cut buys on Product Line X by 20%, which SKUs would go negative?"
* "Show me what happens to coverage if I reduce all orders by 15%"

{% hint style="warning" %}
Mo always previews bulk changes before applying them. No quantities are updated until you explicitly confirm. You can refine or cancel after seeing the preview.
{% endhint %}

***

### SKU-Specific Analysis

For deeper dives into individual products, give Mo the SKU name or identifier for the most targeted response.

* "Which SKUs have MOQ constraints that are inflating my order quantities?"
* "Show me products that will run out if I don't order in January"
* "What's driving the high suggested order for \[SKU name]?"

{% hint style="success" %}
**Best Practice:** Click on a specific cell before asking Mo "why" questions. Mo will use the selected cell as context and give you a more precise explanation than a general question.
{% endhint %}

***

## Ask Mo: Coverage & Depletion Analysis

**Mo can calculate your exact depletion timeline** for any SKU or group of SKUs — pulling current inventory positions, applying the forecast run rate, and showing you how long stock will last before hitting zero. This gives you a real-time answer without opening a spreadsheet.

### Current Coverage

* "How many weeks of coverage do I have for \[SKU]?"
* "How many weeks of coverage do I have for \[SKU] across all channels?"
* "Which SKUs have less than 60 days of coverage right now?"
* "Show me coverage by product line, sorted from lowest to highest"

### Depletion Timelines

* "When will \[SKU] run out at its current sell rate?"
* "Which SKUs are projected to stock out in the next 60 days?"
* "Give me a depletion timeline for my top 10 SKUs by revenue"
* "Flag anything that will go negative before my next order arrives"

### Burn Rate Context

* "What's the current 30/60/90-day sales velocity for \[SKU]?"
* "Is \[SKU] selling faster or slower than the forecast expected?"
* "Compare burn rates for \[Product Line] vs. the same period last year"

{% hint style="info" %}
**Tip:** When asking about coverage, specify a channel if you want channel-specific data — e.g., "How many weeks of Shopify coverage do I have for \[SKU]?" Mo will apply the channel-level demand signal from your linked forecast scenario.
{% endhint %}

***

## Ask Mo: SKU Prioritization & Timing

**Mo can rank your SKU list by urgency** — factoring in both how fast stock is burning and how long it takes to replenish. This means you always know which SKUs need to go into the plan first, rather than scanning the grid manually to find the most critical items.

### Production Priority Queue

* "Which SKUs need to be ordered first based on lead times and projected depletion?"
* "Rank my at-risk SKUs by urgency — how soon do I need to act on each?"
* "If I can only place orders for 10 SKUs this week, which ones should they be?"

### Lead-Time-Aware Ordering Windows

* "What's the latest I can place an order for \[SKU] and still be in stock by \[date]?"
* "Which SKUs have already passed their order trigger date for the next coverage period?"
* "Show me all SKUs where the order window is closing in the next 2 weeks"

### Grade-Based Prioritization

* "Rank Grade A SKUs by days on hand, lowest first"
* "Which Grade B items are most at risk of going out of stock before Grade A items are resolved?"
* "Show me urgency rankings filtered to \[Product Line]"

***

## Ask Mo: Raw Material & Component Demand

**If your catalog includes Bills of Materials (BOMs)**, Mo can trace finished goods demand all the way back to component-level sourcing requirements — automatically. Instead of manually calculating raw material needs from a production run, describe what you want to build and Mo surfaces what you need to source.

### Component Sourcing Requirements

* "What raw materials do I need to source to support a production run of \[SKU]?"
* "If I produce 5,000 units of \[SKU], what components do I need on hand?"
* "Which components are at risk of running short if I fulfill the next 90 days of \[SKU] demand?"

### Cross-SKU Component Aggregation

* "Aggregate component demand across all \[Product Line] SKUs for the next quarter"
* "Which component is the biggest bottleneck across my full production plan?"
* "Show me total component requirements if I approve all the suggested orders in this plan"

### Component Coverage Check

* "Do I have enough \[component SKU] to cover the next 60 days of production?"
* "Which components are shared across multiple SKUs and most at risk of running short?"
* "Flag any component whose current stock can't support the plan's finished goods recommendations"

{% hint style="info" %}
**Prerequisite:** Component demand queries require BOMs to be configured in your Product Catalog. If your business manufactures or kits products, work with your CSM during onboarding to set up BOMs before going live on planning. [Learn more about BOMs](/operations/catalog/product-setup/bill-of-materials)
{% endhint %}

***

## Ask Mo: Scenario Modeling

**Mo lets you stress-test coverage assumptions in plain language** without rebuilding the plan. Use scenario questions to model the impact of a demand spike, a production decision, or a delayed order — before you commit.

### Inventory Duration Scenarios

* "If I produce 5,000 units of \[SKU], how long will that last at current sell rates?"
* "How many units of \[SKU] do I need to build to cover the next 6 months?"
* "If I order 2,000 units now, when will I need to reorder?"
* "How much of \[SKU] do I need to hit a 90-day safety stock target?"

### Demand Spike Scenarios

* "What happens to coverage if my wholesale order for \[SKU] comes in at 2x forecast?"
* "If a retail partner places an unplanned order for 1,000 units in March, which SKUs would go negative?"
* "Model the impact of a 40% demand spike in Q4 on my current buy quantities"

### Order Delay & Supply Scenarios

* "What's the coverage impact if my supplier order is delayed by 3 weeks?"
* "If I cut total orders by 15%, which SKUs are most likely to stock out?"
* "Show me my inventory position if I skip the March order cycle"

### Budget Constraint Scenarios

* "How should I prioritize orders if I have a $200,000 procurement budget for Q3?"
* "Which SKUs should I cut to reduce total spend by 20% with the least stockout risk?"
* "Trade off: Grade A coverage vs. cash savings — show me the impact of reducing Grade B orders by 30%"

***

## Ask Mo: PO Strategy & Review

**When you're ready to generate purchase orders**, Mo can help you decide between cost and lead time optimization, review the output, and prioritize which orders to activate first.

### Before Generating Orders

Mo can provide strategic guidance before you commit to generating POs — especially helpful when you have multiple supplier options or competing priorities.

* "Should I optimize for cost or lead time based on my current inventory position?"
* "Compare supplier options for my top-priority SKUs"
* "What's the total projected spend if I generate orders right now?"
* "Which supplier should I use for \[SKU name]?"
* "Compare lead times vs. costs for my top 10 SKUs"

**What to tell Mo:**

* Specify your business priority: "I need inventory fast for a Q3 product launch" vs. "I need to minimize spend this quarter"
* Ask for multi-supplier comparisons when relevant
* Request explanations: "Why did you choose Supplier A over Supplier B for this SKU?"

### After Generating Orders

Once orders are generated, Mo can help you understand the output and decide what to activate first.

* "Show me a summary of all generated POs by supplier"
* "Which POs should I activate first to avoid stockouts?"
* "What's the total value of orders generated for January?"
* "Which supplier received the most orders?"
* "Break down my total spend by product line"

### Monthly PO Workaround

Since the system currently generates POs for the full coverage period, Mo can help you think through a manual monthly breakdown.

* "Help me split this full-period PO into monthly orders"
* "Show me how much inventory arrives each month if I place this order now"
* "Create a monthly ordering schedule based on these quantities"

### Draft vs. Active Order Strategy

Not all generated orders need to be activated immediately. Mo can help you triage.

* "Which orders should I activate first based on stockout risk?"
* "Show me POs sorted by urgency"
* "What's the risk if I delay activating \[specific PO]?"

{% hint style="warning" %}
**Note:** Purchase orders are currently generated for the full coverage period. Use Mo's help to manually plan a monthly cadence, or export your order schedule and apply the breakdown in your procurement system.
{% endhint %}

***

## Ask Mo: Advanced Planning Scenarios

**For complex planning decisions** — dual scenario plans, constraint debugging, seasonal spikes, and order frequency — Mo can act as a strategic advisor to help you model outcomes before you commit.

### Dual Scenario Planning

When running parallel internal and factory-facing plans, Mo can help you understand the delta between them.

* "Compare my internal demand plan vs. my factory-facing plan"
* "What's the difference between these two scenarios?"
* "Show me the total cost difference between my internal and factory-facing plans"
* "Which SKUs have the biggest variance between scenarios?"

### MOQ Hierarchy Debugging

Constraint conflicts can be difficult to trace manually. Mo can pinpoint where a conflict is occurring in the 3-tier hierarchy.

* "Why is my Product Line MOQ not applying to \[SKU name]?"
* "Show me all constraint conflicts for my Grade A items"
* "Check if any SKU-level constraints are overriding my product line settings"
* "List all items where MOQ constraints are inflating order quantities"

### Export Strategy

Deciding what level of aggregation to share externally? Mo can help you choose the right export for your audience.

* "Should I export at Product Line or Product Type level for my factory?"
* "What aggregation level is best for a finance team review?"
* "What information is hidden at each export level?"

### Seasonal Planning

Planning for demand spikes and promotional events requires careful inventory positioning. Mo can help you model the impact before committing.

* "How should I adjust my plan for a holiday demand spike?"
* "What's the risk of stockouts if I reduce my Q4 orders by 20%?"
* "Help me plan inventory for a 40% demand spike in November and December"
* "Model the impact of a promotional event in March on my inventory levels"

### Constraint What-If Analysis

Before changing constraints, use Mo to model the downstream effects on your plan.

* "What happens to my plan if I increase MOQs by 50%?"
* "Model the impact of reducing lead times by 2 weeks"
* "Show me how my plan changes if I reduce safety stock from 30 to 15 days"
* "What's the cost difference between 30-day vs. 60-day safety stock?"

### Order Frequency Planning

For brands on ocean freight or quarterly ordering rhythms, Mo can help you understand how consolidated order schedules affect your inventory levels.

* "How should I set up quarterly ordering for ocean freight shipments?"
* "What's the difference between my display cadence and actual order frequency?"
* "Show me how consolidating orders into quarterly buckets affects my inventory"

{% hint style="info" %}
**Tip:** When asking Mo about complex scenarios, always provide the constraint type (MOQ, lead time, safety stock), the time period, and any relevant business context — such as a promotional event or cash flow constraint. This gives Mo the full picture needed to provide a meaningful answer.
{% endhint %}

***

## Related Guides

{% content-ref url="/pages/8QlNv4eTnXy8INtmWeyS" %}
[Create a Replenishment or Allocation Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan)
{% endcontent-ref %}

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}

{% content-ref url="/pages/I9gucwtJ2LWj6vkAOOjb" %}
[Advanced Production Plans Guide](/planning-and-execution/replenishment/advanced-planning/advanced-production-plans)
{% endcontent-ref %}

{% content-ref url="/pages/l9ml4ZumgPlQAIGamldP" %}
[Mass Editing with Mo](/planning-and-execution/replenishment/advanced-planning/mass-editing-with-mo)
{% endcontent-ref %}

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/mo/who-is-mo/README.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/mo/who-is-mo/README.md>
{% endcontent-ref %}


# Mass Editing with Mo

Use Mo to bulk-edit your plan in Moselle — adjust quantities, shift order timing, apply budget constraints, and update supplier lead times across multiple SKUs.

{% hint style="info" %}
**Quick Answer:** Open your production plan, click the Mo chat icon, and describe the change you want to apply across multiple SKUs or orders. Mo will apply the edit in bulk — no manual row-by-row updates required.
{% endhint %}

## What is Mass Editing in Moselle?

**Mass editing is** the ability to apply a single change — such as a quantity buffer, lead time update, or budget constraint — across your entire production plan at once. Rather than updating each SKU individually, you describe the change to Mo in plain language and Mo applies it across the affected rows.

**Time Required:** 2–5 minutes per bulk edit\
**Difficulty:** Beginner

Before you begin, make sure you have:

* [ ] An active Moselle account with Mo credits available
* [ ] A production plan open in Moselle
* [ ] A clear idea of the scope — which SKUs, suppliers, or order window you want to edit

***

## Accessing Mo in Production Planning

{% stepper %}
{% step %}

### Open Your Plan

1. Navigate to **Production Planning** in the left sidebar
2. Open an existing plan or generate a new one
   {% endstep %}

{% step %}

### Open the Mo Panel

Click the **Mo chat icon** to open Mo alongside your plan.

Mo has full context of the plan in view, including your forecast data, current stock levels, supplier lead times, and order recommendations.
{% endstep %}

{% step %}

### Describe Your Edit

Type your bulk edit request in plain language. Be specific about the scope — which SKUs, suppliers, or date range should be affected.
{% endstep %}
{% endstepper %}

***

## Adjusting Order Quantities

Mo can increase, decrease, or recalculate quantities across your plan without you touching individual rows.

| Example Prompt                                                      | What Mo Will Do                                                           |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| Increase the order quantity for `[SKU]` by `[X]` units.             | Updates the quantity and recalculates the impact on stock cover and cost. |
| What happens if I reduce this order by 20%?                         | Models the coverage impact so you can assess the risk before committing.  |
| Round all order quantities up to the nearest `[MOQ]`.               | Applies minimum order quantity rounding rules across the plan.            |
| Adjust quantities to cover `[X]` months of demand instead of `[Y]`. | Recalculates order sizes based on a new target coverage window.           |
| Apply a 10% buffer to all order quantities in this plan.            | Adds a safety buffer across all recommended quantities.                   |

{% hint style="info" %}
**Tip:** Ask Mo "what would happen if…" before committing. Mo will model the change and show you the impact on stock cover and cost — you can then decide whether to apply it.
{% endhint %}

***

## Adjusting Order Timing

You can ask Mo to shift when orders are scheduled to arrive or be placed — across a single SKU or your entire plan.

| Example Prompt                                                   | What Mo Will Do                                                                                                        |
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Move the order for `[SKU]` to arrive by `[date]`.                | Recalculates the order placement date based on your supplier's lead time, working backwards from the new arrival date. |
| Push all orders arriving in `[month]` out by two weeks.          | Applies a bulk shift to the arrival window across all affected SKUs.                                                   |
| What's the latest I can place this order and still cover demand? | Returns the latest safe order date before a projected stockout occurs.                                                 |
| Can I consolidate these orders into one shipment?                | Evaluates whether orders can be grouped without creating coverage risk.                                                |

***

## Mass Editing Across the Plan

Mo supports bulk edits so you are not making changes SKU by SKU.

| Example Prompt                                                    | What Mo Will Do                                                                 |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Apply a 10% buffer to all order quantities in this plan.          | Adds a safety buffer across all recommended quantities.                         |
| Update lead times for `[Supplier]` to `[X]` days and recalculate. | Re-runs the affected order dates and quantities with the new lead time applied. |
| Flag all SKUs where the order value exceeds `$[X]`.               | Surfaces high-value orders for review before submission.                        |
| Remove all orders below `[X]` units from this plan.               | Filters out sub-threshold orders, useful for minimising shipment complexity.    |

***

## Budget-Based Order Creation

You can set a spending constraint and have Mo build a purchase order that works within that budget — prioritising your most critical inventory needs first.

| Example Prompt                                                                              | What Mo Will Do                                                                                                        |
| ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| I have a budget of `$[X]` — what should I order?                                            | Allocates the budget across your highest-priority SKUs based on stockout risk and unit cost, and generates a draft PO. |
| Create a PO for `[Supplier]` with a maximum spend of `$[X]`.                                | Builds a supplier-specific PO optimised within the budget, applying your replenishment rules and coverage targets.     |
| I can only spend `$[X]` this month — which orders should I prioritise?                      | Ranks your outstanding order needs by urgency and shows what fits within the constraint.                               |
| What can I order from `[Supplier]` for under `$[X]` and still cover demand for `[X]` weeks? | Finds the optimal order mix for a given supplier, budget, and coverage target.                                         |
| I have `$[X]` left in my budget — fill in the gaps in my current plan.                      | Identifies uncovered demand in the existing plan and uses the remaining budget to address the highest-risk gaps first. |

{% hint style="info" %}
**Prioritisation:** When working with a budget constraint, Mo prioritises SKUs closest to a stockout by default. You can ask Mo to adjust this — for example, by margin, by sales velocity, or by supplier.
{% endhint %}

***

## Checking PO Status

Mo can pull up the current status of your purchase orders without you needing to navigate away from your plan.

| Example Prompt                                    | What Mo Will Do                                                                                                      |
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| What's the status of my open POs?                 | Returns a summary of all open purchase orders, including supplier, expected arrival date, and quantities in transit. |
| Has PO `[number]` been confirmed by the supplier? | Checks the confirmation status of a specific PO.                                                                     |
| Which POs are arriving this week?                 | Filters your open orders by expected arrival window.                                                                 |
| Are there any overdue POs?                        | Surfaces orders that have passed their expected arrival date and have not yet been received.                         |
| What's still outstanding from `[Supplier]`?       | Lists all open orders with a specific supplier, including quantities and expected dates.                             |

***

## Tips for Mass Editing with Mo

* **Be specific about scope** — Tell Mo which SKUs, categories, or suppliers to include. Mo will apply changes as broadly or narrowly as you define.
* **Model before committing** — Use phrases like "what would happen if…" to preview a change before it is saved.
* **Chain your edits** — Mo retains context across your conversation within the session. Ask for a list of at-risk SKUs, then ask Mo to adjust quantities for only those items.
* **Validate before submitting** — Ask Mo to summarise all changes made in the session before you finalise the plan.

***

## Related Guides

{% content-ref url="/pages/rt03PNU9zAGxsqubrFMs" %}
[Planning with Mo](/planning-and-execution/replenishment/advanced-planning/production-planning-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/8QlNv4eTnXy8INtmWeyS" %}
[Create a Replenishment or Allocation Plan](/planning-and-execution/replenishment/core-workflow/create-a-production-plan)
{% endcontent-ref %}

{% content-ref url="/pages/XujjS3140dWgq4aagxaz" %}
[Manage Your Production Plan](/planning-and-execution/replenishment/core-workflow/production-planning)
{% endcontent-ref %}

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}


# Financial Planning

Integrate cash flow and budget constraints into your Moselle replenishment strategy — balance inventory health with working capital reality and payment terms.

{% hint style="info" %}
**Quick Answer:** Financial Planning helps you align replenishment decisions with your cash flow and budget constraints, so you avoid over-purchasing while maintaining inventory health and service levels.
{% endhint %}

## What Is Financial Planning?

**Financial Planning ensures your inventory decisions align with working capital limitations and cash flow goals.** Inventory planning doesn't exist in a vacuum — cash flow and capital constraints are real business drivers.

Moselle's financial planning tools help you balance inventory coverage with working capital efficiency.

**Cash Planning** — Model how replenishment orders impact cash outflow, account for payment terms, and optimize order timing to align with your cash cycle. This is especially critical for seasonal businesses and high-velocity SKUs.

By incorporating financial constraints into your replenishment strategy, you avoid over-purchasing that strains cash, while maintaining service levels and inventory health.

**Who Should Use This:** Seasonal businesses, startups managing cash runway, teams with tight working capital, businesses with complex payment terms or supplier negotiations.

***

## Financial Planning Pages

{% content-ref url="/pages/V3jgsEvcbw5yuqFe2W9R" %}
[Cash Planning](/planning-and-execution/replenishment/financial-planning/cash-planning)
{% endcontent-ref %}

**Cash Planning** — Model replenishment orders against your cash position, account for payment terms, and optimize order timing to align with your cash cycle. Essential for seasonal businesses and cash-constrained operations.

***

{% hint style="success" %}
**Explore Cash Planning:** [Cash Planning](/planning-and-execution/replenishment/financial-planning/cash-planning)
{% endhint %}

***

## Related Sections

{% content-ref url="/pages/vhTY249VKGoERw9TwQiu" %}
[Core Workflow](/planning-and-execution/replenishment/core-workflow)
{% endcontent-ref %}

{% content-ref url="/pages/mHNMfuZIgMWqBo90himO" %}
[Advanced Planning](/planning-and-execution/replenishment/advanced-planning)
{% endcontent-ref %}


# Cash Planning

Align your purchasing decisions with your cash position in Moselle — and use Mo to build a prioritised, budget-aware replenishment plan in minutes.

{% hint style="info" %}
**Quick Answer:** Cash planning maps your replenishment decisions to your cash position — showing you what to buy, when to order, and exactly when cash leaves your account. It turns reactive purchasing into a forward-looking, budget-aware process. Mo can build a prioritised plan for you in minutes when you give it a budget.
{% endhint %}

**Cash planning for inventory** means aligning your purchasing and production decisions with your actual cash position and forecast. Rather than placing orders reactively — when stock runs out or a supplier follows up — cash planning gives you a forward-looking view of what you need to buy, when, and how much it will cost.

For inventory-based businesses, cash planning answers questions like:

* How much cash will I need to replenish stock over the next 30, 60, and 90 days?
* When do my largest purchase order outflows hit, and do I have coverage?
* What happens to my cash position if demand comes in higher — or lower — than expected?
* Which SKUs are tying up the most working capital relative to their sell-through?

***

## Why Is Cash Planning Important?

Inventory decisions are financial decisions. Every purchase order you place is cash leaving your business. Every unit sitting in a warehouse is working capital that could be deployed elsewhere.

The two failure modes look like this:

* **Too little stock** → stockouts, lost revenue, and customers who don't come back
* **Too much stock** → cash tied up, storage costs climbing, and markdowns eating your margin

Most brands experience both at different times — because traditional planning approaches rely on historical averages and manual judgment, which break down under real-world volatility.

### Benefits of Structured Cash Planning

* Prevents reactive, last-minute purchasing that often costs more
* Reduces excess inventory and the working capital tied up in it
* Creates alignment between your operations and finance teams
* Gives you the data to negotiate better payment terms with suppliers
* Makes it easier to plan around large seasonal orders or MOQ opportunities

### Who on Your Team Benefits

| Role                          | How it helps                                                    |
| ----------------------------- | --------------------------------------------------------------- |
| **Founder / CEO**             | Clear visibility into cash commitments before they happen       |
| **Operations / Supply Chain** | Prioritised replenishment decisions grounded in real data       |
| **Finance / CFO**             | Reliable outflow forecast to manage runway and working capital  |
| **Sales / Marketing**         | Confidence that inventory will be in stock to support campaigns |

***

## What Makes a Good Cash Plan?

A good cash plan isn't just a list of SKUs to reorder — it's a structured view of what needs to be purchased, when payment is due, and what the cumulative cash impact looks like over time.

### Key Fields and Data Points

A solid cash plan should include the following at minimum:

| Field                     | Why it matters                                                                                     |
| ------------------------- | -------------------------------------------------------------------------------------------------- |
| **SKU / Product name**    | The unit of planning — never plan at the category level only                                       |
| **On-hand inventory**     | Your starting point; must reflect current warehouse stock                                          |
| **Forecasted demand**     | Units expected to sell over the planning period                                                    |
| **Weeks of Supply (WOS)** | How long current stock will last at forecasted demand                                              |
| **Reorder quantity**      | Units needed to reach your target stock level                                                      |
| **Unit cost (COGS)**      | Cost per unit, used to calculate total cash outflow                                                |
| **Total PO value**        | The combined purchase cost across your reorder quantity — your total cash commitment per line item |
| **Lead time**             | How long until stock arrives after ordering                                                        |
| **Order date**            | When the PO needs to be placed to arrive in time                                                   |
| **Payment due date**      | When cash actually leaves your account (affected by payment terms)                                 |
| **Supplier**              | Who you're ordering from; helps group POs and plan outreach                                        |

### What Good Formatting Looks Like

* **Plan at the SKU level**, not just by product line or category. Aggregated views can mask imbalances — some SKUs may be critically low while others are overstocked.
* **Use a rolling time horizon** — typically 30/60/90 days — so you're always looking forward, not just at what's immediately urgent.
* **Show cumulative cash outflow** alongside individual PO values so you can see the total impact of your plan at a glance.
* **Group by supplier** when reviewing for approval or outreach, so you can consolidate orders and minimise freight.

### Common Gotchas

{% hint style="warning" %}
**Bundles and components aren't automatically accounted for.** If you sell bundles, the cash impact of restocking them depends on the component SKUs, not just the bundle itself. Make sure your plan accounts for component-level inventory and cost — otherwise you may underestimate your true cash need.
{% endhint %}

**Lead times are often longer than quoted.** Suppliers tend to quote best-case lead times. Build in buffer, especially for international suppliers or around peak seasons (Q4, Chinese New Year, etc.). A plan built on optimistic lead times will create stockouts even when it looks healthy on paper.

**Payment terms shift when cash actually leaves.** Net 30 or Net 60 payment terms mean the cash outflow doesn't happen when you place the PO — it happens later. Make sure your plan reflects actual payment dates, not order dates, so you don't misread your cash position.

**Seasonal demand spikes aren't always in the forecast.** If a major promotion, retailer launch, or seasonal push isn't factored into your forecast, replenishment recommendations will underestimate what you actually need. Always layer in known events before running a cash plan.

**Overreliance on category-level averages.** Planning at the brand or category level hides the individual SKU stories. A category with a "healthy" average WOS might still contain SKUs heading toward a stockout next week.

***

## How Do I Build a Cash Plan?

**Time Required:** 30–60 minutes (initial setup) **Difficulty:** Intermediate

A good cash plan is built from four inputs: your current inventory position, your forecast, your cost data, and your supplier terms. Here's how they come together:

{% stepper %}
{% step %}

### Start with your forecast

You need a forward-looking demand estimate at the SKU level. This is the foundation — everything else is derived from it.
{% endstep %}

{% step %}

### Calculate your current Weeks of Supply (WOS)

For each SKU, determine how long current stock will last at your forecasted sell rate. This is your depletion timeline — the foundation for identifying what needs to be ordered and when.
{% endstep %}

{% step %}

### Identify reorder needs

For any SKU where WOS falls below your target (accounting for lead time and safety stock), calculate the quantity needed to get back to your target level.
{% endstep %}

{% step %}

### Apply unit costs

Convert reorder quantities into cash values using your COGS per unit. This gives you the total purchase cost for each SKU — your actual cash commitment per order.
{% endstep %}

{% step %}

### Map to order and payment dates

Factor in lead times to determine when each PO needs to be placed. Then apply your payment terms to understand when cash actually leaves your account.
{% endstep %}

{% step %}

### Prioritise against your budget

If total replenishment needs exceed available cash, rank SKUs by urgency (stockout risk, revenue contribution) and allocate budget accordingly.
{% endstep %}
{% endstepper %}

***

## How Do I Build a Cash Plan with Mo in Moselle?

**Time Required:** 5–10 minutes **Difficulty:** Beginner

Mo can do most of the heavy lifting for you — pulling your live inventory data, applying your forecast, and building a prioritised replenishment plan based on a budget you define. Cash planning with Mo happens in the same conversation as your regular planning workflow; there's no separate tool to open.

### What Do I Need Before Building a Cash Plan with Mo?

Make sure the following are in place before asking Mo to build a cash plan:

* [ ] **Forecast is active and up to date.** Mo builds recommendations from your demand forecast. A stale or uncalibrated forecast leads to a misaligned plan. Make sure your forecast reflects current trends, any known promotions, and seasonal factors.
* [ ] **Lead times are configured.** Mo uses lead times to calculate urgency. If lead times aren't set, Mo can't accurately determine when you need to order.
* [ ] **Safety stock is set.** Your safety stock settings define the minimum inventory floor Mo plans around. Without them, Mo may underestimate how much you need to order.
* [ ] **COGS / unit costs are accurate.** For Mo to calculate the cash value of a replenishment plan, product costs need to reflect what you're actually paying.

### Step-by-Step: Getting a Cash Plan from Mo

{% stepper %}
{% step %}

### Give Mo your budget

Tell Mo the dollar amount you have available to spend on replenishment. Be specific — this number will anchor everything Mo recommends.

> **Example prompt:** "I have a budget of $15,000 for replenishment this month. Can you help me build a purchase plan that stays within that budget and prioritises the SKUs most at risk of stocking out?"

Mo will pull your current inventory levels and forecasted demand to begin building a prioritised plan.
{% endstep %}

{% step %}

### Review the prioritised recommendations

Mo will return a recommended set of purchase orders ranked by urgency. Expect to see:

* SKUs surfaced by stockout risk and sales velocity
* Units and estimated cost per SKU based on your forecast and target WOS
* A running total so you can see how your budget is being allocated
* Any SKUs approaching stockout that may warrant urgent attention
  {% endstep %}

{% step %}

### Adjust and refine

Cash planning is rarely a one-shot process. Once Mo returns its initial recommendations, iterate with follow-up prompts.

> **Example prompt:** "That looks good — can you also include lower-priority SKUs if there's budget remaining after covering the most urgent ones? Keep the total under $15,000."

> **Example prompt:** "Remove SKU XYZ-001 from the plan — we have a shipment arriving next week. What does the remaining budget look like?"

> **Example prompt:** "Which SKUs are at risk of stocking out in the next 4 weeks if I don't order them?"
> {% endstep %}

{% step %}

### Confirm and export

Once you're satisfied with the plan, Mo can help you finalise your purchase orders or export a summary for review with your team or supplier. Use this as the basis for your actual PO submissions.

{% hint style="success" %}
**Save your go-to prompt.** You can save your cash planning prompt as a favourite in Mo so it's ready to run with a single click. See [Save Your Favourite Prompts](https://github.com/Moselle-io/moselle-docs/blob/master/planning-and-execution/replenishment/mo/tips/save-favourite-prompts.md) for instructions.
{% endhint %}
{% endstep %}
{% endstepper %}

### What Prompts Work Best for Cash Planning with Mo?

| Use case                | Example prompt                                                                                                   |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Budget overview**     | "I have $20,000 to spend on replenishment. What should I prioritise based on my current inventory and forecast?" |
| **Stockout protection** | "Which of my SKUs will stock out in the next 6 weeks if I don't reorder? How much would it cost to cover them?"  |
| **Budget stretch**      | "I've covered my most urgent SKUs and have $3,000 remaining. What else should I include in the plan?"            |
| **Scenario check**      | "If I reduce my replenishment budget to $8,000, which SKUs would I need to cut from the plan?"                   |
| **Refine the plan**     | "Remove SKU XYZ-001 — we have stock arriving. What does the remaining budget look like?"                         |
| **Supplier grouping**   | "Group the replenishment plan by supplier so I can see which POs to send to each vendor."                        |
| **Cash timing**         | "What's my total procurement commitment for the next 60 days based on my current replenishment plan?"            |
| **Deferred spend**      | "Which orders could I push without risking a stockout, if I need to free up cash this month?"                    |

***

## Frequently Asked Questions

<details>

<summary>Do I need to set up anything in Moselle before using Mo for cash planning?</summary>

Yes — at minimum, you need an active forecast, lead times configured, and safety stock set for your key SKUs. Without these, Mo's recommendations will be less accurate. COGS / unit costs should also be up to date so Mo can calculate the cash value of each replenishment.

</details>

<details>

<summary>What if my total replenishment needs are higher than my budget?</summary>

That's exactly what Mo is designed for. Give Mo your budget and it will prioritise SKUs by urgency — surfacing the highest-risk items first so you can make the most of available cash. You can then decide whether to defer lower-priority SKUs or explore adjusting order quantities to stay within budget.

</details>

<details>

<summary>How often should I run a cash plan?</summary>

Weekly or bi-weekly is ideal for most brands. A plan built at the start of the month may not reflect new orders placed, incoming shipments, sales spikes, or slow periods since then. Running it regularly keeps your purchasing decisions aligned with reality.

</details>

<details>

<summary>Can Mo account for bundles in a cash plan?</summary>

Mo can work with your bundle and component setup in Moselle. For the plan to reflect true cash needs, your BOMs (bills of materials) should be configured so Mo can trace bundle demand down to the component SKUs that actually need to be purchased.

</details>

<details>

<summary>Can I use Mo for production planning as well as replenishment?</summary>

Yes. Mo supports both finished goods replenishment and production run planning. If you manufacture or co-manufacture products, Mo can factor in production lead times, component availability, and run sizing as part of a budget-aware plan.

</details>

<details>

<summary>What's the difference between a cash plan and a production plan?</summary>

A replenishment plan focuses on purchasing finished goods from a supplier. A production plan focuses on scheduling manufacturing runs, which involves both timing and component inputs. Mo can help you build both — and in many cases, they're connected.

</details>

***

## Related Guides

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

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

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

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


# Orders

Purchase orders are the bridge between planning and inventory. Create, track, and receive orders to execute your procurement strategy and maintain stock levels.

### Getting Started

Manage your purchase orders from creation to receipt. Moselle streamlines procurement workflows, helping you maintain accurate inventory levels and supplier relationships.

### Order Documentation

| Section                                                                             | Description                                                                |
| ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [Create an Order](/planning-and-execution/orders/create-an-order)                   | Create purchase orders with Mo (recommended) or manually                   |
| [Review Your Order](/planning-and-execution/orders/review-your-order)               | Overview page showing order details before sending to suppliers            |
| [Upload an Order](/planning-and-execution/orders/upload-an-order)                   | Bulk import orders by uploading and mapping files instead of manual entry  |
| [Receive a Purchase Order](/planning-and-execution/orders/receive-a-purchase-order) | Process incoming inventory to update stock levels and complete procurement |

### Quick Overview

**Orders Page** Access all purchase orders from the main menu. View orders by status (Open, Draft, Archived) and track key details including supplier, warehouse, delivery dates, and order amounts. Select multiple POs using the checkboxes to bulk update their status or delivery warehouse.

**Order Workflow**

1. **Create or Upload** - Ask Mo to build your order, create one manually, or import from file
2. **Review** - Verify line items and details before submission
3. **Send** - Submit order to supplier
4. **Receive** - Process incoming inventory to update warehouse stock

Start by [creating your first order with Mo](/planning-and-execution/orders/create-an-order) or explore the sections above to learn more about managing your purchase orders.


# Create an Order

Learn how to create purchase orders in Moselle — use Mo for the fastest experience or build orders manually with full control over every field.

{% hint style="info" %}
**Quick Answer:** The fastest way to create a purchase order is with Mo — just describe what you need and Mo builds the order for you. You can also create orders manually from the Orders page. Both methods produce the same editable draft on your Orders page.
{% endhint %}

## Two Ways to Create a Purchase Order

Moselle gives you two paths to create a purchase order:

| Method                           | Best For                                                | Time         |
| -------------------------------- | ------------------------------------------------------- | ------------ |
| **Create with Mo** (Recommended) | Most users — fast, conversational, fewer clicks         | 1–2 minutes  |
| **Create Manually**              | Full field-by-field control, custom fields, attachments | 5–10 minutes |

Both methods create the same draft order that you can review, edit, export, and send to your supplier.

***

## Create a Purchase Order with Mo (Recommended)

Instead of building a purchase order line by line, describe what you need and Mo handles the creation. Mo can pull recommended SKUs from your production plan or let you specify exactly what you want to order.

**Mo can:**

* Generate purchase orders from production plans (with smart month selection)
* Build fully custom purchase orders from your instructions
* Handle multi-supplier scenarios intelligently
* Update existing PO details (supplier, dates, status)
* Edit line items (add, update quantities/costs, remove items)
* Create incomplete POs when suppliers aren't assigned yet

### Option 1: Generate from Production Plan (Smart Workflow)

{% embed url="<https://www.youtube.com/watch?v=Z6jM6_djtH0>" %}

The fastest way to create multiple POs is from a production plan. Mo follows a 9-step workflow that ensures you're ordering the right items from the right suppliers:

1. **Asks which months** you want to generate orders for
2. **Fetches production plan data** (items and quantities)
3. **Analyzes supplier coverage** for each item
4. **Handles multi-supplier items** by asking you to choose
5. **Groups items by supplier** for efficient ordering
6. **Shows you a summary** before creating anything
7. **Creates the purchase orders** with all details filled in
8. **Links POs to your production plan** automatically
9. **Provides a detailed summary** with next steps

#### Example Workflow

**From the production plan page**, click the **"Generate Orders"** button or open Mo and type:

"Generate purchase orders for this production plan"

Mo will guide you through the process:

**Mo:** "Which months do you want to generate orders for? Do you want orders for all months on the production plan, or just specific ones?"

**You:** "Just June and July 2026"

Mo analyzes your production plan, identifies items that need ordering, checks supplier options, and presents a summary:

**Mo:** "I'll create **3 purchase orders**:

1. **Acme Corp** — 5 items • SKU-001 (100 units), SKU-002 (50 units), SKU-003 (75 units), ... • Estimated total: $1,234.56 • Delivery: \~15 days
2. **Global Supply Co.** — 3 items • SKU-006 (200 units), SKU-007 (150 units), SKU-008 (100 units) • Estimated total: $890.00 • Delivery: \~7 days (faster!)
3. ⚠️ **No supplier assigned** — 2 items • SKU-010, SKU-011 • These items don't have a recommended supplier in the system • I'll create an incomplete PO that you can assign a supplier to later

All orders will be set to deliver to: **Main Warehouse**

Should I proceed?"

**You:** "Yes, create them"

Mo creates all three purchase orders and links them to your production plan. On production plan pages, the Orders tab automatically opens to show your new POs.

#### Handling Multi-Supplier Items

If an item can be ordered from multiple suppliers, Mo will ask you to choose:

**Mo:** "I found that 3 items can be ordered from multiple suppliers:

**SKU-001** — Available from:

1. Acme Corp ($12.50 USD)
2. Global Supply ($13.00 USD)

**SKU-005** — Available from:

1. Supplier A ($8.00 USD)
2. Supplier B ($7.50 USD)

Which supplier would you prefer for each item?"

**You:** "Use Acme for SKU-001 and Supplier B for SKU-005"

Mo uses your selections to group items and create the appropriate POs.

#### Context-Aware Creation

When you're viewing a specific production plan and ask Mo to create a PO, Mo gets smarter:

**You:** "Create a PO for PKMN-002 from Costco"

**Mo:** "I see PKMN-002 has these quantities in your production plan: • March 2026: 200 units • April 2026: 150 units • May 2026: 150 units Total: 500 units

Would you like to create a PO for all 500 units, or a different quantity?"

**You:** "Just the March and April quantities"

**Mo:** "I'll create a purchase order for 350 units (200 + 150). What delivery date would you like?"

Mo uses context from your current page to make better suggestions and fill in details automatically.

### Option 2: Create a Custom PO with Mo

{% embed url="<https://www.youtube.com/watch?v=Ro_MJWmBoTA>" %}

For one-off orders or custom requests, tell Mo exactly what you need:

**Example prompts:**

* "Create a PO for 200 units of SKU-PKMN-002 from Costco, deliver by March 15th"
* "Make a purchase order for SKU-001 (500 units) and SKU-002 (300 units) from Acme, USD"

**Required information:**

* **Supplier** — the name of the supplier
* **SKUs and quantities** — what you want to order
* **Delivery date** (optional) — expected arrival date
* **Warehouse** (optional) — defaults to primary warehouse
* **Currency** (optional) — defaults to USD

### Option 3: Update an Existing PO with Mo

Mo can modify purchase orders after they're created — both PO details and line items:

**Example prompts:**

* "Change the delivery date on PO-9704 to June 15th"
* "Update the supplier for PO-9705 to Global Supply"
* "Mark PO-9704 as ordered"
* "Add 100 units of SKU-123 to PO-9704"
* "Change the quantity for SKU-ABC to 200 units"
* "Remove SKU-XYZ from this order"

**Supported updates:**

* **PO-level:** Supplier, order date, delivery date, status, PO number
* **Line items:** Add new items, update quantities/costs, remove items

The PO page automatically refreshes after Mo makes changes.

### Budget-Constrained PO Creation

Tell Mo your spending limit and Mo will build a PO that fits within budget, prioritizing your most critical inventory needs:

**Example prompts:**

* "I have $5,000 to spend with Acme Corp — what should I order?"
* "Create a PO for under $2,000 that covers the most at-risk SKUs"
* "I can spend $3,000 this month — prioritize items closest to stockout"

Mo allocates your budget across high-priority SKUs based on stockout risk, demand, and unit costs.

### Incomplete Purchase Orders

Sometimes you need to create a PO but don't have a supplier assigned yet. Mo handles this gracefully:

**Mo creates incomplete POs** (supplier = null) when:

* An item in your production plan has no supplier on file
* You explicitly ask Mo to create a PO without specifying a supplier
* Mo can't find the supplier name you mentioned

**You can:**

* Review the incomplete PO in your Orders list
* Assign a supplier later (manually or via Mo)
* Edit quantities and details before finalizing

**Example:** "Create a PO for SKU-NEW-001 (500 units), no supplier assigned yet, delivery by Q3"

Mo creates the PO with all details except supplier, flagged as incomplete.

### Tips for Getting the Best Results from Mo

#### Be Specific Upfront

Vague requests produce incomplete drafts. Specific requests produce orders you can act on immediately.

| Instead of...                       | Try...                                                                                                                                 |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| "Create a PO for some products"     | "Create a PO for 300 units of SKU-001 and 200 units of SKU-002 from Acme Supplier, USD, delivered to New York warehouse by April 30th" |
| "Make an order from my plan"        | "Create a PO from my Q2 replenishment plan for Acme Supplier, delivered to the Chicago warehouse in USD by May 15th"                   |
| "Order more of the low-stock items" | "Create a PO for all SKUs with less than 4 weeks of stock, from Supplier B, delivered to LA warehouse in USD by end of month"          |

The five details Mo always needs: **supplier, warehouse, delivery date, currency, and SKUs (or a plan to pull them from)**.

#### Use Your Exact Names

Mo looks up suppliers, warehouses, and SKUs against your Moselle data. Using the exact names on file avoids mismatches.

* Supplier name as it appears in **Suppliers**
* Warehouse name as it appears in **Inventory > Warehouses**
* SKU identifiers as they appear in your **Catalog**

{% hint style="info" %}
Not sure of the exact name? Ask Mo first: "What suppliers do I have on file?" or "List my active warehouses" — then use those names in your follow-up prompt.
{% endhint %}

#### Iterate Rather Than Start Over

If Mo's first draft isn't quite right, correct it in the same conversation rather than starting fresh. Mo retains context across the conversation.

**Example follow-ups:**

* "Change the delivery date to June 1st"
* "Add 100 units of SKU-003 to that order"
* "Switch the warehouse to the Dallas location"
* "Remove SKU-002 from the order"

This is faster than re-writing the full prompt and lets Mo build on what it already created.

#### Give Mo a Reason When Quantities Feel Off

If Mo pulls quantities from a production plan and they seem higher or lower than expected, tell Mo why you want to adjust them. Context helps Mo apply the right logic.

**Example:**

* "Reduce all quantities by 20% — we're entering a slower season"
* "Add a 15% buffer on top of the plan quantities for safety stock"
* "Cap any single SKU at 500 units for this order"

#### Save Prompts You Reuse

If you create similar POs regularly — same supplier, same warehouse, recurring cadence — save your best-performing prompt as a favourite in Mo. You can tweak the dates and quantities each time without rebuilding the prompt from scratch.

{% content-ref url="/pages/DAsnRIRTbbjM6bgR0RLM" %}
[Save Your Favourite Prompts](/mo/tips/save-favourite-prompts)
{% endcontent-ref %}

### Viewing Your Orders

After Mo creates a purchase order, find it in:

* **Orders page** — all POs across all plans
* **Production Plan > Orders tab** — POs linked to that specific plan

Each PO shows:

* PO number and status (draft, active, delivered)
* Supplier and delivery date
* Line items with quantities and costs
* Total order value

**Mo can help you find orders:**

* "Show me all open POs for Acme Corp"
* "Which POs are arriving this week?"
* "What's the status of PO-9704?"

***

## Create a Purchase Order Manually

If you prefer to fill in every field yourself or need features like custom fields and attachments, use the manual creation flow.

{% stepper %}
{% step %}

### Start a New Order

1. Navigate to **Orders** from the dashboard menu
2. Click **Create Order** in the top right corner
3. Select **Create New Order** to start a draft order
   {% endstep %}

{% step %}

### Enter Order Details

Click **Edit Order** and fill in:

* **PO #** — e.g., "PO-0001"
* **Supplier** — select from your supplier list
* **Order date**
* **Currency**
  {% endstep %}

{% step %}

### Set Shipment Details

* **Target delivery date** — when you expect the order to arrive (can be updated later)
* **Delivery warehouse** — select a connected warehouse, or click **Enter Custom Address** to input a custom shipping location

These details appear on your PDF and CSV exports.
{% endstep %}

{% step %}

### Add Items

1. Search for an item by name or SKU in the **Add Item** dropdown
2. Enter the following:
   * **Unit Quantity** — units per package (e.g., 1 box = 100 pairs of sunglasses)
   * **Item Quantity** — number of individual items (e.g., 100 sunglasses)
   * **Unit Cost** — cost per unit
3. Click **Add Item**

Items populate in the **Items** table below. Click any item to load it into the fields, make changes, and click **Update Item**.
{% endstep %}

{% step %}

### Add Additional Costs (Optional)

Capture all costs associated with your order so the PO total matches your supplier's invoice.

**Common use cases:**

* **Shipping & Freight:** Delivery charges agreed upon with the supplier
* **Tariffs & Duties:** Import fees collected by the carrier or supplier
* **Service Fees:** Rush order fees, customization charges, or handling fees

**To add a cost:**

1. Scroll to the **Additional Costs** section below the item list
2. Click **+ Add Cost**
3. Enter the **Name** (e.g., "International Priority Shipping") and **Amount**
4. The **Grand Total** updates automatically to reflect Subtotal + Additional Costs
   {% endstep %}

{% step %}

### Add Custom Fields, a Memo, and Attachments (Optional)

* **Custom Fields** — click **Add Custom Fields** to include additional columns (e.g., color, size, unit of measure)
* **Memo** — enter a note for your supplier or manufacturer; the memo ships with the PO, including on the exported PDF
* **Attachments** — upload supporting documents to attach to the order
  {% endstep %}
  {% endstepper %}

***

## Finding and Reviewing Your Order

After creating a purchase order — whether with Mo or manually — navigate to **Orders** from the left sidebar. The order appears as a draft that you can:

* Review and edit line items
* Add additional costs (shipping, duties, fees)
* Export as PDF or Excel
* Send to your supplier

{% hint style="success" %}
**Review before you finalize.** Mo builds the draft — you own the decision. Before sending a PO to a supplier, confirm SKUs and quantities match your intent, check that unit costs are populated, verify the delivery date is realistic for your supplier's lead time, and add any additional costs not in the line items.
{% endhint %}

{% content-ref url="/pages/UJBeJZb1fZD3mCfSbojq" %}
[Review your Order](/planning-and-execution/orders/review-your-order)
{% endcontent-ref %}

***

## Export Orders

### Export a Single Order

1. Open the order
2. Click **Export**
3. Select **PDF** or **Excel**

Both formats include itemized additional costs and the calculated grand total.

### Export All Orders

From the Orders page, click **Export** in the top right corner to download all purchase orders in one file.

***

## Mo-Specific Questions

### Can Mo edit line items in an existing PO?

**Answer:** Yes! Mo can add new line items, update quantities and costs of existing items, and remove items from existing POs. Just tell Mo what you want to change and specify the PO number.

### What happens if Mo can't find the supplier I mentioned?

**Answer:** Mo will create an incomplete PO (supplier = null) and flag it for you to assign a supplier later. Alternatively, ask Mo "What suppliers do I have on file?" to get the exact names.

### Can Mo create POs for items not in my catalog?

**Answer:** No — all line items must be catalog items. If you need to order something not in your catalog, add it to your catalog first, then ask Mo to create the PO.

### Do POs created by Mo appear differently than manual POs?

**Answer:** No — they're identical. Mo-created POs are regular draft purchase orders that you can review, edit, export, and send to suppliers just like manually created ones.

### Can Mo create POs for multiple suppliers at once?

**Answer:** Yes — when generating orders from a production plan, Mo creates one PO per supplier automatically. For custom requests, you'll need to ask Mo separately for each supplier's PO.

***

## General Questions

### Can I bulk upload orders instead of creating them one at a time?

**Answer:** Yes — select **Upload Purchase Orders** from the Orders page to import orders from a CSV or XLSX file.

{% content-ref url="/pages/Y0imDZsRt0w2Z0xpNjHo" %}
[Upload an Order](/planning-and-execution/orders/upload-an-order)
{% endcontent-ref %}

### Why can't I add a line item to my order?

**Answer:** Line items must be catalog items. You cannot add items that aren't in your catalog. Use the **Memo** field for additional information such as shipping instructions or special requirements.

### What export formats are available?

**Answer:** PDF and Excel. Both include itemized additional costs and the grand total. PDFs are generated in the browser — use the latest version of Chrome or Safari for best results.

### Does Moselle support apparel cut sheets?

**Answer:** Yes — a special output format is available for apparel brands that groups items by style with color and size breakdowns. Contact <support@moselle.io> to enable this feature.

***

## Related Guides

{% content-ref url="/pages/HgnZ9cwAvJDGVDj6jEcy" %}
[Orders with Mo](/mo/key-capabilities/orders-with-mo)
{% endcontent-ref %}

{% content-ref url="/pages/UJBeJZb1fZD3mCfSbojq" %}
[Review your Order](/planning-and-execution/orders/review-your-order)
{% endcontent-ref %}

{% content-ref url="/pages/Y0imDZsRt0w2Z0xpNjHo" %}
[Upload an Order](/planning-and-execution/orders/upload-an-order)
{% endcontent-ref %}

{% content-ref url="/pages/c3H9nIfH0qdJQffJKIWc" %}
[Generate Orders](/planning-and-execution/replenishment/core-workflow/generate-orders)
{% endcontent-ref %}

{% content-ref url="/pages/sb2SV5PNVIJy5jUlhar2" %}
[Meet Mo](/mo/meet-mo)
{% endcontent-ref %}


# Review your Order

Manage purchase orders in Moselle — review line items, add landed costs, send to suppliers, and bulk update status or delivery warehouse across multiple POs.

{% hint style="info" %}
**Quick Answer:** Open a purchase order to review line items, add tracking numbers, landed costs, and send it to your supplier. To update multiple POs at once, use the checkboxes on the Orders page and click **Update Status** or **Update Warehouse**.
{% endhint %}

**Time Required:** 2–5 minutes

Each purchase order has two tabs: **Internal Details** and **Order Details**. Use Internal Details to track logistics, costs, documents, and team communication. Use Order Details to review and edit the order itself.

***

## Internal Details Tab

The Internal Details tab is your operational hub for a purchase order. It contains five sections: Order Management, Landed Cost, Documents, Tasks, and Activity.

### Order Management

The Order Management section lets you record shipment tracking information for the order:

* **Tracking Number** *(optional)* — Enter the carrier tracking number once the supplier ships the order. This keeps your team updated on where the shipment is.
* **Container Number** *(optional)* — If your goods are shipping in a freight container, record the container number here for reference.

### Landed Cost

Landed cost captures the true total cost of receiving an order beyond the product price itself. Enter the following cost fields:

* **Freight** — Transportation and shipping fees
* **Warehouse** — Any warehousing or storage fees associated with the order
* **Processing** — Handling, customs, or administrative fees

As you enter each cost, they automatically sum to a **Landed Cost Total** line. The grey summary box at the top of the section reflects the updated total.

{% hint style="info" %}
Currency is based on the purchase order's supplier currency. To change your master currency, click the highlighted settings option and select from the dropdown.
{% endhint %}

### Documents

Upload files related to this purchase order directly to the order record. Supported file types include CSV, PDF, and Excel. Common documents to attach:

* Invoices
* Proforma invoices
* Tracking or shipping confirmations
* Any other order-related paperwork

This keeps everything in one place so your team can access order documentation without hunting through email.

### Tasks

The Tasks section is an internal checklist for tracking what needs to happen with this order. Click **Add a Task** to create a new item — press **Enter** to save it.

Use tasks to build a simple order workflow, for example:

* [ ] Order created
* [ ] Order paid
* [ ] Order shipped
* [ ] Order in transit
* [ ] Order received

Tasks are flexible — add whatever steps match your internal process. Check off each task as it's completed to keep the order moving forward.

### Activity

The Activity section is a running comment feed for your team. Use it to log updates, flag issues, or leave reminders about the order. Examples:

* *"Shipment will arrive early — notify the warehouse team."*
* *"Order is running late due to port delays. Expected new delivery date: next Friday."*
* *"Supplier confirmed payment received."*

Leave a comment by typing in the field and submitting. The feed is timestamped so your team has a clear record of what happened and when.

***

## Order Details Tab

The Order Details tab shows a full summary of the purchase order as it was created — line items, quantities, prices, supplier, and PO metadata.

### Review Your Order

Use this tab to confirm everything looks correct before sending the order to your supplier. You can see all items added to the PO, their quantities, and the order totals.

### Edit Your Order

If you need to make changes, click the **Edit Order** button near the top of the page. This reopens the order for editing and lets you:

* Add new order items
* Edit existing order items (quantities, prices)
* Update PO details:
  * **PO #** — Your internal purchase order number or reference
  * **Order Date** — The date the order was placed
  * **Supplier** — The supplier fulfilling the order
  * **Supplier Currency** — The currency used for this order
  * **Memo** — A note that ships with the PO, including on the exported PDF

{% hint style="info" %}
Look for the help icons next to each field — hover them for a quick explanation of what the field does.
{% endhint %}

### Send Order to Supplier

Once you've reviewed and finalized the order, click **Send order** to open the email dialog. Enter the supplier's email address and click Send.

{% hint style="info" %}
Send to multiple recipients by separating email addresses with commas.
{% endhint %}

Click the **arrow** beside the Send order button for more options: **Email**, **Export to PDF**, or **Export to CSV**.

### Archive an Order

On the Orders page, click the three-dot menu at the end of any row and select "Archive".

***

## Understanding Order Status Columns

The Orders list page displays two status columns to help you track both the administrative state and delivery progress of your purchase orders:

### PO Status

The **PO Status** column shows the administrative state of your purchase order:

| Status        | Meaning                                       |
| ------------- | --------------------------------------------- |
| **Draft**     | Order is being prepared and not yet finalized |
| **Placed**    | Order has been sent to the supplier           |
| **Delivered** | Order has been received into your warehouse   |
| **Archived**  | Order is closed and no longer active          |

PO Status can be updated manually or synced automatically from integrations (NetSuite, Unleashed, etc.) if you're importing purchase orders from those systems.

### Shipment Status

The **Shipment Status** column automatically tracks delivery progress based on your delivery date and current PO status:

| Badge                 | When it appears                                         |
| --------------------- | ------------------------------------------------------- |
| **On Track** (blue)   | Active order with a future delivery date                |
| **Overdue** (red)     | Delivery date has passed and order is not yet delivered |
| **Delivered** (green) | Order has been received (PO Status is "Delivered")      |
| *(no badge)*          | Draft or archived orders                                |

Shipment Status updates automatically—you don't need to manually set it. It helps you quickly identify orders that need attention, especially overdue shipments.

{% hint style="success" %}
**Quick Scan:** Look for red "Overdue" badges to immediately spot orders that need follow-up with your supplier.
{% endhint %}

***

## Bulk Order Management

Instead of updating orders one at a time, you can select multiple purchase orders from the Orders list page and update their status or delivery warehouse in a single action.

### Select Orders for Bulk Update

On the Orders page, check the **square checkbox** in the far-left column of any row to select that PO. You can select as many orders as needed. Once at least one order is selected, two action buttons appear at the bottom of the page:

* **Update Status**
* **Update Warehouse**

### Bulk Update PO Status

Click **Update Status** to change the status of all selected orders at once. Choose from:

| Status        | When to use                                   |
| ------------- | --------------------------------------------- |
| **Draft**     | Order is being prepared and not yet finalized |
| **Placed**    | Order has been sent to the supplier           |
| **Delivered** | Order has been received into your warehouse   |
| **Archived**  | Order is closed and no longer active          |

{% hint style="info" %}
Use bulk status updates when you receive a shipment covering multiple POs, or when moving several draft orders to placed after a buying session.
{% endhint %}

### Bulk Update Delivery Warehouse

Click **Update Warehouse** to set or change the delivery warehouse for all selected orders at once. The dropdown will show the warehouses you have created in Moselle. This is useful when reassigning a batch of orders to a different fulfillment location.

{% hint style="success" %}
**Time Saver:** Bulk updates let you manage your entire order pipeline in seconds — no need to open each PO individually.
{% endhint %}

## Related Guides

{% content-ref url="/pages/RjoikPkwhOLfvtx8j6VZ" %}
[Create an Order](/planning-and-execution/orders/create-an-order)
{% endcontent-ref %}

{% content-ref url="/pages/WU5tXVfWs5RgoFKK72Pr" %}
[Receive a Purchase Order](/planning-and-execution/orders/receive-a-purchase-order)
{% endcontent-ref %}


# Upload an Order

Upload a CSV or XLSX to Moselle to bulk-import purchase orders — learn the required columns, how to map your fields, and how to fix common upload errors.

{% hint style="info" %}
**Quick Answer:** To upload an order in Moselle, go to **Orders**, click **+ Create Order**, select **Upload Purchase Orders**, upload your CSV or XLSX, map the columns to Moselle fields, and click **Import**. Your purchase orders will appear on the Orders page immediately.
{% endhint %}

**Time Required:** 5 minutes

### Required Data Fields

Your file must include these columns for a successful upload:

| Column Header         | Description                                                  | Format / Notes                                   |
| --------------------- | ------------------------------------------------------------ | ------------------------------------------------ |
| SKU                   | The unique product identifier or stock keeping unit          | Must exactly match a SKU in your Moselle catalog |
| Product Name          | The name of the product being ordered                        | Text                                             |
| Unit Cost             | The cost per individual unit                                 | Number (e.g. `12.50`) — no currency symbols      |
| Total Cost            | The total cost for the line item (Unit Cost × Item Quantity) | Number (e.g. `125.00`) — no currency symbols     |
| Purchase Order Number | The unique identifier for this purchase order                | Text or number                                   |
| Item Quantity         | The number of units being ordered                            | Whole number                                     |
| Target Delivery Date  | The expected delivery date for this order                    | `YYYY-MM-DD` (e.g. `2025-06-30`)                 |
| Supplier              | The supplier fulfilling this order                           | Must exactly match a supplier name in Moselle    |

### Steps

1. **Navigate to Orders** → Click "+ Create Order" → Select "Upload Purchase Orders"
2. **Upload your file**
   1. Select a CSV or XLSX file containing headers that match Moselle fields
   2. Ensure all required fields listed above are included
3. **Map your columns**
   1. Match your file's column headers to Moselle data fields using the dropdown selectors
   2. Use "Custom Field" for columns without matching fields
4. **Import**
   1. Click "Import"
   2. Refresh the Orders page to see your new purchase orders

### Troubleshooting Upload Errors

| Error Message                                         | Common Cause                                                        | Solution                                                                                                                   |
| ----------------------------------------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| SKU not found                                         | The SKU in your CSV doesn't match any item in Moselle.              | Check for typos, extra spaces, or case sensitivity in your CSV.                                                            |
| Supplier not found                                    | The supplier name doesn't match any supplier in Moselle.            | Go to **Operations → Suppliers** and add the supplier first, then re-upload.                                               |
| The file contains rows with more columns than headers | Unescaped commas in data, causing rows to split into extra columns. | Wrap any fields containing commas (e.g. `"1,000"` or multi-word names with commas) in double quotes, or remove the commas. |
| Invalid date format                                   | Dates are not in the required `YYYY-MM-DD` format.                  | Reformat your date column to `YYYY-MM-DD` (e.g. `2025-06-30`) before uploading.                                            |

## Related Guides

{% content-ref url="/pages/RjoikPkwhOLfvtx8j6VZ" %}
[Create an Order](/planning-and-execution/orders/create-an-order)
{% endcontent-ref %}

{% content-ref url="/pages/WU5tXVfWs5RgoFKK72Pr" %}
[Receive a Purchase Order](/planning-and-execution/orders/receive-a-purchase-order)
{% endcontent-ref %}


# Receive a Purchase Order

Receiving inventory updates your stock levels and completes the procurement cycle. Process purchase orders accurately to maintain real-time inventory visibility across warehouses.

### Navigate to Purchase Order

1. Select **Orders** from the Moselle menu
2. Click on the purchase order you want to receive
3. Click the **Inventory** tab
4. Click **Receive Inventory**

### Configure Receiving Options

A pop-up will appear with the following options:

**Select Warehouse** Choose the warehouse where you want to receive the items.

**Calculate Received** Automatically applies all item quantities from the purchase order to the selected warehouse.

**Remove Components** (Bundle items only) Deducts component items housed in a different warehouse when receiving bundle products.

Click **Accept** to proceed to the final review.

### Review Items

A table will display all items to be received:

| Column   | Description                |
| -------- | -------------------------- |
| SKU      | Product SKU                |
| Name     | Product name               |
| Quantity | Number of units to receive |

Adjust quantities if you are receiving partial shipments or need to make corrections.

### Finalize Receipt

After reviewing, scroll to the bottom and choose:

**Reset** - Returns to the beginning of the receive inventory process and clears the table.

**Accept** - Pushes inventory to the selected warehouse

{% hint style="danger" %}
Clicking Accept will sync inventory to the warehouse and cannot be undone. The receipt will be finalized. If a mistake is made, contact support for assistance.
{% endhint %}


# Catalog

Manage your product catalog in Moselle. Add items, organize with custom attributes, import in bulk, and keep your inventory data accurate for demand planning and forecasting.

The Catalog is your central hub for managing all products, components, and bundles in Moselle. A well-organized catalog improves forecast accuracy and streamlines production planning.

## Getting Started

New to Moselle? Start here:

1. [Import your existing items](/operations/catalog/adding-products/import-your-items) via CSV
2. [Set up custom attributes](/operations/catalog/product-setup/custom-attributes) for organization
3. [Link external listings](/operations/catalog/product-setup#link-a-store-listing) from your sales channels
4. [Add bill of materials](/operations/catalog/product-setup/bill-of-materials) for finished goods

## What You Can Do

| Task                                                                            | Description                                                                 |
| ------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [View and filter your catalog](/operations/catalog/access-your-catalog)         | Browse products, filter by attributes, and export your item list            |
| [Add items manually](/operations/catalog/adding-products/create-an-item)        | Create individual products, components, or bundles                          |
| [Import items in bulk](/operations/catalog/adding-products/import-your-items)   | Upload multiple items via CSV with custom attributes                        |
| [Product Setup](/operations/catalog/product-setup)                              | Update pricing, attributes, bill of materials, and supplier links           |
| [Components](/operations/catalog/product-setup/components)                      | Set up raw materials and sub-items for manufacturing or kitting             |
| [Manage custom attributes](/operations/catalog/product-setup/custom-attributes) | Create and organize attributes for filtering and reporting                  |
| [Catalog Review](/operations/catalog/product-setup/catalog-review)              | Identify and fix missing data that affects forecasting                      |
| [SKU Grading](/operations/catalog/sku-grading)                                  | Understand A/B/C performance tiers and filter your Production Plan by grade |

## Key Concepts

### Item Types

Moselle supports three item types:

* **Core SKU** - A standalone product with its own inventory and demand tracking
* **Component** - A raw material or part used to make finished goods
* **Bundle** - A group of SKUs sold together as a single unit

{% hint style="info" %}
**Handling Variants:** For products with size/color variations, create one Core SKU and link all variant listings to it. This rolls up demand for better forecasting. See [Create an Item](/operations/catalog/adding-products/create-an-item#handling-product-variants) for details.
{% endhint %}

### Custom Attributes

Attributes are custom fields you define to organize your catalog. Common examples include:

* Product line (e.g., "Summer Collection")
* Product type (e.g., "T-Shirt")
* Material, color, size
* MOQ (minimum order quantity)
* Lead time

{% hint style="info" %}
**Attributes are shared across your entire catalog.** When you create an attribute on one product, it becomes available for all products in your account.
{% endhint %}

### Catalog Health

The catalog page shows data issues that affect forecasting. Issues are categorized as:

**Blocking Issues** (prevent forecasts from being generated):

* **Missing Unit Price** - Required for top-down revenue-to-unit conversion
* **Missing Sales Listing** - Required for bottom-up ML model training
* **Missing Comparables** - Required for new SKUs without sales history

**Non-Blocking Issues** (reduce accuracy or limit features):

* **Missing Unit Cost** - Affects margin and cost calculations
* **Missing Product Line/Type** - Limits filtering and reporting
* **Missing Supplier** - Prevents purchase order generation

See [Catalog Review](/operations/catalog/product-setup/catalog-review) for details on each issue and how to resolve them.


# Adding Products

Add products to your Moselle catalog — manually, via CSV import, or as components. This section covers all methods for populating and expanding your catalog.

Add items to your Moselle catalog one at a time or in bulk via CSV.

{% hint style="info" %}
**Quick Answer:** To add products to Moselle, go to **Catalog** in the left sidebar. Click **Add Product** for a single item or **Import** for bulk uploads via CSV.
{% endhint %}

{% hint style="info" %}
**Before you add products**, read [Product Setup](/operations/catalog/product-setup) to understand SKU types, pricing fields, and custom attributes — knowing these upfront will save time when filling in product details.
{% endhint %}

## Methods for Adding Products

| Method                                                                        | Best For                                          | Time                 |
| ----------------------------------------------------------------------------- | ------------------------------------------------- | -------------------- |
| [Create an Item Manually](/operations/catalog/adding-products/create-an-item) | Adding one product at a time, setting up new SKUs | 2–5 minutes per item |
| [Import Items via CSV](/operations/catalog/adding-products/import-your-items) | Bulk uploads, migrating from another system       | 15–30 minutes        |

## Related Guides

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

{% content-ref url="/pages/gBjh0ZYfakohUlzEVPsZ" %}
[Import Items via CSV](/operations/catalog/adding-products/import-your-items)
{% endcontent-ref %}


# Create an Item

Add new products, components, and bundles to your Moselle catalog. Learn how to create items manually and choose the right SKU type.

Add individual products, components, or bundles to your catalog. For bulk additions, see [Import Items via CSV](/operations/catalog/adding-products/import-your-items).

## Add a New Item

1. Go to **Catalog** from the dashboard
2. Select **Products** or **Components** tab
3. Click **Add Product** or **Add Component**
4. Fill in the item details:
   * **SKU** (required) - Unique identifier
   * **Name** (required) - Product name
   * **SKU Type** - Core, Bundle, Component, or Variant
   * **Unit Price** - Selling price
   * **Unit Cost** - Your cost
   * **Description** - Product description
5. Click **Save**

<figure><img src="/files/iOaBtbjl9ANIVz25vG2X" alt=""><figcaption><p>Creating a new item</p></figcaption></figure>

## SKU Types Explained

Choose the right type for each item:

| Type          | Use For                                                          | Example                     |
| ------------- | ---------------------------------------------------------------- | --------------------------- |
| **Core**      | Standalone products with their own inventory and demand tracking | A finished t-shirt          |
| **Bundle**    | Products sold as a set but tracked individually                  | Gift box containing 3 items |
| **Component** | Raw materials or parts used to make finished goods               | Fabric, buttons, packaging  |

{% hint style="warning" %}
**Variant SKU type is deprecated.** See [Handling Product Variants](#handling-product-variants) below for the recommended approach.
{% endhint %}

### When to Use Each Type

**Core SKU**

* Most finished goods
* Items you sell directly
* Products with their own demand history
* Parent items that have size/color variations (link variant listings to this item)

**Bundle**

* Gift sets
* Multi-packs
* Starter kits
* Products that contain other products

**Component**

* Raw materials
* Packaging materials
* Parts that go into assemblies
* Items included in a bill of materials

## Handling Product Variants

{% hint style="info" %}
**Best Practice:** Create one Core SKU for demand planning and link all variation listings (sizes, colors) to that single item in Moselle.
{% endhint %}

From a demand planning perspective, product variants (e.g., a t-shirt in sizes S, M, L, XL) represent the same product. Rolling up demand into one SKU provides:

* **More accurate forecasts** - Aggregated demand history improves prediction
* **Simpler planning** - One item to manage instead of many
* **Better inventory decisions** - See total demand across all variations

### Recommended Setup for Variants

1. **Create one Core SKU** for the parent product (e.g., "Classic T-Shirt")
2. **Link all variation listings** from your sales channels to this single item
   * Go to item details > External Listings > Link Listings
   * Add each size/color variation from Shopify, Amazon, etc.
3. **Moselle aggregates sales** from all linked listings into unified demand data

### Example

Instead of creating separate items for:

* Classic T-Shirt - Small
* Classic T-Shirt - Medium
* Classic T-Shirt - Large
* Classic T-Shirt - XL

Create one item:

* **Classic T-Shirt** (Core SKU) with all size listings linked

This gives you a single forecast representing total demand for the product across all sizes.

{% hint style="warning" %}
**Migrating from Variant SKUs:** If you have existing Variant SKUs, we recommend consolidating them into Core SKUs with linked listings. Contact <support@moselle.io> for assistance with migration.
{% endhint %}

## Required vs Optional Fields

### Required

* **SKU/Identifier** - Must be unique within your account
* **Name** - Descriptive product name

### Recommended

* **Unit Cost** - Needed for cost calculations and margin analysis
* **Unit Price** - Needed for revenue forecasting
* **Product Line** - Helps organize and filter your catalog
* **Product Type** - Helps categorize items

### Optional

* Description
* Custom attributes
* Launch date
* Comparable products

## After Creating an Item

Once you save a new item, you can:

1. [Add custom attributes](/operations/catalog/product-setup/custom-attributes) for organization
2. [Link external listings](/operations/catalog/product-setup#link-a-store-listing) from sales channels
3. [Set up bill of materials](/operations/catalog/product-setup/bill-of-materials) for finished goods
4. [Add supplier pricing](/operations/catalog/product-setup#suppliers) for ordering


# Import Items via CSV

Import products into Moselle via CSV. Learn how to bulk upload items, update existing products, and avoid common import errors.

Save time by importing your product catalog in bulk using a CSV file. You can add new items or update existing ones with the overwrite option.

## Before You Import

{% hint style="danger" %}
**Create custom attributes before importing.** Any attribute columns in your CSV must already exist in Moselle, or the upload will fail silently. Create attributes by adding them to a product first. See [Custom Attributes](/operations/catalog/product-setup/custom-attributes).
{% endhint %}

### Required Fields

Every row in your CSV must include:

| Field                 | Description               |
| --------------------- | ------------------------- |
| `sku` or `identifier` | Unique product identifier |
| `name`                | Product name              |

### Optional Standard Fields

| Field             | Description                         | Format               |
| ----------------- | ----------------------------------- | -------------------- |
| `description`     | Product description                 | Text                 |
| `unit_cost`       | Cost per unit                       | Number (e.g., 12.50) |
| `unit_price`      | Selling price per unit              | Number               |
| `product_line`    | Product line grouping               | Text                 |
| `product_type`    | Product category                    | Text                 |
| `item_type`       | core, component, bundle, or variant | Text                 |
| `archived`        | Whether item is archived            | true/false           |
| `launch_date`     | When the product launched           | Date (YYYY-MM-DD)    |
| `phase_out_date`  | When product is discontinued        | Date (YYYY-MM-DD)    |
| `comparable_skus` | Similar products for forecasting    | Comma-separated SKUs |
| `grade`           | Product grade/tier                  | Text                 |

## Step-by-Step Import Process

### 1. Download the Template

1. Go to **Catalog** from the dashboard
2. Select the **Products** tab
3. Click **Import** on the right side
4. Click **Generate a Sample CSV**

This downloads a template with your existing attribute columns, ensuring compatibility.

<figure><img src="/files/Ry05JayKESbGRFYSgiJe" alt=""><figcaption><p>Import button location in the catalog</p></figcaption></figure>

### 2. Prepare Your Data

1. Open the downloaded template
2. Add your items, one per row
3. Fill in required fields (SKU and Name)
4. Add optional fields and attribute values as needed
5. Save as CSV format

{% hint style="warning" %}
**Do not add new column headers** that aren't in the template or already defined as attributes. Unknown columns cause import failures.
{% endhint %}

### 3. Upload Your File

1. Return to **Catalog > Products > Import**
2. Drag and drop your CSV file, or click to browse
3. Click **Upload**
4. Review the confirmation showing how many items will import
5. Click **Import Products**

### 4. Verify Your Import

After import completes:

1. Refresh the catalog page
2. Check that new items appear
3. Spot-check a few items to verify attribute values

## Update Existing Items

To modify items that already exist in Moselle:

1. Check the **Overwrite Products with Matching SKUs** box before uploading
2. The system will update any item where the CSV SKU matches an existing item

{% hint style="warning" %}
**Overwrite replaces all attribute data.** If you only want to update specific fields, make sure your CSV includes values for ALL attributes on those items. Missing attribute columns will set those values to null/empty.
{% endhint %}

## Troubleshooting Import Issues

### Import Fails Silently

**Cause:** Your CSV includes attribute columns that don't exist in Moselle.

**Solution:**

1. Check each column header against existing attributes
2. Create any missing attributes on a single product first
3. Re-upload the CSV

### Items Not Appearing

**Cause:** Missing required fields (SKU or Name).

**Solution:** Ensure every row has both `sku` (or `identifier`) and `name` values.

### Attributes Show as Empty

**Cause:** Column header doesn't exactly match the attribute name.

**Solution:**

* Attribute names are case-sensitive
* Check for extra spaces in headers
* Spaces in attribute names become underscores (e.g., "Lead Time" → "lead\_time")

### Date Parsing Errors

**Cause:** Invalid date format.

**Solution:** Use YYYY-MM-DD format (e.g., 2024-06-15).

## Best Practices

1. **Always download a fresh template** before importing to get current attribute columns
2. **Create attributes first** by adding them to any single product
3. **Start with a small test file** (5-10 items) to verify your format
4. **Back up existing data** by exporting before overwriting
5. **Use consistent formatting** for attribute values (e.g., always "Cotton" not sometimes "cotton")


# View and Filter Your Catalog

View, filter, and export your product catalog in Moselle. Find items quickly using search and filters, identify catalog issues, and download your master item list.

The Catalog page is your central hub for browsing all products and components in Moselle. Use filters to find specific items, identify data issues, and export your catalog for analysis.

## Open the Catalog

1. Click **Catalog** from the main dashboard
2. Select **Products** or **Components** tab

## Catalog Health Indicators

The top of the catalog page shows data quality issues that may affect forecasting:

| Issue                         | What It Means                                        |
| ----------------------------- | ---------------------------------------------------- |
| **Missing Unit Price**        | No selling price set                                 |
| **Missing Comparables**       | No similar products linked (important for new items) |
| **Missing Internal Listings** | No channel listings connected                        |

Click any indicator to filter the catalog to items with that issue.

## Filter Your Catalog

Use filters to narrow down your item list:

| Filter               | Description                      |
| -------------------- | -------------------------------- |
| **Status**           | Active or Archived items         |
| **Product Line**     | Filter by product line attribute |
| **Product Type**     | Filter by product type attribute |
| **Unit Price Range** | Items within a price range       |
| **Unit Cost Range**  | Items within a cost range        |
| **Search**           | Find items by name or SKU        |

### Using the Search Bar

The search bar matches against:

* Product name
* SKU/identifier
* Description

Type at least 2 characters to see results.

## Export Your Catalog

Download your catalog as a CSV file for analysis or backup.

### Export All Items

1. Go to **Catalog > Products** or **Components**
2. Click **Export** in the top right

### Customize Export Columns

1. Click **View** next to the Export button
2. Select which properties to include
3. Click **Export**

<figure><img src="/files/Dawl2b7DmJxStFSaZiCa" alt=""><figcaption><p>Export options in the catalog</p></figcaption></figure>

The export includes:

* Standard fields (SKU, name, price, cost)
* Custom attributes
* Product line and type
* Archive status

{% hint style="info" %}
**Tip:** Export your catalog before making bulk changes. This gives you a backup to reference or re-import if needed.
{% endhint %}

## Add Items Quickly

While reviewing your catalog, you can add new items without leaving the page:

1. Click **Add Product** or **Add Component**
2. Fill in the item details in the slide-out panel
3. Click **Save**

See [Create an Item](/operations/catalog/adding-products/create-an-item) for detailed instructions.

## Bulk Edit Items

To make changes to multiple items at once:

1. Export your catalog using the steps above
2. Edit the CSV file with your changes
3. Import the updated file with **Overwrite** enabled

See [Import Your Items](/operations/catalog/adding-products/import-your-items) for import instructions.


# Product Setup

Configure product settings in Moselle — edit pricing, link store listings, manage bills of materials, add supplier pricing, phase out, and archive SKUs.

{% hint style="info" %}
**Quick Answer:** To edit a product in Moselle, search for the SKU using the top search bar or go to **Catalog > Products** and click **View Item**. From the item details page you can update pricing, custom attributes, bill of materials, supplier links, and forecast settings. Changes save automatically.
{% endhint %}

Update any product or component in your catalog. Access the item details page to modify pricing, attributes, bill of materials, supplier links, and forecast settings.

## Open Item Details

Two ways to access an item:

1. **Search** - Use the search bar at the top of any Moselle page. Type the SKU or product name.
2. **Catalog** - Go to Catalog > Products, find the item, and click **View Item** in the right column.

{% hint style="info" %}
**Can't identify a SKU?** If you see an unfamiliar SKU in a report or planning view, copy and paste it into the search bar at the top of any Moselle page. This takes you directly to the item details page where you can see the product name, description, bill of materials, and all other product information to identify what the SKU represents.
{% endhint %}

## Basic Information

On the item details page, click any field to edit:

| Field           | Description                                           |
| --------------- | ----------------------------------------------------- |
| **SKU**         | Unique identifier (changing this creates a new entry) |
| **Name**        | Product display name                                  |
| **SKU Type**    | Core, Bundle, or Component                            |
| **Unit Price**  | Selling price per unit                                |
| **Unit Cost**   | Your cost per unit                                    |
| **Description** | Product description                                   |

{% hint style="info" %}
**Note:** The Variant SKU type is deprecated. For products with variations (sizes, colors), use a Core SKU and link all variant listings. See [Handling Product Variants](/operations/catalog/adding-products/create-an-item#handling-product-variants).
{% endhint %}

Changes save automatically when you click out of a field.

<figure><img src="/files/K9IEjIrSdt6PqWm87cXd" alt=""><figcaption><p>Item details page</p></figcaption></figure>

## Custom Attributes

Add structured data to organize and filter your catalog.

### Add an Attribute

1. Scroll to **Custom Attributes**
2. Click **+ Add**
3. Select an existing attribute or type a new name
4. Enter the value
5. Click **Save**

{% hint style="info" %}
**Attributes are shared across your account.** Creating an attribute on one product makes it available for all products. You only need to create each attribute once.
{% endhint %}

<figure><img src="/files/Fb3sUYCVp88a97Bl2Crt" alt=""><figcaption><p>Adding a custom attribute</p></figcaption></figure>

### Common Attributes

| Attribute              | Purpose                                                  |
| ---------------------- | -------------------------------------------------------- |
| `moq`                  | Minimum order quantity for production planning           |
| `safety_stock`         | Preferred days on hand for inventory buffer calculations |
| `production_lead_time` | Days required for production                             |
| `transit_lead_time`    | Shipping time in days                                    |

See [Custom Attributes](/operations/catalog/product-setup/custom-attributes) for complete details.

## Bill of Materials

Define what components make up a finished good. BOMs are configured during onboarding by your CSM. After go-live, you can add or update components directly from this page.

### Add or Edit Components

1. Scroll to **Bill of Materials**
2. Click **+ Add new materials**
3. Search for the component item
4. Enter the quantity needed per finished unit
5. Click **Add**

<figure><img src="/files/KS8FhUA06C2YbF1WYFfO" alt=""><figcaption><p>Adding bill of materials</p></figcaption></figure>

Repeat for each component. Changes take effect immediately. For a full explanation of how BOMs work, when you need them, and how to set them up during onboarding, see the dedicated guide:

{% content-ref url="/pages/rNQuuw5swELjv0GKX10P" %}
[Bill of Materials](/operations/catalog/product-setup/bill-of-materials)
{% endcontent-ref %}

## Link a Store Listing

Connect products to your sales channel listings for automatic sales data sync.

1. Scroll to **External Listings**
2. Click **Link Listings**
3. Search by SKU or product name
4. Select listings from your connected channels (Shopify, Amazon, etc.)
5. Click **Save**

<figure><img src="/files/EUDdjqoyeg4c4Y29aI8t" alt=""><figcaption><p>Linking external listings</p></figcaption></figure>

Linked listings:

* Sync sales data automatically
* Pull inventory levels
* Show in the External Listings section

## Suppliers

Add supplier pricing for purchase order generation.

### Add Supplier Pricing

1. Go to the **Suppliers** tab
2. Click **+ Add Supplier Price**
3. Select the supplier
4. Enter supplier SKU (if different from your SKU)
5. Set currency and price
6. Add tolerance amount (price flexibility for supplier selection)
7. Click **Save**

<figure><img src="/files/JI9kCgMqHB3T5TUtERyy" alt=""><figcaption><p>Adding supplier pricing</p></figcaption></figure>

When generating orders, Moselle compares supplier prices and selects the best option within tolerance.

## Adjust Forecast Settings

Configure how Moselle forecasts demand for this item.

### Launch Date

Set when the product started (or will start) selling:

1. Go to **Adjust Forecast** tab
2. Under **Launch Date**, select the date
3. Click **Apply**

Use future dates for upcoming product launches.

### Product Comparables

For new products without sales history, link similar products:

1. Go to **Adjust Forecast** tab
2. Under **Product Comparables**, search for similar SKUs
3. Select one or more comparable products
4. Click **Apply**

Moselle uses comparable product data to forecast new items.

### Seasonality and Spikes

Adjust how the item responds to demand changes:

1. Go to **Adjust Forecast** tab
2. Use the slider to set spike/seasonality sensitivity
3. Click **Apply**

## Phase Out a SKU

**SKU phase-out** marks a product as discontinuing so Mo stops generating reorder recommendations while continuing to forecast sell-down demand until inventory reaches zero.

Phase out a SKU before archiving it. Archiving without phasing out first removes the SKU from all planning views immediately — Mo will stop tracking sell-down and you may be left with unmanaged remaining stock.

### Set a Phase-Out Date

**From the item details page:**

1. Open the item details page
2. Click the **Phase Out** button
3. Set a **phase-out date** — the date from which Mo zeros out forecasted demand
4. Click **Save**

**During forecast creation:**

When prompted — "Do you have any SKUs retiring?" — select the relevant SKUs, assign a phase-out date to each, and proceed. Mo factors phase-out dates into the forecast automatically.

{% hint style="info" %}
**Set the date as early as you know it.** Mo uses the phase-out date to plan sell-down trajectories. The sooner it's set, the more accurate your sell-down projections will be.
{% endhint %}

{% hint style="warning" %}
**Variants:** Phase-out applies at the SKU/subline level. All size and colour variants under a product are zeroed on the same phase-out date.
{% endhint %}

### Reverse a Phase-Out

If plans change, open the item details page, remove the phase-out date, and save. Mo will resume normal forecasting and reorder recommendations.

### Replacing a Phased-Out SKU

Set up the replacement as a new product and assign the outgoing SKU as its **Product Comparable** in the Adjust Forecast tab. This gives Mo demand context for the new SKU immediately at launch. See [Special Situations](/planning-and-execution/forecasting/phase-3-refine-and-maintain/special-situations) for more detail.

## Archive a SKU

Archiving a SKU removes it from all active planning views in Moselle — it will no longer appear in your forecast table, production plan, or Mo's recommendations. Archive only SKUs that have been fully sold down and are no longer part of your active catalog.

### SKU Lifecycle

A SKU moves through the following stages before archiving:

| Stage            | Description                                                                                           |
| ---------------- | ----------------------------------------------------------------------------------------------------- |
| **Active**       | SKU is live and included in all forecasting and planning                                              |
| **Phasing Out**  | A phase-out date has been set. Mo forecasts sell-down demand but generates no new reorder suggestions |
| **Discontinued** | Inventory has reached zero. The SKU is no longer reordered                                            |
| **Archived**     | SKU is fully removed from all active planning views                                                   |

### When to Archive vs. Phase Out

| Situation                                     | Action                        |
| --------------------------------------------- | ----------------------------- |
| SKU is retiring but still has inventory       | Set a phase-out date          |
| SKU has sold down to zero and is discontinued | Archive the SKU               |
| SKU was created in error or is a duplicate    | Archive immediately           |
| SKU is temporarily out of stock               | Do not archive — leave active |

### How to Archive a SKU

1. Navigate to the **Product Catalog**
2. Open the item details page for the SKU you want to archive
3. Click the **gear icon (⚙️)** on the item details page
4. Select **Archive**

Once archived, the SKU is removed from your forecast table, production plan, and Mo's active context.

### How Mo Handles Phased-Out and Archived SKUs

| Stage                           | Mo's Behaviour                                                                   |
| ------------------------------- | -------------------------------------------------------------------------------- |
| **Before phase-out date**       | Mo forecasts normal demand and surfaces sell-down recommendations                |
| **On and after phase-out date** | Mo zeroes forecasted demand. No new reorder suggestions are generated            |
| **When inventory hits zero**    | SKU moves to discontinued status automatically                                   |
| **Once archived**               | SKU is fully excluded from Mo's context, recommendations, and all planning views |

## Unarchive an Item

1. Navigate to the **Product Catalog**
2. Click on **Products**
3. Click **+ Status** and select **Archived**

   <figure><img src="/files/FWJKw3lNHJ5tPoe4KIm2" alt="" width="244"><figcaption></figcaption></figure>
4. Find the product you want to restore and click on it to open its details
5. Click the **gear icon (⚙️)** and select **Unarchive**

<figure><img src="/files/3Ns6kHR5ls4nTTqpmb4h" alt="" width="184"><figcaption></figcaption></figure>

The product will now appear in your active product list. Check that all product details, channel links, and settings are intact.

## View Summary and Inventory

### Summary Tab

Shows forecast performance:

* Forecast summary
* Comparison to master forecast
* Last year vs current year sales

### Inventory Tab

Shows stock levels:

* Availability by warehouse
* Incoming inventory
* Items on order (click to view order details)

## Related Guides

{% content-ref url="/pages/rNQuuw5swELjv0GKX10P" %}
[Bill of Materials](/operations/catalog/product-setup/bill-of-materials)
{% endcontent-ref %}

{% content-ref url="/pages/TOH83Eo2YsUNlTJDBltg" %}
[Components](/operations/catalog/product-setup/components)
{% endcontent-ref %}

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

{% content-ref url="/pages/pP8JAGpmydLy4BGUbDFu" %}
[Catalog Review](/operations/catalog/product-setup/catalog-review)
{% endcontent-ref %}


# Bill of Materials

Learn what Bills of Materials (BOMs) are in Moselle, how to set up bundles and kits, how they are configured during onboarding, and how to update them.

{% hint style="info" %}
**Quick Answer:** A Bill of Materials (BOM) tells Moselle which components and quantities make up a finished product or bundle. 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 %}

## Setting Up Bundles

**Bundles** in Moselle allow you to group multiple products together as a single sellable unit — useful for gift sets, kits, or combo packs. Bundles use BOMs to define which component SKUs are consumed when the bundle is sold.

### Prerequisites

Before creating a bundle, make sure you have:

* Individual products already set up as SKUs in Moselle
* A clear understanding of which products will be included in your bundle

### Step-by-Step: Creating a Bundle

#### 1. Create a Bundle SKU

1. Go to **Catalog** from the dashboard
2. Click **Add Product**
3. Fill in the bundle details:
   * **SKU Code**: Enter a unique identifier (e.g., "BUNDLE-SUMMER-01")
   * **Product Name**: Give your bundle a descriptive name
   * **SKU Type**: Select **Bundle** from the dropdown

{% hint style="success" %}
Use a clear naming convention that distinguishes bundles from individual products.
{% endhint %}

#### 2. Add Component Products via BOM

1. Click into the bundle SKU you just created
2. Scroll to the **Bill of Materials** section at the bottom of the page
3. Click **+ Add new material**
4. Search for and select the first component product
5. Enter the **Quantity** of that product included in the bundle
6. Repeat for each additional component

**Example:** A "Summer Beach Kit" that includes 2 towels and 1 sunscreen would have:

* Component: Beach Towel, Quantity: 2
* Component: Sunscreen SPF 50, Quantity: 1

#### 3. Save Your Bundle

Review all information for accuracy, then click **Save**. Your bundle is now active in forecasting and inventory management.

## 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/RbYy0HPVSBxYN9NZ0J5y" %}
[Product Setup](/operations/catalog/product-setup)
{% endcontent-ref %}

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

{% content-ref url="/pages/TOH83Eo2YsUNlTJDBltg" %}
[Components](/operations/catalog/product-setup/components)
{% endcontent-ref %}


# Components

Learn how to set up and manage components in Moselle — the raw materials, packaging items, and sub-items that make up your finished goods.

{% hint style="info" %}
**Quick Answer:** Components are the raw materials, packaging items, and sub-items that make up your finished goods. Setting them up in Moselle enables accurate demand planning at the component level through your Bills of Materials (BOMs).
{% endhint %}

## What is a Component?

**A component in Moselle is** any raw material, packaging item, or sub-item that is used to produce or assemble a finished good. Components are the building blocks that sit behind your sellable SKUs — things like boxes, labels, packaging materials, ingredients, or any other input that gets consumed in the making or fulfillment of a product.

Setting up your components correctly is essential for accurate demand planning. Once your components are defined and linked to your finished goods through your Bills of Materials (BOMs), Moselle can calculate exactly how much of each component you need on hand to meet your forecasted production or fulfillment plan.

***

## When Do You Need Components in Moselle?

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

* **You manufacture or assemble your own products.** If your finished goods are made from raw materials, ingredients, or sub-items, those inputs need to be set up as components so they can be tracked and planned alongside your finished goods.
* **You sell kits or bundles.** If individual SKUs are combined into a bundle or gift set, those individual items are components of the parent bundle SKU and need to be configured accordingly.
* **You want component-level inventory visibility.** Even if you are not manufacturing, setting up components gives you visibility into the raw inputs that support your production — so you can spot shortages before they impact your finished goods output.

***

## How Components Are Set Up in Moselle

**Time Required:** 10–15 minutes to complete the template\
**When:** During onboarding, before Week 2 begins

Components are configured using a standardized template. You can download the component template directly from within Moselle during your onboarding setup, fill it out, and upload it to load your component data into your account before your active planning workflows go live.

### Component Template Fields

| Column           | Description                                                                            |
| ---------------- | -------------------------------------------------------------------------------------- |
| `name`           | The display name of the component (e.g. Blue Packing Paper)                            |
| `description`    | An optional description of the component                                               |
| `sku`            | The unique SKU identifier for the component                                            |
| `archived`       | Whether the component is active or archived — set to `FALSE` for all active components |
| `product_line`   | The product line this component belongs to (e.g. Components)                           |
| `product_type`   | The type or category of the component (e.g. Boxes, Labels, Packaging)                  |
| `item_type`      | Should be set to `component` for all component SKUs                                    |
| `unit_price`     | The selling or transfer price per unit of the component                                |
| `unit_cost`      | The cost per unit of the component                                                     |
| `launch_date`    | The date the component became or becomes active (leave null if not applicable)         |
| `phase_out_date` | The date the component is being discontinued (leave null if not applicable)            |

**Example completed row:**

| name               | sku     | archived | product\_line | product\_type | item\_type | unit\_price | unit\_cost |
| ------------------ | ------- | -------- | ------------- | ------------- | ---------- | ----------- | ---------- |
| Blue Packing Paper | ABO-BPP | FALSE    | Components    | Boxes         | component  | —           | 0.81       |

***

## Step-by-Step: Completing Your Component Setup

{% stepper %}
{% step %}

### List All of Your Components

Identify every raw material, packaging item, or sub-item that makes up your finished goods. Each unique component needs its own row in the template with a unique SKU identifier.
{% endstep %}

{% step %}

### Fill Out the Template Accurately

Complete all relevant fields for each component. Pay close attention to `unit_cost` — this drives cost of goods reporting and component-level financial visibility within Moselle. The `item_type` field should always be set to `component` for component SKUs.
{% endstep %}

{% step %}

### Upload Your Completed Template

Once your template is filled out, upload it directly into Moselle through the import workflow. Your components will be configured and available in your account once the upload is complete.
{% endstep %}

{% step %}

### Validate Your Components

After your components have been uploaded, do a quick review to confirm:

* [ ] All components are visible in your Product Catalog under the **Components** header
* [ ] SKU identifiers are correct and match what is referenced in your BOM template
* [ ] Unit costs and unit prices are accurate
* [ ] No components are incorrectly marked as archived
  {% endstep %}
  {% endstepper %}

***

## Making Changes to Your Components After Onboarding

If you need to update your component data after onboarding, you can do so directly in Moselle at any time.

**To update a component:**

1. Navigate to your **Product Catalog** in Moselle
2. Select the **Components** header at the top of the catalog view
3. Click into the specific SKU you want to update
4. Update the SKU name, SKU type, unit cost, or unit price directly

Changes save immediately and will be reflected in your planning data going forward.

{% hint style="info" %}
**Exporting your components:** Select the **Export** option from within the Components view to download your full component list. This is useful for audits, sharing with your operations or finance team, or cross-referencing against your supplier records.
{% endhint %}

***

## How Moselle Uses Your Components

Once your components are set up and linked to your finished goods through your BOMs, Moselle puts them to work automatically across your planning workflows:

**Component demand planning**\
When Moselle forecasts demand for a finished good, it uses your BOMs to calculate how much of each component is needed. Your component setup is what makes this calculation possible — without it, Moselle has no way to translate finished goods demand into component requirements.

**Inventory visibility**\
Moselle tracks component-level inventory alongside your finished goods, giving you a complete picture of your supply position at every level of your product hierarchy.

**Shortage alerts**\
If a component is at risk of running out before your next order arrives, Moselle will surface that risk so you can act before it impacts your production or fulfillment plan.

**Cost visibility**\
Unit cost data entered on your components feeds into Moselle's cost of goods reporting, giving you financial visibility at the component level to support purchasing and margin analysis.

***

## Common Component Setup Mistakes to Avoid

| Mistake                          | Why It Matters                                                                                                      | How to Fix It                                                                   |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Missing `unit_cost`              | Powers cost reporting and finished goods cost visibility                                                            | Enter cost data for every component where available                             |
| Incorrect `item_type`            | Moselle won't recognize the SKU as a component or allow BOM linking                                                 | Always set `item_type` to `component` for component SKUs                        |
| SKU mismatches with BOM template | Breaks the link between components and finished goods — even a space or capitalization difference will cause issues | Ensure component SKUs exactly match `component_sku` values in your BOM template |
| Archiving active components      | Archived components are treated as inactive and won't appear in planning                                            | Set `archived` to `FALSE` for any component currently in use                    |
| Stale component data             | Discontinued or repriced components lead to inaccurate cost reporting and planning                                  | Update components in Moselle promptly when changes occur                        |

***

## Components and BOMs: How They Work Together

Components and BOMs are two parts of the same setup:

* **Components** define what your inputs are and how much they cost
* **BOMs** define which components go into each finished good and in what quantity

Neither works without the other — a BOM that references a component SKU that has not been set up will not function correctly, and a component that is not referenced in any BOM will not contribute to planning.

For this reason, it is best to complete both your component setup and your BOM setup together during onboarding to make sure everything is aligned before your planning workflows go live.

{% content-ref url="/pages/rNQuuw5swELjv0GKX10P" %}
[Bill of Materials](/operations/catalog/product-setup/bill-of-materials)
{% endcontent-ref %}

{% content-ref url="<https://github.com/Moselle-io/moselle-docs/blob/master/operations/catalog/product-setup/import-your-items.md>" %}
<https://github.com/Moselle-io/moselle-docs/blob/master/operations/catalog/product-setup/import-your-items.md>
{% endcontent-ref %}




---

[Next Page](/llms-full.txt/1)

