In my last article on cycle counting I promised to come back to replenishment in D365 Advanced Warehouse Management: minimum and maximum replenishment, demand-based and load demand strategies, and how to keep pick faces stocked without burying the warehouse in unnecessary moves. Replenishment is the quiet engine behind a fast pick operation. Get it right and pickers walk short distances to locations that are always stocked; get it wrong and they either stand waiting for stock to arrive or the warehouse spends half its labour shuffling pallets that nobody needed moved. It is the same balancing act I keep coming back to in this series: the system will happily create work, and the skill is in creating only the work that earns its keep.
THE PICK FACE AND THE RESERVE
Almost every efficient warehouse splits storage into two roles. Bulk or reserve locations hold inventory in its most compact form: full pallets and license plates, stacked high, optimised for density rather than access. Pick faces, often fixed picking locations assigned to a specific item, hold a small working quantity at floor level where a picker can reach it quickly. Outbound picking should pull almost entirely from the pick faces, because that is where the travel is short and the work is predictable. Replenishment is simply the discipline of moving stock from the reserve to the pick face before the picker needs it, so that the fast path stays fast. Everything that follows is about deciding when that move happens and how big it is.
THREE WAYS REPLENISHMENT GETS TRIGGERED
D365 gives you three practical mechanisms, and a mature operation usually runs more than one of them at once.
• Min/max replenishment. The workhorse for fixed pick locations. You define a minimum and a maximum quantity for the location, and a scheduled batch job tops it back up to the maximum whenever on-hand falls below the minimum. It is wave-independent: it does not care what orders are in the system, only that the pick face should never run dry. This is what keeps your high-velocity items permanently stocked.
• Wave demand replenishment. Configured as a step on the wave template, this looks at the actual demand in a wave and, if the pick locations cannot cover it, creates replenishment work as part of wave processing. It is demand-based and precise: it only moves what the orders in front of you actually require. This is the safety net for items that do not warrant a permanent min/max, or for demand spikes that outrun the scheduled top-up.
• Load demand replenishment. Triggered for a specific load, this stages the stock a known shipment will need ahead of releasing the work to the floor. It suits operations that plan in loads and want the pick faces primed before a big outbound run, rather than discovering shortfalls mid-wave.
THE REPLENISHMENT TEMPLATE
Whichever trigger you use, the rules live in a replenishment template, and it is worth understanding what that object actually does. The template defines the demand side of the equation: which locations or items it covers, the min and max for a min/max template, the replenishment quantity and unit, and how lines are grouped into work. It answers the question "what should be replenished, and how much". It does not, by itself, decide where the stock comes from or how the move is built. That is the job of the same two tables I wrote about in work templates and location directives: a work template with the replenishment work order type builds the work header and lines, and location directives with the replenishment work order type decide which reserve location to pull from and which pick location to put to. So a working replenishment setup is always a trio: the template that defines demand, the work template that shapes the work, and the location directives that choose the source and destination. Miss any one of the three and the replenishment either fails to generate or generates work that cannot be completed.
MIN/MAX IN PRACTICE
For fixed pick faces, min/max is where most of the value is, and it rewards a little arithmetic. The minimum should be high enough that the location survives the gap between scheduled batch runs at your real pick rate, so that a fast mover does not empty out an hour after the last top-up. The maximum should be set to a sensible whole replenishment unit, ideally a full pallet or license plate, so that each refill is one clean move rather than three awkward part-pallet moves. The gap between min and max is what controls move frequency: a narrow band means frequent small replenishments, a wide band means rarer larger ones. I lean toward refilling in full handling units and scheduling the batch job often enough that the minimum rarely gets tested, but not so often that the job is constantly waking up to do nothing. This is the direct cousin of the threshold tuning I described for cycle counting: a number that quietly decides whether you do too much work or too little.
WAVE AND LOAD DEMAND IN PRACTICE
Demand-based replenishment earns its place on the items and locations that do not justify a permanent fixed pick face. If an item sells occasionally, holding a standing min/max quantity at the face is just frozen capital and a location you have to count; far better to let wave demand replenishment bring it forward only when an order actually calls for it. The trade-off is timing: wave demand replenishment adds a step to wave processing, and the picker cannot start until the replenishment work that feeds the wave is done, so a wave that triggers a lot of replenishment will release more slowly. Load demand replenishment shifts that work earlier, staging a load's requirements before release so the picking itself runs uninterrupted. The honest way to choose is by item profile: permanent min/max for the fast movers, demand-based for the long tail, and load demand where the operation genuinely plans and stages by load.
KEEPING THE MOVES DOWN
The phrase I used in the teaser, burying the warehouse in unnecessary moves, is the failure mode worth designing against from the start. A replenishment move costs labour and aisle time exactly like a pick does, so every move that did not need to happen is pure waste. Several levers keep the count honest. Replenish in full handling units so one move does the work of several. Set min/max bands wide enough that you are not refilling the same location all day. Reserve standing min/max for items that actually turn over, and let demand-based handle the rest so you are not topping up locations for stock nobody is ordering. Group replenishment work so a single trip down an aisle handles several locations rather than one. And watch for the classic thrash, where replenishment and picking chase each other around the same location because the band is too tight or the batch runs too often. Accurate on-hand matters here too: replenishment decisions are only as good as the inventory record they read, which is the whole reason the cycle counting discipline from the previous article underpins this one.
WHAT GOES WRONG
• Min set too low. The pick face empties between batch runs, picking stalls, and someone "fixes" it with a frantic manual move that skips the system entirely.
• Max not a whole unit. Every refill becomes a part-pallet move, doubling or tripling the handling for the same stock delivered to the face.
• Standing min/max on slow movers. Capital and pick-face space tied up in items that barely sell, plus extra locations to count. Move them to demand-based.
• Missing the location directive. The template generates demand but the replenishment work order type has no location directive to source from, so the work never appears or cannot be completed.
• Too much wave demand replenishment. Waves crawl because every release waits on a pile of replenishment work; the fix is usually more standing min/max on the items in question, or load demand staging earlier.
• Replenishment off stale inventory. Refilling against an on-hand figure that is wrong sends stock to the wrong place or fails allocation; keep counts honest.
TAKEAWAYS
Replenishment in D365 Advanced WMS comes down to choosing the right trigger for each item and then tuning it so the pick face is always stocked with the fewest possible moves. Use min/max for the fast movers, refilling in whole handling units with a band wide enough to avoid thrashing; use wave demand for the long tail so you only move what real orders need; use load demand where you stage by load. Remember that the template only defines the demand: the work template and the replenishment location directives decide where the stock comes from and where it lands, so all three have to agree. Tune the numbers the same way you tune a cycle count threshold, by asking whether each move actually earns its keep, and the warehouse stays fast without drowning in motion.
Next time I will look at inbound flows in D365 Advanced WMS: purchase order and load-based receiving, license plate receiving on the mobile device, and how put-away location directives decide where received stock actually lands.
In this series: previous article Cycle Counting in D365 Advanced WMS: Policies, Thresholds, and Mobile Count Work
In my last article on cycle counting I promised to come back to replenishment in D365 Advanced Warehouse Management: minimum and maximum replenishment, demand-based and load demand strategies, and how to keep pick faces stocked without burying the warehouse in unnecessary moves. Replenishment is the quiet engine behind a fast pick operation. Get it right and pickers walk short distances to locations that are always stocked; get it wrong and they either stand waiting for stock to arrive or the warehouse spends half its labour shuffling pallets that nobody needed moved. It is the same balancing act I keep coming back to in this series: the system will happily create work, and the skill is in creating only the work that earns its keep.
THE PICK FACE AND THE RESERVE
Almost every efficient warehouse splits storage into two roles. Bulk or reserve locations hold inventory in its most compact form: full pallets and license plates, stacked high, optimised for density rather than access. Pick faces, often fixed picking locations assigned to a specific item, hold a small working quantity at floor level where a picker can reach it quickly. Outbound picking should pull almost entirely from the pick faces, because that is where the travel is short and the work is predictable. Replenishment is simply the discipline of moving stock from the reserve to the pick face before the picker needs it, so that the fast path stays fast. Everything that follows is about deciding when that move happens and how big it is.
THREE WAYS REPLENISHMENT GETS TRIGGERED
D365 gives you three practical mechanisms, and a mature operation usually runs more than one of them at once.
• Min/max replenishment. The workhorse for fixed pick locations. You define a minimum and a maximum quantity for the location, and a scheduled batch job tops it back up to the maximum whenever on-hand falls below the minimum. It is wave-independent: it does not care what orders are in the system, only that the pick face should never run dry. This is what keeps your high-velocity items permanently stocked.
• Wave demand replenishment. Configured as a step on the wave template, this looks at the actual demand in a wave and, if the pick locations cannot cover it, creates replenishment work as part of wave processing. It is demand-based and precise: it only moves what the orders in front of you actually require. This is the safety net for items that do not warrant a permanent min/max, or for demand spikes that outrun the scheduled top-up.
• Load demand replenishment. Triggered for a specific load, this stages the stock a known shipment will need ahead of releasing the work to the floor. It suits operations that plan in loads and want the pick faces primed before a big outbound run, rather than discovering shortfalls mid-wave.
THE REPLENISHMENT TEMPLATE
Whichever trigger you use, the rules live in a replenishment template, and it is worth understanding what that object actually does. The template defines the demand side of the equation: which locations or items it covers, the min and max for a min/max template, the replenishment quantity and unit, and how lines are grouped into work. It answers the question "what should be replenished, and how much". It does not, by itself, decide where the stock comes from or how the move is built. That is the job of the same two tables I wrote about in work templates and location directives: a work template with the replenishment work order type builds the work header and lines, and location directives with the replenishment work order type decide which reserve location to pull from and which pick location to put to. So a working replenishment setup is always a trio: the template that defines demand, the work template that shapes the work, and the location directives that choose the source and destination. Miss any one of the three and the replenishment either fails to generate or generates work that cannot be completed.
MIN/MAX IN PRACTICE
For fixed pick faces, min/max is where most of the value is, and it rewards a little arithmetic. The minimum should be high enough that the location survives the gap between scheduled batch runs at your real pick rate, so that a fast mover does not empty out an hour after the last top-up. The maximum should be set to a sensible whole replenishment unit, ideally a full pallet or license plate, so that each refill is one clean move rather than three awkward part-pallet moves. The gap between min and max is what controls move frequency: a narrow band means frequent small replenishments, a wide band means rarer larger ones. I lean toward refilling in full handling units and scheduling the batch job often enough that the minimum rarely gets tested, but not so often that the job is constantly waking up to do nothing. This is the direct cousin of the threshold tuning I described for cycle counting: a number that quietly decides whether you do too much work or too little.
WAVE AND LOAD DEMAND IN PRACTICE
Demand-based replenishment earns its place on the items and locations that do not justify a permanent fixed pick face. If an item sells occasionally, holding a standing min/max quantity at the face is just frozen capital and a location you have to count; far better to let wave demand replenishment bring it forward only when an order actually calls for it. The trade-off is timing: wave demand replenishment adds a step to wave processing, and the picker cannot start until the replenishment work that feeds the wave is done, so a wave that triggers a lot of replenishment will release more slowly. Load demand replenishment shifts that work earlier, staging a load's requirements before release so the picking itself runs uninterrupted. The honest way to choose is by item profile: permanent min/max for the fast movers, demand-based for the long tail, and load demand where the operation genuinely plans and stages by load.
KEEPING THE MOVES DOWN
The phrase I used in the teaser, burying the warehouse in unnecessary moves, is the failure mode worth designing against from the start. A replenishment move costs labour and aisle time exactly like a pick does, so every move that did not need to happen is pure waste. Several levers keep the count honest. Replenish in full handling units so one move does the work of several. Set min/max bands wide enough that you are not refilling the same location all day. Reserve standing min/max for items that actually turn over, and let demand-based handle the rest so you are not topping up locations for stock nobody is ordering. Group replenishment work so a single trip down an aisle handles several locations rather than one. And watch for the classic thrash, where replenishment and picking chase each other around the same location because the band is too tight or the batch runs too often. Accurate on-hand matters here too: replenishment decisions are only as good as the inventory record they read, which is the whole reason the cycle counting discipline from the previous article underpins this one.
WHAT GOES WRONG
• Min set too low. The pick face empties between batch runs, picking stalls, and someone "fixes" it with a frantic manual move that skips the system entirely.
• Max not a whole unit. Every refill becomes a part-pallet move, doubling or tripling the handling for the same stock delivered to the face.
• Standing min/max on slow movers. Capital and pick-face space tied up in items that barely sell, plus extra locations to count. Move them to demand-based.
• Missing the location directive. The template generates demand but the replenishment work order type has no location directive to source from, so the work never appears or cannot be completed.
• Too much wave demand replenishment. Waves crawl because every release waits on a pile of replenishment work; the fix is usually more standing min/max on the items in question, or load demand staging earlier.
• Replenishment off stale inventory. Refilling against an on-hand figure that is wrong sends stock to the wrong place or fails allocation; keep counts honest.
TAKEAWAYS
Replenishment in D365 Advanced WMS comes down to choosing the right trigger for each item and then tuning it so the pick face is always stocked with the fewest possible moves. Use min/max for the fast movers, refilling in whole handling units with a band wide enough to avoid thrashing; use wave demand for the long tail so you only move what real orders need; use load demand where you stage by load. Remember that the template only defines the demand: the work template and the replenishment location directives decide where the stock comes from and where it lands, so all three have to agree. Tune the numbers the same way you tune a cycle count threshold, by asking whether each move actually earns its keep, and the warehouse stays fast without drowning in motion.
Next time I will look at inbound flows in D365 Advanced WMS: purchase order and load-based receiving, license plate receiving on the mobile device, and how put-away location directives decide where received stock actually lands.
In this series: previous article Cycle Counting in D365 Advanced WMS: Policies, Thresholds, and Mobile Count Work
No replies yet. Be the first to respond!