What you need
Data sources
- POS database — Transaction line items with SKU, quantity, revenue, cost, discount applied, and timestamp
- Promotions database — Campaign records with promotion name, SKU list, discount type, start date, end date, and target revenue
Knowledge spaces
- Promotion playbook templates — Internal guidelines for evaluating promotion success (target lift thresholds, acceptable margin erosion)
- Markdown policies — Rules for post-promotion markdown timing and clearance thresholds
| Component | Name | Definition |
|---|---|---|
| Object | Promotion | Maps to the promotions database. Represents a campaign with its SKUs, date range, and discount structure |
| Object | SKU | Maps to the POS item master. Represents a product with its sales and margin history |
| Metric | RevenueLift | Promoted-period revenue minus baseline revenue (same period prior year or pre-promotion average), expressed as a percentage |
| Metric | GrossMarginImpact | Difference in gross margin dollars between the promoted period and the baseline period |
| Dimension | PromotionType | Categorization: percentage discount, BOGO, bundle, loyalty points, clearance |
Agent setup
Create the agent
Go to Agent Space → New agent.
| Field | Value |
|---|---|
| Name | Merchandising Assistant |
| Role | Product performance analyst |
| Goal | Identify what drives profitable sales and what does not |
Set the description
You analyze product and promotion performance across channels. When evaluating promotions, always calculate the full picture: revenue lift, margin impact, and cannibalization of related non-promoted items. Present findings with precise numbers — percentages, dollar amounts, and unit volumes. Compare results against targets when they exist. Use a neutral, analytical tone and let the data lead the recommendation.
Scope data access
Grant access to:
- POS database (transactions, line items)
- Promotions database (campaigns, discounts, date ranges)
- Promotion playbook templates knowledge space
- Markdown policies knowledge space
Promotion,SKUobjects andRevenueLift,GrossMarginImpactmetrics
Add skills
Analyze promotion performance
Analyze promotion performance
Trigger: Promotion end date passes or user requests a review
- Pull sales data for the promoted SKUs during the promotion period.
- Pull baseline sales data for the same SKUs during the equivalent prior-year period (or the 4 weeks before the promotion if no prior-year data exists).
- Calculate revenue lift, unit lift, and gross margin impact for each promoted SKU.
- Identify cannibalization: check whether non-promoted SKUs in the same category saw a sales decline during the promotion period.
- Compare results against the promotion’s target revenue and margin thresholds.
- Summarize whether the promotion was profitable after accounting for discounts, cannibalization, and incremental costs.
Compare promotion types
Compare promotion types
Trigger: User asks about promotion strategy or quarterly review
- Retrieve all promotions run in the specified period.
- Group by promotion type (percentage discount, BOGO, bundle, loyalty, clearance).
- Calculate average revenue lift, margin impact, and cannibalization rate for each type.
- Rank promotion types by net margin contribution.
- Present a comparison table and recommend which types to increase, reduce, or retire.
Automation
Playbook: Post-promotion report
Set the trigger
Event trigger: Promotion end date reached in the promotions database. Runs automatically the day after each promotion ends.
Build the workflow
- Query the promotions database for the promotion that just ended — get the SKU list, discount structure, and targets.
- Query the POS database for promoted-SKU sales during the promotion period and the baseline period.
- Run Python analysis to calculate:
- Revenue lift percentage:
(promo_revenue - baseline_revenue) / baseline_revenue * 100 - Gross margin impact:
promo_margin_dollars - baseline_margin_dollars - Cannibalization index: percentage change in same-category non-promoted SKU sales during the promotion window.
- Net promotion value: margin impact minus estimated promotion costs (ad spend, signage, labor).
- Revenue lift percentage:
- Condition: If net promotion value is negative, flag the report as “unprofitable” and include a recommendation to adjust or retire the promotion format.
- Aggregate into a formatted report with summary metrics and a SKU-level detail table.
The lift calculation step uses a Python code block to compute baseline-adjusted revenue lift, margin impact, and the cannibalization index. You can customize the baseline methodology (prior year vs. pre-promotion average) and the cost allocation formula.
Configure delivery
Send an email to the merchandising team and the category manager with the subject line: “Promotion report — [Promotion Name]”. Include the summary at the top and the full SKU detail table below.
What’s next
Product assortment optimization
Use promotion insights alongside product performance data to optimize your assortment.
All retail use cases
See the full list.

