The plan is a budget for stock, not for sales
A sales plan says what the business expects to sell. A merchandise plan says how much stock it will hold to sell it, and therefore how much it may still buy. Open-to-buy is the difference between the stock the plan allows at the end of a period and the stock already owned or committed for it. Everything on this page exists to make that one subtraction trustworthy at every class and period.
The Cybex Merchandise Planning & OTB dataset holds the plan, the actuals that overwrite it as the period elapses, the purchase commitments that consume it, and the demand features that say whether the plan is still right. The buy itself is a separate fact, at style, colour and size, so a purchase order can be raised from the requirement and posted back against the OTB it consumed. Nothing here is specific to one retailer: the retail calendar, class hierarchy, PO status codes and forecast horizons are mapped to generic values at load time.
Five facts, one retail calendar
| Fact | Grain | Question it answers | Loaded from |
|---|---|---|---|
| Merchandise plan | One row per class and retail period; division and total roll up | What did we plan to sell, mark down, receive and hold, and what actually happened? | Planner input, monthly movement actuals, last-year actuals |
| Purchase commitments | One row per PO line, rolled to class and due period | What is on order, at what cost and retail, due when, in what status? | PO headers and lines, receipts, cancellations, product master |
| OTB position | One row per class and period, derived | How much may we still buy for this period? | Plan, commitments, opening stock, receipts to date |
| Demand features | One row per style and colour with forward horizons | How fast is it selling, de-seasonalised, and what will it sell over 4, 13, 26 and 52 weeks? | Weekly sales history, seasonality index, weeks in stock, size curve |
| Buy requirement | One row per style, colour and size, with a blank and private label variant | How many units must be bought, or cut, to cover the horizon after supply? | Demand features, stock on hand, open POs, work orders, size curve |
Figure: the plan, the commitments and the OTB share class and period; the demand and buy facts sit beneath them at style, colour and size and post back through the class.
Generic dataset attributes
Attributes are grouped by role. BI marks the ones the plan grid, OTB and purchasing reports aggregate; AI marks the ones the forecasting and buying engines consume. Most are both.
Merchandise plan
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Division, Department, Class, Subclass, Retail year, Retail period, Period key (year + period), Period start and end dates, Weeks in period | The retail calendar is a table, not a date function: a 4-5-4 period never agrees with a calendar month, and January belongs to the prior retail year. | BIAI |
| Plan measures | Sales plan, Markdown plan, Margin plan, Receipts plan, Stock plan at beginning of period, Stock plan at end of period, Units plan for each | Retail and units carried side by side; cost derived from the planned mark-up. End-of-period stock is a snapshot and is never summed across periods. | BIAI |
| Actuals | Sales, Markdown, Margin, Receipts, Stock at beginning and end of period, Units for each, Elapsed flag | Written by the ETL from the monthly movement ledger as periods close. Plan columns are never overwritten by actuals; the two coexist so variance survives. | BIAI |
| Last year | Sales LY, Markdown LY, Receipts LY, Stock LY, Units LY | Same period one retail year back, so the comparison is like for like on the 4-5-4 calendar. | BI |
| Derived | Sales to plan %, Stock to sales, Turn, Sell-through, Forward cover in weeks, Markdown rate, Margin rate, Plan variance | Computed in the presentation view from the stored measures, so a rate change is a view change. | BIAI |
| Governance | Plan version, Locked flag, Last rescaled, Rescale factor, Owner | A rescale of sales, markdown and stock invalidates end-of-period stock and OTB, which must be recomputed in the same step. | BI |
Purchase commitments
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | PO number, Line, Vendor, Style, Colour, Size, SKU, Class, Department, Season, Order date, Date required, Cancel date, Due period | Due period = the retail period of the required date, or the cancel date when later; this is the period whose OTB the line consumes. | BIAI |
| Quantities | Ordered, Received, Cancelled, Open units (ordered − received − cancelled), Status (open, partial, complete, cancelled) | One definition of open, applied everywhere. Summing ordered units without a status filter overstates commitment by a multiple. | BIAI |
| Values | Unit cost, Unit retail (regular), Open cost, Open retail, Received cost, Received retail, Landed cost, Currency, Exchange rate | Retail valued at regular price so plan and commitment are on the same basis; cost for cash and margin. | BI |
| Supply | Lead time (weeks), Ship mode, DC or direct-to-store, Confirmed flag, First receipt date | Lead time is a vendor attribute and drives when a buy must be placed to land in its period. | BIAI |
OTB position
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Class, Period key, As-of date, Plan version | Derived nightly from the plan and the commitments; never keyed by hand. | BI |
| Inputs | Stock plan end of period, Sales plan, Markdown plan, Opening stock (actual if elapsed, planned if not), Received to date, On order for the period | Each input is a column so the subtraction can be audited on screen. | BIAI |
| Result | OTB retail, OTB cost, OTB units, Over-bought flag, Cumulative OTB to season end | Units and retail computed with the same terms; an OTB that subtracts on-order in retail but not in units is wrong in one of them. | BIAI |
| Reforecast | Forecast sales for the period, Forecast end stock, Forecast OTB, Plan drift | The demand fact re-projects the period; the gap between planned and forecast OTB is the reforecast signal. | AI |
Demand features
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Style, Colour, Class, Season code, Lifecycle stage, First received, Weeks in stock | Weeks in stock caps the averaging window so a new style is not divided by weeks it did not exist. | AI |
| History | Weekly units for the trailing year (W1 onward), Trailing 4, 13, 26 and 52-week totals, Markdown units, Year-to-date | The week in progress is never used: it is incomplete and lagging by construction. | BIAI |
| Rate and horizons | De-seasonalised base weekly rate, Seasonality index by week, Forward factors, Forecast 4, 13, 26 and 52 weeks | Rolling horizons carry a forward seasonal factor; the 52-week horizon carries none because it spans one full cycle. | AI |
| Apportioning | Store index, Size index, Size curve by model, style or colour | Indices sum to one per style, so a class total and a size tile reconcile. | AI |
| Productivity | Gross margin trailing 12 months, Inventory at cost, GMROI, Turn | Ranks what deserves the OTB, not just what needs it. | BIAI |
Buy requirement
| Group | Attributes | Notes | Used by |
|---|---|---|---|
| Identity | Style, Colour, Size, SKU, Vendor, Class, Horizon (4, 13, 26, 52 weeks), Size basis (model, style, colour) | Horizon is discrete and matches the demand fact; never linearly extrapolated. | BIAI |
| Supply | On hand (stores), On hand (DC), On order, Available to sell, Work orders open | Available to sell = on hand + on order − committed work orders, at the grain being bought. | BIAI |
| Requirement | Forecast for horizon, Requirement (forecast − available, floored at zero), Requirement by size (largest-remainder rounded), Suggested PO units, Estimated landed cost | Size rounding ties exactly to the colour total, so a PO never drifts from its requirement. | BIAI |
| Blank and private label style | Blank style, Private label styles on the blank, Blank supply (blank on hand + finished private label styles + blank on order − private label on order), Private label requirement (cut), Blank requirement (buy) | Two outputs per colour and size: what to cut from blanks already owned, and what raw blanks to buy. Finished private label styles count as supply. | BIAI |
| OTB check | Class and due period of the buy, OTB remaining before, OTB remaining after, Over-OTB flag | Posts the buy against the period it lands in, so the plan grid and the PO workbench agree before the order is placed. | BIAI |
Functional areas and what each reads
| Functional area | Reads | Deciding attributes | BI output | AI output |
|---|---|---|---|---|
| Financial planning | Plan (division level) | Sales, markdown, margin, stock targets by period; LY | Top-down plan grid by division and period with LY and variance | Seasonal shape and growth proposals from history and forecast |
| Class planning | Plan (class level), Demand | Class sales and stock plan, sell-through, forward cover | Bottom-up plan grid; reconciliation to the financial plan; rescale | Class-level reforecast and plan-drift alerts |
| Open-to-buy management | OTB, Plan, Commitments | End stock plan, opening stock, on order due, received to date | OTB by class and period in retail, cost and units; over-bought flags; cumulative OTB | Buy timing: which periods to release, which to hold |
| Purchasing and PO workbench | Commitments, Buy requirement | Open units and value by due period, vendor, lead time; requirement by size | Open by month, retail by month, WIP by week; PO creation from the suggested quantities | Suggested POs per style, colour and size for a chosen horizon |
| Private-label and private label planning | Buy requirement (blank and private label) | Blank supply, private label forecast, size curve by blank | Cut versus buy by colour and size; blank size curve versus each colour's curve | Blank reorder and production work-order suggestions that respect finished stock |
| In-season reforecast and markdown | Demand, Plan actuals | Sales to plan, forward cover, weeks of supply, markdown rate | Sales-to-plan trend, cover bands, markdown candidates | Reforecast of remaining periods; markdown timing by cover |
| Store sales budgeting | Plan (store, day grain) | Weekly store budgets for sales, units, tickets, traffic, hours | Store plan by week and month versus actuals; conversion, sales per hour, UPT reconstructed | Store-level reforecast from traffic and conversion trend |
| Vendor and lead time | Commitments, Demand | Lead time, confirmed flag, first receipt, fill against order | Vendor open and received, late lines, fill rate | Order-by dates per vendor for each horizon |
Rules the dataset carries
Calendar and plan integrity
- Scope by the retail calendar. Periods and years come from the calendar table; nothing derives a period from a date function, and the January weeks belong to the retail year that started the previous February.
- Plan and actual never share a column. Actuals arrive as periods close; plan columns stay as written so variance can be read for the whole year.
- End-of-period stock is a snapshot. It is compared, not summed. Flow measures (sales, markdown, receipts) are additive across periods; stock is not.
- Rescale recomputes downstream. A change to sales, markdown or stock plan recomputes end-of-period stock and OTB in the same step, and never resets the commitment columns.
Commitment and OTB
- One definition of open. Ordered minus received minus cancelled, excluding completed and cancelled orders, keyed to the due period, valued at regular retail and at cost. Every consumer reads the same fact.
- Units and retail move together. OTB in units subtracts on-order units exactly as OTB in retail subtracts on-order retail; the two are written in one statement so they cannot drift.
- Every class row has a department. A commitment that cannot be placed in the hierarchy is held in an exceptions pool and reported, not silently dropped or summed into a blank row.
- The plan ties the PO ledger. The sum of on-order across the plan equals the sum of open across the commitments, and the check runs after every load.
Demand and buy
- One rate, de-seasonalised. The base weekly rate averages completed weeks only, over weeks the style was in stock, divided by their seasonal weight. Nothing re-derives a rate from raw sales rows.
- Discrete horizons. A buy is sized at 4, 13, 26 or 52 weeks from the demand fact; a 26-week forecast doubled is not a 52-week forecast.
- Supply includes what is already committed. On order and work orders in progress reduce the requirement, and finished private-label stock counts as blank supply.
- Sizes tie to the colour. The size split uses the chosen size curve with largest-remainder rounding, so the PO total equals the requirement that justified it.
Process workflow
The planning cycle is annual with a monthly turn. The Hub runs the loads and the derivations; planners and buyers run the middle; the AI layer reforecasts and suggests, then learns from what was bought and how it sold.
Cadence
| When | Step | Output | Owner |
|---|---|---|---|
| Annually, then by season | Plan | Financial and class plans; store weekly budgets | Merchandise planning, finance, store operations |
| Nightly | Load, derive OTB, reforecast | Actuals, commitments, OTB position, demand features, drift flags | AI Data Hub |
| Weekly | Suggest and commit | Suggested POs by horizon; purchase orders raised; OTB consumed | Buyers, planners |
| Period close | Actualise | Elapsed periods locked; plan versus actual; LY rolled | Merchandise planning |
| Monthly | Learn and tune | Seasonality and index refresh, horizon accuracy, lead-time review | Planning, data science |
Where BI ends and AI begins
BI on the planning dataset
AI on the same dataset
Both read the same five facts. The OTB a planner sees is the number a suggested PO is checked against, and the PO that results is the commitment the grid shows the next morning.
What a conforming dataset delivers
An OTB that ties. Plan, commitments and PO ledger agree to the unit and the dollar every night, in retail, cost and units, with exceptions listed rather than lost.
A buy sized to the sell. Requirements come from a de-seasonalised rate at discrete horizons, netted of every committed unit, split to size without drift, and posted against the period they land in.
Plans that learn. Actuals and reforecasts sit beside the plan for the whole year, so the next plan starts from measured drift, not from last year's spreadsheet.
Deployment approach
Load the retail calendar, map the class hierarchy the plan is kept at, and define open for the PO ledger: status codes, received and cancelled quantities, due-period rule, retail and cost basis.
Import the current plan, actualise elapsed periods from the movement ledger, load commitments and prove the plan ties the PO ledger. Derive OTB and publish the plan grid and purchasing reports.
Build the demand features and the buy requirement, including the private-label cut-versus-buy variant, and reconcile the suggested quantities across the workbench, the style card and the planning grid.
Post suggested buys against OTB, switch on reforecast and drift flags, load store weekly budgets, and start the monthly seasonality, index and horizon-accuracy review.