Wholesale Sell-Out Planning projects what your wholesale partners will hold, sell, and need to reorder — then works backward to tell you what to ship them and when. It starts from Toolio's AI forecast of consumer demand at each account, builds a week-by-week inventory projection at the partner, and converts every projected receipt into a shipment recommendation offset by your lead time.
Use Cases
You want to set shipment quantities to an account based on what consumers are actually buying, rather than waiting on bookings to tell you.
You need to see when a partner is going to run short — and how much earlier you'd have to ship to prevent it.
You want the projection valued in retail consumers dollars instead of wholesale amount.
Sell-In and Sell-Out
Two different transactions, and this feature connects them:
Sell-out is your partner selling to a consumer. It's demand at the account's shelf, reported back to you through your sell-out data feed.
Sell-in is you shipping to the partner. It's the recommendation this feature produces.
Sell-out planning answers "how much does the account need to hold?" and then "what do I ship, and in which week, to get it there?" This is a different question from the bookings-driven view covered in Wholesale Planning Workflow, which compares your sales plan against what accounts have already committed to buy.
How the Projection Works
Each week, Toolio runs an order-up-to model at the account echelon:
Metric | How it's calculated | What it means |
Sell-out Sales | Sell-out demand (input from ML side) | ML forecast based on actualized sell-out sales data. |
Sell-out BOP | Last week's EOP. Week 1 uses the current inventory anchor. | Units sitting at the partner at the start of the week. |
Sell-out BOP Target | Sum of consumer demand for the next | The order-up-to level — enough to cover the next few weeks of consumer sales. |
Sell-out Receipts |
| Units needed to reach the target. |
Sell-in Shipments | Sell-out leadtime offset receipts | Units needed to leave DC to be received in partner's stores. |
Sell-out Constrained Sales |
| What the partner can actually sell, given what they have. |
Sell-out EOP |
| What carries into next week's BOP. |
❗ ML sell-out (consumer) sales forecast is central to the sell-out calcs. A brand-new choice with no reported sell-out data will not produce a ML sell-out forecast.
Sell-in is derived from receipts by shifting backward through your sell-out lead time (avg number weeks between goods leave your DC and arrive at partner's stores):
sell-in shipment for week W = sell-out receipts landing in week (W + lead time)
A Worked Example
Consumer demand of 100, 75, 80, 70, 90, 85, 95, 60 over eight weeks, an anchor of 50 units on hand, 3 weeks safety stock, a 1-week order cycle (so cover is 4), and a 2-week lead time:
Week | BOP | BOP Target | Receipts | Constrained Sales | EOP | Sell-In Shipment |
1 | 50 | 325 | 275 | 100 | 225 | 85 |
2 | 225 | 315 | 90 | 75 | 240 | 95 |
3 | 240 | 325 | 85 | 80 | 245 | 60 |
4 | 245 | 340 | 95 | 70 | 270 | 0 |
5 | 270 | 330 | 60 | 90 | 240 | 0 |
6 | 240 | 240 | 0 | 85 | 155 | 0 |
7 | 155 | 155 | 0 | 95 | 60 | (empty) |
8 | 60 | 60 | 0 | 60 | 0 | (empty) |
Reading week 1: the target is 100 + 75 + 80 + 70 = 325, the four weeks of demand this week has to cover. The partner has 50, so receipts are 325 − 50 = 275. They sell 100 and end with 50 + 275 − 100 = 225, which becomes week 2's BOP. The sell-in shipment shown in week 1 is week 3's receipt of 85 — shipped now, landing two weeks later.
Notice weeks 7 and 8 have no sell-in value at all. That's the shipping horizon, not a recommendation to ship nothing.
Where the Starting Inventory Comes From
Week 1 is anchored to what your partner last reported sell-out inventory position. Toolio looks back up to five weeks for the most recent snapshot with inventory on it. Five weeks is deliberate — it spans the longest month in a 4-5-4 calendar, in case partner is reporting sell-out data monthly.
How Far Out It Projects
The projection window is resolved per offering:
It starts at the offering's launch week, or the current week — whichever is later. In-season offerings always start at the current week; the past is never re-projected.
It ends at the offering's end week, clamped by your forecast horizon.
If the offering has already ended, nothing is projected for it.
❗ Receipts always taper toward zero over the last few weeks of the window. Each week's target only sums the demand still inside the window, so the target shrinks as the end approaches.
Shipments Before the Plan Starts
The first few receipts in the window have to ship before the window opens — there's no week inside it far enough ahead to carry them. Toolio still recommends them:
For an offering whose first week is still ahead of you, each of those shipments gets its own week before the window opens, carrying only a sell-in value. No inventory is projected before the window opens, so the other metrics are empty on those weeks.
For an in-season offering, those shipment weeks are already in the past, so they collapse onto the current week and add to its own shipment recommendation. In the example above, an in-season offering would show
275 + 90 + 85 = 450units in week 1 rather than 85.
Either way, every receipt ships exactly once: the sell-in total across the plan always equals the receipts total.
❗ This collapsed shipment assumption will be replaced with actual sell-out in-transit data in a later release.
Setting Your Cover
Three settings drive the projection, and all three are in weeks:
Setting | Default | Notes |
| 3 | Buffer weeks of consumer demand held at the partner. |
| 1 | How often you reorder. Must be at least 1. |
| 2 | Weeks from your shipment to the partner's shelf. |
Set the defaults for new choices in Settings → Configuration → Intelligence → Assortment Plan Defaults. To override them for a specific offering, add the matching columns to your Assortment Plan view and edit them there. An offering's own value always wins over the default.
💡 Changing an Assortment Plan Default does not update choices that already exist — defaults are copied onto a choice when it's created. To change existing choices, edit the offering columns directly.
Editing one of these at a rollup sets every offering underneath it to the same value rather than spreading the number across them.
Sell-Out Retail Values
Every sell-out metric has a retail counterpart, calculated the simple way:
retail = units × sell-out unit retail
One consumer price per offering, applied to every week. Toolio seeds that price by your partners actualized sell-out AUR (= total sell-out retail divided by total sell-out units) over a trailing window, by default the last 8 weeks, ending the week before the current one so a partially-reported current week can't drag the average down. Only weeks with reported units count.
The seeded price appears in the Sell-Out Unit Retail column on the offering and refreshes on every recalculation. Type your own value in and it stops refreshing — your number stands. Clear the cell and it goes back to updating automatically.
Sell-out retail carries no discount and no markdown. Your sell-out feed reports units and retail only, so there's no ticket price to reduce from. Applying your sell-in discount here would be wrong in any case: sell-in discount is trade discount off your wholesale price, while sell-out is your partner selling to a consumer off their own retail price, on their own promotional calendar.
If Toolio can't derive a consumer price — no reported sell-through history and no value you've entered — the retail metrics are left empty rather than shown as zero.
When the Plan Refreshes
The sell-out plan recalculates automatically at the end of a planning cycle, immediately after the AI sell-out demand forecast completes. There's no separate button to run it. Watch for Forecast Wholesale Sell-Out (CP) and Generate Wholesale Sell-Out Inventory (CP) in your task list.
Two things worth knowing about a refresh:
It rewrites the whole line. Each run clears and rewrites all sell-out and sell-in metrics for the offering across every week. If your projection window shrinks, weeks that dropped out are left empty rather than holding stale numbers. Nothing outside these metrics is touched, and your actuals are never affected.
Locking an offering's forecast freezes your plan numbers only. The system version keeps refreshing underneath, so you can still see what the engine would have recommended.
Sell-out and sell-in metrics are also excluded from flowing system values to plan, because doing so would break the BOP + receipts − constrained sales = EOP relationship and bypass your forecast lock.
Turning On Wholesale Sell-Out Planning
Wholesale Sell-Out Planning is off by default. Contact your Customer Success Manager to have it enabled — customers can't switch it on themselves.
Before it can produce numbers, your account needs:
Sell-out data feeds connected. Set
Sellout Sale Table NameandSellout Inventory Table Namein Settings → Integrations → Snowflake. You can check what's arriving in Master Data → Sellout Sale and Master Data → Sellout Inventory.A wholesale channel. Exactly one of your channels must be identifiable as wholesale by name. If two channels look like wholesale, the calculation stops with an error asking you to rename one.
Sell-out enabled on your wholesale clusters. In Settings → Configuration → Intelligence → Clusters, tick
SellOut Enabledon each account cluster you want projected. Those clusters must sit on the wholesale channel — a sell-out-enabled cluster on any other channel will fail the run with an error naming it.The sell-out metrics available on your account. Your Toolio team provisions these as part of enablement. Once they exist, add them to a grid through the
Metricsmenu and save your view, the same as any other metric.
💡 For administrators: this feature is controlled by two org feature flags — mlWholesaleSellOutEnabled for the AI sell-out forecast and isWholesaleSellInPlanningEnabled for the projection and its settings. Both must be on. See Feature Flags in Toolio for how flags work.
FAQs
Why do my receipts fall to zero at the end of the plan?
Each week's target only counts demand still inside the projection window, so the target shrinks over the final weeks and receipts taper with it. If your window ends at your forecast horizon rather than the offering's real end date, ignore those last few weeks.
Why is Constrained Sales identical to my demand forecast?
That's expected whenever the projection carries at least one week of cover — the partner is never short, so they sell everything consumers want. Constrained Sales only diverges from demand in a stockout, which the order-up-to model is designed to prevent.
Why is the sell-in column empty in the last weeks of my plan?
Those weeks are beyond the shipping horizon: their receipts would land after the projection ends, so there's nothing to recommend yet. An empty cell means "we can't see that far ahead"; a zero means "no receipt is due, don't ship."
Why are my shipment recommendations fractional?
The projection isn't rounded to a shippable quantity. Case packs, minimum order quantities, and pack rounding aren't modeled — round to your own shipping rules when you place the order.
Nothing calculated for my offering. Why?
The most common causes are a choice with no reported sell-through at any account, a cluster that isn't marked SellOut Enabled, a sell-out-enabled cluster sitting on a non-wholesale channel, a sell-out data feed that hasn't landed, or an offering whose window has already closed. Your Customer Success Manager can run a configuration check against your account.
Does this change my receipts plan or my bookings?
No. Sell-out planning writes only its own metrics. Your existing Assortment Plan receipts, your bookings, and your actuals are all untouched.
