Replenishment is a rate, a position and a rule, kept apart
A shelf goes empty for one of three reasons: the rate was wrong, the position was wrong, or the rule that joins them was wrong. Static minimums bake all three into one number that nobody can audit. A replenishment dataset stores them separately: how fast the item sells here, what is on hand and coming, and the target the two are compared against. Then the need is a subtraction anyone can check, and the fix for an empty shelf is visible: re-forecast, recount, or re-parameter.
The Cybex Merchandising & Replenishment dataset is five facts on one item and one site. It sits between the planning dataset, which owns the budget and the buy, and the allocation dataset, which owns the DC leg and store balancing. This one owns the store-level stock status, the replenishment parameters, the need at SKU and site, and the service outcome. Nothing here is specific to one retailer: parameter names, ABC scopes, horizon lengths and the private label convention are mapped to generic values at load time.
Five facts, one item and one site
| Fact | Grain | Question it answers | Loaded from |
|---|---|---|---|
| Stock status | One row per style and colour per site (SKU beneath), as of a date | What is here, what is coming, how is it selling, and how many weeks will it last? | Location stock, DC stock, open POs, allocations, weekly and monthly sales buckets, receipts |
| Replenishment parameters | One row per SKU (or style) and site, versioned | What are we trying to hold here, and when do we act? | Item and location parameters, ABC class, vendor lead time, review calendar, planner overrides |
| Demand and sales rate | One row per style and colour, with store and size indices | How fast does it sell, de-seasonalised, and what will it sell over each horizon? | Weekly sales history, seasonality index, weeks in stock, store index, size curve |
| Replenishment need | One row per SKU, site and source (DC fill, vendor reorder, production run) | How many units, from where, by when, and in what priority? | Stock status, parameters, demand, DC availability, blank supply, open commitments |
| Service | One row per SKU, site and week; forward cover beneath it | Were we in stock, what did an empty shelf cost, and what will cover look like next week? | Daily stock history, sales rate, forward cover projection, receipts due |
Figure: the five facts share item and site; the need row names its source so a DC fill, a vendor reorder and a production run are never confused.
Generic dataset attributes
Attributes are grouped by role. BI marks the ones the stock-status, reorder and stockout reports aggregate; AI marks the ones the forecasting, parameter and suggestion engines consume. Most are both.
Stock status
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Style, Colour, SKU, Site, Site type, Region, Department, Class, Vendor, Season, Category, Name-drop flag, As-of date, First received, Last received, Last sale | Category separates clothing, souvenirs and blanks; a blank is supply, not a store item, and is excluded from store status by category. | BIAI |
| Position | On hand, On hand at retail and cost, DC on hand, On order, Allocated, Inbound transfer, Committed stock, Minimum on hand (as set), Received in period | Committed = floored on hand + on order + inbound. DC on hand is carried on the store row so the fill source is visible without a join. | BIAI |
| Sales history | Weekly units W1 to W6 (completed weeks), W0 (in progress, display only), Monthly M1 to M4, Quarterly Q1 to Q4, Halves, Trailing year units and sales, Markdown units, Sales at retail, Gross margin | Buckets are computed from the sales fact against the retail calendar; W0 is shown but never enters a rate. | BIAI |
| Derived | Sales rate (units per week at this site), Weeks of supply (committed ÷ rate), Weeks in stock, Stock-to-sales, Sell-through, Turn, Cover band (stockout, under, balanced, over) | Rate at site = chain base rate × store index; WOS is committed cover at that site, so a store is judged on what it will have. | BIAI |
Replenishment parameters
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | SKU or Style, Site, Parameter set version, Effective date, Set by (rule, planner, model), Reason | Parameters are versioned so a change in service can be traced to a change in rule. | BIAI |
| Targets | Cover weeks, Safety weeks, Presentation minimum (units to look stocked), Minimum on hand, Maximum on hand, Target on hand (derived), Reorder point, Reorder quantity, Pack or case multiple | Target on hand = rate × (cover + safety), floored at the presentation minimum and capped at maximum or floor capacity. | BIAI |
| Supply | Primary source (DC, vendor direct, private label production), Vendor, Lead time (weeks), Review cycle (days), Minimum order, Order multiple, DC ranged flag | Lead time and review cycle set how far ahead the need must be seen; DC ranged says whether a fill is possible at all. | BIAI |
| Classification | ABC class (scoped and dated), Lifecycle stage, Replenishable flag (core versus one-time buy), Seasonal window, Exclude flag with reason | ABC drives service targets and review frequency; a one-time buy is never reordered by rule. | BIAI |
Demand and sales rate
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Style, Colour, Season code, Lifecycle stage, First received, Weeks in stock, Weeks used in the base | Weeks used caps the averaging window at the weeks the item has actually been in stock, floored at one. | AI |
| Rate | De-seasonalised base weekly rate, Seasonal weight of the base window, Seasonality index by week, Forward factors for 4, 13 and 26 weeks, Forecast 4, 13, 26 and 52 weeks | Base = average of completed weeks ÷ their seasonal weight; the 52-week horizon carries no factor because it spans one cycle. | AI |
| Apportioning | Store index per style, Size index per style, Cluster index | Both sum to one per style, so a store or size rate rolls back to the chain rate exactly. | AI |
| Productivity | Gross margin trailing 12 months, Inventory at cost, GMROI, Turn, Sell-through, Full-price share, ABC rank | Decides which items earn tighter service targets and which should not be replenished at all. | BIAI |
| Quality | Stockout weeks excluded from the base, Data points in window, Rate confidence | A week out of stock is not a week without demand; it is dropped from the base and flagged. | AI |
Replenishment need
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Run id, Run date, Horizon (4, 13, 26, 52 weeks), SKU, Style, Colour, Size, Site (or DC for a vendor reorder), Source (DC fill, vendor reorder, production run), Size basis (model, style, colour) | Horizon is discrete and matches the demand fact; a need is never a linear extrapolation. | BIAI |
| Calculation | Forecast for horizon at site, Target on hand, Committed stock, Need (target + forecast − committed, floored at zero), Need by size (largest-remainder rounded) | Size rounding ties exactly to the colour total so a transfer or PO never drifts from the need that justified it. | BIAI |
| Source resolution | DC available for the SKU, DC fill quantity, Residual after DC, Vendor reorder quantity (rounded to multiple and minimum), Blank supply and private label quantity, Reason not filled (not ranged, DC short, below minimum, one-time buy) | DC fill is resolved before a vendor reorder; the residual and its reason are the buying and ranging agenda. | BIAI |
| Priority | Priority score (ABC, cover band, days to stockout, margin), Private label priority, Order-by date (from lead time and review cycle), Suggested PO group | Priority orders the work; order-by date says when the reorder must be placed to land before the shelf empties. | BIAI |
| Outcome | Accepted quantity, Transfer or PO or work-order reference, Status, Landed date, Fill rate versus need | Closes the loop so service can be attributed to the action taken or not taken. | BIAI |
Service
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | SKU, Site, Retail week, Day (beneath), DC serving the site, ABC class | Week grain for reporting, day grain for the stockout duration. | BI |
| In-stock | Days in stock, Days out of stock, In-stock % (demand-weighted), Stockout flag, Stockout start and end, Positions with live demand at zero | Weighted by demand so a stockout on a fast seller counts more than on a slow one. | BIAI |
| Cost of service | Lost sales units (rate × days out), Lost sales at retail, Lost margin, Overstock units (beyond 12 weeks cover), Overstock at retail, Aged units | Lost sales are an estimate from the rate; the method is stored with the number. | BIAI |
| Forward cover | Forward weeks of supply by week (committed − forecast, week by week), Week of projected stockout, Receipts due by week, Cover after receipts | Projects the position forward so a stockout is seen before it happens, not after. | BIAI |
| DC service | Unit fill %, Order fill %, On-time ship % (when the WMS supplies order grain) | Reserved columns; populated from the WMS distribution module rather than inferred from movement. | BI |
TargetOnHand = max(PresentationMin, RateAtSite × (CoverWeeks + SafetyWeeks)), capped at MaxOnHand
Need = max(0, TargetOnHand + Forecast(horizon) − Committed) · DC fill first, vendor reorder for the residual
LostSales = RateAtSite × DaysOut ÷ 7 · ForwardWOS(week n) = (Committed + ReceiptsDue(≤n) − Forecast(≤n)) ÷ RateAtSite
Functional areas and what each reads
| Functional area | Reads | Deciding attributes | BI output | AI output |
|---|---|---|---|---|
| Stock status and sales rate | Stock status, Demand | On hand, DC on hand, on order, weekly buckets, rate, WOS, stock-to-sales | Stock status by vendor, department and style; sales rate by style and vendor; stock-sales analysis by class, size and SKU; KPI tiles | Rate quality flags; cover-band drift alerts |
| Parameter management | Parameters, Demand, Service | Cover, safety, presentation minimum, min and max, reorder point and quantity, ABC, lead time | Parameter grid by SKU and site with versions; exceptions where minimum exceeds target or target exceeds capacity | Recommended parameters per SKU and site from rate, variability, ABC and service target; simulation of service versus stock |
| Store replenishment from DC | Need (DC fill), Stock status | Target, committed, DC available, ranged flag, priority | Replenishment lists by category and store; DC-fill quantities; residual by reason | Fill prioritisation when the DC is short; predicted stockouts the fill prevents |
| Vendor reorder | Need (vendor), Parameters | Residual after DC, lead time, order multiple, minimum order, order-by date | Stock reorder lists by vendor, location and name-drop; suggested PO groups | Suggested reorder quantities per style, colour and size at the chosen horizon; order timing |
| Private-label private label planning | Need (production run), Demand | Blank supply, private label forecast, private label priority, size curve by blank | Private label priority and PO lists; cut versus buy by colour and size | Production run suggestions that respect finished stock and blank availability |
| ABC and prioritisation | Demand, Parameters | ABC class and scope, GMROI, turn, margin | ABC analysis by style; colour forecast by ABC; service targets by class | Dynamic reclassification; service-target optimisation by margin contribution |
| Stockout and lost sales | Service | Days out, lost sales, in-stock %, positions at zero with demand | Stockout lists by DC region; in-stock trend; lost sales by class and store | Stockout risk by SKU and site for the coming weeks; root-cause split (rate, position, rule) |
| Forward cover | Service (forward), Need | Forward WOS by week, receipts due, projected stockout week | Forward weeks-of-supply matrix by style and week; receipts overlay | Reorder timing that lands before the projected stockout week |
Rules the dataset carries
Rate and position
- One rate, apportioned. Store and size rates come from the chain base rate and the indices; no report or engine derives its own rate from raw rows.
- Never the week in progress. The base averages completed weeks the item was in stock; stockout weeks are excluded and flagged.
- Cover is committed cover. WOS divides floored on hand plus on order plus inbound by the rate at that site.
- Sales history is bucketed once. Weekly, monthly, quarterly and annual buckets are computed against the retail calendar in the ETL and read everywhere.
Parameters and need
- Parameters are data the engine reads. A minimum maintained by the planner feeds the target calculation; a lever nobody reads is not a lever.
- Target before need. Target on hand is computed from rate, cover, safety and presentation minimum, then need is the subtraction; the two are stored separately so each can be audited.
- DC first, vendor for the residual. A need is filled from warehouse stock the item is ranged for before a reorder is raised; the residual carries its reason.
- Discrete horizons, rounded sizes. Need is sized at 4, 13, 26 or 52 weeks and split to size with largest-remainder rounding so the order equals the need.
Service
- In-stock is demand-weighted. A position with no demand does not count as a stockout; a fast seller at zero counts more than a slow one.
- Lost sales state their method. Rate times days out, with the rate version recorded, so the estimate can be reproduced and challenged.
- Forward cover, not just current. The projection subtracts forecast week by week and adds receipts due, so the stockout week is known in advance.
- DC fill and on-time come from the WMS. Movement history cannot say what was demanded; those columns wait for order grain rather than being inferred.
Process workflow
The replenishment cycle is nightly for status and need, weekly for the reorder review. The Hub runs the left half unattended; planners and buyers run the middle; the AI layer parameterises and suggests ahead of the review and measures service behind it.
Cadence
| When | Step | Output | Owner |
|---|---|---|---|
| Continuous | Capture | Stock, orders and sales current to the last transaction | POS, WMS, purchasing |
| Nightly | Status, forecast, target, need | Stock status, rates, targets, need by source with priority, service for the day | AI Data Hub |
| Daily | DC replenishment | Store fill lists released to the DC | Allocation planner, DC |
| Weekly | Reorder review | Vendor reorders and production runs accepted; POs raised; parameter exceptions cleared | Buyers, planners |
| Weekly | Service review | In-stock, stockouts, lost sales, forward cover by class and store | Merchandise planning, store operations |
| Monthly | Learn and tune | Parameter recommendations, ABC refresh, seasonality and index refresh | Planning, data science |
Where BI ends and AI begins
BI on the replenishment dataset
AI on the same dataset
Both read the same five facts. The WOS a planner sees in stock status is the WOS the target was computed from, and the stockout the service report records is the one the forward cover predicted.
What a conforming dataset delivers
Empty shelves with a cause. Every stockout can be attributed to rate, position or rule, because the three are stored apart and the target between them is auditable.
Need resolved to its source. DC fill first, vendor reorder for the residual, production run for private label, each with a reason and an order-by date, posted against the plan.
Service measured forward and back. Demand-weighted in-stock and lost sales for the week behind; forward cover and stockout week for the weeks ahead.
Deployment approach
Map location stock, DC stock, open orders and allocations; the parameter fields the client maintains today (minimums, reorder points, maximums) and which of them the engine will read; vendor lead times and review cycles; the DC-ranged flag.
Build the stock status fact with calendar buckets, the demand features from completed weeks with stockout weeks excluded, and store and size indices. Publish stock status, sales rate, stock-sales analysis and ABC.
Compute targets from the parameters, need by source with DC-first resolution, priority and order-by dates; publish replenishment, reorder, stockout and private label lists; prove need ties to target and committed stock.
Switch on the service fact with demand-weighted in-stock, lost sales and forward cover; connect need rows to transfers, POs and work orders; start parameter recommendations and the monthly ABC and index refresh.