Lessons · Lesson 1 of 3
The pull, and the warehouse that cannot pay it
Build one shop's weekly replenishment order size by size, then run the same arithmetic against a warehouse holding more shirts than the shops asked for and still unable to fill the order.
Lesson 1 of 3 · 35 min
The situation
Most of what a clothes shop sells is not new. The same white shirt sits on the same shelf all year. Every week somebody works out how many of each collar size to send, to replace what walked out. That weekly job is called replenishment. This lesson builds the calculation by hand, for one shop. Then it asks what happens when every shop sends its request to the warehouse on the same night.
Brackenhall is a British menswear retailer. It has 62 shops and one warehouse, at Marrowdale. Its customer buys one shirt at a time and expects his collar size to be on the rail. The style is SH-4120, the white oxford button-down at the front of the shirt wall in every shop. It sells at GBP 45.00. It costs GBP 15.75 to land in the warehouse. That is an intake margin — the gap between cost and selling price — of 65.0%.
The phase is Spring/Summer 26. It runs fourteen weeks, from the week commencing Monday 2 March 2026 to the week commencing Monday 1 June 2026. Yesterday closed week 5.
Two people own different halves of it. Perran Garrow is the menswear merchandiser. He owns the money, the buy, and when the stock arrives. Aveline Wadlow runs allocation and replenishment. She owns which shirt is in which shop on which Saturday. Garrow bought 17,000 units. 11,400 landed at Marrowdale before trading opened. 5,600 more are booked in for week 7. Nothing else is coming. The factory needs nineteen weeks to make a shirt; the season lasts fourteen. The size split of both deliveries was fixed in a spreadsheet last October.
Brackenhall's website is picked from a separate block of stock at Marrowdale, and this course leaves it alone. Pooling shop stock and online stock is course 18.4's subject. Mixing it in here would hide the thing this course is about.
Two engines, and only one of them can be told anything
Initial allocation pushes. Before a single till receipt exists, somebody decides how much of the buy goes out, and how it is split. That decision rests on a forecast. It is course 18.1's subject. Here, Wadlow's initial allocation is given: 6,320 units to the 62 shops in week 0, leaving 5,080 at Marrowdale as the replenishment pool.
Replenishment pulls. Every Sunday night the system looks at what each shop actually sold. It works out what each shop should be holding. Then it moves warehouse stock towards the shops that emptied. It is the only mechanism in the building that learns.
Say the limit out loud before anything else. Everything in the next three lessons depends on it:
Replenishment redistributes units that already exist. It cannot create a shirt nobody bought, and it cannot recall a shirt that has already gone to the wrong shop.
Both halves of that sentence bite. The first means a buy that is short in size 17 stays short in size 17 all season. No Sunday night can change it. The second means every unit pushed out in week 0 is a decision replenishment can only work around. It can never undo it. So the split between what you push and what you hold back is the most consequential number Wadlow sets all year. And she sets it before she knows anything.
What a pull needs, and what people leave out
For one shop, one size, one week:
need = target on-hand − (on hand + already in transit)
Four inputs. The one people leave out is the third.
- On hand. What the shop closed Sunday with, per size. Not per style — a style-level figure cannot see a broken size run.
- In transit. What was picked last Sunday and has not landed yet. Leave it out and the engine orders the same shirts twice, every week, until the shop is drowning and the warehouse is empty.
- Rate of sale. Units a week, per size, measured over a window. Brackenhall uses the last four weeks. Lesson 2 is about how this number gets measured wrongly, and why nobody notices.
- The target. Brackenhall's is
presentation minimum + four weeks of cover, per size. Cover is rounded UP to a whole shirt before the minimum is added. That last clause is not pedantry. Four weeks of cover at 2.625 a week is 10.5 shirts, and half a shirt rounded the other way is a unit that never ships. Course 18.1 makes the general point: a rounding rule you have not written down is several rounding rules. This is the one Brackenhall wrote down.
The presentation minimum is a rate-of-sale input, not a tidiness rule
A shirt fixture with one unit of a size on it does not sell that size at its normal rate. The customer sees a picked-over rail. He assumes the shop is out of his size in the colour he wants. He does not ask. Brackenhall measured this on its own till data: a size sitting on one unit sells at about 60% of the rate it sells at when the fixture is properly faced. That is Brackenhall's figure, from Brackenhall's tills. Yours will be different. But the shape of it is not a matter of opinion, and a replenishment target that ignores it will keep sending a shop the one unit that does nothing.
So Brackenhall's presentation minimum is 3 per size in its grade A shops, and 2 in grades B and C. It is not decoration. It is the floor below which the rate of sale you are measuring stops being the rate of sale you would get.
One shop, one Sunday, done by hand
Piltmoor is a grade B market-town shop. Its initial allocation was 140 units, split on the chain size curve: 7 of collar 14.5, 14 of 15, 28 of 15.5, 35 of 16, 28 of 16.5, 21 of 17, 7 of 17.5.
Here is its position at the close of week 5, the week commencing 30 March, with the four weeks of sales the engine reads.
| Collar | Sold, weeks 2 to 5 | On hand Sunday night |
|---|---|---|
| 14.5 | 0 | 7 |
| 15 | 3 | 11 |
| 15.5 | 8 | 19 |
| 16 | 14 | 19 |
| 16.5 | 19 | 8 |
| 17 | 18 | 6 |
| 17.5 | 8 | 2 |
| Total | 70 | 72 |
Brackenhall's engine does not work size by size. It takes the shop's total rate of sale — 70 units over four weeks, so 17.5 a week. Then it splits the target across sizes using the chain size curve: the same 5 / 10 / 20 / 25 / 20 / 15 / 5 the buy was written on. This is not an exotic design. A great many replenishment systems are set up this way, because one size profile held at chain level is one thing to maintain instead of sixty-two.
Work it through. Collar 16.5 is 20% of the chain curve. So four weeks of cover is 4 × 17.5 × 0.20 = 14.0 units, and the target is 2 + 14 = 16. Piltmoor holds 8, so it needs 8.
| Collar | Chain share | Four weeks of cover | Target | On hand | Need |
|---|---|---|---|---|---|
| 14.5 | 5% | 3.5 | 6 | 7 | 0 |
| 15 | 10% | 7.0 | 9 | 11 | 0 |
| 15.5 | 20% | 14.0 | 16 | 19 | 0 |
| 16 | 25% | 17.5 | 20 | 19 | 1 |
| 16.5 | 20% | 14.0 | 16 | 8 | 8 |
| 17 | 15% | 10.5 | 13 | 6 | 7 |
| 17.5 | 5% | 3.5 | 6 | 2 | 4 |
| Total | 20 |
Twenty shirts. The warehouse had plenty that week, so twenty shirts is what Piltmoor got. Nobody looked at the order again.
Now do it the other way. Measure the rate of sale per size, from Piltmoor's own four weeks. Collar 16.5 sold 19 in four weeks, so 4.75 a week, so four weeks of cover is 19. Build the target from that, instead of from the chain's shape.
| Collar | Piltmoor's rate of sale | Four weeks of cover | Target | On hand | Need | Surplus |
|---|---|---|---|---|---|---|
| 14.5 | 0.00 | 0.0 | 2 | 7 | 0 | 5 |
| 15 | 0.75 | 3.0 | 5 | 11 | 0 | 6 |
| 15.5 | 2.00 | 8.0 | 10 | 19 | 0 | 9 |
| 16 | 3.50 | 14.0 | 16 | 19 | 0 | 3 |
| 16.5 | 4.75 | 19.0 | 21 | 8 | 13 | 0 |
| 17 | 4.50 | 18.0 | 20 | 6 | 14 | 0 |
| 17.5 | 2.00 | 8.0 | 10 | 2 | 8 | 0 |
| Total | 17.5 | 35 | 23 |
Same shop, same Sunday, same seventy shirts sold. Twenty asked for on the chain curve, thirty-five on Piltmoor's own. Every one of the fifteen missing shirts is in the three collars Piltmoor actually sells. At the same moment, the shop is sitting on 23 units it will not sell: five of collar 14.5 against a rate of sale of zero, six of 15, nine of 15.5.
The two totals are not a rounding difference. They are two different beliefs about who shops in Piltmoor, and only one of them was measured.
The pool, and the week it said yes and no at the same time
That is one shop. Sixty-two of them run the same calculation every Sunday, against one pool of stock. By the second half of the season, the pool is what limits everything.
Here is the close of week 9, the week commencing 27 April, at chain level: what the 62 shops asked for, and what Marrowdale had.
| Collar | Shops asked for | At Marrowdale | Filled |
|---|---|---|---|
| 14.5 | 112 | 101 | 90% |
| 15 | 202 | 344 | 100% |
| 15.5 | 362 | 933 | 100% |
| 16 | 458 | 1,099 | 100% |
| 16.5 | 422 | 657 | 100% |
| 17 | 324 | 433 | 100% |
| 17.5 | 139 | 0 | 0% |
| Total | 2,019 | 3,567 |
Read the two totals first. Marrowdale held 3,567 shirts. The shops asked for 2,019. The order could not be filled. There is no arithmetic error and no missing carton. A warehouse total is a sum across sizes; a shortage is not. The building held 1,099 shirts in collar 16 against a request for 458. It had nothing at all for the 139 customers who would walk into a Brackenhall shop that fortnight wanting a 17.5.
This is the shape every replenishment failure takes. It is invisible in any report that adds sizes together. A cover figure, a stock-turn figure, a warehouse unit count, a line on the WSSI — the weekly sales, stock and intake sheet that runs a retail department — every one of them sums across sizes. Every one of them said Brackenhall was comfortable on 27 April.
When the pool cannot pay, somebody is choosing
Once total need is bigger than the pool in a size, the engine is no longer executing a rule. It is rationing. Rationing is a commercial decision, and most retailers have never written theirs down. Three rules are common.
- Pro rata on need. Everybody gets the same percentage. It looks fair, and it is the default in most systems. What it actually does is send one or two units to shops whose fixture needs three. That is a part-fill that lands below the presentation minimum, so it does not sell — while the shop that could have sold twelve gets seven.
- Grade order. Fill the grade A shops, then B, then C, until the pool is gone. This is defensible when the scarce units really do sell fastest in the big shops. It is wrong whenever grade measures volume rather than size mix. Brackenhall's grades measure volume: a grade A shop and a grade D shop can want completely different collars.
- Rate of sale for that size, at that shop. Send the scarce units where they will sell fastest, and never send a quantity that leaves a fixture below its presentation minimum. Hold those units for next week instead. This is the rule lesson 3 tests against the season that actually happened.
None of these is free. Rule 3 openly gives up sales at the shops it skips, and lesson 3 counts them rather than pretending it does not. What is not defensible is having no rule at all. Then the ration is whatever the system does by default, and nobody in the business can say why one shop got eight shirts and another got two.
What replenishment cannot fix, stated now
- It cannot fix the buy. If the season's demand wants 1,076 units of collar 17.5 and Garrow bought 850, then 226 of those customers are leaving empty-handed. No Sunday night can change it. Lesson 3 separates that loss from the one Wadlow owned.
- It cannot recall stock. A shirt in the wrong shop stays in the wrong shop until somebody pays to move it, or marks it down.
- It cannot outrun its lead time. Marrowdale to shop is days. Factory to Marrowdale is nineteen weeks. Inside a fourteen-week phase there is exactly one pool, and when it is empty the season is over, whatever the calendar says.
- It cannot see a break in a style-level report. Every summary number in the estate adds the sizes up, and a broken size run is precisely what addition hides.
Check yourselfA shop's replenishment order comes through as zero for six weeks running while its rate of sale is steady. The buyer says the engine is broken. What are the two innocent explanations you should rule out before agreeing?Show the answer
First, the in-transit figure. If last week's pick is already counted in on-hand, and the target is being met on paper, the engine will correctly order nothing while the shop's rail looks bare. The stock is in a cage in the stockroom, or on a lorry. Second, the target itself. Four weeks of cover on a steady rate of sale is a stable target. Once a shop is at target it should order roughly what it sells and no more. A run of zeros with a steady rate of sale means the shop is holding above target. That usually means it was overloaded at the initial allocation, not that the engine has stopped working. The engine being broken is the third explanation, and it is the least likely of the three.
Prompt · Build my weekly pull, size by size, and tell me what the warehouse cannot pay
When you have a replenishment run to check and you are not sure whether the order it wrote is the order you would have written.
Act as a senior retail allocator who trusts no replenishment output until the arithmetic has been done by hand. Here is one style: [STYLE CODE], sized [LIST THE SIZES IN ORDER], retail [AMOUNT], landed cost [AMOUNT]. Here is my estate: [NUMBER] doors, graded [DESCRIBE THE GRADES AND HOW MANY DOORS IN EACH], with a presentation minimum of [NUMBER] units per size per door (or per grade, here they are: [PASTE]). Here is this week's position, one row per door per size: on hand at Sunday close, units already picked and in transit, and unit sales for each of the last four weeks: [PASTE]. Here is the warehouse: units of each size available to pick on Monday: [PASTE]. My cover target is [NUMBER] weeks. Do the following in order and show the arithmetic. First, for one door I will name - [DOOR] - write out the pull size by size twice: once taking the door's TOTAL rate of sale and splitting the target on the chain size curve I will give you ([PASTE THE CHAIN CURVE]), and once measuring the rate of sale per size from that door's own weeks. Show both totals. Then tell me plainly what the difference is made of: how many units, and in which sizes. Second, tell me which sizes that shop is holding ABOVE what its own rate of sale justifies, and how many units. Third, run the whole estate. Give me total need by size against warehouse stock by size, with the fill percentage for each. If the warehouse total is bigger than the total need while any single size cannot be filled, say so first, and say it in those words. Fourth, for every size that cannot be filled, propose a ration three ways: pro rata on need, grade order, and rate of sale at that shop with no part-fill below the presentation minimum. Give me the unit split each one produces for the ten largest requests. Fifth, tell me which shops are at zero or below the presentation minimum in any size right now, and how many units of that size are sitting in the warehouse. Do not smooth the numbers. Do not average across sizes. Do not give me a total where I asked for a size list.
AI can make mistakes — check anything you act on.