← INDEXCH 05 / 1006 FLOW →

CHAPTER 05Disaggregation Rules

Req. prefix: DRv0.5 draft

This chapter defines how weights are formed at each stage. Ch. 06 defines the order in which stages run and the arithmetic (rounding, invariants). One default rule family — forecast-proportional — plus two overrides, each owning exactly one stage: phase profiles (UPC→product) and split tables (location).

5.1Default rule: forecast-proportional

DR-01Unless overridden by DR-05…DR-09, the basis at every stage is the current forecast, aggregated to the granularity of that stage and restricted to the entry's scope: Forecast bases are raw weights and need not sum to any particular value; only their proportions matter.
DR-02Bases are computed on the fly from the current forecast at the moment of disaggregation. No intermediate aggregates are persisted.
DR-03Zero total basis = error, not fallback. If the basis for a required split sums to zero (e.g. no forecast anywhere in scope for the period, or — at the attribute→UPC stage — every UPC under the attribute aggregates to zero), the entry goes InError per GL-05/HE-08. The system MUST NOT fall back to even splits. Individual elements with zero weight are NOT an error: they simply receive nothing (e.g. an attribute-scoped entry is valid as long as at least one of its UPCs has forecast in the period).
DR-04Customer scope does not filter the forecast (the forecast has no customer dimension). A customer-scoped entry uses the same forecast bases; customer affects only the resolution of phase profiles (DM-15) and split tables (DM-09).

5.2Phase profiles: NPI & EOL at the UPC→product stage

DR-05At the UPC→product stage, for each (UPC, week): resolve a phase-profile row set per DM-15. If found, product weights are the profile fractions restricted to the entry's in-scope products, renormalized over that in-scope subset — if the surviving fractions sum to s with 0 < s < 1 (the entry's attribute filter cuts through a phasing UPC), each is divided by s, so the full UPC-week amount is placed on the in-scope products and Σ LO = value_su holds (DF-04). If the surviving fractions sum to zero for that (UPC, week), the usual zero-total rule applies (DR-03/DR-07). The forecast is not consulted where a profile resolves. If no profile resolves, product weights are forecast proportions per DR-01. Profiles are in week-range form (DM-14/16) and MAY be customer-specific — different customers may run different introduction schedules. [Q-10 resolved → D-24]
DR-06NPI and EOL are expressions of this one mechanism, not separate machinery: a new product is a product whose profile share ramps up from zero (it typically has no own forecast — its volume reaches it precisely through the profile); a phase-out product is one whose share ramps down to zero. A UPC-level or attribute-level entry therefore transitions volume between old and new products automatically, because forecast aggregated to UPC level (driven by the outgoing product) supplies the upper-stage bases, and the profile re-divides it below.
DR-07For weeks where a resolved profile gives an in-scope product the share 0 — before its phase-in or after its phase-out — that product receives nothing (no LO rows, DM-11). This is the regular zero-weight case of DR-03, not an error. If all in-scope products of a UPC have share 0 in a week that carries volume, that (UPC, week) has a zero total basis → InError (DR-03, DR-05).
DR-08At the location stage, a product with no own forecast (a typical NPI product) resolves its location weights in this order:
  1. Own split-table rows (DM-09): if the product has resolved split-table rows for the (week, customer), those fractions are used.
  2. UPC-sibling location mix (fallback): otherwise the basis is the aggregate forecast location mix of all the product's UPC siblings — the other products under the same UPC that have forecast in the period — summed per location across those siblings and normalised. The NPI product is placed by this combined sibling mix.
  3. InError: only if the UPC has no sibling with any forecast in the period (a rare case) does the location basis sum to zero and the entry go InError per DR-03, with the proper missing-basis message (HE-08).
A sibling here means a product sharing the same UPC. The MINI dataset seeds an explicit split-table row for its NPI (path 1); the sibling-mix fallback (path 2) is the default when none is supplied. [Q-03 resolved → D-21]
Example E5-A — U2's phase profile (dataset of Ch. 02)

U2's forecast basis (all from P2, only L1): W1 20, W2 20, W3 30, W4 30. The profile divides each week's UPC amount among P2/P3:

WeekRule usedP2 shareP3 share
W1profile (row W1)1.000.00
W2profile (rows W2)0.500.50
W3profile (range W3–W4)0.001.00
W4profile (range W3–W4)0.001.00

U1 has no profile: DM-15(3) applies and its single product P1 takes weight 1 from forecast proportions. No fake profiles for stable products.

Renormalization (DR-05): suppose an entry's attribute filter matched only P2. In W2 the surviving fraction is 0.5 → renormalized to 1.0: P2 receives the full U2 amount of that week. In W3–W4 the surviving total is 0 → InError if those weeks carry volume (DR-07).

5.3Split tables: forward-looking sourcing

When the sourcing network changes, historical or forecast location proportions are wrong. Split tables declare the future proportions explicitly, per product, in week-range form, optionally per customer.

DR-09At the location stage, for each (product, week): resolve a split-table row set per DM-09. If found, location weights are the table fractions; the forecast is not consulted for this (product, week). If not found, DR-01 applies (or, for a product with no own forecast, the sibling-mix fallback of DR-08). No scope restriction arises here: the entry's location scope is either ALL (nothing to restrict) or a single location — in which case the stage is skipped entirely (DR-10).
DR-10Explicit scope wins over splitting bases. An entry whose location scope is a single location is already at the location stage's grain and passes that stage through unchanged (DF-01): all volume is placed on the scoped location, even if the forecast or a split table gives that location weight 0. The same principle holds in the product dimension: a product-scoped entry skips the UPC→product stage, so phase profiles are never consulted for it — a planner MAY deliberately enter volume on a product in weeks where its profile share is 0 (e.g. beyond its phase-out). Explicit low-level scope expresses planner knowledge and MUST NOT be second-guessed; InError arises only from genuinely zero total bases at stages that actually split (DR-03). [Q-08 resolved → D-22]
DR-11Split tables and phase profiles are independent overrides of their respective stages and compose freely: e.g. an NPI product's volume arises from its UPC's phase profile and is then placed by its split-table rows (or, absent those, by the UPC-sibling location mix of DR-08).
DR-12Split tables are defined at base-product level only. Hierarchy- or attribute-level split tables do not exist; week-range rows are the native form (DM-08). [Q-01 resolved]
Example E5-B — sourcing change overrides forecast mix

Basis for P1's location stage, per week. Forecast mix (L1:L2) is 10:30, 20:20, 30:30, 40:20 for W1…W4. The split table (Ch. 02) declares 50/50 for the range W3–W4.

WeekRule usedL1 weightL2 weight
W1forecast (no table row)1030
W2forecast2020
W3split table (range W3–W4)0.500.50
W4split table (range W3–W4)0.500.50

A customer-scoped entry on C1 would instead resolve the C1 row set for every week: 100% L1 (DM-09 step 1). P3 resolves its own row set: 100% L1 for W1–W4. An entry scoped to a single location skips this stage entirely (DR-10).

5.4Rule-resolution summary

StageWeight source (in order)On zero total basis
Timeforecast aggregated to scopeInError (DR-03), message per HE-08
Attribute→UPCforecast aggregated per UPC (in-scope products)
UPC→product1. customer profile rows → 2. null-customer profile rows (both renormalized over in-scope products, DR-05) → 3. forecast per product
Location1. customer split rows → 2. null-customer split rows → 3. forecast per location → 4. UPC-sibling location mix (products with no own forecast, DR-08)

Symmetry: the two middle and bottom stages share one resolution pattern — explicit customer rule, generic rule, forecast. The location stage adds one further fallback (sibling mix) for forecast-less NPI products. Entries scoped at or below a stage's grain pass that stage through unchanged and never consult its rules (DF-01, DR-10).