All posts
Industries2026-05-01

Sport retail runs two inventory logics at once

The core wants continuous replenishment; the seasonal drop wants sell-through and markdown. Run both on one logic and you lose on both walls.

Kevin Didelot10 min read

Walk a sporting-goods store and you are looking at two businesses sharing a floor. One wall holds running shoes, footballs, fitness basics. The same models, season after season, sized small to large.

The other wall holds the new team kit, the limited apparel drop, the launch everyone queued for. It will be gone — or marked down — in twelve weeks.

These two walls do not behave the same way. The first is a replenishment business: never out of stock, size-complete, demand that drifts slowly. The second is a sell-through business: buy once, read the curve, exit before the markdown eats the margin. Most inventory systems are built to run exactly one of these logics well, and the other one badly.

That is the quiet structural problem of sport. The chain that treats both walls with a single inventory logic is, by construction, mismanaging half its assortment. Not occasionally — every season, on every SKU that sits on the wrong wall for its logic.

The technical core: continuous, size-driven replenishment

The core range is the part of sport that behaves almost like grocery. A road-running shoe in its standard colorway, a size-5 football, a black training tee — these sell every week, to a stable demand, with no end date.

For this range, the only acceptable state is in stock, in every size, in every store that carries it. A stock-out here is not a markdown risk. It is a lost sale that walks to a competitor and frequently does not come back. The economics reward continuous replenishment: short lead times, frequent small orders, safety stock tuned per size.

The complication is the size curve. A running shoe is not one SKU. It is a 9-to-13 ladder where the middle sizes turn fastest and the edges turn slowly.

Take a store that holds the style but is broken on size 10 and 11. For most of its foot traffic, it is out of stock — even though the shelf looks full. A broken size curve can strand 30%–40% of a style's units as unsellable remainders while the size that customers actually want sits at zero. The replenishment logic has to think in curves, not in styles.

This is the logic that weekly cadence and aggregate planning handle worst. We have written about why continuous replenishment beats the weekly meeting: the core range is the textbook case. Drift on a core size compounds daily, and the cost is silent — it shows up as "normal stock-outs" on a line nobody questions.

The seasonal drops: buy-once, sell-through, markdown

The seasonal half of sport obeys the opposite physics. Team kit tied to a competition, a seasonal apparel collection, a hype launch — these are bought once, in a committed quantity, months ahead. There is no reorder that matters, and there is a hard end date.

For this range, the question is never "how do I stay in stock". It is "how do I sell through before the season closes, and exit the remainder at the smallest markdown". This is apparel logic, and sport inherits all of its hazards.

The buy is a bet. The sell-through curve is read in real time. And the markdown clock starts the day the drop lands.

The failure mode here is end-of-season overstock. A seasonal drop that sold at 55% through when it needed 80% does not get rescued by replenishment — there is nothing left to replenish from. It gets rescued by markdown, by transfer, or it gets written down. We have covered the levers that actually move end-of-season overstock; sport feels every one of them, plus event risk.

And sport adds its own volatility. A weather swing pulls forward the running-apparel season or kills it. A team's result, a signing, a tournament run spikes demand on a specific kit overnight. Event and weather-driven demand can move a seasonal SKU by 2x–3x inside a week — far too fast for a buy-once plan to react, and far too consequential to ignore. The seasonal logic has to be reactive on sell-through and pre-committed on supply at the same time.

Why one logic for both is the costly mistake

Here is the trap. Most chains run a single inventory engine, tuned to one of the two logics, and apply it to the whole assortment. Both ways of getting it wrong are expensive, and they are symmetric.

Run the core on seasonal logic — treat your running shoes like a fashion drop — and you under-buy the bread-and-butter. You set a finite buy, you watch sell-through, you avoid "overstock" on items that should never run out. The result is chronic stock-outs on the highest-velocity, highest-loyalty SKUs in the store, plus broken size curves nobody replenishes because the system thinks the style is "selling through fine."

Run the seasonal on core logic — treat the team kit like a never-out-of-stock basic — and you keep reordering a thing with a death date. The replenishment engine sees demand, proposes coverage, refills the warehouse. Then the season ends, and you are sitting on the goods. The result is end-of-season overstock and deep markdown on exactly the items where markdown destroys the most margin.

Both mistakes come from the same root: the SKU's role was never encoded, so the engine cannot know which physics to apply. The system asks "what is the demand?" when the load-bearing question is "what kind of inventory is this — continuous or finite-life?". Get the role wrong and every downstream decision inherits the error.

On a 40-store, 60M€ sporting-goods network, a conservative read puts the combined cost at 2M€–4M€ per season. Half is core stock-outs disguised as normal; half is seasonal markdown disguised as a cost of doing fashion. Neither shows up as a single failure. Both are the same architectural mistake counted twice.

What a decision layer does: right logic per SKU role

The fix is not a second system bolted next to the first. Running a replenishment tool for the core and a separate markdown tool for seasonal recreates the problem at the seam. The two desynchronize, and the SKUs that drift between roles fall in the gap.

The fix is a decision layer that holds both logics in one engine and selects per SKU role. The unit of decision is not the style or the category. It is the SKU-in-its-role, scored by which physics governs its life:

  • Core role → continuous replenishment, size-curve-aware, never-out-of-stock target, tuned per store cluster
  • Seasonal role → finite buy, live sell-through tracking, transfer-before-markdown, markdown timed to the exit curve
  • Transitional SKUs (a core item in a seasonal colorway, a returning kit) → explicit rules for which logic wins, instead of an aggregate that guesses

The layer treats role as a first-class input, the same way good pre-season assortment planning treats supplier constraints as inputs rather than afterthoughts. Once role is encoded, the core gets the relentless replenishment it needs, and the seasonal gets the sell-through discipline it needs — without one logic contaminating the other.

This is what the decision layer is for. Not a faster forecast. It is a single engine that applies the correct decision rule to each SKU based on what that SKU actually is — continuous or finite. And it runs that rule continuously, against the data as it moves. The buyer stops arbitrating between two incompatible tools and starts arbitrating the exceptions that genuinely need a human: the role calls, the event spikes, the transitional items.

The question worth asking

If you run sport, the diagnostic is not "is our forecast accurate?". It is: "does our system know which of our SKUs live forever and which ones have a death date — and does it decide differently for each?"

If the answer is one logic for everything, you are paying the symmetric tax: stock-outs on the core, markdown on the seasonal, both filed under "normal." The chains that separate the two logics — inside one engine, by SKU role — stop paying it. The ones that do not are subsidizing a structural mistake every season, on both walls of the store.


Does your system know which SKUs have a death date?

At Solya, we offer supply chain and merchandising leaders in sport a 30-minute diagnostic. The goal: map your assortment by SKU role and estimate what the single-logic tax is costing you, on the core and on the seasonal, this season.

You'll walk away with:

  • A read on how much of your assortment is being run on the wrong inventory logic
  • An order-of-magnitude estimate of the core stock-out cost and the seasonal markdown cost
  • The decision rules to encode per SKU role before the next buy is committed
Kevin DidelotCo-founder & CTO, Solya

Co-founder & CTO of Solya.

Related articles