Field notes

Retailers discounted deeper in peak 2025 and sold less. Plan markdown as a budget.

UK peak 2025 saw deeper discounts and lower sales. A break-even table, a worked markdown budget and a margin-floor rule set for peak planning.

Chris KelletDirector, Kedos Consulting
10 min read

IMRG measured the eight-day Black Friday week of 2025 — Monday 24 November to Monday 1 December — at 1.2% down year on year. Cyber Monday fell 3.2%. Clothing fell 7.3% across the week. Over the same eight days, RevLifter's read of the market was that retailers had increased the share of items discounted at 15% or more from 45% to 50%.

More depth, less trade. Signifyd's read of the same period puts the mechanism plainly: average order value up 12%, transactions down 8%. Fewer people bought, and those who did spent more. Whatever the extra five points of discount coverage bought, it was not volume.

If you are setting a markdown plan for peak 2026 this month, the useful conclusion is not "discount less". It is that markdown has to be planned as a budget — a fixed sum of margin you have agreed to give away, split by category, with floors underneath it and a trigger that releases it — rather than a percentage chosen in-week when the trade is soft. The rest of this is the arithmetic.

Depth went up. Volume went down.

−1.2%
Eight-day Black Friday week, 24 Nov – 1 Dec 2025, year on year
Source: IMRG, Black Friday 2025 data and insights, 22 December 2025
45% → 50%
Share of items discounted at 15% or more
Source: RevLifter, reported by IMRG, 22 December 2025
+12% / −8%
Average order value and transactions, year on year
Source: Signifyd, reported by IMRG, 22 December 2025

The category spread in IMRG's data is the part worth sitting with. Across the eight-day week, Health & Beauty was up 8.9% and Sports & Outdoors up 6.4%, while Electrical fell 4% and Clothing fell 7.3%. Black Friday itself was up 1.3%; the standout day was the Tuesday, at plus 4.4%.

That is a sixteen-point spread between Health & Beauty and Clothing in the same week, during a period when discount coverage rose across the board. No plausible price elasticity produces a gap that size. It is a demand difference, and depth does not close a demand difference — it only changes what you are paid for demand you already had.

Hence the first planning consequence: a single group-wide depth ladder is wrong in both directions at once. In a category that is trading it gives away margin on volume you were going to get; in one that is not, it spends margin against a problem price cannot solve. The ladder belongs per category, set before the season — a planning job in September, not a trading decision in November.

What a discount has to buy back

A discount does not come out of the price. It comes out of the profit, in full, because the cost of the unit does not move when the ticket does. If m is the gross margin as a share of the full price and d is the discount depth, unit gross profit falls from m to m − d. To hold total gross profit flat:

units multiplier  =  m / (m − d)

uplift required   =  d / (m − d)

At a 60% margin, a 20% discount takes a third of the unit profit: a £40 ticket at £16 cost earns £24; at £32 it earns £16. You need 24/16 = 1.5 times the units to stand still. The whole shape of it, rounded to the nearest point:

Discount depth50% gross margin55%60%65%
10%+25%+22%+20%+18%
15%+43%+38%+33%+30%
20%+67%+57%+50%+44%
25%+100%+83%+71%+63%
30%+150%+120%+100%+86%

Read the bottom row slowly. At 30% off, a 60%-margin line must sell twice as many units for the same gross profit; a 50%-margin line, two and a half times as many. That is not a promotional response but a different business, run for the length of the promotion.

Two things make the table optimistic rather than pessimistic:

  • It holds gross profit flat, not contribution. Every extra unit carries pick, pack, carriage and a return probability, all scaling with volume — so the real uplift is higher than the cell.
  • It assumes the extra units are incremental. They rarely all are: a share of every discounted sale is one you would have made anyway, and each unit of cannibalisation raises the requirement again.

A markdown budget, worked through

One womenswear category, 26-week autumn/winter season. The figures below are illustrative, not findings — chosen to be arithmetically clean.

Assumptions

  • Intake: 100,000 units
  • Average full ticket: £40, or £4.0m of intake at ticket value
  • Cost per unit: £16 — an intake margin of 60%
  • Planned mix: 40,000 full price, 52,000 markdown at an average 20% off, 8,000 terminal
  • Markdown budget: £480,000 of ticket value given away — 12% of intake at ticket

The plan, if it lands

UnitsSalesGross profit
Full price at £4040,000£1,600,000£960,000
Markdown at £3252,000£1,664,000£832,000
Total92,000£3,264,000£1,792,000

Achieved margin 54.9% against an intake margin of 60%. Markdown taken is 52,000 × £8 = £416,000, leaving £64,000 unspent — the point of setting the number.

Now convert the budget into what matters in-week: stock you may touch.

Average depthGiven away per unitUnits £480,000 covers
10%£4120,000
15%£680,000
20%£860,000
25%£1048,000
30%£1240,000
40%£1630,000

At 20% the budget covers 60,000 units against the 52,000 the plan needs. At 30% it covers 40,000 — 12,000 short before the season has started. Depth is not a free variable. It is a decision about how much of the season's stock you can afford to discount at all.

What going deeper actually costs

Week eight, the trade is soft, and the category moves from 20% to 30% across the board. The same 52,000 units sell at £28:

  • Markdown gross profit falls from £832,000 to £624,000
  • Total gross profit falls from £1,792,000 to £1,584,000 — down £208,000, or 11.6% of the category's profit
  • Markdown taken rises to £624,000, which is £144,000 over the agreed budget

And the part that should end the conversation. To hold gross profit at £1,792,000 with markdown units now contributing £12 each, you need £832,000 ÷ £12 = 69,333 markdown units. Intake was 100,000 and 40,000 have gone at full price, so 60,000 remain. The deeper cut cannot break even at any sell-through, including 100%, because the units required do not exist. It was lost the moment it was taken, and nobody would have known without that division.

Floors that hold when the pressure arrives

A floor written in prose is a preference. Written as rules, it needs an evaluation contract first — because what breaks in a real rule set is never the rules, it is what happens when four of them match the same line.

# Evaluation contract
#
# Every rule that matches a line contributes a constraint. Constraints
# compose; they do not compete.
#
#   floor      composes by max()   the most restrictive floor wins
#   cap        composes by min()   the shallowest cap wins
#   deny       composes by OR      any deny blocks the markdown outright
#   exception  the ONLY object that may loosen a floor or a cap.
#              Requires an owner, an expiry date and a reason.
#
# So evaluation order cannot change the price. Precedence decides one thing:
# which exception applies when two overlap. Narrowest scope wins; a tie goes
# to the one expiring soonest.

The failure it avoids is worth naming. The moment an ordinary rule may lower a floor, the output depends on evaluation order — fine at twelve rules, unanswerable at four hundred, when something prices below cost in week ten and the honest answer to "which rule did that" is a reconstruction rather than a lookup.

# 1. Category floors — the backstop. Nothing prices below these.
floor  scope=category:womenswear    price >= net_cost * 1.25
floor  scope=category:footwear      price >= net_cost * 1.35
floor  scope=category:accessories   price >= net_cost * 1.15

# 2. Line floors — where a line's own economics differ from its category.
floor  scope=line  where=has_committed_repeat_intake   price >= net_cost * 1.60
floor  scope=line  where=own_brand_core                price >= net_cost * 1.45

# 3. Newness — full-price sell-through is the plan, not a bonus.
deny   scope=line  where=weeks_on_sale < 6
deny   scope=line  where=weeks_on_sale < 10 and rate_of_sale >= 0.9 * plan
cap    scope=line  where=weeks_on_sale < 12   depth <= 20%

# 4. The ladder — permitted steps only, with a dwell time between them.
cap    scope=all   depth in {20%, 30%, 40%, 50%}
cap    scope=all   depth_step <= 1 per 14 days

# 5. Budget guard — the constraint that is about money, not price.
deny   scope=category  where=unfunded_spend >= 0.80 * budget
                       unless=approver in {trading_director}

Three of those do more work than they look.

Category floors versus line floors. The category floor is a backstop, set where you would rather hold the stock than sell below it. The line floor is where the judgement sits: a line with committed repeat intake is not the same asset as a one-off buy, because discounting it teaches a price you have contracted to keep serving. Set category floors loose enough that they almost never bind and line floors tight enough that they usually do. A category floor binding every week is a buying signal reported as a pricing event.

Newness protection is a deny, not a cap. The rules above refuse markdown outright for six weeks, then keep refusing it to week ten for anything trading at 90% of plan rate of sale or better. It is the rule most argued with in-season and the one most worth holding: full-price sell-through on newness is the largest line in the achieved-margin bridge and the easiest to spend by accident. The trade-off is real — you will sometimes hold a dead line six weeks too long, then pay for it with a deeper cut on fewer units.

net_cost, not cost. This is the funded/unfunded question, and where most depth caps are written backwards. Take the same £40 ticket at £16 cost:

  • Unfunded, 10% off. Sells at £36, gross profit £20. You have paid £4.
  • Supplier-funded at £6 per marked-down unit, 25% off. Sells at £30, net cost £10, gross profit £20. You have paid £4.

Identical cost to you; fifteen percentage points more discount in front of the customer. A cap written as depth <= 20% permits the first and blocks the second — exactly backwards. Write the cap against the share of the discount you fund:

cap  scope=all  (depth - funded_depth) <= 20%

What to decide before peak, and what to leave as headroom

Planning markdown as a budget is not an argument that in-week judgement is bad, but that it is expensive, and should be spent only on decisions that cannot be made in September.

Decide before the seasonLeave as headroom
The total markdown budget in pounds, and its split by categoryWhich lines take the markdown, and in which week
The floors — cost multiple by category and by line typeWhether to release the reserve slice, against the trigger
The permitted depth ladder and the dwell time between stepsWhich of the permitted steps a line moves to
The trigger: the metric and its threshold — weeks' cover, or rate of sale, against planNothing. A trigger that is negotiable in-week is not a trigger
Supplier funding rates, and the ring-fence of lines that cannot be marked down at all this seasonNamed exceptions, each with an owner and an expiry date

The headroom should be explicit and sized. Holding back a fifth to a quarter of each category's budget, released by one named owner against the stated trigger, gives the trading team a real lever without handing it the whole budget. The alternative is not more discipline — it is a fully allocated budget overspent anyway, in week eight, by people who had no formal way to ask.

The budget is also not a pricing artefact on its own. It is a line in the weekly plan, and it moves when intake, sales and closing stock move. Set once in a spreadsheet in August while the weekly sales, stock and intake plan is reforecast every Monday, it will disagree by week six — and the weekly plan is the one telling the truth, provided it is sound. Often it is not: returns phased into the wrong week overstate closing stock and move the markdown budget with them. Badger WSSI is where that line belongs; the floors are where it is enforced.

Where this argument does not apply

Four cases, and the last is the important one.

Short-life and perishable ranges. Where the alternative to markdown is a write-off, the floor is not a multiple of cost but the disposal cost, which can be negative. The rule shape is a hard exit date with an escalating ladder.

Genuinely elastic categories. Commodity accessories and consumables, where substitution is high and brand attachment low. The uplift in the break-even table is achievable there — which is why those categories can carry the group's promotional message while the ones that cannot are left alone.

Terminal stock. At season end the objective is cash and warehouse space, and holding a floor against a unit that will never sell is a slower write-off with storage costs attached. Put an exit window in the rule set with its own floor at the cost of holding, rather than overriding the season floor annually.

And if the buy was wrong, none of this saves you. Markdown governance manages the consequences of an intake decision; it does not reverse one. A category 30% over-bought will spend its budget and keep spending, and every rule above does nothing except make that visible in week six rather than at the end-of-season review. Worth a great deal — but not a fix, and a markdown model sold as one is oversold.

From the team behind platforms for FTSE 100 retailers and global brands: the pattern above — composable constraints, exceptions as first-class objects with owners and expiry dates, funding netted off cost before any floor is evaluated — is what markdown governance looks like once it has to survive a few hundred thousand lines and somebody asking in January why a particular price happened.

If peak planning is on your desk this month, the first thing to write down is not a promotional calendar. It is the pounds. Take last season's markdown spend by category, agree what you will give away this time, and divide it by the average depth you expect to run at. That gives you the units the budget covers — in most categories, fewer than the plan quietly assumes.

Do that division first, because the categories that come back short of coverage are the ones where the buy, not the price, is the thing to change. In September there is still time to change a buy. By week eight of peak, the only lever left is the one peak 2025 has already shown does not work.

All articles