Function · Slotting Built
Slotting decides where each incoming SKU should live. openWCS scores every candidate location against objectives that genuinely conflict — speed, lane affinity, resilience and balance — and the weights are configuration you own, not a vendor's hidden rule set.
How it works
Hard constraints filter the candidate set — lane capacity, one SKU per deep lane, a cap on how much of a SKU may sit in one aisle. What survives is scored, and the best location wins.
Each location carries a distance-to-exit. Class-A SKUs are pulled toward the port for short cycles; slow movers settle deep where the longer reach rarely costs anything.
ABC velocity class is taught in per SKU from real movement, not typed into a master record — so the layout tracks how the catalogue actually behaves.
A multi-deep lane should hold one SKU so units don't block each other; partial same-SKU lanes fill first to avoid honeycombing. A strong preference, tunable against balance.
A min-aisle floor and a max-share-per-aisle cap deliberately spread a SKU across aisles, so one offline shuttle/crane can't strand it — and it can be picked in parallel.
Put-away prefers emptier aisles so fill, travel and throughput stay balanced instead of one aisle becoming the hot-spot bottleneck.
In idle windows the same scorer re-evaluates stored units and recommends moves as velocity drifts, lanes fragment or aisles skew — keeping the layout optimal over time.
Inputs & outputs
Slotting is a pure decision: given a unit to store and the current state of the block, it returns the location to put it in. Everything that shapes the answer is data you own.
The receipt being stored: a SKU and the handling unit it's on, with its packaging level and quantity — the thing that needs a home.
The candidate locations in the block, their distance-to-exit, current occupancy per lane and per aisle, and the SKU already sitting in each deep lane.
The per-block scoring weights, hard caps (lane capacity, max share per aisle, min aisle floor) and the SKU's self-taught ABC velocity class.
A single best location — aisle, side, X/Y/Z down to the cell — for the put-away move, or a direct-to-pick forward face when cross-docking fits.
The decision becomes a put-away move on the shared movement layer — the same network conveyors, ASRS and replenishment use.
Run against stored units in idle windows, the same scorer emits move recommendations that correct drift as velocity, lanes and aisle balance change.
Step by step
At a glance
receipt (SKU, HU) ─► openWCS slotting
│ hard filter: lane full · max %/aisle · one SKU/deep-lane
│ score: velocity-to-exit · lane affinity · redundancy · balance
│ ABC velocity ── self-taught per SKU
▼
chosen location ─► put-away move
off-peak: re-slot stored HUs toward better locations
Configurable & open
Every weight, cap and floor is configuration you can read and change. See the ASRS deep dive for in-aisle depth and goods-to-person specifics.