Skip to main content

Redistribution - Location Transfers Between Stores

Generate, review, and export system-recommended transfers that rebalance inventory across your locations.

Toolio's Redistribution capability automatically recommends store-to-store and DC-to-DC transfers that move inventory from locations with excess to locations that have shortfall or potential lost sales (POLS) on the same SKU. It is built for the moments when one store sells out of a key item while another sits on units that aren't moving — turning a manual Excel exercise into a one-click run and review workflow inside the Allocation module.

Redistribution runs on the same weekly excess, shortfall, and POLS signals that Toolio already calculates for Allocation, so no new data inputs are required.

Note: Redistribution lives in the Allocation module. If you don't see it, ask your customer success manager to enable the isRedistributionEnabled feature for your tenant.

Use Cases

  • Rebalance fast-selling SKUs across stores within the same region without waiting on a new warehouse shipment.

  • Pull excess from full-price stores into outlet stores (one-directional) when an item's lifecycle is winding down.

  • Move stock between distribution centers in the same group when one DC is consistently over-supplied.

  • Reduce manual Excel-based transfer planning and the errors that come with it.

How Redistribution Works

For each SKU, Toolio looks at every location in the same Redistribution Group and pairs locations with Excess (senders) against locations with Potential Lost Sales and Shortfall (receivers). Available excess is allocated first to receivers with the highest POLS, then to receivers with the remaining shortfall. The engine never recommends:

  • A transfer that crosses redistribution groups.

  • A quantity larger than the sender's available excess.

  • A quantity larger than the receiver's combined POLS and shortfall.

Recommendations are generated independently per SKU — Toolio does not net excess of one SKU against shortfall on another.

How Excess, Shortfall, and Lost Sales Are Calculated

Redistribution reuses the same weekly signals Toolio already calculates for Allocation. Sources are picked by their Excess; destinations by their Potential Lost Sales and Shortfall. All three are derived from each store's projected inventory position.

Projected End of Period (EOP)

Every calculation starts from the store's projected on-hand at the end of the week:

EOP = Beginning Inventory + Expected Receipts - Forecasted Sales

Expected Receipts includes incoming in-transit supply, which is why open and not-yet-initiated transfers already affect these numbers (see the FAQ on pending transfers below).

How Excess Is Calculated

Excess is the source signal: how many units a store can give without dropping below the level it needs to hold.

Target EOP   = Effective Safety Stock + Order Cycle Units
Excess Units = MAX( EOP - Target EOP, 0 )
  • Effective Safety Stock is the store's floor: the greater of its statistical safety stock and its minimum presentation units.

  • Order Cycle Units is the demand the store needs to cover until its next replenishment.

  • Excess is never negative. A store at or below its target has nothing to give.

Redistribution reads Excess from the current week only. The configurable haircut is then applied:

Available Excess = floor( Excess Units × Excess for Redistribution % )

Example: 5 excess × 50% = floor(2.5) = 2 units available to send.

How Shortfall and Potential Lost Sales Are Calculated

These are the destination signals: how much inventory a store needs.

Shortfall Units            = MAX( Effective Safety Stock - MAX(EOP, 0), 0 )
Potential Lost Sales Units = ABS( MIN( Calculated Beginning Inventory, 0 ) )
  • Shortfall is forward-looking: how far the store is projected to end the week below its safety-stock floor.

  • Potential Lost Sales is backward-looking: when a store's calculated beginning inventory would go negative, it sold more than it had on hand, and that gap is captured as lost sales on the prior week.

Destination demand combines the two across the calculation window:

Demand = Shortfall + Potential Lost Sales

Over a multi-week window, Shortfall is the max across the weeks and Potential Lost Sales is the sum across the weeks. Excess, by contrast, is read from the current week only.

Worked Example: Excess and Demand

Input (current week)

Source store

Destination store

Beginning inventory

20

6

Forecasted sales

3

n/a

Projected EOP

17

6

Effective safety stock

7

10

Order cycle units

5

n/a

Target EOP

12

n/a

  • Source Excess = MAX(17 - 12, 0) = 5; available at 50% = floor(2.5) = 2.

  • Destination Shortfall = MAX(10 - 6, 0) = 4.

  • If its calculated beginning inventory was -3, destination Potential Lost Sales = ABS(MIN(-3, 0)) = 3.

  • Destination Demand (1-week window) = 4 + 3 = 7.

Worked Example: Ranking and Matching

For one SKU in a redistribution group this week (50% excess factor):

Senders are ranked by available excess (highest first), with the lower location ID breaking ties. Sender priority and lead time do not affect this order.

Sender

Excess

Available excess (50%)

Rank

Store 7

8

4

1 (ties Store 12 on excess, wins on lower ID)

Store 12

8

4

2

Store 21

6

3

3

Receivers are ranked by Potential Lost Sales first, then Shortfall, then matrix Priority, then Lead Time, then location ID. Lost sales always outrank shortfall.

Receiver

Potential Lost Sales

Shortfall

Demand

Rank

Store 30

5

1

6

1 (higher lost sales)

Store 31

0

4

4

2

Matching is greedy: the top sender fills the top receivers in order until its available excess runs out, then the next sender continues.

  1. Store 7 sends its 4 units to Store 30 (demand 6 → 2 remaining).

  2. Store 12 sends 2 units to Store 30 (filled), then 2 units to Store 31 (demand 4 → 2 remaining).

  3. Store 21 sends 2 units to Store 31 (filled). Its remaining 1 unit stays put because no demand is left.

Setting Up Redistribution

Before you can run Redistribution, an admin needs to configure three things: redistribution groups, the Redistribution Matrix for each group, and module settings.

Assign Locations to a Redistribution Group

A Redistribution Group is a set of locations that are allowed to send and receive transfers between each other. Groups are identified by a sequential integer (1, 2, 3...).

  1. Go to Settings > Configuration > Organization Settings > Locations.

  2. Find the new Redistribution Group column.

  3. Enter a group number for each location that should participate in redistribution. Leave it empty for locations you want to exclude.

  4. Save.

Rules to know:

  • A location can belong to at most one group.

  • Source/DC locations and selling (non-source) locations cannot share a group.

  • Locations with no group are simply skipped by the engine.

  • You can re-assign a location to a different group at any time. Toolio automatically rebuilds the Redistribution Matrix pairs behind the scenes.

Configure the Redistribution Matrix

Once locations are in a group, you set per-pair rules in the Redistribution Matrix — priority, lead time, and whether transfers are allowed in each direction.

  1. From Settings > Configuration > Organization Settings > Locations, click Redistribution Matrix.

  2. Choose a group from the group selector.

  3. Edit any of the following per pair:

  4. Priority — used as a tie-break when multiple receivers are equally ranked for a given sender. Lower number wins. It does not affect which sender is chosen.

  5. Lead Time (Days) — the in-transit time used to set the Receipt Date on each recommendation.

  6. Active — uncheck a direction to forbid transfers that way. Useful when full-price stores can send to outlets but not the other way around.

  7. Save.

Inactive pairs appear grayed out. Use the filter toggle to hide them.

Set Module Settings

Two settings control the global behavior of the engine.

  1. Go to Settings > Module Settings > Allocation.

  2. Set the following:

  3. Excess for Redistribution % — the percentage of total excess that is available for redistribution at each sender. Range 0–100. When left empty, Toolio uses 100%. Toolio always rounds the available excess down to a whole unit (e.g. 15 × 50% = 7.5 → 7 units). This prevents a store from giving up stock and then immediately requesting a new allocation.

Running Redistribution

Redistribution is run on demand from a dedicated page — separate from the standard Allocation run.

  1. From the main menu, open Allocation > Redistribution Orders.

  2. Click Run Redistribution.

  3. In the dialog, set:

  4. Calculation Window — how far ahead the engine looks for shortfall and POLS.

  5. Optional Filters — narrow the run to a specific product category or location subset using Add Filter.

  6. Click Run.

The run is asynchronous. You can track progress in the side menu. When the run completes, the Redistribution Orders grid shows the results of the most recent run.

Reviewing Recommended Redistribution Orders

The Redistribution Orders page mirrors the layout of the existing Recommended Transfer Orders page. Each row represents one recommended transfer.

The system's recommended transfer quantity is shown in the In Transit To Place Units column. (There is no column literally named "Recommended Transfer Quantity" — In Transit To Place Units is that value.) Alongside it, the grid shows the signals the engine used to produce each recommendation, so you can sanity-check the suggestion at a glance.

Each recommendation shows:

  • (Source) Location Name — the sending location.

  • (Destination) Location Name — the receiving location.

  • SKU / Product

  • In Transit To Place Unitsthe recommended transfer quantity, in units.

  • (Source) Excess — units of excess available at the sending location for this SKU.

  • (Destination) Potential Lost Sales — POLS at the receiving location that the transfer is intended to cover.

  • (Destination) Shortfall — shortfall at the receiving location, used after POLS is satisfied.

  • Transfer Date — defaults to today.

  • Receipt Date — defaults to Transfer Date + Lead Time from the pair's row in the Redistribution Matrix.

  • The standard product, location, and grouping attributes you use on the RTO page.

Use the column quick filter and standard grid filters to drill down to a category, location, or order subset.

No rows or all In Transit To Place Units blank? That means the run completed but the engine didn't find any valid sender→receiver pairs for the filters you applied — typically because there was no excess to match against POLS or shortfall within the same Redistribution Group. Widen your filters or check your Redistribution Group / Matrix configuration.

Editing Recommendations Before Export

You can edit three fields inline on any recommendation:

  • Units — the transfer quantity.

  • Transfer Date

  • Receipt Date

Exporting Redistribution Orders

Redistribution orders export through a separate flow from standard Allocation transfer orders so you don't accidentally double-export the same units.

  1. Right-click to open the context menu.

  2. Choose the export action.

FAQs

What's the difference between Redistribution and a standard Allocation Transfer Order?

Standard Allocation transfers move inventory from your warehouses to your selling locations to meet forecasted demand. Redistribution moves inventory between selling locations (or between DCs in the same group) to rebalance what's already in the network. The two flows are intentionally kept separate in the UI and in export so you don't double-ship the same units.

How does Toolio decide which sender to pull from when multiple stores have excess?

Senders are ranked by available excess (highest first). If two senders have the same available excess, the lower source location ID wins. Matrix Priority and Lead Time are receiver-side tie-breaks and do not influence which sender is chosen. The top sender's available excess is fully consumed before Toolio moves to the next.

How does Toolio decide which receiver to send to first?

Receivers are ranked by:

  1. Highest Potential Lost Sales (POLS) first.

  2. Highest Shortfall.

  3. Lowest Priority.

  4. Shortest Lead Time.

  5. Destination location ID.

Available excess is allocated to POLS receivers first; any leftover goes to receivers with shortfall.

Does Redistribution use daily-level data?

No. The engine operates on weekly snapshots of excess, shortfall, and POLS.

I changed a location's group after running Redistribution. What happens to the existing recommendations?

Recommendations from the previous run are not auto-deleted, so they remain on the page until your next run. After the next run, only recommendations that respect the current group assignments are shown.

Does Redistribution account for transfers that have been recommended but not yet initiated?

Yes, indirectly. Redistribution does not read the recommended transfer orders list directly. It works from the Allocation Plan's Excess, Shortfall, and Potential Lost Sales, plus current on-hand inventory.

Those Allocation Plan figures are derived from each store's projected end-of-period inventory, and that projection already includes in-transit units from recommended transfers, both allocation and redistribution transfers, whether or not they have been initiated. So a pending transfer that is expected to land at a store reduces that store's projected shortfall, and a pending outbound transfer reduces the sending store's projected excess.

The practical implication is timing: redistribution reflects pending transfers as of the most recent allocation or forecast calculation. If transfers were created after the last calculation, rerun allocation or forecasting so the plan metrics pick them up before running redistribution.

Did this answer your question?