> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/use-cases/consumer-goods-fmcg-and-cpg-manufacturers/promotional-lift-discount-impact.md).

# Promotional Lift/Discount Impact

This guide explains how to model promotional uplift and discount impact for consumer goods, FMCG and CPG manufacturers in Model Reef.

You will:

* Represent base demand and promotional uplift separately.
* Model discounts, trade spend and promotional mechanics by retailer and channel.
* Quantify the impact of promotions on revenue, volume, margin and cash.
* Use scenarios to test promotional calendars, depth and mix.

{% hint style="info" %}
Model Reef is not a trade promotion management system. It models the financial consequences of promotional strategies using structured drivers, not in-store execution data.
{% endhint %}

## When to use this pattern

Use this pattern when:

* Promotions and discounts are a significant part of your commercial model.
* You want to understand lift versus cannibalisation and net margin impact.
* You run multiple promotional mechanics across retailers and channels.
* You need scenario level visibility for promotional strategy decisions.

It combines well with:

* SKU Manufacturing Cost Model
* Retailer and Channel Margin Modelling
* Multi Channel Revenue Forecasting style patterns
* New Product Launch Forecast

## Architecture overview

Promotional modelling uses:

* Baseline and uplift separation
  * Baseline volume and price per SKU and channel.
  * Uplift volume driven by promotional activity.
* Promotional mechanics
  * Price discounts, temporary price reductions.
  * Multi buy or quantity based mechanics.
  * Feature and display, retailer funded mechanics.
  * Trade spend, rebates and co op funds.
* Margin and cash analysis
  * Gross to net waterfall.
  * Contribution impact per promotion, per SKU, per channel.
  * Promotional calendars by retailer and region.

{% stepper %}
{% step %}

### Define baseline volume and price per SKU and channel

Using demand or sales modelling patterns, create drivers for each SKU and channel such as:

* Baseline Volume per period (units or cases) without promotion.
* Baseline Price per Unit or per case.
* Baseline Mix for SKUs within a category.

Model these as if there were no promotions. These series will underpin uplift analysis and margin attribution.
{% endstep %}

{% step %}

### Build promotional calendars and uplift drivers

In the Data Library, define promotional calendars by SKU and channel, for example:

* Promotional Weeks per SKU per retailer.
* Depth of Discount as a percentage of list price.
* Expected Uplift Factor on volume during promotional periods, for example 1.5, 2.0, 3.0.
* Cannibalisation or pull forward factors where promotions move volume across periods or SKUs.

Represent this as time series and flags so that you can identify:

* Periods that are on promotion.
* Uplift and discount applied in those periods.
* Any offset in other periods due to pull forward.

You can use separate drivers for retailer funded and manufacturer funded mechanics where needed.
{% endstep %}

{% step %}

### Model promotional volume, price and trade spend

Extend the revenue model by splitting volume into:

* Baseline Volume.
* Incremental Volume from promotions.

Use formulas such as:

* On Promotion Volume = Baseline Volume × Uplift Factor.
* Incremental Volume = On Promotion Volume minus Baseline Volume.

Attach pricing and trade spend drivers, for example:

* Promotional Price per Unit.
* Trade Discount or Off Invoice per unit.
* Fixed Fees for retailer features or displays.
* Post event rebates or scan data based accruals.

Then compute:

* Gross Revenue = Volume × List Price.
* Net Revenue after Discounts = Volume × Promotional Price or Net Price.
* Trade Spend = Trade Discount plus Fixed Fees plus Rebates.
* Net Net Revenue = Gross Revenue minus Trade Spend.

You can calculate these at SKU, channel and retailer level by using appropriate branches and categories.
{% endstep %}

{% step %}

### Link promotions to cost and margin

Combine promotional revenue with cost per unit from the SKU Manufacturing Cost Model. Compute:

* Gross Margin on Baseline Volume.
* Gross Margin on Promotional Volume at reduced price.
* Net Margin after Trade Spend.

Use custom reports or dashboards to show:

* Margin per unit and per case for promoted versus non promoted periods.
* Incremental profit or loss from promotional activity.
* Contribution per promotion, per retailer and per channel.

This helps distinguish between volume driving and value destroying promotions.
{% endstep %}

{% step %}

### Use scenarios for promotional strategy, mix and depth

Clone the base model into scenario models to explore:

* Different promotional frequencies and calendars.
* Shallower versus deeper discounts.
* Shifts in promotional spend between retailers or channels.
* Alternative mechanics such as multi buy instead of price cut.
* Changes in funding mix between manufacturer and retailer.

In each scenario, adjust:

* Promotional calendar and flags.
* Uplift factors, discount depths and trade spend drivers.
* Cannibalisation and pull forward assumptions.
* Pricing and cost assumptions where strategy changes are broader.

Compare scenarios using:

* Net revenue and margin over the year.
* Incremental profit contribution by promotion.
* Retailer and channel level performance.
* Cashflow implications of trade spend timing and accruals.
  {% endstep %}
  {% endstepper %}

## Check your work

* Baseline and uplift volumes are grounded in historical promotional performance.
* Promotional calendars reflect realistic retailer windows and constraints.
* Trade spend assumptions reflect actual commercial terms.
* Scenario outputs are helpful for joint business planning and internal reviews.

## Troubleshooting

<details>

<summary>Promotions appear to destroy too much value</summary>

Check that cannibalised or pulled forward volume is not counted as incremental and ensure that trade spend is applied correctly to incremental versus total volume where relevant.

</details>

<details>

<summary>Results differ from promotional post analysis</summary>

Align uplift, cannibalisation and funding assumptions with your existing post event analytics or adjust them to match measured outcomes.

</details>

<details>

<summary>Model is too granular to maintain</summary>

Group similar SKUs and promotions into promotional archetypes and apply those patterns rather than modelling each event individually.

</details>

## Related guides

* [Build a Pricing Model](/how-tos/operations-and-unit-economics/build-a-pricing-model.md)
* [Build a Relative Valuation Using Fundamentals](/how-tos/valuation/build-a-relative-valuation-using-fundamentals.md)
* [Units & Bounds](/help/drivers-variables-and-timing/units-and-bounds.md)
* [Overriding Drivers](/syntax/scenario-syntax/overriding-drivers.md)


---

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

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

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

```
GET https://help.modelreef.io/use-cases/consumer-goods-fmcg-and-cpg-manufacturers/promotional-lift-discount-impact.md?ask=<question>&goal=<endgoal>
```

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

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

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