Overview
Dynamic Replenishment keeps enough of each product in your picking area to cover open orders plus a safety level. Instead of watching individual bins, Logiwa IO compares a product's demand with the free stock across all target locations, creates tasks for the shortfall, and then lets the dynamic replenishment algorithm decide which target locations receive the stock.
When to use it
Use Dynamic Replenishment when:
Demand changes from day to day or by season, and you want picking stock to follow open orders.
A product is picked from several locations rather than one dedicated slot.
You'd rather let a replenishment algorithm choose target locations than fix them per product.
Prerequisites
Products have a Min. Replenishment Level above 0 (Global or for the warehouse) and a defined Max. Replenishment Level that is higher than the Min. level.
Source and target locations have their Replenishment Location Type set.
One putaway algorithm is marked as the dynamic replenishment algorithm.
You can edit Products, Algorithms, Job Types and Wave Rules.
How Dynamic Replenishment calculates need
The calculation runs for each product, in the warehouse the wave runs for.
Supply = Target Location Free Qty + Open Replenishment Qty
Demand = Open Order Qty + Min Level
Trigger: Demand > Supply
Task Qty: Open Order Qty + Max Level − Supply
Term | Meaning |
Min Level / Max Level | The product's Min. Replenishment Level and Max. Replenishment Level: the Global values, or the warehouse's own values when the product uses Per Warehouse |
Target Location Free Qty | Free (unallocated) quantity of the product in all locations with Replenishment Location Type = Target. Damaged and missing inventory isn't counted |
Open Order Qty | Quantity on Open and Shortage shipment orders that hasn't been allocated, picked or processed yet, including what's left on partially processed orders. Shipped, on-hold and cancelled orders aren't counted |
Open Replenishment Qty | Quantity on Pending or Started replenishment tasks for the product in the warehouse |
A product is skipped when its Min Level is 0, or when it uses Per Warehouse levels and the warehouse isn't listed.
Example 1: a task is created. Open Order Qty is 40, levels are Min 20 / Max 60, Target Location Free Qty is 25 and Open Replenishment Qty is 5.
Demand = 40 + 20 = 60. Supply = 25 + 5 = 30.
60 > 30, so a task is created for 40 + 60 − 30 = 70 units.
Example 2: no task. Same product, but Target Location Free Qty is 50 and Open Replenishment Qty is 15.
Demand = 60. Supply = 50 + 15 = 65.
60 isn't greater than 65, so nothing is created.
Source stock for the task is chosen as described in How Replenishment Chooses Source Stock.
How target locations are assigned
Dynamic tasks are created without a target location. Right after the wave creates them, the dynamic replenishment algorithm assigns one.
This algorithm is a regular putaway algorithm with Use this algorithm as dynamic replenishment algorithm checked. Only one algorithm can have this at a time; a default called REPLENISHMENT_ALGORITHM is provided, and you can customise it like any putaway algorithm. See Create a Putaway Algorithm.
How the algorithm picks a location
Rules are tried from the top of the list down. The rule at the top has the highest priority.
Conditions decide if a rule applies. A rule's conditions are checked against the stock being replenished (for example product group, client, LP type or source location zone). If they don't match, the next rule is tried.
Actions decide which locations qualify. The rule's actions filter or prefer candidate locations, for example Check Location Capacity, Suggest a location that has the same SKU, Suggest an empty location or Product Group & Location Zone Match. To limit suggestions to picking locations, add Suggest a location with the selected replenishment type = Target to the rule. Without this action, the rule can also suggest locations that aren't Target locations.
Order by ranks the candidates, for example by Walking Path Priority or Zone Priority.
The first rule that finds a location with room wins. Lower-priority rules aren't checked. If no rule finds a location, the task is removed.
💡 Need is calculated only from free stock in Target locations. Stock the algorithm places in a non-Target location doesn't count as supply in the next wave, so the product may be replenished again.
Some locations are always skipped: locked locations, mobile carts, the task's own source location, and locations already tried with Allow Suggest Another.
Example:
Rule 1 applies to Product Group = Fast Movers and suggests a location that already has the same SKU, ordered by walking path priority.
Rule 2 has no conditions and suggests an empty location. A fast-moving product that already sits in A-03 and A-08 goes to A-03, which ranks first by walking path priority.
A product whose group isn't Fast Movers skips Rule 1 and goes to the first empty location Rule 2 finds. To keep Rule 2 to picking locations, add Suggest a location with the selected replenishment type = Target to it.
How the quantity is placed
Product tasks go to a single location that can take the full quantity. A location without a product capacity has no quantity limit, so the first suitable one takes the whole task.
Splitting happens only when target locations have a product capacity (Max Qty) defined and the rule uses the Check Location Capacity action. Locations are filled in the rule's order, each up to its remaining room, with one task per location. If together they can't hold the full quantity, the task is reduced to what fits.
Full LP tasks (with Only Replenish Full LPs on) are never split. The whole LP gets one target location.
No suitable location: the task is removed, and any job left without tasks is removed too.
Example: A task for 40 units is created.
No product capacity on the target locations: the first suitable location takes all 40 units.
A-01 and A-04 each have a product capacity with room for 20, and the rule uses Check Location Capacity: the task becomes two tasks, 20 units to A-01 and 20 units to A-04.
Soft allocation and Suggest Another
Soft allocation: with Enable Soft Allocation for Dynamic Replenishment on in the wave rule, locations already targeted by other open replenishment tasks count as occupied, so the same bin isn't overfilled. See Understanding Soft Allocation in Dynamic Replenishment.
Suggest Another: during execution, Allow Suggest Another runs the algorithm again for a new target, skipping locations already tried.
Step-by-step setup
1. Set replenishment levels on products
Open the product and go to the Advanced tab, Replenishment Level section.
Choose the Replenishment Strategy:
Global: enter one Min. Replenishment Level and Max. Replenishment Level for all warehouses.
Per Warehouse: click Add Replenishment Level, select the warehouses, and enter Min and Max for each.
Click Save.
💡 To set levels for many products at once, see Bulk Importing Warehouse-Specific Replenishment Levels.
2. Set up source and target locations
Navigate to Locations.
Set Replenishment Location Type to Source on reserve locations and Target on picking locations.
Click Save.
💡 No capacity assignment is needed for Dynamic replenishment's trigger. However, assigning capacities is essential if splitting task quantity is preferred according to the defined product limits.
3. Mark the dynamic replenishment algorithm
Go to Automation > Algorithms and open the algorithm to use (or the default REPLENISHMENT_ALGORITHM).
Check Use this algorithm as dynamic replenishment algorithm. Any algorithm previously marked becomes passive.
Create rule sets by defining conditions, actions and order by settings.
Click Save.
⚠️ When you check Use this algorithm as dynamic replenishment algorithm, the algorithm’s Force Suggested Location option is turned off and hidden, because it only applies to putaway. To keep operators on the suggested replenishment target, turn off Allow Scanning Another Put Location on the job type instead.
4. Create a Dynamic job type
Create a replenishment job type with Replenishment Type = Dynamic. See Create a Job Type for Replenishment for every setting.
5. Create a replenishment wave rule
Create a replenishment wave rule that includes the job type, and decide whether to turn on Enable Soft Allocation for Dynamic Replenishment. See Create a Wave Rule for Replenishment.
6. Confirm it works
Open the wave rule and click Run.
Check the created jobs. Each task should have a target location assigned by the algorithm.
Open the Dynamic Replenishment Report to compare each product's need with what was created.
Settings that work differently in Dynamic
All job type settings work with Dynamic. These behave in a Dynamic-specific way:
Setting | In Dynamic Replenishment |
Batch Size | Maximum number of products in a job. Jobs are grouped by product |
Allow Suggest Another | Runs the dynamic replenishment algorithm again, skipping locations already tried |
Only Replenish Full LPs | The whole LP gets one target; if none is found, all its tasks are removed |
Target Location Conditions (job type) | Disabled. The algorithm decides which locations can be targets |
Common questions
Does Dynamic use location or LP capacity? Not to calculate need. When choosing targets, a product capacity limits how much a location can receive, but only if the algorithm rule uses the Check Location Capacity action. That's the only case where a task is split across locations.
Why did tasks disappear right after the wave ran? The algorithm found no suitable target location for them, so they were removed. Check the algorithm's rules and whether target locations have room.
Can different job types use different algorithms? No. One algorithm is the dynamic replenishment algorithm for all Dynamic job types.
Why wasn't a task created for a product that looks low? See Why Wasn't a Replenishment Task Created?
