Back to Feed
article 3m read

The par math that turned a store's permission slip into an order

A display minimum applied to every eligible row meant allowed items with no recent sales could still get suggested orders, and the group planner ignored its own skip reason. The floor now applies only to required items, and the planner now respects that reason.

Article DepthPractice

Flow

Which numbers can raise an order

  1. 1Sales need

    Applies to every item the store may stock.

  2. 2Display minimum

    Now only for required items with no set floor.

  3. 3Set floor

    Required items only.

  4. 4Group number

    Counts only when there is no skip reason.

  5. 5Allowed status

    Raises nothing on its own; just puts the item in the running.

Allowed items in the ordering system were getting orders: a yes on a spreadsheet had become a reason to buy. One small rule was applied to items it was never meant for.

The four statuses

Each product and store pair has a status. Required means the store must carry it. Trial means it's on the shelf with a cap. Blocked means it's left out. Allowed means the store may carry it, and sales decide how much. Allowed should never add any quantity by itself. It just says the item is in the running.

Where the extra order came from

The system picks a target level by taking the largest of a few numbers. One is how much sales say the store needs. One is a display minimum, the least amount that makes a shelf look full. One is a set floor that only required items have. The display minimum was used for every row the store could carry. So an allowed item with no stock and no sales still got a target, and anything over what's on hand turns into a suggested order.

When you take the biggest of several numbers, each one looks harmless. The thing to check is which items each number was meant for.

Why a big import is the worst time

The import for a new vendor reads a sheet with a yes or no per store and writes allowed or blocked rows. That makes a lot of allowed items at once, and I'd guess most had never sold in those stores. Those are the rows the display minimum inflated. The import's own checklist even counted a report full of order lines as success, which is the wrong thing to reward.

Only required items get a floor now

The display minimum now only fills in for a required item that has no set floor. Everything else follows sales. Trial items seem to have lost that floor too, from my reading of the change, and no test covers that yet.

A new test sets up an allowed item with no stock and no sales. It checks that the target and the order are both zero and that the row is still marked for a person to review. The first version had the wrong expected display minimum, and a quick follow-up fixed it.

The same habit in group planning

Another planner handles groups of items a buyer can swap for each other. For each group it gives a number and, sometimes, a reason to ignore that number, like "no stock and no sales." Three readers only looked at the number, so a group the planner had said to skip still looked like work. All three now use the same check.

A group counts as ready only if it has no skip reason and a positive number.

The test confirms a skipped group shows no demand and adds nothing to either count, even though its raw number is still there.

I only have the code and tests to go on. I can't tell from them whether any carts were built from these phantom lines.

Keep reading

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

5 paths forward