Workings · 01 · purchasing
The weekly reorder that used to take six hours.
Every week, someone had to decide what to buy back. Not from a tidy list of a hundred lines — from a catalogue of ten thousand, three quarters of which sit at three units or fewer at any given moment. Here's what that job actually involves, and which parts of it a machine can be trusted with.
The shape of the problem
These are the real figures from my own store, pulled the day this page was written. They matter because the difficulty of a reorder isn't the arithmetic — it's the size of the haystack.
| Position | Active lines | Share |
|---|---|---|
| Out of stock, or oversold | 3,321 | 32% |
| Down to 1–3 units | 4,282 | 42% |
| Holding 4–9 units | 2,279 | 22% |
| Holding 10 or more | 389 | 4% |
| Active lines in the catalogue | 10,271 | 100% |
Add the rest of the context and the scale of the weekly decision becomes clear. The catalogue runs to about ten thousand active lines across roughly two dozen suppliers, and it's lopsided — the largest single supplier is a quarter of everything. Stock splits unevenly across two stocking locations, so a line can be dead in one place and moving in the other. Trade runs about thirty thousand orders a year, and it swings: the busiest month of the last year carried about 1.7× the orders of the quietest, and nearly twice the revenue.
For the largest supplier alone, a typical week means looking at 911 lines already at zero, plus another 1,011 down to their last unit or two, and deciding which of them deserve money this week.
What the six hours were actually spent on
Almost none of it was deciding. It was assembling the things you need in order to decide.
-
Getting this week's prices
The supplier's trade list arrives as a file that changes shape more often than you'd like. Before anything else, it has to be read and matched against what's on the website.
-
Working out what's actually selling
Not total sales — recent sales, weighted so that last week counts for more than three months ago. A line that sold twenty in March and nothing since is not the same as one selling two a week, and a raw 90-day total hides the difference.
-
Adjusting for the time of year
With a swing of that size between the quiet month and the busy one, ordering to a flat average means being short every autumn and overstocked every spring.
-
Splitting it by location
Shop and warehouse hold different things in different depths. The combined figure is the one number guaranteed to be wrong for both.
-
Typing it into the supplier's order format
Codes, pack quantities, titles. Pure transcription, and the step where a good decision quietly turns into the wrong order.
Five jobs, one judgement. The judgement is the part worth paying a person for and it was getting maybe twenty minutes of the six hours.
What it looks like now
The five assembly jobs run automatically. This week's trade file is fetched and matched, sales are pulled and decay-weighted so recent weeks dominate, the seasonal adjustment is applied, stock is read per location, and the result comes out in the supplier's own order format ready to send.
What arrives is a ranked list with the reasoning attached: what it is, how fast it's moving, what's on the shelf in each place, and how many the model thinks you should buy. The buyer reads it, changes what they disagree with, and sends it.
The buyer's twenty minutes of judgement is untouched. Everything around it is gone. That is the whole trick, and it's the same trick in every automation on this site.
The "six hours to twenty minutes" figure is my own account of my own business. It's the honest before-and-after as I lived it, but nobody was holding a stopwatch, and no system I own can prove it to you.
What is independently checkable is everything else on this page — catalogue size, the stock distribution, the supplier concentration, the seasonal swing. Those came out of the live store while this was being written. Treat the time saving as testimony and the rest as evidence, and judge accordingly.
Three things the software still isn't allowed to do
- Send the order. A person presses send, every week, without exception. An automated order to a supplier is a mistake that arrives on a pallet.
- Order a brand-new line. Anything with no sales history has no velocity to weight, so the model has nothing to say. New releases are a human's call and always will be.
- Overrule a known allocation. When a supplier is short, what you can get matters more than what you should have. The model doesn't know about the phone call.
Whether this is your job too
The shape transfers further than the trade does. If someone in your business spends a morning a week gathering figures from two or three systems so that somebody can make a ten-minute decision at the end of it, this is the same job wearing different clothes.
The tell is the ratio. When assembly takes hours and the decision takes minutes, there's something worth building. When it's the other way round, there usually isn't — and I'd rather tell you that than sell you a machine that shaves ten minutes off a job you do once a month.
Every figure on this page except the time saving was read from the live store on the day of writing and will drift as stock moves. No supplier is named here — I don't name who I buy from, and I wouldn't name yours either. Anyone in my trade could probably guess; that is a different thing from my telling them.