Back to Feed
article 4m read

Reorder math that kept believing the store that had sold out

A sold-out store looked like one nobody wanted to buy from, so I pooled demand across every store sharing a shelf slot, split the order by each store's own shelf space, threw out zeros that had nothing to do with shoppers, and reversed a suppression rule I'd written earlier the same day.

Article DepthPractice

bar chart

Ten units split across three stores, made-up numbers

Store targets of 4, 3 and 2. Without a veto, every unit lands somewhere. With the small store full, it gets zero, the other two get one spare unit each, and one unit goes to nobody.

Flow

Cases worth a test before trusting a pooled split

  1. 1One store sold out

    Its neighbors' sales still earn it a share

  2. 2No sales anywhere, nonzero target

    A new slot still orders up to target

  3. 3No sales, no target

    The group stays suppressed

  4. 4A store over its target

    It gets zero while the others still get shares

  5. 5Uneven division

    The same inputs give the same split every run

  6. 6A zero estimate before a real quantity

    The cart reaches the real quantity instead of dropping the row

One of my stores sold none of a product its neighbors were selling every week, and the reorder math decided nobody there wanted it. The way out was to count demand across stores, count shelf space per store, and stop trusting zeros.

A sold-out store looks like a dead product

Some of what I order is a slot on the shelf plan, like "this size from this brand," not one exact item. Every store on the plan has its own copy of that slot. Each copy used to be judged on its own sales and stock.

When a store sells out, it sells nothing, because there's nothing left. The system saw no sales and no stock, called it no demand, and didn't reorder. So the empty store stayed empty.

One decision for the whole group

Now every store sharing a slot is added up together: sales, stock and how fast it sells. The system works out one order for the group and decides once whether to skip it. One store's bad week can't cancel a product the group is selling. A slot in just one store keeps the old math.

Shares by shelf, and the gaps they leave

The group order is split by each store's target, not by its sales. Split by sales and the sold-out store gets the least, which is the bug again. Each share is rounded down, and the spare units go one by one to the stores that lost the biggest fractions. A store already well over its own target gets nothing.

If you build this, know where it comes up short. A full store's share isn't given to anyone else, and each store gets at most one spare unit, so a group with full shelves orders less than its math said. Stock is also pooled, so extra stock in one store shrinks the order for the others, even though, as far as I know, stock doesn't move between my stores. Show those gaps to whoever approves the order. I don't surface them yet.

Shelf space counted at each store

All of that depends on each store's target being right. At first every store was assumed to carry the same number of variants, and some carry fewer. So each store got its own slot count, with the slot's general count as a backup.

Watch the default when you add a column like that. Mine can't be empty and starts at one, so stores that already existed read as one slot until someone sets the real number. The backup only helps stores with no row at all.

Zeros that weren't real

The list of products used as evidence included discontinued ones, hundreds of them, each adding a zero. Now it only takes active products.

The cart had the same flaw with zero estimates.

Now only a number above zero counts as an answer, and a zero moves on to the next source.

Now a zero falls through, which brought back missing items for some suppliers. The catch is that a zero someone picks on purpose gets skipped too. If you can, store why a number is zero next to the number.

A brand-new slot with no history

I briefly made a group with no sales and no stock order nothing. That kills anything new, since a brand-new slot has no sales anywhere. The same day it changed: if the shelf plan gives a group a target, the system orders up to it even with no sales. Full shelves still block more, and a group with no target still orders nothing.

That's a choice, not a proven result. A target nobody revisits will keep reordering a dud for as long as the shelf has room. If you copy this, give every starting target a date when someone has to look at it again. I haven't done that yet.

Keep reading

Pick up a connected idea or branch into a nearby one.

5 paths forward