Black Friday markdown optimization: a four-week plan
The 30-day window for a 27 November sale is already open. A week-by-week markdown optimization plan for category teams, from reference prices to December.
Black Friday falls on 27 November this year, four weeks from now. Most category teams already know they will discount. The harder questions are which SKUs go into the event, how deep each one goes, and whether the price history behind every "was" price will hold up when someone checks it. This is a markdown optimization problem with a fixed deadline, and the deadline starts earlier than most calendars show.
The room for error is also smaller than it used to be. Shopify's Holiday Retail 2026 report, quoted by Internet Retailing, forecasts UK Black Friday weekend spending of £165, down from £181 last year. Shoppers are also sceptical. When consumer group Which? tracked 208 products for a year in its 2023 study, 98% were the same price or cheaper at some other point in the six months before or after the day. A smaller wallet and a doubtful shopper both point the same way. Fewer, cleaner discounts beat a sitewide percentage.
Here is the plan we would run with a category team starting today, one week at a time.
Week 4 (now): freeze the reference prices
In the EU, the Omnibus Directive decides your Black Friday "was" price for you. Any announced price reduction has to show the lowest price the product carried in the 30 days before the reduction. In September 2024 the EU Court of Justice made the point sharper in the Aldi Süd ruling: a percentage discount or "best price" claim has to be calculated from that 30-day lowest price, not from whatever the regular price happens to be on the day.
Count back from your event date. For a sale that starts on 27 November, the 30-day window opened on 28 October - yesterday. If your Black Week starts on 20 November, the window has been open since 21 October. Whatever you do to prices on event candidates from here on becomes the baseline you will be judged against.
Three actions for this week:
- Stop regular-price increases on likely event SKUs. A price raised now and cut in four weeks is exactly the pattern regulators look for. If a cost increase has to land, land it on SKUs that will stay out of the event.
- Pull the 30-day lowest price for every candidate. Any SKU on promotion inside the window - now, or in the weeks before the event - will carry a lower reference than its shelf price. Its advertised discount will be smaller than the team expects.
- Freeze the list of who can change prices on those SKUs. Most broken reference prices are not deliberate. They come from a marketplace repricer, a store manager override or a supplier-funded promo nobody told the category team about.
A worked example shows why this matters. A coffee grinder has a regular price of €49.90. It is on a two-week promotion at €44.90 that runs until 8 November. The team plans a Black Friday price of €39.90 and wants to advertise "20% off". Against the 30-day lowest price of €44.90, the honest claim is 11%. Nothing about the product changed. The October promo simply moved the reference point, and the "20%" banner would be the claim a regulator picks up.
Enforcement is real in our markets. In January 2026 Poland's consumer authority UOKiK fined two large online sellers nearly PLN 37 million over how they showed price reductions. One was challenged for missing lowest-price information in external ads and listings. The other showed the lowest price for only some product variants while the reduction covered the whole range. Neither case needed a fake discount. Both were about incomplete display.
Outside the EU the 30-day rule does not apply, but the same discipline is cheap insurance. A clean price history is what lets you answer a sceptical customer, journalist or marketplace in one sentence. If you want the wider context on why the reference price carries so much weight, our piece on the reference price reset covers it, and the Omnibus compliance overview explains what a price history needs to contain.
Week 3: build the event list, not a sitewide discount
A retail markdown for Black Friday has two jobs, and every SKU on the list should do at least one of them. It either brings traffic in, or it moves stock you would otherwise mark down in January at a worse price. Everything else stays at full price.
Sort candidates into three buckets:
- Traffic drivers. Products shoppers compare across stores - the identical SKU sold by your main competitors, bought often enough that people remember the price. This is a short list, and it is the only bucket where matching or beating the competitor price is the point.
- Stock to move. Items with too many weeks of cover going into December: slow sell-through, a season ending, a range being replaced. Here the discount is a clearance decision, and the question is how much margin you are willing to give up now to avoid giving up more later.
- Everything else. New lines, products with healthy sell-through and items nobody cross-shops. Discounting them mostly gives away margin on sales you would have made anyway.
Be careful about using "slowest movers" as a shortcut for the second bucket. NIQ's Pricing Under Pressure analysis found that in two-thirds of cases a retailer's slowest-moving SKUs were not its least incremental ones. A slow item can still be the only reason a certain customer visits the category. Look at weeks of cover and what happens to the rest of the basket, not at unit sales alone.
A practical screen for a mid-market team with 10,000 or more SKUs: start from the products with a clean competitor match, add anything above your weeks-of-cover threshold for its season, and remove anything with a promotion inside the 30-day window unless you accept the smaller advertised discount. What survives is your first-draft event list. In most catalogues it is a small fraction of the range, which is the point.
Week 2: markdown optimization by rule, not by gut feel
Once the list exists, depth is where margin is won or lost. The common failure is one percentage applied to everything. Shoppers do not respond to price the same way across a portfolio. NIQ's analysis puts regular price elasticity within the same portfolio at roughly 1.1 up to nearly 2.0, so some SKUs react almost twice as strongly to the same cut as others. A flat 30% overpays for volume on the insensitive ones and may still be too shallow on the sensitive ones.
Write the markdown pricing logic down as rules the team can read and challenge:
- Traffic drivers: price to a target position against the matched competitor, for example at or just below the lowest matched price, with a hard margin floor so a competitor's loss leader cannot drag you under cost.
- Stock to move: a depth ladder tied to weeks of cover. More cover, deeper first step. Set the steps now so the team is not inventing them on Friday morning.
- Every SKU: a margin floor that no rule, override or competitor response can breach, and a rounding rule so the event price lands on a price point shoppers recognise.
Then check the advertised discount against the 30-day lowest price, not the regular price, for every line. Where the honest number is small, decide deliberately: either deepen the price, drop the percentage claim and show the price alone, or take the SKU out of the event. The worst option is the one that happens by default - a banner percentage calculated from the wrong base.
If your team has run a markdown cadence before, the logic will look familiar. Our markdown waves playbook uses the same idea of planned steps for seasonal clearance. Black Friday is one compressed wave with a regulator watching the starting point.
Week 1: make every channel say the same thing
The UOKiK cases are a reminder that compliance is judged where the shopper sees the price, not in your pricing system. The week before the event is for checking every surface where a reduction appears:
- Product pages and category listings, including "deals" or "promotion" filters. Those filters should key off the 30-day lowest price, not the regular price.
- Shopping feeds, marketplace listings and paid ads. These are generated separately and drift first.
- Every variant of a product. If the reduction covers all sizes or colours, the lowest-price information has to cover them too.
- Electronic shelf labels, store signage and the app, if you run omnichannel pricing.
Consistency now matters for a second reason. AI shopping assistants read your prices from feeds and product data, and an expert quoted by Internet Retailing this week warned retailers to keep prices and stock consistent across their website and feeds before Black Friday. A feed showing last week's price is a lost sale with an agent, and a compliance issue with a regulator.
Run one dry run: export the planned event prices, the 30-day lowest prices and the claims per channel into one sheet, and look for any row where the three disagree. Fix the rows, not the sheet.
Event week: hold the rules
On the day, the plan only works if it survives contact with competitors. Agree in advance who can change a price during the event, and on which bucket. Traffic drivers may need a response if a matched competitor moves, but only inside the margin floor and only once a day, after the team has checked the competitor price is real and in stock. Stock-to-move SKUs follow their ladder and nothing else. Chasing a competitor on clearance stock just transfers margin to whoever blinked last.
Keep a short log of every change made during the event and why. It takes a minute per change and it is the only way the post-event review will be honest. Our note on what a pricing audit trail should record lists the fields worth keeping.
After the event: the exit plan and the December trap
Decide the exit date for every SKU before the event starts, not after. If the event runs through Cyber Monday on 30 November, write down which prices return to regular on 1 December and which stay down as part of a longer clearance. Prices that drift back over two weeks confuse shoppers and leave a messy history.
Then plan for the trap most teams only see in December. Your Black Friday price becomes the new 30-day lowest price. If the coffee grinder sells at €39.90 until 30 November, any reduction you announce on it during December has to be measured from €39.90. A Christmas "20% off" calculated from €49.90 is the same mistake as before, one month later. For SKUs you already know you want to promote in December, either keep them out of Black Friday or keep their Black Friday cut shallow enough that the December story still works.
Finally, review the event per SKU with three numbers: units sold against a normal-week baseline, gross margin given up, and what happened to the rest of the category. A traffic driver that sold well while its category neighbours dropped did its job only if the basket grew. A clearance line that sold out at the first step of its ladder was probably cut too deep. Write these findings down while they are fresh. They are next year's starting rules.
Four weeks is enough time to run Black Friday as a set of deliberate decisions instead of a banner. If you would like to see how your own catalogue looks against this plan - which SKUs carry a lower 30-day reference than you think, and where your event depth breaks a margin floor - our free pricing audit is a quick place to start, and the markdown and clearance overview shows how teams run these rules every week.
Founder and CEO of Retailgrid. 20 years in retail pricing, from Nielsen and IBM DemandTec to founding GoalProfit, a price optimization company he sold in 2023.