Warehouse Slotting: AI Analyses Pick Frequency From a WMS Export

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Warehouse Slotting: AI Analyses Pick Frequency From a WMS Export.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Warehouse Slotting: AI Analyses Pick Frequency From a WMS Export.

Export 13 weeks of pick lines per SKU from your warehouse system, rank the SKUs by number of lines, and class the ones making up the first 80% of lines as A, the next 15% as B and the last 5% as C. Move the A items to the easiest locations nearest dispatch, then review every quarter.

AI earns its place in the ranking, cleaning and "what if" arithmetic, which a spreadsheet does too, only more slowly. Judgement stays with you: which items fit which shelves, which sell together, which are heavy. The example below is a made-up 200-SKU warehouse. Its figures are illustrations produced by a simple model, so replace them with your own export.

Follow me on Instagram@sagnikteaches

The warehouse and the starting position

Picture a small fulfilment site with 200 active SKUs, one dispatch bench at the front and three aisles of shelving behind it. Pickers walk from the bench to a bin and back, in batches. Over 13 weeks (65 working days) the system recorded 18,401 pick lines, which is about 283 lines a day. Products sit where they were put when they arrived: by supplier, then by whichever gap was free.

Connect on LinkedInSagnik Bhattacharya

Nobody has measured the walk, but the pickers complain about it and the busiest items always seem to be at the back. The slotting question is whether that feeling is true and what is worth moving.

Subscribe on YouTube@sagnikteaches

What the export has to contain

Most systems can export a list of order lines. You need only five columns, and each answers one question. Ask your system for lines shipped in the period, not lines ordered, so cancelled orders do not distort the picture.

ColumnWhy you need it
SKU codeThe key for everything else
Order number and dateCounts lines, spots busy days and shows items picked together
Quantity per lineSeparates frequent from bulky
Current locationLets you measure today's walk and plan moves
Size and weightDecides what physically fits a golden-zone shelf

Remove customer names and addresses before the file goes near an AI tool, because the ranking never needs them. Keep order numbers if you want to study items bought together, since they are references and not personal details on their own.

Checks before the ranking

Dirty data produces a confident wrong answer. Ask the assistant to scan the file first and report, not fix.

Here is a table of order lines with columns SKU, order number, date, quantity, location. Before analysing, list: SKUs with blank or odd codes, duplicate order-line rows, dates outside the range 13 weeks ago to today, quantities of zero or above 500, and SKUs that appear with more than one location. Show counts and five examples of each. Do not change anything.

In a typical export you will find a handful of kits listed both as the kit and as their parts, some returns shown as negative lines, and a few SKUs recorded under two codes after a supplier change. Fix those in the source file so the analysis counts each product once. The messy data tutorial has the general method.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Ranking by lines and cutting the ABC classes

With a clean file, ask for the ranking. The measure is pick lines per SKU, meaning how many order lines included it, since each line is one walk.

Count order lines per SKU over the whole period. Sort from most to fewest. Add cumulative percentage of all lines. Classify SKUs as A until the cumulative share reaches 80%, B until 95%, and C after that. Give me a summary table: class, number of SKUs, lines, share of lines, and the smallest and largest lines per SKU in the class. Then list the top 20 SKUs with lines and cumulative share.

On the example data the summary comes back like this:

ClassSKUsPick linesShare of linesLines per SKU
A6914,67479.7%50 to 2,770
B852,79315.2%23 to 49
C469345.1%18 to 23

Sixty-nine SKUs, about a third of the range, do the work of four fifths of the picking. The top of the ranking is steeper still:

RankLines in 13 weeksCumulative share of all lines
12,77015.1%
560035.4%
1031146.2%
2016157.7%
408369.8%
695079.7%

Twenty SKUs, 10% of the range, make up 57.7% of all lines. That is the number that changes the project from a big reorganisation into an afternoon of moves. Always check the AI's arithmetic: sum the three class line counts and confirm they equal the total, and spot-check the top SKU with a filter in the original file.

Why the 80, 15, 5 split is only a default

The split is a convention, not a law. If your ranking is flat, with the top 20 SKUs under 30% of lines, class A will be most of the range and the exercise changes little. If it is very steep, with a few SKUs above 10% each, give those a class of their own, an "A+" for the half-dozen that deserve a permanent spot at the front. Look at the curve before you accept the defaults.

Where the A items should live

A location is good when it is close to dispatch, between knee and shoulder height, and easy to replenish. That is the golden zone. A table of simple rules keeps the choice consistent.

Item propertyPlacement rule
Class A, light and smallWaist-height shelf in the aisle nearest dispatch
Class A, heavy or bulkyFloor or low shelf nearest dispatch; never above shoulder
Class A, very high volume per linePallet position at the front, replenished by forklift
Class BMiddle aisles, any height that fits
Class CBack aisles and top shelves, with a reach aid
Items often ordered togetherSame or adjacent bays, whatever their class

Capacity is the catch. If your A items fill more shelf than the golden zone holds, give each the space for one replenishment cycle and put the overflow in reserve locations behind it. A fast mover with a bin that holds half a day's picks will be empty by lunch, and an empty slot costs more walking than the long location it replaced.

Putting a number on the walk

To decide how much to move, model the distance. Number your 200 pick locations from the one nearest dispatch to the furthest, and give each a distance from the bench. In the example, the closest slot is 12 metres away and each step along the route adds 0.15 metres, so the furthest slot is about 42 metres. Weight each SKU's distance by its lines, and you get the average distance per line.

LayoutAverage distance per lineChange
Today (products placed where there was space)28.5 mNone
Top 20 SKUs moved to the 20 nearest slots19.2 m33% shorter
All 69 A SKUs moved to the nearest slots17.7 m38% shorter
Every SKU sorted by rank17.5 m39% shorter

The pattern is the useful part. Moving 20 SKUs cuts 9.3 of the 11 metres available, so about 85% of the benefit comes from moving a tenth of the range. Sorting the other 180 products adds almost nothing. For a small team with limited time, that points straight to the first project: move the top 20.

A word of caution. This model treats today's layout as random, which is the worst case, and treats every line as a separate out-and-back walk. Real layouts are partly sensible, and pickers batch lines into a trip, so the true gain is smaller. As a rough check on the top-20 move, 283 lines a day with 9.3 metres saved on each leg, out and back, makes about 5,300 metres a day if every line were its own trip. If a picker batches about six lines per trip, divide by six: roughly 880 metres, or around 12 minutes a day at an ordinary walking pace of about 1.2 metres a second. Treat that as a ceiling, not a promise. Time a real batch before and after, and believe the stopwatch.

Moving 20 SKUs without stopping the floor

Schedule the moves out of hours or on the quietest day, and treat the change like any stock movement, so the system and the shelves agree afterwards. Work in this order:

  1. Print a move list with the SKU, current location, new location and quantity, sorted by new location, so one pass fills each bay.
  2. Clear the target slots first, relocating whatever they hold to the vacated ones, to avoid piles on the aisle floor.
  3. Move stock, scan each pallet or bin into the new location, and update labels as you go.
  4. Change the location in the system before the next pick wave, not after.
  5. Walk the aisles with the list and tick each SKU's new location on a printed copy.

Assume about six minutes per SKU for lifting, labelling and scanning, so 20 SKUs is two hours plus an hour for checks. The training side matters too: pickers will walk to the old place by habit for a week, so post the move list at the bench and brief the team in the shift before. A training card that names the new golden zone helps new starters learn the right layout from day one.

Items that sell together belong together

Frequency is only one signal. If two items appear on the same order 40% of the time, putting them in neighbouring bays saves a trip regardless of class. Ask the assistant to look for pairs.

Using order number and SKU, find the 15 pairs of SKUs that appear together on the most orders. For each pair, show the number of orders with both, the share of orders containing the first SKU that also contain the second, and both SKUs' class. Ignore pairs where both appear in fewer than 10 orders.

An illustrative result: a cleaning spray and its refill pouch appear together on 38% of the spray's orders, and both are class A, so slot them side by side. A seasonal gift box and its ribbon pair on 71% of orders but only in two months of the year, so they belong together in season and apart for the rest. The assistant finds the pairs; you decide which ones are worth the bay space.

A promotion week that pushed the wrong SKU forward

Here is how a ranking misleads. In one 13-week window, a site ran a one-week half-price promotion on a bundle. The bundle's lines jumped from 20 a week to 400 that week, so it jumped into the top ten and moved into the golden zone. Over the following quarter it reverted to 20 lines a week and sat in prime space while a steady seller sat at the back.

The fix is to look at the weekly profile of anything that ranks suddenly high. Ask for lines per week for the top 20 SKUs and look for a single big bar. If one week supplies more than a third of a SKU's lines, class it on the other 12 weeks, or treat it as promotional stock with its own temporary location. This is also why 13 weeks beats six: one promotion matters less when it is one of thirteen.

The first five moves, written out

A plan is easier to approve when it is a short table with real locations. This is how the first five rows of the example move list might look, in the form the assistant can produce and a supervisor can check against the shelves (illustrative codes).

RankSKUFromToReason
1SKU-0114C-14-3 (back aisle, top)A-01-2 (front, waist)15% of all lines
2SKU-0027B-06-1A-01-3Pairs with rank 1 on 38% of orders
3SKU-0182C-02-4A-02-2Heavy: floor slot, front aisle
4SKU-0066A-09-5A-02-3Same aisle, lower and nearer
5SKU-0140B-11-2A-03-2Fits waist bin, replenish daily

Look at row 3. The assistant ranked it third, but the sensible location is a floor slot, because the item is heavy. This is the type of constraint you add to the prompt, as a column of weights or a short list of exceptions. Row 4 is a small move on paper but a worthwhile one: it stays in the front aisle but drops from a high level at bay 9 to a waist-height bin at bay 2, cutting both the walk along the aisle and the reach.

What a distance model leaves out

The 28.5 and 17.7 metres above come from a simple model, and a real warehouse has more going on. Knowing what the model ignores tells you where to adjust by hand.

  • Congestion: if every picker wants the same front aisle, they queue. Spread the top items across two aisles when more than two people pick at once.
  • Replenishment: fast movers empty faster. A slot that needs refilling three times a day costs a replenisher's time, so give it the biggest bin that still fits the golden zone.
  • Stock rotation: items with expiry dates or batch codes need first-in, first-out access, which a deep shelf may block.
  • Safety and storage rules: heavy items low, flammable or restricted goods in their approved place, whatever their rank.
  • Pick path: a route that loops through the aisles in one direction may make a distant slot cheaper than it looks. Walk the real route once with a tape measure.

List the constraints that apply to your site in the prompt, and ask the assistant to propose moves that respect them, then list any rule it could not satisfy. A proposal that says "SKU-0182 cannot go above knee height, so slot A-02-2 floor" has understood; one that ignores your list has not.

Weekly plan from export to measured result

For a small site, the whole project runs over about seven weeks, with the hands-on work in the first three. Here it is as the example warehouse ran it.

  • Week 1: export 13 weeks of lines, remove personal details, run the checks prompt, fix the data.
  • Week 2: run the ranking and pair analysis, review the top 20 for promotions, choose the new locations on paper, and time a baseline: 30 real orders picked by two people, recording minutes per order.
  • Week 3: move the top 20 over a quiet evening and update the system and labels.
  • Weeks 4 to 6: time the same 30-order sample again, and watch mispicks and empty-bin reports.
  • Week 7: decide whether to extend to the rest of the A class, based on the measured saving.

Keep the baseline timing honest by using the same pickers, the same time of day and orders of similar size. If minutes per order fall by 15% or more, the exercise has paid and the next step is the rest of the A class. If it falls by under 5%, check whether the top 20 really moved and whether picks are batched differently.

When to re-slot, and when to leave things alone

Constant shuffling costs more than it saves, so set a rhythm and a rule that damps churn. A reasonable cadence for a small warehouse:

ReviewHow oftenWhat you do
Top 20 checkMonthly, 15 minutesRe-run the ranking; swap an item only if it left the top 20 or a new one joined and held
Full ABCQuarterlyRe-class every SKU; move those that changed class two reviews in a row
Seasonal resetBefore and after each peakBring forward seasonal lines; return them to the back afterwards
Range changeWhen more than 10 SKUs are added or droppedRun the whole analysis again

The rule of moving only after two reviews in a row stops a one-off spike from causing a move. Count the moves each quarter, and if it is more than about 15 SKUs, the rule is too loose or the range is changing faster than your layout can follow.

Checking the analysis is right before you lift a pallet

Three quick checks catch most errors. First, the total of lines in your classes should equal the total in the file. Second, take the three highest-ranked SKUs and count their lines by filter in the spreadsheet; they should match exactly. Third, show the top 20 to your most experienced picker. If they say "that's not the one that always runs out", investigate, because the data may be missing a channel or a location code. Pickers carry a picture of the floor that no export holds.

The same ABC classes feed other jobs. A cycle count plan by ABC class counts the A items most often, and the picking card for the golden zone can be as short as one photo. For the wider choice of tools that offer slotting inside a warehouse system, see AI tools for warehousing.

Slotting questions from small warehouses

Should I rank by pick lines or by units?

Rank by pick lines, which is the number of times someone walks to a location, because that drives walking time. Units matter for replenishment and space, not for the walk. A SKU shipped in cases of 100 can have few lines and many units, and slotting it near the front by units alone would waste the best spots.

How many weeks of data do I need?

Thirteen weeks is a good default because it smooths out one-off orders and a single promotion. If you sell seasonally, run a second analysis on the same quarter last year, and slot seasonal lines separately from the year-round ones. Under six weeks is too noisy to trust.

Do I need a WMS to do this?

No. Any system that can export order lines with a SKU, a date and a quantity is enough, including a shop platform or an accounting package. A location column helps you measure the current walk, but you can start without it and add locations from a walk-round.

Is it worth slotting a small warehouse at all?

Usually yes if a picker walks more than a few minutes per order batch. The test is simple: see what share of lines come from your top 20 SKUs. If it is over half, and those SKUs are scattered, moving them costs an afternoon and returns walking time every day.

Further reads

Sources: the author's own method; the 200-SKU data and distances are an illustrative model, not measurements from a real site.

Want your own slotting analysis set up to repeat?

On a 1:1 call we can look at what your system exports, set up the ranking and the re-slot rules in a spreadsheet or AI tool you already use, and test it on one aisle first.

Book a 1:1 call with me