The planning grain
Planning grain is the level of the product, calendar, channel and location hierarchy at which a decision is actually made — the set of cells the decision assigns a number to. It is a property of the decision, not of the data. A report can be re-sliced to any grain on demand; a decision is made once, at one level, and it is committed at the level the purchase order, the size run and the allocation are written at. The rule this page exists to state is short: you cannot decide above the level you commit at without hiding offsetting errors.
This is not the question of how a merchandise hierarchy is built, which is about classifying products into levels. This page never classifies a product. It assigns decisions to levels — which is a different exercise, with a different failure mode and a different bill at the end of the season. It is also distinct from who owns which decision: ownership names a person, grain names a level, and a decision needs both before it can be made well.
Which decision belongs at which level
Each row below is a rule, not a preference. The second column is where the decision belongs; the third states why that level and not the one above it. Read the table as a checklist against your own planning calendar: for every decision your team makes this season, name the level it is made at and the level it is committed at, and circle every row where the two differ.
| Decision | Grain it belongs at | The rule |
|---|---|---|
| Option count | Style | The count is set at style level and nowhere else. A count taken on a different unit is not a smaller or larger number, it is a different quantity — so settle the unit before arguing about the number. |
| Price architecture | Style, placed within a tier set for the class | Tiers belong to the class; a style is placed into a tier. A style priced only against its own cost breaks the architecture the customer uses to tell two styles apart. |
| Target cost | Style-color | Cost is decided where the bill of material changes. A print, a garment-dye or a contrast trim is a different bill, so a target held at style level is correct only when every colorway shares one bill. |
| Depth — units per option | Style-color | Depth is committed per colorway, so it is decided per colorway. A style-level depth is an average that fits the colorways nearest the middle and none of the ones at either end. |
| Size curve | Style-color-size | The curve is the ratio that turns a colorway total into purchase order lines, so it belongs to the colorway. One curve per style is an assertion that every colorway has the same customer. |
| Delivery phasing | Style-color-week | Phasing is decided on the colorway that lands, in the week it lands. A class-level shape applied to a style with its own launch date phases receipts into weeks the style is not in. |
| Allocation | Style-color-size-door, or door cluster where doors genuinely behave alike | Allocate at the finest grain the shipment can express. A cluster is a legitimate coarsening when the doors in it share a size profile; a style-level allocation is not a coarser allocation, it is no allocation. |
| Open-to-buy | Class-month | Open-to-buy is a money constraint, and money is fungible inside a class within a month. The coarse grain is correct here. Push it finer and you have written the assortment rather than a budget. |
| Channel split | Class-channel | Split where the channels actually differ. Finer invents per-style channel intent nobody holds; coarser lets one channel’s demand quietly fund the other channel’s buy. |
- Grain it belongs at
- Style
- The rule
- The count is set at style level and nowhere else. A count taken on a different unit is not a smaller or larger number, it is a different quantity — so settle the unit before arguing about the number.
- Grain it belongs at
- Style, placed within a tier set for the class
- The rule
- Tiers belong to the class; a style is placed into a tier. A style priced only against its own cost breaks the architecture the customer uses to tell two styles apart.
- Grain it belongs at
- Style-color
- The rule
- Cost is decided where the bill of material changes. A print, a garment-dye or a contrast trim is a different bill, so a target held at style level is correct only when every colorway shares one bill.
- Grain it belongs at
- Style-color
- The rule
- Depth is committed per colorway, so it is decided per colorway. A style-level depth is an average that fits the colorways nearest the middle and none of the ones at either end.
- Grain it belongs at
- Style-color-size
- The rule
- The curve is the ratio that turns a colorway total into purchase order lines, so it belongs to the colorway. One curve per style is an assertion that every colorway has the same customer.
- Grain it belongs at
- Style-color-week
- The rule
- Phasing is decided on the colorway that lands, in the week it lands. A class-level shape applied to a style with its own launch date phases receipts into weeks the style is not in.
- Grain it belongs at
- Style-color-size-door, or door cluster where doors genuinely behave alike
- The rule
- Allocate at the finest grain the shipment can express. A cluster is a legitimate coarsening when the doors in it share a size profile; a style-level allocation is not a coarser allocation, it is no allocation.
- Grain it belongs at
- Class-month
- The rule
- Open-to-buy is a money constraint, and money is fungible inside a class within a month. The coarse grain is correct here. Push it finer and you have written the assortment rather than a budget.
- Grain it belongs at
- Class-channel
- The rule
- Split where the channels actually differ. Finer invents per-style channel intent nobody holds; coarser lets one channel’s demand quietly fund the other channel’s buy.
Two rows depend on getting the unit right before the level means anything. Option count and depth are counted in units — style, option, colorway, SKU — that different teams use differently, and a count on the wrong unit is not a rounding difference but a different quantity altogether. Those units are defined once for the cluster, in the line board guide to what counts as one option, and this page uses that vocabulary rather than restating it. What an added option costs once it exists — the development, sampling, minimum and carrying weight it brings with it — is priced in what an option costs.
- Definition — Planning grain
- Planning grain is the level of the product, calendar, channel and location hierarchy at which a decision is actually made — the set of cells a decision assigns a number to. It is a property of the decision, not of the data: a report can be re-sliced to any grain on demand, but a decision is made once, at one level, and is committed at the level the purchase order, the size run and the allocation are written at. Where the decision grain is coarser than the commit grain, the gap is filled by a default ratio nobody chose deliberately.
- Used by: merchandising, planning, buying, allocation and sourcing teams
- Related: merchandise hierarchy, size curve, open-to-buy, assortment planning, decision rights
Aggregation hides offsetting errors
Everything on this page follows from one property of addition. Errors of opposite sign cancel at every level above the level they occur at. A total is a sum. A sum keeps the net and destroys the detail. If a plan overstates one cell by forty units and understates its neighbour by forty, the parent of those two cells is exactly correct, and so is every level above it — the class, the department, the season. Nothing in the aggregate is wrong. The information that anything is wrong is simply no longer present in the number being reviewed.
This is worth stating precisely because it is usually described as a data problem, and it is not. It is arithmetic working as intended. Means and sums aggregate; dispersion does not. When you roll a plan up you are deliberately discarding dispersion in exchange for something a person can read in one line — and the errors that survive the roll-up are exactly the ones that did not cancel, which is a biased sample of the errors you have. The coarser the review, the more cells it sums, and the more likely it is that the errors inside it cancel. The review that feels safest, because the number came out right, is structurally the one most likely to be blind.
The second half of the mechanism is what makes the first half expensive. The money is not committed at the level the decision was reviewed at. It is committed at the finest level the paperwork can express: a purchase order line carries a style, a color, a size and a quantity; an allocation carries a door; a container carries a shipping multiple. The cost of a grain error is paid at the commit level regardless of the level it was reviewed at — the factory does not build the average, it builds the size run. So a plan can pass every review it is given and still be wrong in the only place that produces units.
The corollary is the useful part. A review can only detect errors at or below its own grain. Reviewing at a coarser grain than the commit grain is not a weaker version of the same check — it is a check of a different quantity. Approving a style total does not partially approve the size run; it does not touch the size run at all. This is why “we reviewed the buy and it was in line” and “the buy was wrong by size” are both true statements about the same buy, made by people who are each being accurate.
It also explains why the error does not surface as an error. There is no alert, no exception report and no reconciliation that fails, because nothing is inconsistent. The plan ties to the buy, the buy ties to the purchase order, and the purchase order ties to the receipt. The first visible symptom arrives months later, split across two reports that are never read together: a markdown line on the sizes that were long, and an out-of-stock rate on the sizes that were short. Both get attributed to demand. It is the same reason a plan reconciled at season level says nothing about a style-color offset — the point the system of record matrix makes about reconciling at the grain the decision is made at.
One style, four colorways, eight sizes — a buy that balances and is wrong twice
Take one style in eight sizes, bought in four colorways at 1,500 units each — 6,000 units for the style. The plan called for 6,000. The size curve is a house curve, set once at style level and applied to every colorway: 5% XS, 12% S, 22% M, 26% L, 18% XL, 10% 2XL, 5% 3XL, 2% 4XL. Illustrative figures, chosen because they divide cleanly. Not benchmarks, and not drawn from any brand.
One of the four colorways is the core black. Its customer is not the style’s average customer — it skews a size larger, which merchants in the room already know and which the house curve has no way to express. Against the units that colorway would actually have sold, the buy looks like this.
| Size | Bought on the house curve | Units the colorway would have sold | Difference |
|---|---|---|---|
| XS | 75 | 45 | +30 |
| S | 180 | 135 | +45 |
| M | 330 | 285 | +45 |
| L | 390 | 390 | 0 |
| XL | 270 | 315 | −45 |
| 2XL | 150 | 195 | −45 |
| 3XL | 75 | 105 | −30 |
| 4XL | 30 | 30 | 0 |
| Colorway total | 1,500 | 1,500 | 0 |
- Bought on the house curve
- 75
- Units the colorway would have sold
- 45
- Difference
- +30
- Bought on the house curve
- 180
- Units the colorway would have sold
- 135
- Difference
- +45
- Bought on the house curve
- 330
- Units the colorway would have sold
- 285
- Difference
- +45
- Bought on the house curve
- 390
- Units the colorway would have sold
- 390
- Difference
- 0
- Bought on the house curve
- 270
- Units the colorway would have sold
- 315
- Difference
- −45
- Bought on the house curve
- 150
- Units the colorway would have sold
- 195
- Difference
- −45
- Bought on the house curve
- 75
- Units the colorway would have sold
- 105
- Difference
- −30
- Bought on the house curve
- 30
- Units the colorway would have sold
- 30
- Difference
- 0
- Bought on the house curve
- 1,500
- Units the colorway would have sold
- 1,500
- Difference
- 0
Now run the three reviews in the order the season runs them. The style-level review passes: 6,000 units bought against a 6,000-unit plan, exactly on. The style-color review passes too: each colorway is 1,500 against 1,500, and the four colorway totals are identical to plan. Only the third view shows anything, and it is not a view most buy reviews contain: at size level the buy is 30 units long in XS, 45 long in S, 45 long in M, 45 short in XL, 45 short in 2XL and 30 short in 3XL. The net of those six numbers is zero, which is why the two reviews above them passed. The gross is 240 units — 120 bought into sizes that will not sell them, and 120 missing from sizes that would have.
Put an illustrative price on it to see what the zero costs. Retail 60.00, landed cost 20.00, so 40.00 of margin on a full-price unit. Sizes that do not sell clear at half price: 30.00, leaving 10.00 of margin, so every overbought unit gives up 30.00 of margin — 120 units × 30.00 = 3,600. On the short side the arithmetic needs a substitution assumption, and there is no defensible general figure for one — so it is an input to the example, chosen and labelled as such rather than measured: assume two of every three shoppers who find their size gone take an adjacent size and the third leaves. On that assumption 40 units of the 120 are lost outright, at 40.00 of margin each = 1,600. The two together are 5,200 on one colorway of one style, inside a buy that balanced at every level anyone looked at.
Two honest notes on that number. The substitution assumption is generous: the shopper who takes the adjacent size takes a unit out of a size that was already short, so substitution moves the shortage rather than removing it, and 5,200 is the optimistic read rather than the conservative one. And the other three colorways are not clean either — a print that skews small and a seasonal shade that sells a narrow middle each carry their own offsets, in their own directions, and at style level those cancel again. The style total stays exactly 6,000. The numbers are illustrative; the shape is not.
The point of the example is not the size of the bill. It is where the bill is invisible. Nobody in this story made a mistake that a competent reviewer would catch, because the reviewer was handed the one quantity from which the mistake had already been removed. The decision that caused it was made months earlier, in about four seconds, when someone applied the house curve to all four colorways because the buy sheet had one curve field on it. Grain errors are almost always defaults rather than judgements — which is why the fix is structural, and why a dashboard cannot catch this: reporting can slice to size, but slicing after the purchase order is written tells you what the error cost, not that you are about to make it.
What each grain mismatch actually breaks
Every row below is the same mechanism at a different decision. In each case the decision is taken one or more levels above where it commits, a default fills the gap, and the resulting error is invisible at the level it was approved at. None of them throw an error; all of them are paid.
| Decision | Grain it was decided at | Grain it commits at | What breaks |
|---|---|---|---|
| Depth | Style | Style-color | Every colorway receives the average. The hero colorway runs short and the weakest colorway runs long — and the style total is exactly right, so the buy review sees nothing. |
| Size curve | Style | Style-color-size | The largest colorway’s curve is imposed on the smallest. The buy balances at every colorway total and misses in both directions by size, which is the hardest error to see and the most expensive to carry. |
| Delivery phasing | Class | Style-color-week | A class shape is applied to a style with a different launch date. Receipts are phased against weeks the style has no demand in, and the flow correction is an expedite rather than a plan change. |
| Allocation | Style | Style-color-size-door | Doors receive a mix nobody chose. The size run that sells in the flagship goes to the outlet, and the correction arrives later as a transfer bill and a markdown in the wrong door. |
| Target cost | Style | Style-color | A print colorway carries a plain colorway’s cost. Initial markup is quoted against a bill of material that colorway does not have, and realized margin is short only on the colorways that actually sold. |
- Grain it was decided at
- Style
- Grain it commits at
- Style-color
- What breaks
- Every colorway receives the average. The hero colorway runs short and the weakest colorway runs long — and the style total is exactly right, so the buy review sees nothing.
- Grain it was decided at
- Style
- Grain it commits at
- Style-color-size
- What breaks
- The largest colorway’s curve is imposed on the smallest. The buy balances at every colorway total and misses in both directions by size, which is the hardest error to see and the most expensive to carry.
- Grain it was decided at
- Class
- Grain it commits at
- Style-color-week
- What breaks
- A class shape is applied to a style with a different launch date. Receipts are phased against weeks the style has no demand in, and the flow correction is an expedite rather than a plan change.
- Grain it was decided at
- Style
- Grain it commits at
- Style-color-size-door
- What breaks
- Doors receive a mix nobody chose. The size run that sells in the flagship goes to the outlet, and the correction arrives later as a transfer bill and a markdown in the wrong door.
- Grain it was decided at
- Style
- Grain it commits at
- Style-color
- What breaks
- A print colorway carries a plain colorway’s cost. Initial markup is quoted against a bill of material that colorway does not have, and realized margin is short only on the colorways that actually sold.
The shared signature is worth naming so you can recognise it in your own season: a number that was right at review and wrong at execution, with no event in between. Nothing changed. The number never became wrong — it was wrong at a level nobody looked at, and execution is simply the first moment that level is read out loud.
When coarse is the correct answer
Everything above argues in one direction, and taken alone it produces a bad plan. Finer grain is not free and it is not always better. It costs judgement — every additional level multiplies the number of cells somebody has to have an opinion about. It costs maintenance, because every cell is a number that goes stale. And past a point it costs accuracy outright: a style-color-size-door-week cell has almost no history in it, so a forecast fitted there is fitting noise, and a plan built on it is precise about things it does not know.
Some decisions belong coarse on the merits. Open-to-buy is the clearest: it constrains money, and money is fungible across the styles in a class within a month. Holding it at class-month is not a compromise, it is the correct level, and pushing it finer converts a budget into an assortment and removes exactly the room a buyer needs to react in season. Financial targets behave the same way — a sales and margin target at department-season is a target somebody can be held to; the same target split to style-color-week is a spreadsheet nobody believes by week three.
The reconciliation between the two arguments is to separate three grains that are usually collapsed into one. There is the grain you forecast at, which should be the coarsest level that still has real signal in the history. There is the grain you decide at, which is the level someone takes responsibility for a number. And there is the grain you commit at, which is set for you by the purchase order, the size run, the door and the container. The forecast may legitimately sit above the decision, as long as the ratio that carries it down is itself a decision somebody made and can defend — the failure in the worked example was not that a curve existed, it was that the curve was inherited rather than chosen.
That gives a working test, and it is the sentence to take away from this section: decide at the coarsest level that still names an action someone can take — and never coarser than the level the decision commits at. A number that cannot be turned into an action by the person who owns it is a summary rather than a plan. A number that names an action but sits above the level the action is executed at is a decision that will be completed by a default. Both tests have to pass, and where they conflict, the commit level wins, because that is the level the money leaves at.
The same rule, different dimensions
The rule is dimension-agnostic: decide at or below the commit level. What changes between categories is which dimensions exist, and therefore where the commit level actually sits. Getting this wrong outside apparel is easy, because a team carries the apparel habit of treating style-color-size as the floor into a category where the floor is somewhere else entirely.
Footwear: width is a grain dimension
In footwear, width is a real grain dimension, so the same option commits one level deeper than in apparel. A shoe commits at style-color-size-width, and a size run that ignores width is the worked example above repeated inside every size: the buy balances by size and misses in both directions by width, with the offsets cancelling at the size level that everyone reviews. The effect compounds because footwear size runs are long — a run spanning half sizes across two or three widths produces several times the terminal cells of an apparel size scale on the same number of units, so each cell carries less history and the temptation to decide one level up is stronger exactly where it costs most. Prebooks sharpen it further: units are committed before any read exists, so the ratio carrying the decision down is doing all the work and deserves to be argued about explicitly. The footwear treatment is on the flagship at footwear brands.
Accessories and bags: material replaces size
In accessories and bags the size dimension disappears and material takes its place as the grain. The same silhouette in full-grain leather and in coated nylon is not one thing bought at two prices — it is two commit cells with different customers, different price positions, different lead times and different minimums. Losing the size dimension removes the forcing function apparel has: in apparel a size run makes the finest level unavoidable because the purchase order will not accept a style without sizes, whereas an accessories buy sheet will happily accept a silhouette-level number, so the coarse decision looks complete. That is the specific risk in the category — the plan is not obviously missing anything. The rule to hold is that a decision belongs at style-material-color, and that a silhouette-level depth is an average across materials that behave differently enough to have been separate lines. See accessories and bags brands.
Home and furniture: configuration, finish, and the container multiple
In home and furniture the grain is configuration and finish, and the container sets a hard floor below which finer grain is meaningless. Configuration — the sectional arrangement, the table size, the bed scale — and finish are both commit dimensions, so the decision belongs at model-configuration-finish. But there is a second constraint apparel does not have: when goods ship in fixed container multiples, a plan expressed at a grain finer than the shipping multiple is a plan the purchase order cannot express. Deciding twelve units of a finish when the multiple is twenty is not a precise decision, it is a decision that will be rounded by whoever cuts the order, which is the default-fills-the-gap failure arriving from the opposite direction. The correct move is to decide at the multiple and treat the split below it as an allocation question rather than a buy question. More at home and furniture brands.
Sporting goods: model year sits above style
In sporting goods, model year is a grain dimension sitting above style rather than below it — the one case on this page where the risk is a level that gets pooled rather than a level that gets skipped. The same style name persists across model years with a specification change, so a decision made at “style” silently combines the outgoing and incoming years into one number, and a sell-through read at that level mixes a carryover being cleared with a new year being launched. Both halves are then wrong in the familiar way: the aggregate is fine, the carryover is short of the markdown it needed and the new year is bought against demand that belonged to its predecessor. Carryover versus new is a grain question before it is a demand question, and the decision belongs at model-year-style-color. See sporting goods brands.
Grain is a property of the template, not of the meeting
The uncomfortable finding in the worked example is that the error was not a judgement call anybody lost. It was a field. The buy sheet had one curve column, so one curve was applied, and no meeting was ever held about it. Grain is decided by the shape of the tool long before it is decided by the team — a template with a single row per style has already ruled out a per-colorway decision, whatever anyone in the room intends. That is why exhortation does not fix grain errors and structure does.
Three moves do most of the work. First, write the commit grain on the template next to every decision field, so the person filling it in can see the level the number will be executed at. Second, require any decision made above its commit grain to name the ratio carrying it down and the person who owns that ratio — an inherited house curve with an owner is a decision, an inherited house curve without one is a default. Third, run at least one review at the commit grain before the order is cut, even if it is only a scan: the review does not have to be long, it has to be at the right level, because a short review at the commit grain sees things a thorough review one level up cannot see at all.
Grain and ownership are the two halves of the same fix and they fail differently, which is why they are separate pages. A decision with a level but no owner drifts; a decision with an owner but no level gets made at whatever level the tool offered. The ownership half is set out in the decision rights map. Both are conditions on the same object: a plan that carries one shared structure from line plan through open-to-buy, assortment, buy, sizing, purchase orders and allocation, which is what an apparel operating system is for. The reason grain survives in a connected system and not in a stack of workbooks is unglamorous: one structure, defined once, means the level a decision is made at is a property of the plan rather than of whichever file it was made in.
- Planning grain is the level at which a decision is made — the set of cells it assigns a number to. It is a property of the decision, not of the data.
- The governing rule: a decision must be made at, or below, the level at which it is committed. Above that level, a default fills the gap and makes the rest of the decision for you.
- Aggregation hides offsetting errors. Errors of opposite sign cancel at every level above the one they occur at, so a coarse review is not a weaker check — it is a check of a different quantity.
- The cost is paid at the commit level regardless of where the decision was reviewed. The factory builds the size run, not the average.
- Option count belongs at style; target cost and depth at style-color; the size curve at style-color-size; phasing at style-color-week; allocation at style-color-size-door.
- Coarse is sometimes correct. Open-to-buy belongs at class-month because money is fungible inside a class within a month, and finer grain costs judgement, maintenance and forecast reliability.
- The test: decide at the coarsest level that still names an action someone can take, and never coarser than the level the decision commits at.
- Outside apparel the commit level moves — width in footwear, material in accessories and bags, configuration, finish and the container multiple in home and furniture, and model year above style in sporting goods.
- See who owns which decision in an apparel operating model →
- Read the apparel operating system definition and pillar →
- Assign a system of record to every apparel data object →
- Compare the Apparel OS with BI and dashboards — why reporting owns nothing →
- Walk the connected apparel workflow map, stage by stage →
- Settle the counting unit — style, option, colorway, SKU →
- Price the add decision at line review — what an option costs →
Frequently asked questions
- What is planning grain?
- Planning grain is the level of the product, calendar, channel and location hierarchy at which a decision is actually made — the set of cells the decision assigns a number to. It is a property of the decision rather than of the data. A report can be re-sliced to any grain on demand, but a decision is made once, at one level, and it is committed at the level the purchase order, the size run and the allocation are written at. Where the decision is made at a coarser level than it is committed at, the difference is filled in by a default ratio nobody deliberately chose.
- Should you plan at style or style-color level?
- It depends on the decision, not on the brand. Option count and price tier placement belong at style level. Depth, target cost and the size curve belong at style-color, because that is where the units are committed: a purchase order line carries a colorway, not a style. The practical test is to ask what the purchase order says. If the commitment names a colorway and the decision named only a style, then something between the two filled in the colorway split, and whatever filled it in made the decision instead of you.
- Why does my buy balance at total but not by size?
- Because a total is a sum, and sums are blind to deviations that cancel. If a size curve overstates three sizes and understates three others by the same number of units, the colorway total is exactly right and every size is wrong. That is not a rare case; it is the expected outcome of applying one curve to colorways with different customers. The review at the total level cannot see it, because the quantity being reviewed no longer contains the information. The error is visible only at the size level, which is also the level the money was committed at.
- What level should a size curve be set at?
- At style-color-size. The curve is the ratio that converts a colorway total into purchase order lines, so it belongs to the colorway that is being bought. A single curve applied across a style asserts that every colorway attracts the same customer, which is exactly the assumption that fails on a style carrying both a core neutral and a fashion print. Where sales history at style-color-size is too thin to fit a curve, fit at the coarsest level with real signal and then state the adjustment you are applying downward — the adjustment is the decision, and it should be written down and argued about rather than inherited from a default.
- Is it always better to plan at a finer level?
- No. Finer grain costs judgement, maintenance and forecast reliability, and past a point it produces a plan nobody can hold in their head and cells too thin to forecast at all. Financial targets legitimately live at class-month because money is fungible inside a class within a month. The working test is to decide at the coarsest level that still names an action somebody can take, and never coarser than the level the decision commits at. A number that cannot be turned into an action by the person who owns it is a summary, not a plan.
- What is the right level for open-to-buy?
- Class-month, in most operating models. Open-to-buy is a constraint on money rather than an instruction about product, and money is fungible across the styles in a class within a month — that fungibility is the point of holding the budget at that level. Pushing open-to-buy to style-color does not make it more accurate; it converts a budget into an assortment and removes the room the buyer needs in season. The discipline that keeps a class-month open-to-buy honest is not finer grain, it is netting commitments against it as orders are placed rather than at the end of the month.
See how the Apparel OS comes to life in RetailNorthstar — one connected workflow from line plan to production.