Markdowns at the right time and depth: how to stop giving away margin
Every retailer knows the season-end ritual: unsold stock is marked down, then marked down again, and the rest goes to an outlet at a price that barely covers cost. Markdown optimization breaks that ritual by deciding, product by product and store by store, when a discount is needed and how deep it should be. The loss rarely comes from one big mistake but from many small decisions made too late, too deep or too broadly.
Most of this leak is invisible in normal reports. A campaign that lifts revenue looks like a success even if half those units would have sold at full price anyway. A 30% markdown that 'cleared the stock' looks responsible even if 15% three weeks earlier would have kept far more margin.
Where markdown money leaks: timing, depth and scope
Markdown losses come from a few mechanics that repeat every season:
- Too late: the item is behind plan by mid-season, but the first markdown waits for the calendar. With fewer weeks left, the discount must be deeper, and the rest is cleared below cost.
- Too deep: one depth for the whole campaign, so items that needed a nudge get the same cut as items that were truly stuck.
- Too broad: the whole chain is marked down although the item sold well in some stores. Full-price buyers there get a discount they didn't need.
- Wrong tool: the real problem was a broken size run, poor placement or stock in the wrong store — a transfer would have fixed it.
- Judged on revenue: reports show extra sales, not how many were pulled forward, cannibalized or sold to customers who would have paid full price.
How to size your markdown leak and season-end stock cost
No model is needed for a first estimate. Two components capture most of the loss:
Markdown leak ≈ (units sold on discount that would have sold at full price × discount per unit) + (season-end residual units × (landed cost − clearance price))
The first part is margin given away needlessly; the second is the cost of acting late. Estimate 'would have sold anyway' from the pre-markdown sales rate or from similar stores without the markdown.
Illustrative example (hypothetical round numbers): a seasonal line of 10,000 units, price 1,000 TL, landed cost 500 TL. In week 8 a 30% markdown goes chain-wide and 4,000 units sell during it. Judging by the pre-markdown run rate, about 1,500 of them would have sold at full price in the stronger stores: 1,500 × 300 TL = 450,000 TL given away. At season end 2,000 units are cleared at 400 TL, 100 TL below cost: another 200,000 TL. Roughly 650,000 TL on one line, before storage and financing.
Repeat this for last year's 20 largest lines to see whether your problem is mainly timing or depth and scope.
Why ERP reports and spreadsheets miss markdown losses
ERP systems record what sold, at what price, in which store. They don't record the counterfactual: what would have happened at another price or on another date. Without a baseline, every campaign looks like it worked.
Spreadsheets stay at category level, because SKU × store × size is too many rows to handle by hand, and they are refreshed long after the window for a cheap markdown has closed.
- Sell-through is tracked against total stock, not against the weeks left in the season.
- Campaigns are compared with last year's revenue, not with a control group's margin.
- The reason for each markdown isn't recorded, so next season starts from scratch.
How an AI-agent approach to markdown optimization works
An AI-agent approach turns markdowns into a continuous loop. Detect: the agent compares each SKU's sell-through in each store with the plan and flags items whose stock cover exceeds the weeks left to sell them. Diagnose: before suggesting a discount it checks cheaper explanations, such as a broken size run or stock missing where it sells and piled up where it doesn't. If a transfer fixes it, price is left alone.
Assign: the recommendation — say, 15% off in 12 named stores, or a 300-unit transfer — goes to the responsible merchandiser with the data behind it, and nothing changes until a person approves it. Measure: the agent compares affected stores with similar untouched stores and reports incremental gross margin, not just revenue. Over time you build your own evidence on which depth works where.
The data is what you already have: daily sales by SKU and store, stock, landed cost, price and promotion history, and the season calendar. With Zzeti, agents connect to Nebim V3, Logo or SAP through ready connectors, recommendations land in an Actions Inbox for human approval, and every figure can be traced to its query in Query Bench. Zzeti runs on your own infrastructure, so sales and cost data stay inside the company.
A 4-week markdown optimization pilot plan
Pick one category with a clear season, enough volume and a merchandiser who will review recommendations weekly.
- Week 1: Connect sales, stock, cost and price history; agree on season end, target sell-through and a margin floor; size last season's leak.
- Week 2: Run detection daily and review flagged SKU-store pairs with the merchandiser. Check that the diagnosis matches what the team sees in store.
- Week 3: Approve the first actions — targeted markdowns in some stores, transfers in others — and keep comparable stores untouched as a control group.
- Week 4: Measure incremental gross margin and sell-through against the control group. Decide which rules to keep and whether to add a second category.
KPIs to track for markdowns and campaign ROI
Compare these season over season; the aim is better markdowns, not just fewer.
- Full-price sell-through: share of units sold before any markdown.
- Sell-through against weeks left in the season, by SKU and store.
- Markdown cost as a share of sales.
- Incremental gross margin per campaign versus a control group.
- Season-end residual stock, in units and at cost.
- GMROI (gross margin return on inventory investment) for the category.
Markdowns are not the problem; late, blanket and unmeasured markdowns are. Decide item by item and store by store, approve deliberately, and judge every campaign on incremental margin rather than revenue.
Frequently asked questions
When should I start marking down seasonal products?
When an item's stock cover is longer than the weeks left in the season and simpler fixes, such as transfers or size replenishment, have been ruled out. That point differs by item and store, so one chain-wide date is too early for some products and too late for others.
How deep should a markdown be?
Only as deep as needed to sell the remaining stock in the remaining weeks. Early, small steps usually cost less margin than one deep cut late in the season.
How do I calculate campaign ROI correctly?
Divide incremental gross margin by the total campaign cost: the discount given plus media, printing and staff. Incremental means compared with what would have sold anyway, measured with control stores or the pre-campaign run rate.
Markdown or store transfer: which is better for slow stock?
If the item sells well in other stores, a transfer usually protects more margin than a discount. If it sells poorly everywhere, mark it down.
Markdowns at the right time and depth
Zzeti proposes markdown timing and depth from in-season sell-through, measures what past campaigns really returned and flags loss-making ones before they are repeated.