All guides

By September 6, 20268 min read

Which Warehouse Should Hold Which Inventory?

Overstocked in one location and out of stock in another is a placement problem, not a buying problem. How to decide what sits where, and when to rebalance.

Six weeks ago you received 300 units of Cedar & Fig, 250g and split them evenly across your two locations, 150 each. Today Portland has 3 units left and Austin has 87. Your store-level inventory report shows 90 units against sales of 35 a week, which reads as just over two and a half weeks of cover, comfortably clear of the 12-day lead time. Nothing in that number tells you Portland is out of stock and will stay out until something moves.

This is a placement problem, and buying more will not fix it. The mechanics of locations, per-location quantities and running a transfer are covered in managing inventory across multiple Shopify locations. This post is about the decision that comes before any of that: what should be sitting where in the first place.

The symptom

Portland sells Cedar & Fig at 3.5 units a day and Austin at 1.5, so the store's 5 a day splits 70/30. Split the order 50/50 and you have given Portland 43 days of cover and Austin 100. Six weeks in, that arithmetic has run its course.

3

units left at Portland, under a day of cover

87

units left at Austin, just over eight weeks of cover

2.6

weeks of cover the store-level number reports

The store-level figure is an average of a location that is empty and a location holding $609 of stock at cost that it will take two months to sell. No single-number report will catch that, because averaging is what a single number does. The same failure inside one location, plenty of stock overall and none of the right stock, is covered in too much inventory and still out of stock. Across locations it has a different cause and a different fix.

The cause was the even split. The fix is not to order more Cedar & Fig, because you already own six weeks of it. The fix is to move some of it and to stop splitting evenly.

What placement actually optimizes

Placement is one trade, stated plainly: how far a unit has to travel to reach a customer, against how many times you have to hold a buffer of that unit.

The reason the second half of that has teeth is a Shopify design fact. "Each location's inventory is independent and can't be shared or pooled with other locations." A unit in Austin is not partially available to Portland. If both locations are going to serve their own demand without stocking out, both need their own buffer, and two buffers for one SKU is always more total stock than one buffer for the same combined demand. That extra stock is the price of shorter delivery distances, and it is a price worth paying for some SKUs and not others.

The distinction that keeps this from being solved for you: Shopify routes orders, it does not allocate stock. Order routing decides which existing location fills an order after the order has been placed. Shopify's help centre does not document any inventory allocation planning, does not recommend how much of an incoming shipment should go to each location, does not rebalance between locations, and does not flag one location running low while another sits on months of cover. Routing is a fulfillment-time decision. Placement is a planning decision, and it is yours.

Centralize or distribute

The honest version of this choice depends on two things about your business: the shape of your catalogue and the geography of your orders.

Centralizing means one location holds everything and ships everywhere. One buffer per SKU, one count to keep straight, no allocation decisions, no transfers. You pay for it in delivery time and shipping cost on the orders that are furthest away. For a store whose orders come from everywhere in roughly equal measure, or whose catalogue is mostly slow movers, this is often the right answer and stays the right answer for longer than people expect.

Distributing means each location holds stock for the demand near it. Shorter transit, cheaper shipping on regional orders, and a retail floor that has product to sell. You pay for it in duplicated buffers, more counting, more forecasting work, and the occasional transfer when a split goes wrong. It repays that cost when a meaningful share of your orders clusters near each location and the SKUs involved move fast enough to support a buffer in more than one place.

Almost nobody should pick one of these for the whole catalogue. The workable answer for most stores is to distribute the head and centralize the tail: the twenty or thirty SKUs that make up the bulk of your volume are stocked at every location that serves real demand for them, and everything else lives in one place and ships further.

Deciding per SKU

Three questions, applied to one SKU at a time, in this order.

A three-question placement decision tree for one SKUA decision tree runs down the left side as three questions, each with a no branch leading right to an outcome. The first question asks whether the SKU sells at more than one location; a no means hold it wherever it sells, because there is no placement decision. The second asks whether demand at the smaller location is steady rather than sporadic; a no means pool it at the main location, because a thin, spiky series cannot carry its own buffer. The third asks whether splitting the SKU beats shipping it further from a single place; a no means pool it and pay the transit instead, because the second buffer costs more than the extra distance. Only a yes to all three questions leads to the final outcome: stock both locations and split the buy by demand share, seventy thirty in this example rather than fifty fifty.Placement, one SKU at a timeDoes this SKU sell at morethan one location?Is demand at the smaller locationsteady rather than sporadic?Does splitting it beat shippingit further from one place?Stock both locations.Split the buy 70 / 30, not 50 / 50.Hold it where it sells.There is no placement decision to make.Pool it at the main location.A thin, spiky series cannot carry its own buffer.Pool it and ship further.The second buffer costs more than the transit.yesyesyesnonono
Three of the four outcomes are "keep it in one place". Distributing a SKU is the exception you have to justify, not the default.

The first question is usually settled by looking. The second is where most stores get it wrong: a SKU that sells 10 units a week across the store and 2 at the smaller location does not have a demand pattern there, it has a handful of orders, and holding a buffer against that is holding stock against noise. Working out whether a location's series is readable at all is the subject of forecasting across multiple locations.

The third question is the one worth doing arithmetic on rather than guessing. Compare what you spend shipping that SKU the long way over a year against the cash locked in a second buffer that never moves. There is no benchmark to quote here and any percentage you find quoted for it comes from someone selling software. Your own shipping rates and your own unit cost are the only inputs that mean anything.

Two exceptions that override all three questions. A retail location has to hold what it can sell on the floor regardless of the maths, because an empty shelf is a different kind of cost. And any SKU with a genuine speed promise attached to it belongs near the customers you promised it to, whatever the buffer costs.

Setting per-location targets

Once a SKU is stocked at more than one location, each location needs its own target, and the mistake is to set that target in units. Set it in days of cover, then convert.

Cedar & Fig has a 12-day lead time and you buy it roughly every 30 days, so each location needs to cover 42 days plus whatever buffer you have decided on. Portland sells 3.5 a day, so 3.5 times 42 is 147 units. Austin sells 1.5 a day, so 1.5 times 42 is 63 units. Together that is 210, which is the same 5 a day for the same 42 days, split where the demand is. The target stock level calculation is the same one you already use per SKU. All that changes is which daily rate you feed it.

The same logic applied to an incoming order is what would have prevented the mess at the top of this post.

Split of a 300-unit orderPortland, 3.5/dayAustin, 1.5/dayDays of cover
Evenly, 150 each150 units150 units43 vs 100
By demand share, 70/30210 units90 units60 vs 60

Both rows put the same 300 units into the business. Only the second one leaves both locations running out on the same day, which is what you want, because that is the day you had planned to reorder anyway. Equal units is not the goal. Equal cover is.

One limitation to plan around: Shopify has no per-location reorder point field, so these targets live in a spreadsheet or an app rather than in the admin. Nothing in Shopify will tell you Portland has crossed its own threshold while the store-level number still looks healthy.

Rebalancing vs. reordering

When a location is short, there are two instruments and one test that tells you which to reach for.

Add up your days of cover across every location, using the store's combined daily rate. If the total is healthy and one location has surplus cover while another has none, the problem is distribution and a transfer fixes it without spending anything on inventory. That is the case at the top of this post: 90 units against 5 a day is 18 days in total, and Portland's shortage exists entirely because 87 of those units are in Texas. If the total is genuinely short, a transfer only relocates the shortage, and you need a purchase order.

The full version of that decision, in both directions, is purchase orders vs. inventory transfers. The one thing to add for placement specifically: a transfer you have to run repeatedly for the same SKU is not a fix, it is a symptom. If Portland needs a top-up from Austin every month, the placement ratio is wrong and the answer is to change how the next order is split, not to keep moving units.

Shopify will not suggest any of this. Transfers are created manually, and there is no automatic transfer recommendation, so the trigger has to come from your own review.

Reviewing placement

Placement moves more slowly than reordering, so a quarterly pass over your top SKUs is normally enough. What to look at.

  • Each SKU's demand share by location for the quarter, against the ratio you are currently splitting orders by. A drift of several points is worth acting on.
  • Any SKU that needed more than one corrective transfer in the quarter. That is a placement ratio failing, not bad luck.
  • Days of cover per location, side by side, for anything you distribute. Wide gaps are the early version of the problem at the top of this post.
  • Any SKU stocked at a location where it did not sell at all. That stock is a candidate to pull back to a single location.
  • Stock sitting at a location that is not set to fulfill online orders. Turning that setting off "removes any inventory assigned to the location from a product's online quantity", so those units are placed somewhere your online customers cannot reach.

That last one is easier to audit than it used to be. Since a change published in May 2026, on-hand inventory at a location that does not fulfill a variant "is now shown and can be updated", with available quantity displayed as a dash and a "Location doesn't fulfill this variant" warning. Older guidance that says this stock is invisible is out of date.

Four events should pull a review forward: opening or closing a location, changing a routing rule, a lead time that has moved, and any promotion that will land unevenly across your locations.

None of this is hard arithmetic. It is arithmetic nobody has time to redo per SKU per location every quarter, which is why it drifts. StockCue keeps the demand side current, with forecasting and seasonality on every plan including Free, and location-scoped stock counts from Starter so the per-location numbers you are deciding on are numbers you have actually verified. Transfers between locations are a Scale feature. It does not recommend placement, and it has no per-location reorder points today, so the split is still a decision you make.

STOCKCUE

A placement decision is only as good as the counts behind it. StockCue's stock counts are location-scoped from Starter, so you can check what each location is really holding before you decide what it should hold next.

Install StockCue on Shopify →

Frequently Asked Questions

Should fast-moving products be stored in every location?

Usually yes, because a fast mover has enough demand at each location to support a buffer there and enough volume that shipping it a long way repeatedly adds up. Slow movers are the opposite case: their demand at any one location is too thin to justify a second buffer, so pooling them in one place and shipping further is normally the cheaper answer. The test is per SKU, not per catalogue.

How do I set a target stock level for each location?

Work in days of cover rather than units. Decide how many days each location should hold, which is the gap between orders plus the supplier lead time plus your buffer, then multiply by that location's own daily sales rate. Two locations selling the same SKU at different rates get very different unit counts and the same number of days, which is the point.

Is it cheaper to transfer stock or order more?

It depends on whether your total position across all locations is short or merely badly distributed. If you hold enough units in total and one location has surplus days of cover, a transfer fixes it without spending on inventory. If the total is short, moving units only relocates the shortage, and you need a purchase order.

How often should I review which location holds what?

Placement is a slower decision than reordering, so a quarterly pass over your top SKUs is normally enough. Certain events should force an earlier review: opening or closing a location, a change to your fulfillment routing rules, a lead time that has moved, or a SKU whose demand share between locations has drifted by several points.

Rahat Khan, Ecommerce Operations Analyst at Devmerx

Rahat Khan

Ecommerce Operations Analyst

Rahat Khan writes about Shopify inventory operations for Devmerx, the studio behind StockCue: Inventory Forecast.

Need help with your Shopify store?

Devmerx builds and optimises Shopify stores for DTC brands. Book a free 20-minute consultation.