# Forecast Best Practices

{% 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/import-and-export-forecast.md)
{% 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/how-mos-forecasting-works.md)
{% endcontent-ref %}

{% content-ref url="/pages/a4VaHeybGOn75f976xpb" %}
[Setting Up Forecast Guidelines](/planning-and-execution/forecasting/setting-up-forecast-guidelines.md)
{% endcontent-ref %}

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

{% content-ref url="/pages/uiyBUBi8r56D1ZueVTqo" %}
[Import and Export Forecast](/planning-and-execution/forecasting/import-and-export-forecast.md)
{% endcontent-ref %}

{% content-ref url="/pages/xw73NKz5xgFvPbpY6Q2n" %}
[Demand Forecast Performance](/analytics/reporting/moselle-reports/performance-reports/demand-forecast-performance.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

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

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

```
GET https://learn.moselle.io/planning-and-execution/forecasting/forecast-best-practices.md?ask=<question>
```

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

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