All posts
Retail Ops2026-05-06

Markdown automation under regulated sale periods

Most markdown engines assume you can discount anything, any day. In regulated markets you can't — and a rule-blind engine can't be deployed.

Kevin Didelot9 min read

Almost every markdown narrative starts from the same silent premise: that the retailer is free to discount any product, by any depth, on any day it chooses. The optimization problem becomes purely economic — how deep, how soon, on which SKU/store pairs, to clear stock without burning margin. It is a clean problem, and the math behind it is genuinely useful. But the premise is false in a large part of Europe, and dangerously so in France.

In a regulated market, a price cut is not just a commercial lever. It is a legally constrained act, governed by fixed sale windows, reference-price rules, and limits on selling below cost. An engine that recommends "-30% on this line, starting Tuesday" without checking the legal calendar isn't optimizing — it's drafting an instruction that may be unlawful to carry out. That gap between an economically optimal recommendation and a legally executable one is the whole subject of this article.

What regulation actually constrains

Retail price regulation in Europe is not one rule. It is a stack of constraints that bite at different moments of the markdown decision. Four of them matter most for an automation engine.

Legal sale windows. France is the clearest case. The soldes — clearance sales — run only during periods fixed by public decree, twice a year, for a span of roughly four to six weeks each. Outside those windows, a retailer cannot run a "soldes" operation at all. The dates are not a marketing choice; they are set in the calendar, nationally, with limited local variation.

Reference-price rules. When a discount is advertised, the reference price it is measured against is regulated. A retailer generally cannot inflate a "before" price to manufacture a deeper-looking cut. The announced reduction has to be honest relative to a defined prior price over a defined period.

Below-cost selling. Reselling at a loss is broadly prohibited outside specific, permitted situations — and clearance sale periods are one of the main exceptions where deeper cuts become legal. The threshold of what counts as "cost" is itself defined in law, not by the merchandiser's intuition.

Promotion frequency and type. Beyond the fixed sale windows, retailers can still run promotions — but these are a different legal object from soldes, with their own constraints. The distinction between a permitted promotion and a clearance sale is not cosmetic. It changes what is allowed.

The practical consequence is blunt. On most days of the year, deep clearance-style markdowns on most of the assortment are simply not legal. They become available only inside the decreed windows, or through narrowly defined promotional mechanisms.

Why a rule-blind markdown engine can't be deployed in regulated markets

Picture a markdown optimizer that models demand beautifully at the SKU/store level. It detects a slowing line in March, computes the margin-optimal depth, and recommends a 35% cut to clear the stock before it ages further. The math is right. The recommendation is also, in France, outside any legal sale window — and a 35% clearance cut in March is not an action the retailer can take.

This is not an edge case the team patches later. It is structural. A markdown engine exists to turn signals into executable price actions. When a large share of its output is unlawful to execute, the engine has not produced decisions. It has produced noise a human now has to filter by hand — which reintroduces exactly the manual markdown bottleneck the automation was supposed to remove.

Worse, the failure mode is silent. The engine looks like it works: it ingests data, produces recommendations, fills a dashboard. The gap only surfaces when someone tries to act on a recommendation and a compliance officer stops it. By then the team has learned to distrust the output, and adoption collapses. An engine whose recommendations need a legal sanity-check before every action is, in practice, impossible to deploy.

There is a tempting shortcut: bolt a compliance filter onto the end. Let the optimizer run free, then strike out the illegal recommendations downstream. It does not work well, for two reasons.

First, you waste the optimization. The engine spends its modeling budget producing actions it cannot take, and the surviving recommendations are whatever is left after the filter — not the best legal action.

Second, a filter that only removes is blind to substitution. When a clearance markdown is illegal in March, the right answer is often a different legal lever — a permitted promotion, a transfer, a replenishment hold. A subtractive filter never proposes it. This is the same trap as treating pricing rules as a layer over decisions rather than inside them.

Regulatory constraints as first-class business rules in the decision layer

The way out is conceptual before it is technical. In a regulated market, the legal calendar and the pricing rules are not external compliance. They are hard business rules, indistinguishable in kind from a margin floor or a supplier protection. The decision engine has to treat them as constraints it optimizes within, not penalties it discovers afterward.

Most retailers already accept this for internal rules. They readily encode "never go below -40% on private label" or "protect supplier X until week 8." These live in the engine as constraints.

A regulatory rule — "no clearance markdown outside the decreed soldes windows, except permitted promotions" — is exactly the same shape of object. The only difference is that the penalty for breaking it is legal rather than commercial. That makes it more important to encode, not less.

Concretely, a rule-aware decision layer carries the legal frame as structured, machine-usable constraints:

  • The fixed sale windows as a hard calendar the optimizer reads, so clearance depth only unlocks inside them.
  • Reference-price logic, so any advertised reduction is computed against a compliant prior price.
  • Below-cost thresholds as floors that move with the legal context — tighter outside sale periods, relaxed inside them.
  • The promotion-versus-soldes distinction, so the engine knows which lever it is even allowed to pull on a given date.

This is the same discipline that separates a usable engine from a fragile one everywhere else. Most retailers already discover that 80% of their business rules are misused because the rules live in people's heads instead of the system. Regulatory rules are the case where that gap stops being expensive and starts being a legal exposure.

What changes when the engine is rule-aware

When the legal frame lives inside the optimizer, the relationship between compliance and performance inverts. The question stops being legal versus optimal and becomes optimal within legal. The engine no longer proposes actions a human has to veto. It proposes the best action available under the rules that actually apply on that date, in that market, for that product.

That changes the recommendations in concrete ways. Outside a sale window, the engine stops proposing clearance cuts it knows are illegal — and instead reaches for the levers that are available. A permitted promotion where one is allowed. An inter-store transfer to a location where the line still sells at full price. A replenishment hold to stop feeding a slow mover.

The slowdown gets addressed; it just gets addressed legally.

Then, as the decreed sale window approaches, the engine pre-positions. It knows the clearance lever is about to unlock. So it can stage depth and sequencing for the moment it becomes legal. No reacting late, the way a manual team does when the calendar surprises no one but the spreadsheet. The legal constraint becomes a planning input, not an obstacle discovered at the till.

The economic case is direct. A retailer running on a 3% net margin cannot afford recommendations it has to throw away, and it certainly cannot afford a markdown that triggers a regulatory challenge. A rule-aware engine protects both the margin and the licence to operate — and it does so without a human re-checking every line against the legal calendar.

This is the architecture Solya is built on. The decision engine treats regulatory constraints the way it treats every other hard rule. They become part of the problem it solves, encoded in the intelligence layer alongside margin floors and supplier protections — not a filter stapled on after the fact. In a regulated market, that is not a feature — it is the precondition for the engine being deployable at all.

The question to ask your markdown engine

If you operate in France or any market with regulated sale periods, the test is simple. Ask whoever owns your markdown automation: can the engine encode "no clearance markdown outside the legal soldes windows except permitted promotions" as a hard constraint it optimizes within?

If the honest answer is "we filter the illegal ones out afterward," you do not have a deployable engine. You have an optimizer producing recommendations your team has to police by hand. In a regulated market, the business-rules layer is not a nice-to-have. The regulation is the rule set, and an engine that cannot hold it is not ready for the floor.


Is your markdown engine built for a regulated market?

At Solya, we offer retail and pricing leaders a 30-minute diagnostic focused on how your markdown and promotion decisions hold up against the legal frame you actually operate in. No generic product pitch — a concrete conversation grounded in your calendar, your rules, and your assortment.

You'll walk away with:

  • A read on where your current markdown process risks recommending non-compliant actions
  • The constraints that should live inside the engine rather than in a manual check
  • A view of the legal levers your engine is currently leaving on the table
Kevin DidelotCo-founder & CTO, Solya

Co-founder & CTO of Solya.

Related articles